????

Your IP : 216.73.216.152


Current Path : /opt/ant/manual/api/org/apache/tools/ant/
Upload File :
Current File : //opt/ant/manual/api/org/apache/tools/ant/TaskAdapter.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_03) on Tue May 22 06:24:51 CEST 2012 -->
<title>TaskAdapter (Apache Ant API)</title>
<meta name="date" content="2012-05-22">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="TaskAdapter (Apache Ant API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/tools/ant/Task.html" title="class in org.apache.tools.ant"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/tools/ant/TaskConfigurationChecker.html" title="class in org.apache.tools.ant"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/tools/ant/TaskAdapter.html" target="_top">Frames</a></li>
<li><a href="TaskAdapter.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.tools.ant.Task">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.tools.ant</div>
<h2 title="Class TaskAdapter" class="title">Class TaskAdapter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/tools/ant/ProjectComponent.html" title="class in org.apache.tools.ant">org.apache.tools.ant.ProjectComponent</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/tools/ant/Task.html" title="class in org.apache.tools.ant">org.apache.tools.ant.Task</a></li>
<li>
<ul class="inheritance">
<li>org.apache.tools.ant.TaskAdapter</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.lang.Cloneable, <a href="../../../../org/apache/tools/ant/TypeAdapter.html" title="interface in org.apache.tools.ant">TypeAdapter</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">TaskAdapter</span>
extends <a href="../../../../org/apache/tools/ant/Task.html" title="class in org.apache.tools.ant">Task</a>
implements <a href="../../../../org/apache/tools/ant/TypeAdapter.html" title="interface in org.apache.tools.ant">TypeAdapter</a></pre>
<div class="block">Uses introspection to "adapt" an arbitrary Bean which doesn't
 itself extend Task, but still contains an execute method and optionally
 a setProject method.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.tools.ant.Task">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.tools.ant.<a href="../../../../org/apache/tools/ant/Task.html" title="class in org.apache.tools.ant">Task</a></h3>
<code><a href="../../../../org/apache/tools/ant/Task.html#target">target</a>, <a href="../../../../org/apache/tools/ant/Task.html#taskName">taskName</a>, <a href="../../../../org/apache/tools/ant/Task.html#taskType">taskType</a>, <a href="../../../../org/apache/tools/ant/Task.html#wrapper">wrapper</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.tools.ant.ProjectComponent">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.tools.ant.<a href="../../../../org/apache/tools/ant/ProjectComponent.html" title="class in org.apache.tools.ant">ProjectComponent</a></h3>
<code><a href="../../../../org/apache/tools/ant/ProjectComponent.html#description">description</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#location">location</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#project">project</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/tools/ant/TaskAdapter.html#TaskAdapter()">TaskAdapter</a></strong>()</code>
<div class="block">No-arg constructor for reflection.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/tools/ant/TaskAdapter.html#TaskAdapter(java.lang.Object)">TaskAdapter</a></strong>(java.lang.Object&nbsp;proxy)</code>
<div class="block">Constructor for given proxy.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/tools/ant/TaskAdapter.html#checkProxyClass(java.lang.Class)">checkProxyClass</a></strong>(java.lang.Class&nbsp;proxyClass)</code>
<div class="block">Check if the proxy class is a valid class to use
 with this adapter.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/tools/ant/TaskAdapter.html#checkTaskClass(java.lang.Class, org.apache.tools.ant.Project)">checkTaskClass</a></strong>(java.lang.Class&nbsp;taskClass,
              <a href="../../../../org/apache/tools/ant/Project.html" title="class in org.apache.tools.ant">Project</a>&nbsp;project)</code>
