org.springsource.loaded
Class ISMgr

java.lang.Object
  extended by org.springsource.loaded.ISMgr

public class ISMgr
extends java.lang.Object

Every reloadable hierarchy gets an Instance State Manager (ISMgr). The instance state manager is used to find the value of a field for a particular object instance. The manager is added to the top most type in a reloadable hierarchy and is accessible to all the subtypes. It maintains a map from types to secondary maps. The secondary maps record name,value pairs for each field. The maps are only used if something has happened to mean we cannot continue to store the values in the original fields.

Since:
0.5.0

Constructor Summary
ISMgr(java.lang.Object instance, ReloadableType rtype)
           
 
Method Summary
 java.lang.Object getValue(ReloadableType rtype, java.lang.Object instance, java.lang.String name)
          Get the value of a instance field - this will use 'any means necessary' to get to it.
 void setValue(ReloadableType rtype, java.lang.Object instance, java.lang.Object value, java.lang.String name)
          Set the value of a field.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ISMgr

public ISMgr(java.lang.Object instance,
             ReloadableType rtype)
Method Detail

getValue

public java.lang.Object getValue(ReloadableType rtype,
                                 java.lang.Object instance,
                                 java.lang.String name)
                          throws java.lang.IllegalAccessException
Get the value of a instance field - this will use 'any means necessary' to get to it.

Parameters:
rtype - the reloadabletype
instance - the object instance on which the field is being accessed (whose type may not be that which declares the field)
name - the name of the field
Returns:
the value of the field
Throws:
java.lang.IllegalAccessException

setValue

public void setValue(ReloadableType rtype,
                     java.lang.Object instance,
                     java.lang.Object value,
                     java.lang.String name)
              throws java.lang.IllegalAccessException
Set the value of a field.

Parameters:
rtype - the reloadabletype
instance - the instance upon which to set the field
name - the name of the field
Throws:
java.lang.IllegalAccessException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object