org.apache.tools.ant.types
Class EnumeratedAttribute

java.lang.Object
  extended by org.apache.tools.ant.types.EnumeratedAttribute
Direct Known Subclasses:
AggregateTransformer.Format, Available.FileDir, Checksum.FormatElement, Comparison, Definer.Format, Definer.OnError, DotnetCompile.TargetTypes, EchoProperties.FormatAttribute, EjbJar.CMPVersion, EjbJar.NamingScheme, EmailTask.Encoding, ExecuteOn.FileDirBoth, FilterSet.OnMissing, FixCRLF.AddAsisRemove, FixCRLF.CrLf, FixCrLfFilter.AddAsisRemove, FixCrLfFilter.CrLf, FormatterElement.TypeAttribute, FTP.Action, FTP.FTPSystemType, FTP.Granularity, FTP.LanguageCode, Ilasm.TargetTypes, Ildasm.EncodingTypes, Ildasm.VisibilityOptions, Input.HandlerType, Jar.FilesetManifestConfig, Javadoc.AccessType, JDependTask.FormatAttribute, JUnitTask.ForkMode, JUnitTask.SummaryAttribute, Length.FileMode, LogLevel, ManifestTask.Mode, Mapper.MapperType, ModifiedSelector.AlgorithmName, ModifiedSelector.CacheName, ModifiedSelector.ComparatorName, MSVSS.CurrentModUpdated, MSVSS.WritableFiles, MSVSSHISTORY.BriefCodediffNofile, NetRexxC.TraceAttr, NetRexxC.VerboseAttr, PathConvert.TargetOs, PresentSelector.FilePresence, PropertyFile.Entry.Operation, PropertyFile.Entry.Type, PropertyFile.Unit, PropertySet.BuiltinPropertySetName, Quantifier, Recorder.ActionChoices, Scale.ProportionsAttribute, SizeSelector.ByteUnits, SQLExec.DelimiterType, SQLExec.OnError, Tar.TarCompressionMethod, Tar.TarLongFileMode, TimeComparison, Tstamp.Unit, Type.FileDir, TypeSelector.FileType, Untar.UntarCompressionMethod, WaitFor.Unit, WsdlToDotnet.Compiler, Zip.Duplicate, Zip.WhenEmpty

public abstract class EnumeratedAttribute
extends java.lang.Object

Helper class for attributes that can only take one of a fixed list of values.

See FixCRLF for an example.


Field Summary
protected  java.lang.String value
          The selected value in this enumeration.
 
Constructor Summary
protected EnumeratedAttribute()
          bean constructor
 
Method Summary
 boolean containsValue(java.lang.String value)
          Is this value included in the enumeration?
 int getIndex()
           
static EnumeratedAttribute getInstance(java.lang.Class clazz, java.lang.String value)
          Factory method for instantiating EAs via API in a more developer friendly way.
 java.lang.String getValue()
           
abstract  java.lang.String[] getValues()
          This is the only method a subclass needs to implement.
 int indexOfValue(java.lang.String value)
          get the index of a value in this enumeration.
 void setValue(java.lang.String value)
          Invoked by IntrospectionHelper.
 java.lang.String toString()
          Convert the value to its string form.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

value

protected java.lang.String value
The selected value in this enumeration.

Constructor Detail

EnumeratedAttribute

protected EnumeratedAttribute()
bean constructor

Method Detail

getValues

public abstract java.lang.String[] getValues()
This is the only method a subclass needs to implement.

Returns:
an array holding all possible values of the enumeration. The order of elements must be fixed so that indexOfValue(String) always return the same index for the same value.

getInstance

public static EnumeratedAttribute getInstance(java.lang.Class clazz,
                                              java.lang.String value)
                                       throws BuildException
Factory method for instantiating EAs via API in a more developer friendly way.

Parameters:
clazz - Class, extending EA, which to instantiate
value - The value to set on that EA
Returns:
Configured EA
Throws:
BuildException - If the class could not be found or the value is not valid for the given EA-class.
See Also:
http://issues.apache.org/bugzilla/show_bug.cgi?id=14831

setValue

public final void setValue(java.lang.String value)
                    throws BuildException
Invoked by IntrospectionHelper.

Parameters:
value - the String value of the attribute
Throws:
BuildException - if the value is not valid for the attribute

containsValue

public final boolean containsValue(java.lang.String value)
Is this value included in the enumeration?

Parameters:
value - the String value to look up
Returns:
true if the value is valid

indexOfValue

public final int indexOfValue(java.lang.String value)
get the index of a value in this enumeration.

Parameters:
value - the string value to look for.
Returns:
the index of the value in the array of strings or -1 if it cannot be found.
See Also:
getValues()

getValue

public final java.lang.String getValue()
Returns:
the selected value.

getIndex

public final int getIndex()
Returns:
the index of the selected value in the array.
See Also:
getValues()

toString

public java.lang.String toString()
Convert the value to its string form.

Overrides:
toString in class java.lang.Object
Returns:
the string form of the value.