com.sap.netweaver.bc.rf.util.enum

Class Enum

java.lang.Object
  extended bycom.sap.netweaver.bc.rf.util.flyweight.FlyWeight
      extended bycom.sap.netweaver.bc.rf.util.enum.Enum
All Implemented Interfaces:
Cloneable, Comparable, Serializable
Direct Known Subclasses:
EnumWithDescription

public abstract class Enum
extends FlyWeight
implements Cloneable, Comparable, Serializable

Abstract class implementing a type-safe enumeration. You have to extend this class, add your public final static enumeration members and implement an appropriate private constructor:

 public class Status extends Enum
 {
     public final static Status SUCCESS = new Status( 1 );
     public final static Status FAILURE = new Status( 2 );

     private A( final int id )
     {
         super( id );
     }
 }
 

See Also:
Serialized Form

Constructor Summary
protected Enum(int id, boolean ignoreDuplicateRegistration)
          Construct instance of an enumeration.
 
Method Summary
 Object clone()
          Clone this enumeration.
 int compareTo(Object obj)
          Compare this and another object for order.
 boolean equals(Object obj)
          Compare this and another object for equality.
static List getAllEnums(Class enumClass)
          Get all so far registered enumeration instances of the given enumeration class.
static List getAllEnumsInherited(Class enumClass)
          Get all so far registered enumeration instances of the given enumeration class and all sub classes of that class.
static Enum getEnum(Class enumClass, int id)
          Get enumeration instance by id of the given enumeration class.
 int getEnumId()
          Get id of the enumeration instance.
static Enum getEnumInherited(Class enumClass, int id)
          Get enumeration instance by id of the given enumeration class and all sub classes of that class.
 int hashCode()
          Get hashcode for this enumeration instance.
 String toString()
          Get descriptive text for this enumeration instance.
 
Methods inherited from class com.sap.netweaver.bc.rf.util.flyweight.FlyWeight
getAllFlyWeights, getAllFlyWeightsInherited, getFlyWeight, getFlyWeightId, getFlyWeightInherited, removeAllFlyWeights, removeAllFlyWeightsInherited, removeFlyWeight, removeFlyWeightInherited
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Enum

protected Enum(int id,
               boolean ignoreDuplicateRegistration)
Construct instance of an enumeration.

Parameters:
id - enumeration id
ignoreDuplicateRegistration - when true, don't throw IllegalArgumentException exception when the id is already in use
Method Detail

getEnumId

public final int getEnumId()
Get id of the enumeration instance.

Returns:
enumeration id

toString

public String toString()
Get descriptive text for this enumeration instance.

Overrides:
toString in class FlyWeight
Returns:
descriptive text for this enumeration instance

hashCode

public final int hashCode()
Get hashcode for this enumeration instance.

Overrides:
hashCode in class FlyWeight
Returns:
enumeration hashcode

equals

public final boolean equals(Object obj)
Compare this and another object for equality. Works only fine when handling objects of classes loaded by same class classloader.

Overrides:
equals in class FlyWeight
Parameters:
obj - object to be compared against
Returns:
result of comparison

clone

public final Object clone()
Clone this enumeration. The clone method will always return the same instance for faster equality comparison. This is not harmful, since the enumeration is immutable.

Overrides:
clone in class FlyWeight
Returns:
this enumeration instance

compareTo

public final int compareTo(Object obj)
Compare this and another object for order.

Specified by:
compareTo in interface Comparable
Parameters:
obj - object to be compared against
Returns:
result of comparison

getEnum

public static final Enum getEnum(Class enumClass,
                                 int id)
Get enumeration instance by id of the given enumeration class.

Parameters:
enumClass - enumeration class
id - enumeration id
Returns:
enumeration instance

getEnumInherited

public static final Enum getEnumInherited(Class enumClass,
                                          int id)
Get enumeration instance by id of the given enumeration class and all sub classes of that class. If, follwoing the inheritance, multiple enumerations have the same id, the first found (behaviour is not deterministic) will be returned.

Parameters:
enumClass - enumeration class
id - enumeration id
Returns:
enumeration instance

getAllEnums

public static List getAllEnums(Class enumClass)
Get all so far registered enumeration instances of the given enumeration class. Note that only the so far registered instances can be returned. When for example some instances haven't been registered, because their class wasn't loaded, these instances won't be returned.

Parameters:
enumClass - enumeration class
Returns:
all so far registered enumeration instances of the given enumeration class

getAllEnumsInherited

public static List getAllEnumsInherited(Class enumClass)
Get all so far registered enumeration instances of the given enumeration class and all sub classes of that class. Note that only the so far registered instances can be returned. When for example some instances haven't been registered, because their class wasn't loaded, these instances won't be returned.

Parameters:
enumClass - enumeration class
Returns:
all so far registered enumeration instances of the given enumeration class and all sub classes of that class


Copyright 2006 SAP AG. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Microsoft, Windows, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. MaxDB is a trademark of MySQL AB, Sweden. SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.