111 lines
4.0 KiB
HTML
111 lines
4.0 KiB
HTML
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
<html>
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
<link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
|
|
<title>PropertyHelper Task</title>
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h2>PropertyHelper</h2>
|
|
<p><em>Since Ant 1.8.0</em></p>
|
|
<h3>Description</h3>
|
|
<p>This task is provided for the purpose of allowing the user to <strong>(a)</strong> install a
|
|
different <code>PropertyHelper</code> at run time, or <strong>(b)</strong> (hopefully more often)
|
|
install one or more <code class="code">PropertyHelper</code> Delegates into
|
|
the <code class="code">PropertyHelper</code> active on the
|
|
current <code class="code">Project</code>. This is somewhat advanced Apache Ant usage and assumes a
|
|
working familiarity with the modern Ant APIs. See the description of
|
|
Ant's <a href="../properties.html#propertyHelper">Property Helper</a> for more information.</p>
|
|
|
|
<h3>Parameters specified as nested elements</h3>
|
|
|
|
<h4>PropertyHelper</h4>
|
|
<p>You may specify exactly one configured <code>org.apache.tools.ant.PropertyHelper</code>
|
|
instance.</p>
|
|
|
|
<h4>PropertyHelper.Delegate</h4>
|
|
<p>You may specify, either in conjunction with a new <code class="code">PropertyHelper</code> or
|
|
not, one or more configured implementations of
|
|
the <code class="code">org.apache.tools.ant.PropertyHelper.Delegate</code> interface. A deeper
|
|
understanding of the API is required here, however, as <code class="code">Delegate</code> is a
|
|
marker interface only: the nested arguments must implement a <code class="code">Delegate</code>
|
|
subinterface in order to do anything meaningful.</p>
|
|
|
|
<h4>delegate</h4>
|
|
<p>A generic <code><delegate></code> element which can use project references is also
|
|
provided:</p>
|
|
|
|
<h5>Parameters</h5>
|
|
<table class="attr">
|
|
<tr>
|
|
<th scope="col">Attribute</th>
|
|
<th scope="col">Description</th>
|
|
<th scope="col">Required</th>
|
|
</tr>
|
|
<tr>
|
|
<td>refid</td>
|
|
<td>The <var>id</var> of a <code>PropertyHelper.Delegate</code> to install.</td>
|
|
<td>Yes</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h3>Examples</h3>
|
|
|
|
<p>Install a completely different <code class="code">PropertyHelper</code> implementation
|
|
(assuming <code class="code">MyPropertyHelper extends PropertyHelper</code>):</p>
|
|
|
|
<pre>
|
|
<componentdef classname="org.example.MyPropertyHelper"
|
|
name="mypropertyhelper"/>
|
|
<propertyhelper>
|
|
<mypropertyhelper/>
|
|
</propertyhelper>
|
|
</pre>
|
|
|
|
<p>Add a new <code class="code">PropertyEvaluator</code> delegate
|
|
(assuming <code class="code">MyPropertyEvaluator implements
|
|
PropertyHelper.PropertyEvaluator</code>). Note that <code class="code">PropertyHelper</code> uses
|
|
the configured delegates in LIFO order. I.e. the delegate added by this task will be consulted
|
|
before any previously defined delegate and in particular before the built-in ones.</p>
|
|
|
|
<pre>
|
|
<componentdef classname="org.example.MyPropertyEvaluator"
|
|
name="mypropertyevaluator"/>
|
|
<propertyhelper>
|
|
<mypropertyevaluator/>
|
|
</propertyhelper>
|
|
</pre>
|
|
|
|
<p>Add a new <code class="code">PropertyEvaluator</code> delegate using the <var>refid</var>
|
|
syntax:</p>
|
|
|
|
<pre>
|
|
<typedef classname="org.example.MyPropertyEvaluator"
|
|
name="mypropertyevaluator"/>
|
|
<mypropertyevaluator id="evaluator"/>
|
|
<propertyhelper>
|
|
<delegate refid="evaluator"/>
|
|
</propertyhelper>
|
|
</pre>
|
|
|
|
</body>
|
|
</html>
|