org.eclipse.gmt.umlx.utils
Class ClassExtensionMap

java.lang.Object
  extended by org.eclipse.gmt.umlx.utils.ClassExtensionMap

public class ClassExtensionMap
extends java.lang.Object

ClassMap maintains the class extensions for classes.


Field Summary
static boolean debugLoad
           
static ClassExtensionMap INSTANCE
           
 
Constructor Summary
ClassExtensionMap()
           
 
Method Summary
<T> IClassExtension
basicGet(java.lang.Class<T> basicClass)
          Return the already installed class extension for basicClass or null.
<T> IClassExtension
get(java.lang.Class<T> basicClass)
          Return the class extension for basicClass, creating a default if necessary from the most derived superclass of basicClass if there is one or from ClassExtension if not.
 void put(IClassExtension extendedClass)
          Install extendedClass as the extended class for extendedClass.getBasicClass().
 java.util.Map<java.lang.Class<?>,IClassExtension> reset(java.util.Map<java.lang.Class<?>,IClassExtension> newMap)
          Reset (for test purposes).
 int size()
          Get the map size (for test purposes).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSTANCE

public static ClassExtensionMap INSTANCE

debugLoad

public static boolean debugLoad
Constructor Detail

ClassExtensionMap

public ClassExtensionMap()
Method Detail

basicGet

public <T> IClassExtension basicGet(java.lang.Class<T> basicClass)
Return the already installed class extension for basicClass or null.

Parameters:
basicClass - non-null class for which extension required.
Returns:
class extension

get

public <T> IClassExtension get(java.lang.Class<T> basicClass)
Return the class extension for basicClass, creating a default if necessary from the most derived superclass of basicClass if there is one or from ClassExtension if not.

Parameters:
basicClass - non-null class for which extension required.
Returns:
non-null class extension

put

public void put(IClassExtension extendedClass)
Install extendedClass as the extended class for extendedClass.getBasicClass(). If a class extension is already installed, the most-derived is retained.

Parameters:
extendedClass - class extension
Throws:
java.lang.NullPointerException - if extendedClass null
java.lang.IllegalArgumentException - if no most derived class extension available

reset

public java.util.Map<java.lang.Class<?>,IClassExtension> reset(java.util.Map<java.lang.Class<?>,IClassExtension> newMap)
Reset (for test purposes).


size

public int size()
Get the map size (for test purposes).