Class DefaultPersistenceDelegate
This PersistenceDelegate assumes that the bean to be made persistent has a default constructor that takes no parameters or a constructor that takes some properties as its parameters. Only the properties that can be got or set based on the knowledge gained through an introspection will be made persistent. In the case that a bean is constructed with some properties, the value of these properties should be available via the conventional getter method.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs aDefaultPersistenceDelegate
instance that supports the persistence of a bean which has a default constructor.DefaultPersistenceDelegate
(String[] propertyNames) Constructs aDefaultPersistenceDelegate
instance that supports the persistence of a bean which is constructed with some properties. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
initialize
(Class<?> type, Object oldInstance, Object newInstance, Encoder enc) Initializes the new instance in the new environment so that it becomes equivalent with the old one, meanwhile recording this process in the encoder.protected Expression
instantiate
(Object oldInstance, Encoder enc) Returns an expression that represents a call to the bean's constructor.protected boolean
Determines whether one object mutates to the other object.Methods inherited from class javaa.beans.PersistenceDelegate
writeObject
-
Constructor Details
-
DefaultPersistenceDelegate
public DefaultPersistenceDelegate()Constructs aDefaultPersistenceDelegate
instance that supports the persistence of a bean which has a default constructor. -
DefaultPersistenceDelegate
Constructs aDefaultPersistenceDelegate
instance that supports the persistence of a bean which is constructed with some properties.- Parameters:
propertyNames
- the name of the properties that are taken as parameters by the bean's constructor
-
-
Method Details
-
initialize
Initializes the new instance in the new environment so that it becomes equivalent with the old one, meanwhile recording this process in the encoder.This is done by inspecting each property of the bean. The property value from the old bean instance and the value from the new bean instance are both retrieved and examined to see whether the latter mutates to the former, and if not, issue a call to the write method to set the equivalent value for the new instance. Exceptions occured during this process are reported to the exception listener of the encoder.
- Overrides:
initialize
in classPersistenceDelegate
- Parameters:
type
- the type of the beanoldInstance
- the original bean object to be recordednewInstance
- the simmulating new bean object to be initializedenc
- the encoder to write the outputs to
-
instantiate
Returns an expression that represents a call to the bean's constructor. The constructor may take zero or more parameters, as specified when thisDefaultPersistenceDelegate
is constructed.- Specified by:
instantiate
in classPersistenceDelegate
- Parameters:
oldInstance
- the old instanceenc
- the encoder that wants to record the old instance- Returns:
- an expression for instantiating an object of the same type as the old instance
-
mutatesTo
Determines whether one object mutates to the other object. If thisDefaultPersistenceDelegate
is constructed with one or more property names, and the class ofo1
overrides the "equals(Object)" method, theno2
is considered to mutate too1
ifo1
equals too2
. Otherwise, the result is the same as the definition inPersistenceDelegate
.- Overrides:
mutatesTo
in classPersistenceDelegate
- Parameters:
o1
- one objecto2
- the other object- Returns:
- true if second object mutates to the first object, otherwise false
-