com.flagstone.transform
Class FSTransformObject

java.lang.Object
  extended by com.flagstone.transform.FSTransformObject
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
FSActionObject, FSBounds, FSButton, FSButtonEvent, FSCharacter, FSClipEvent, FSColor, FSColorTransform, FSCoordTransform, FSCurve, FSEnvelope, FSFillStyle, FSGradient, FSKerning, FSLine, FSLineStyle, FSMorphGradient, FSMovieObject, FSNull, FSProperty, FSRegisterIndex, FSRegisterVariable, FSShape, FSShapeStyle, FSSound, FSTableIndex, FSText, FSVoid

public abstract class FSTransformObject
extends java.lang.Object
implements java.lang.Cloneable

The FSTransformObject object defines the basic set of method that an object must implement if it can used to represent the data structures that make up the Flash File Format specification. Sub-classes can be used to represent either one of the tagged data structures such as PlaceObject and added directly to an FSMovie or one of the data-types that the objects contain e.g. a colour. In addition to the methods directly relating to the coding of the object to and from the binary data representation that comprises the Flash File Format specification the class also includes a common set of methods used when validating or reporting the state of individual objects.


Constructor Summary
FSTransformObject()
           
 
Method Summary
abstract  void appendDescription(java.lang.StringBuffer buffer, int depth)
          AppendDescription is used to present a string description of the object including all nested objects up to a specified depth.
 java.lang.Object clone()
          Creates a deep copy of the entire object.
abstract  void decode(FSCoder coder)
           
abstract  void encode(FSCoder coder)
           
 boolean equals(java.lang.Object anObject)
          Returns true if anObject is equal to this one.
abstract  int length(FSCoder coder)
           
 java.lang.String name()
          Return the name of the class without the package prefix.
 java.lang.String toString()
          Generates a string representation of the event object.
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FSTransformObject

public FSTransformObject()
Method Detail

name

public java.lang.String name()
Return the name of the class without the package prefix. This method is used when logging events to identify the object being encoded or decoded.

Returns:
the name of the class, e.g. FSDefineShape.

equals

public boolean equals(java.lang.Object anObject)
Returns true if anObject is equal to this one. Objects are considered equal if they would generate identical binary data when they are encoded to a Flash file.

Overrides:
equals in class java.lang.Object
Returns:
true if this object would be identical to anObject when encoded.

clone

public java.lang.Object clone()
Creates a deep copy of the entire object.

Overrides:
clone in class java.lang.Object
Returns:
a copy of the object.

toString

public java.lang.String toString()
Generates a string representation of the event object. This method calls appendDescription with the level set to 2 which will displays the contents of the first level of nested objects (level 1 will only show the type of any nested objects).

Overrides:
toString in class java.lang.Object
Returns:
a string reporting the values in the attributes.

appendDescription

public abstract void appendDescription(java.lang.StringBuffer buffer,
                                       int depth)
AppendDescription is used to present a string description of the object including all nested objects up to a specified depth. This method provide a more controlled way of creating a string representation of an object since large objects such as font or shape definitions can contain dozens of nested objects. The representation of the object is appended to the StringBuffer, showing the name of the class and values of the attributes it contains. If the object contains any attributes that are objects then the object graph will be traversed up to the specified depth. If objects are nested at a level less than specified depth then the full string representation of the object is displayed. For objects at the specified depth only the name of the class is displayed. Any objects below this depth are not displayed.

Parameters:
buffer - a StringBuffer to which the description of each object is appended.
depth - the maximum level of nesting up to which objects will be displayed.

length

public abstract int length(FSCoder coder)

encode

public abstract void encode(FSCoder coder)

decode

public abstract void decode(FSCoder coder)