net.sf.antcontrib.logic
Class Switch


java.lang.Object

  extended by org.apache.tools.ant.ProjectComponent

      extended by org.apache.tools.ant.Task

          extended by net.sf.antcontrib.logic.Switch


public class Switch
extends org.apache.tools.ant.Task

Task definition for the ANT task to switch on a particular value.


 Usage:

   Task declaration in the project:
   
     <taskdef name="switch" classname="net.sf.antcontrib.logic.Switch" />
   

   Task calling syntax:
    
     <switch value="value" [caseinsensitive="true|false"] >
       <case value="val">
         <property name="propname" value="propvalue" /> |
         <antcall target="targetname" /> |
         any other tasks
       </case>
      [
       <default>
         <property name="propname" value="propvalue" /> |
         <antcall target="targetname" /> |
         any other tasks
       </default> 
      ]
     </switch>
    


   Attributes:
       value           -> The value to switch on
       caseinsensitive -> Should we do case insensitive comparisons?
                          (default is false)

   Subitems:
       case     --> An individual case to consider, if the value that
                    is being switched on matches to value attribute of
                    the case, then the nested tasks will be executed.
       default  --> The default case for when no match is found.

 
 Crude Example:

     
     <switch value="${foo}">
       <case value="bar">
         <echo message="The value of property foo is bar" />
       </case>
       <case value="baz">
         <echo message="The value of property foo is baz" />
       </case>
       <default>
         <echo message="The value of property foo is not sensible" />
       </default>
     </switch>
     

 

Author:
Matthew Inger, Stefan Bodewig

Nested Class Summary
 class Switch.Case
           
 
Field Summary
 
Fields inherited from class org.apache.tools.ant.Task
description, location, target, taskName, taskType, wrapper
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
project
 
Constructor Summary
Switch()
          Default Constructor
 
Method Summary
 void addDefault(org.apache.tools.ant.taskdefs.Sequential res)
          Creates the <default> tag
 Switch.Case createCase()
          Creates the <case> tag
 void execute()
           
 void setCaseInsensitive(boolean c)
           
 void setValue(java.lang.String value)
          Sets the value being switched on
 
Methods inherited from class org.apache.tools.ant.Task
getDescription, getLocation, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, maybeConfigure, perform, reconfigure, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
getProject, setProject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Switch


public Switch()
Default Constructor

Method Detail

execute


public void execute()

             throws org.apache.tools.ant.BuildException
Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException

setValue


public void setValue(java.lang.String value)
Sets the value being switched on


setCaseInsensitive


public void setCaseInsensitive(boolean c)

createCase


public Switch.Case createCase()

                       throws org.apache.tools.ant.BuildException
Creates the <case> tag

Throws:
org.apache.tools.ant.BuildException

addDefault


public void addDefault(org.apache.tools.ant.taskdefs.Sequential res)

                throws org.apache.tools.ant.BuildException
Creates the <default> tag

Throws:
org.apache.tools.ant.BuildException