<div class="block">Checks whether or not a class is suitable to be adapted by TaskAdapter.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/tools/ant/TaskAdapter.html#execute()">execute</a></strong>()</code>
<div class="block">Executes the proxied task.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/tools/ant/TaskAdapter.html#getProxy()">getProxy</a></strong>()</code>
<div class="block">Returns the target object being proxied.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/tools/ant/TaskAdapter.html#setProxy(java.lang.Object)">setProxy</a></strong>(java.lang.Object&nbsp;o)</code>
<div class="block">Sets the target object to proxy for.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.tools.ant.Task">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.tools.ant.<a href="../../../../org/apache/tools/ant/Task.html" title="class in org.apache.tools.ant">Task</a></h3>
<code><a href="../../../../org/apache/tools/ant/Task.html#bindToOwner(org.apache.tools.ant.Task)">bindToOwner</a>, <a href="../../../../org/apache/tools/ant/Task.html#getOwningTarget()">getOwningTarget</a>, <a href="../../../../org/apache/tools/ant/Task.html#getRuntimeConfigurableWrapper()">getRuntimeConfigurableWrapper</a>, <a href="../../../../org/apache/tools/ant/Task.html#getTaskName()">getTaskName</a>, <a href="../../../../org/apache/tools/ant/Task.html#getTaskType()">getTaskType</a>, <a href="../../../../org/apache/tools/ant/Task.html#getWrapper()">getWrapper</a>, <a href="../../../../org/apache/tools/ant/Task.html#handleErrorFlush(java.lang.String)">handleErrorFlush</a>, <a href="../../../../org/apache/tools/ant/Task.html#handleErrorOutput(java.lang.String)">handleErrorOutput</a>, <a href="../../../../org/apache/tools/ant/Task.html#handleFlush(java.lang.String)">handleFlush</a>, <a href="../../../../org/apache/tools/ant/Task.html#handleInput(byte[], int, int)">handleInput</a>, <a href="../../../../org/apache/tools/ant/Task.html#handleOutput(java.lang.String)">handleOutput</a>, <a href="../../../../org/apache/tools/ant/Task.html#init()">init</a>, <a href="../../../../org/apache/tools/ant/Task.html#isInvalid()">isInvalid</a>, <a href="../../../../org/apache/tools/ant/Task.html#log(java.lang.String)">log</a>, <a href="../../../../org/apache/tools/ant/Task.html#log(java.lang.String, int)">log</a>, <a href="../../../../org/apache/tools/ant/Task.html#log(java.lang.String, java.lang.Throwable, int)">log</a>, <a href="../../../../org/apache/tools/ant/Task.html#log(java.lang.Throwable, int)">log</a>, <a href="../../../../org/apache/tools/ant/Task.html#maybeConfigure()">maybeConfigure</a>, <a href="../../../../org/apache/tools/ant/Task.html#perform()">perform</a>, <a href="../../../../org/apache/tools/ant/Task.html#reconfigure()">reconfigure</a>, <a href="../../../../org/apache/tools/ant/Task.html#setOwningTarget(org.apache.tools.ant.Target)">setOwningTarget</a>, <a href="../../../../org/apache/tools/ant/Task.html#setRuntimeConfigurableWrapper(org.apache.tools.ant.RuntimeConfigurable)">setRuntimeConfigurableWrapper</a>, <a href="../../../../org/apache/tools/ant/Task.html#setTaskName(java.lang.String)">setTaskName</a>, <a href="../../../../org/apache/tools/ant/Task.html#setTaskType(java.lang.String)">setTaskType</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.tools.ant.ProjectComponent">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.tools.ant.<a href="../../../../org/apache/tools/ant/ProjectComponent.html" title="class in org.apache.tools.ant">ProjectComponent</a></h3>
<code><a href="../../../../org/apache/tools/ant/ProjectComponent.html#clone()">clone</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#getDescription()">getDescription</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#getLocation()">getLocation</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#getProject()">getProject</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#setDescription(java.lang.String)">setDescription</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#setLocation(org.apache.tools.ant.Location)">setLocation</a>, <a href="../../../../org/apache/tools/ant/ProjectComponent.html#setProject(org.apache.tools.ant.Project)">setProject</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.tools.ant.TypeAdapter">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.tools.ant.<a href="../../../../org/apache/tools/ant/TypeAdapter.html" title="interface in org.apache.tools.ant">TypeAdapter</a></h3>
<code><a href="../../../../org/apache/tools/ant/TypeAdapter.html#getProject()">getProject</a>, <a href="../../../../org/apache/tools/ant/TypeAdapter.html#setProject(org.apache.tools.ant.Project)">setProject</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="TaskAdapter()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>TaskAdapter</h4>
<pre>public&nbsp;TaskAdapter()</pre>
<div class="block">No-arg constructor for reflection.</div>
</li>
</ul>
<a name="TaskAdapter(java.lang.Object)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>TaskAdapter</h4>
<pre>public&nbsp;TaskAdapter(java.lang.Object&nbsp;proxy)</pre>
<div class="block">Constructor for given proxy.
 So you could write easier code
 <pre>
 myTaskContainer.addTask( new TaskAdapter(myProxy) );
 </pre></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>proxy</code> - The object which Ant should use as task.</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="checkTaskClass(java.lang.Class, org.apache.tools.ant.Project)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkTaskClass</h4>
