EnumeratedAttribute (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.types, class: EnumeratedAttribute

# Class EnumeratedAttribute

java.lang.Object
org.apache.tools.ant.types.EnumeratedAttribute

Direct Known Subclasses:
  `AggregateTransformer.Format, Arc.ArcType, Available.FileDir, CharSet, Checksum.FormatElement, Comparison, Definer.Format, Definer.OnError, EchoProperties.FormatAttribute, EchoXML.NamespacePolicy, EjbJar.CMPVersion, EjbJar.NamingScheme, EmailTask.Encoding, ExecuteOn.FileDirBoth, FilterSet.OnMissing, FixCRLF.AddAsisRemove, FixCRLF.CrLf, FixCrLfFilter.AddAsisRemove, FixCrLfFilter.CrLf, ForkDefinition.ForkMode, FormatterElement.TypeAttribute, FTP.Action, FTP.FTPSystemType, FTP.Granularity, FTP.LanguageCode, FTPTask.Action, FTPTask.FTPSystemType, FTPTask.Granularity, ImageIOTask.ImageFormat, Input.HandlerType, IsLastModified.CompareMode, Jar.FilesetManifestConfig, Jar.StrictMode, Javadoc.AccessType, JDependTask.FormatAttribute, Jmod.ResolutionWarningReason, JUnitTask.ForkMode, JUnitTask.SummaryAttribute, Length.FileMode, Link.CompressionLevel, Link.Endianness, Link.VMType, ListenerDefinition.ListenerType, LogLevel, ManifestTask.Mode, Mapper.MapperType, Mklink.LinkType, 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, Scale.ProportionsAttribute, SizeSelector.ByteUnits, SQLExec.DelimiterType, SQLExec.OnError, Tar.TarCompressionMethod, Tar.TarLongFileMode, TimeComparison, Tstamp.Unit, Type.FileDir, TypeSelector.FileType, Untar.UntarCompressionMethod, WaitFor.Unit, Zip.Duplicate, Zip.UnicodeExtraField, Zip.WhenEmpty, Zip.Zip64ModeAttribute`

public abstract class EnumeratedAttribute extends Object
Helper class for attributes that can only take one of a fixed list of values.

See `FixCRLF` for an example.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected String`
  `value`
  The selected value in this enumeration.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `EnumeratedAttribute()`
  bean constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final boolean`
  `containsValue(String value)`
  Is this value included in the enumeration?
  `final int`
  `getIndex()`
  `static EnumeratedAttribute`
  `getInstance(Class<? extends EnumeratedAttribute> clazz, String value)`
  Factory method for instantiating EAs via API in a more developer friendly way.
  `final String`
  `getValue()`
  `abstract String[]`
  `getValues()`
  This is the only method a subclass needs to implement.
  `final int`
  `indexOfValue(String value)`
  get the index of a value in this enumeration.
  `void`
  `setValue(String value)`
  Invoked by `IntrospectionHelper`.
  `String`
  `toString()`
  Convert the value to its string form.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### value

    protected String value
    The selected value in this enumeration.

- ## Constructor Details

  - ### EnumeratedAttribute

    protected EnumeratedAttribute()
    bean constructor

- ## Method Details

  - ### getValues

    public abstract 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(Class<? extends EnumeratedAttribute> clazz, 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:
      - https://issues.apache.org/bugzilla/show_bug.cgi?id=14831

  - ### setValue

    public void setValue(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(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(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 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 String toString()
    Convert the value to its string form.
    Overrides:
      `toString` in class `Object`
    Returns:
      the string form of the value.