|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.threerings.delta.Delta
com.threerings.delta.ReflectiveDelta
public class ReflectiveDelta
A delta object that uses reflection to compare and modify the objects' fields. Note that unchanged object fields will be preserved by reference.
| Nested Class Summary | |
|---|---|
protected static class |
ReflectiveDelta.ClassMapping
Contains cached information about a class. |
protected static class |
ReflectiveDelta.FieldHandler
Handles a particular field. |
protected static class |
ReflectiveDelta.FinalFieldHandler
Base class for final field handlers. |
| Nested classes/interfaces inherited from interface com.threerings.io.Streamable |
|---|
Streamable.Closure |
| Field Summary | |
|---|---|
protected static Map<Class<?>,ReflectiveDelta.ClassMapping> |
_classes
Cached mappings for deltable classes. |
protected Class<?> |
_clazz
The object class. |
protected BareArrayMask |
_mask
The mask indicating which fields have changed. |
protected Object[] |
_values
The values for each of the object's changed fields (either a new value or a Delta
object). |
protected static ReflectiveDelta.FieldHandler |
FINAL_OBJECT_FIELD_HANDLER
Handler for final object fields. |
protected static Map<Class<?>,ReflectiveDelta.FieldHandler> |
FINAL_PRIMITIVE_FIELD_HANDLERS
Field handlers for final primitive fields mapped by class. |
protected static ReflectiveDelta.FieldHandler |
OBJECT_FIELD_HANDLER
Handler for object fields. |
protected static Map<Class<?>,ReflectiveDelta.FieldHandler> |
PRIMITIVE_FIELD_HANDLERS
Field handlers for primitive fields mapped by class. |
| Fields inherited from class com.threerings.delta.Delta |
|---|
_classStreamer, _creators, _none, _wrapperStreamers |
| Constructor Summary | |
|---|---|
ReflectiveDelta()
No-arg constructor for deserialization. |
|
ReflectiveDelta(Object original,
Object revised)
Creates a new reflective delta that transforms the original object into the revised object (both of which must be instances of the same class). |
|
| Method Summary | |
|---|---|
Object |
apply(Object original)
Applies this delta to the specified object. |
protected static void |
collectFields(Class<?> clazz,
List<Field> fields)
Collects all appropriate fields of the specified class (and its superclasses) and places them in the provided results object. |
protected static ReflectiveDelta.ClassMapping |
getClassMapping(Class<?> clazz)
Returns the class mapping for the specified class. |
boolean |
isEmpty()
Checks whether the delta is empty. |
Delta |
merge(Delta other)
Merges this delta with another. |
protected void |
populateMerged(ReflectiveDelta other,
ReflectiveDelta merged)
Populates the merged delta. |
void |
readObject(ObjectInputStream in)
Custom read method. |
String |
toString()
|
void |
writeObject(ObjectOutputStream out)
Custom write method. |
| Methods inherited from class com.threerings.delta.Delta |
|---|
checkDeltable, createDelta |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected Class<?> _clazz
protected BareArrayMask _mask
protected Object[] _values
Delta
object).
protected static Map<Class<?>,ReflectiveDelta.ClassMapping> _classes
protected static final Map<Class<?>,ReflectiveDelta.FieldHandler> PRIMITIVE_FIELD_HANDLERS
protected static final Map<Class<?>,ReflectiveDelta.FieldHandler> FINAL_PRIMITIVE_FIELD_HANDLERS
protected static final ReflectiveDelta.FieldHandler OBJECT_FIELD_HANDLER
protected static final ReflectiveDelta.FieldHandler FINAL_OBJECT_FIELD_HANDLER
| Constructor Detail |
|---|
public ReflectiveDelta(Object original,
Object revised)
public ReflectiveDelta()
| Method Detail |
|---|
public boolean isEmpty()
public void writeObject(ObjectOutputStream out)
throws IOException
IOException
public void readObject(ObjectInputStream in)
throws IOException,
ClassNotFoundException
IOException
ClassNotFoundExceptionpublic Object apply(Object original)
Delta
apply in class Deltapublic Delta merge(Delta other)
Delta
merge in class Deltapublic String toString()
toString in class Object
protected void populateMerged(ReflectiveDelta other,
ReflectiveDelta merged)
protected static ReflectiveDelta.ClassMapping getClassMapping(Class<?> clazz)
protected static void collectFields(Class<?> clazz,
List<Field> fields)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||