<pre>public static&nbsp;void&nbsp;checkTaskClass(java.lang.Class&nbsp;taskClass,
                  <a href="../../../../org/apache/tools/ant/Project.html" title="class in org.apache.tools.ant">Project</a>&nbsp;project)</pre>
<div class="block">Checks whether or not a class is suitable to be adapted by TaskAdapter.
 If the class is of type Dispatchable, the check is not performed because
 the method that will be executed will be determined only at runtime of
 the actual task and not during parse time.

 This only checks conditions which are additionally required for
 tasks adapted by TaskAdapter. Thus, this method should be called by
 Project.checkTaskClass.

 Throws a BuildException and logs as Project.MSG_ERR for
 conditions that will cause the task execution to fail.
 Logs other suspicious conditions with Project.MSG_WARN.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>taskClass</code> - Class to test for suitability.
                  Must not be <code>null</code>.</dd><dd><code>project</code> - Project to log warnings/errors to.
                  Must not be <code>null</code>.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../org/apache/tools/ant/Project.html#checkTaskClass(java.lang.Class)"><code>Project.checkTaskClass(Class)</code></a></dd></dl>
</li>
</ul>
<a name="checkProxyClass(java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkProxyClass</h4>
<pre>public&nbsp;void&nbsp;checkProxyClass(java.lang.Class&nbsp;proxyClass)</pre>
<div class="block">Check if the proxy class is a valid class to use
 with this adapter.
 The class must have a public no-arg "execute()" method.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/tools/ant/TypeAdapter.html#checkProxyClass(java.lang.Class)">checkProxyClass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/tools/ant/TypeAdapter.html" title="interface in org.apache.tools.ant">TypeAdapter</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>proxyClass</code> - the class to check.</dd></dl>
</li>
</ul>
<a name="execute()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>execute</h4>
<pre>public&nbsp;void&nbsp;execute()
             throws <a href="../../../../org/apache/tools/ant/BuildException.html" title="class in org.apache.tools.ant">BuildException</a></pre>
<div class="block">Executes the proxied task.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/apache/tools/ant/Task.html#execute()">execute</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/tools/ant/Task.html" title="class in org.apache.tools.ant">Task</a></code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/tools/ant/BuildException.html" title="class in org.apache.tools.ant">BuildException</a></code> - if the project could not be set
 or the method could not be executed.</dd></dl>
</li>
</ul>
<a name="setProxy(java.lang.Object)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setProxy</h4>
<pre>public&nbsp;void&nbsp;setProxy(java.lang.Object&nbsp;o)</pre>
<div class="block">Sets the target object to proxy for.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/tools/ant/TypeAdapter.html#setProxy(java.lang.Object)">setProxy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/tools/ant/TypeAdapter.html" title="interface in org.apache.tools.ant">TypeAdapter</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>o</code> - The target object. Must not be <code>null</code>.</dd></dl>
</li>
</ul>
<a name="getProxy()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getProxy</h4>
<pre>public&nbsp;java.lang.Object&nbsp;getProxy()</pre>
<div class="block">Returns the target object being proxied.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/tools/ant/TypeAdapter.html#getProxy()">getProxy</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/tools/ant/TypeAdapter.html" title="interface in org.apache.tools.ant">TypeAdapter</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the target proxy object.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/tools/ant/Task.html" title="class in org.apache.tools.ant"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/apache/tools/ant/TaskConfigurationChecker.html" title="class in org.apache.tools.ant"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/tools/ant/TaskAdapter.html" target="_top">Frames</a></li>
<li><a href="TaskAdapter.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.tools.ant.Task">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>