org.jnetstream.packet
Class EnumProperties<D extends java.lang.Enum<D>,S extends java.lang.Enum<S>>

java.lang.Object
  extended by org.jnetstream.packet.EnumProperties<D,S>

public class EnumProperties<D extends java.lang.Enum<D>,S extends java.lang.Enum<S>>
extends java.lang.Object

A specialized properties map that maintains a set of static global and dynamic properties. Global properties are immutable while dynamic properties are mutable and the dynamic portion of the map can be modified. The property keys can only be enum constants, nothing else is allowed. In some instances dynamic properties can override or hide the static global properites. In cases where method does operation on both dynamic and global properties, the dynamic properties are always operated on first, then the global ones.

Author:
Mark Bednarczyk, Sly Technologies, Inc.

Constructor Summary
EnumProperties(java.lang.Object[] statics, java.lang.Enum<D>[] dnames, java.lang.Enum<S>[] snames)
           
 
Method Summary
 void clearDynamic()
           
 boolean equals(java.lang.Object o)
           
 java.lang.Object getByName(java.lang.String key)
           
 java.lang.Object getDynamic(D key)
           
 java.lang.Object getDynamic(int index)
           
 java.lang.Enum<D>[] getDynamicNames()
           
 java.lang.Object getStatic(int index)
           
 java.lang.Object getStatic(S key)
           
 java.lang.Enum<S>[] getStaticNames()
           
 int hashCode()
           
 void putAllDynamic(java.util.Map<? extends D,? extends java.lang.Object> t)
           
 java.lang.Object putDynamic(D key, java.lang.Object value)
           
 java.lang.Object putDynamic(int index, java.lang.Object value)
           
 java.lang.Object remove(D key)
           
 java.lang.Object remove(int index)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EnumProperties

public EnumProperties(java.lang.Object[] statics,
                      java.lang.Enum<D>[] dnames,
                      java.lang.Enum<S>[] snames)
Method Detail

clearDynamic

public void clearDynamic()
See Also:
Map.clear()

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object
Parameters:
o -
Returns:
See Also:
Map.equals(java.lang.Object)

getDynamic

public java.lang.Object getDynamic(D key)
Parameters:
key -
Returns:
See Also:
Map.get(java.lang.Object)

getStatic

public java.lang.Object getStatic(S key)
Parameters:
key -
Returns:
See Also:
Map.get(java.lang.Object)

getDynamic

public java.lang.Object getDynamic(int index)
Parameters:
index -
Returns:

getStatic

public java.lang.Object getStatic(int index)
Parameters:
index -
Returns:

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object
Returns:
See Also:
Map.hashCode()

putDynamic

public java.lang.Object putDynamic(int index,
                                   java.lang.Object value)
Parameters:
index -
value -
Returns:

putDynamic

public java.lang.Object putDynamic(D key,
                                   java.lang.Object value)
Parameters:
key -
value -
Returns:
See Also:
Map.put(java.lang.Object, java.lang.Object)

putAllDynamic

public void putAllDynamic(java.util.Map<? extends D,? extends java.lang.Object> t)
Parameters:
t -
See Also:
Map.putAll(java.util.Map)

remove

public java.lang.Object remove(int index)
Parameters:
index -
Returns:

remove

public java.lang.Object remove(D key)
Parameters:
key -
Returns:
See Also:
Map.remove(java.lang.Object)

getByName

public java.lang.Object getByName(java.lang.String key)
Parameters:
key -
Returns:

getDynamicNames

public java.lang.Enum<D>[] getDynamicNames()

getStaticNames

public java.lang.Enum<S>[] getStaticNames()