You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by ma...@sedonacorp.com on 2001/07/02 19:07:39 UTC

some useful tasks

i have written the following tasks for my installer which i think
might be helpful for other users.  Attached are the class headers
which describe the syntax and the functionality of these tasks.
The first one is a "switch" task, and the second is a "prompt"
task.  I know these could be done by using the <script> task
and the Rhino javascript engine, but it's much nicer to have a well
defined task for these.

Opinions anyone?

/***
 * Task definition for the ANT task to switch on a particular value
 * Usage:
 *
 *   Task declaration in the project:
 *     <taskdef name="switch" classname="com.sedona.ant.taskdef.Switch"
/>
 *
 *   Task calling syntax:
 *     <switch value="value" [caseinsensitive="true|false"] >
 *       <case value="val"
 *             [target="targetname" |
 *              (property="propname" propertyvalue="setval")] />+
 *       [<default [target="targetname" |
 *                  (property="propname" propertyvalue="setval")] />
 *     </switch>
 *
 *
 *   Attributes:
 *       value           -> The value to switch on
 *       caseinsensitive -> Should we do case insensitive comparisons?
                            (default is false)
 *
 *   Subitems:
 *       case     --> A single case specification for what to do when a
 *                    particular value is encountered.
 *        Attributes:
 *          value           --> The value to match
 *          target          --> The name of a target to execute if
matched
 *          property        --> The name of a property to set if matched

 *          propertyvalue   --> The value to set the named property to
 *
 *       default  --> The default case for when no match is found.  This

 *                    has the same syntax as the case item, but the
value
 *                    attribute is ignored.
 *
 *   Notes:
 *       1.  The property and propertyvalue attributes are tied together

 *           and one cannot be present without the other.
 *       2.  The target attribute is mutually exclusive with the
 *           (property,propertyvalue) attribute pair, and will throw
 *           an exception if both are present.
 */


/***
 * Task definition for the ANT task to prompt the user for information
 * Usage:
 *
 *   Task declaration in the project:
 *     <taskdef name="prompt" classname="com.sedona.ant.taskdef.Prompt"
/>
 *
 *   Task calling syntax:
 *     <prompt message="message" propertyname="propname"
 *             [defaultvalue="value" | allowempty="true|false"]
 *     >
 *        [ <allow value="value" ]*
 *     </prompt>
 *
 *   Attributes:
 *       message -> The message to display to the user
 *       propertyname -> The name of the property to set with the
received input
 *       defaultValue -> The default value if the user just hits enter
 *       allowempty   -> Whether or not an empty value is allowed
 *
 *   Subitems:
 *       <allow  value="value" /> --> allow this value to be input.  By
supplying
 *                                    one or more of this subitem, you
limit the
 *                                    input to a range of specific
allowable
 *                                    values.  Any value input that is
not explicitly
 *                                    allowed is rejected.  (good for
y/n questions)
 *
 *   Notes:
 *       1. The defaultvalue and allowempty attributes are mutually
exclusive,
 *          and if both are specified, the defaultvalue attribute takes
precedence.
 */


--
Matt Inger (matt.inger@sedonacorp.com)
Sedona Corporation
455 S. Gulph Road, Suite 300
King of Prussia, PA 19406
(484) 679-2213
"Self-respect - the secure feeling that no one,
 as yet, is suspicious." -H.L. Mencken