Enum (Avalon Framework API)
Keywords: org.apache.avalon.framework.Enum class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.avalon.framework
Class Enum

    java.lang.Object
      org.apache.avalon.framework.Enum

Direct Known Subclasses:
  ValuedEnum

public abstract class Enum
extends java.lang.Object

Basic enum class for type-safe enums. Should be used as an abstract base. For example:

     import org.apache.avalon.framework.Enum;

     public final class Color extends Enum {
       public static final Color RED = new Color( "Red" );
       public static final Color GREEN = new Color( "Green" );
       public static final Color BLUE = new Color( "Blue" );

       private Color( final String color )
       {
         super( color );
       }
     }

If further operations, such as iterating over all items, are required, the `Enum(String, Map)` constructor can be used to populate a `Map`, from which further functionality can be derived:

     public final class Color extends Enum {
       static final Map map = new HashMap();

       public static final Color RED = new Color( "Red", map );
       public static final Color GREEN = new Color( "Green", map );
       public static final Color BLUE = new Color( "Blue", map );

       private Color( final String color, final Map map )
       {
         super( color, map );
       }

       public static Iterator iterator()
       {
         return map.values().iterator();
       }
     }

NOTE: between 4.0 and 4.1, the constructors' access has been changed from `public` to `protected`. This is to prevent users of the Enum breaking type-safety by defining new Enum items. All Enum items should be defined in the Enum class, as shown above.

Version:
  CVS $Revision: 1.28 $ $Date: 2004/02/11 14:34:24 $
Author:
  Avalon Development Team

Constructor Summary
`protected` | `Enum(java.lang.String name)` Constructor to add a new named item.
`protected` | `Enum(java.lang.String name, java.util.Map map)` Constructor to add a new named item.

Method Summary
`boolean` | `equals(java.lang.Object o)` Tests for equality.
`java.lang.String` | `getName()` Retrieve the name of this Enum item, set in the constructor.
`int` | `hashCode()`
`java.lang.String` | `toString()` Human readable description of this Enum item.

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Enum

    protected Enum(java.lang.String name)

  Constructor to add a new named item.

  Note: access changed from `public` to `protected` after 4.0. See class description.

Parameters:
  `name` - Name of the item.

### Enum

    protected Enum(java.lang.String name,
                   java.util.Map map)

  Constructor to add a new named item.

  Note: access changed from `public` to `protected` after 4.0. See class description.

Parameters:
  `name` - Name of the item.
  `map` - A `Map`, to which will be added a pointer to the newly constructed object.

Method Detail

### equals

    public final boolean equals(java.lang.Object o)

  Tests for equality. Two Enum:s are considered equal if they are of the same class and have the same names. The method is also declared final - I (LSutic) did this to allow the JIT to inline it easily.

  Parameters:
    `o` - the other object
  Returns:
    the equality status

### hashCode

    public int hashCode()

### getName

    public final java.lang.String getName()

  Retrieve the name of this Enum item, set in the constructor.

  Returns:
    the name `String` of this Enum item

### toString

    public java.lang.String toString()

  Human readable description of this Enum item. For use when debugging.

  Returns:
    String in the form `type[name]`, eg.: `Color[Red]`.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © The Apache Software Foundation. All Rights Reserved.