org.w3c.tools.resources.upgrade
Class Attribute

java.lang.Object
  extended by org.w3c.tools.resources.upgrade.Attribute
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
BooleanAttribute, ClassAttribute, DoubleAttribute, FileAttribute, FrameArrayAttribute, IntegerArrayAttribute, IntegerAttribute, IPTemplatesAttribute, LongAttribute, MimeTypeAttribute, ObjectAttribute, PropertiesAttribute, StringArrayAttribute, StringAttribute

public abstract class Attribute
extends java.lang.Object
implements java.io.Serializable

Instances of this class describe an attribute of a resource.

See Also:
Serialized Form

Field Summary
static int COMPUTED
          Flags value - This attribute is computed from the resource state.
static int DONTSAVE
          Flag value - This attribute shouldn't be saved.
static int EDITABLE
          Flag value - This attribute is editable.
protected  int flags
          The associated flags (see the predefined flags).
static int MANDATORY
          Flag value - This attribute is mandatory.
protected  java.lang.String name
          The attribute name.
protected  java.lang.String type
          The attribute's value type, as the name of its class.
 
Constructor Summary
Attribute(java.lang.String name, java.lang.Object def, java.lang.Integer flags)
          Private constructore to create a new resource attribute description.
 
Method Summary
 boolean checkFlag(int tst)
          Check some flag on this attribute description.
abstract  boolean checkValue(java.lang.Object value)
          Is the provided object a suitable value for this attribute ? If so, store it into the given store.
 java.lang.Object getDefault()
          Get this attribute default value.
 java.lang.String getName()
          Get this attribute name.
abstract  int getPickleLength(java.lang.Object value)
          Get number of bytes needed to pickle that attribute.
 java.lang.String getType()
          Get this attribute type.
abstract  void pickle(java.io.DataOutputStream out, java.lang.Object obj)
          Pickle an attribute of this type to the given stream.
 java.lang.String stringify(java.lang.Object value)
          Stringify a value of this kind.
abstract  java.lang.Object unpickle(java.io.DataInputStream in)
          Unpickle an attribute of this type from the given stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMPUTED

public static final int COMPUTED
Flags value - This attribute is computed from the resource state.

See Also:
Constant Field Values

EDITABLE

public static final int EDITABLE
Flag value - This attribute is editable.

See Also:
Constant Field Values

MANDATORY

public static final int MANDATORY
Flag value - This attribute is mandatory.

See Also:
Constant Field Values

DONTSAVE

public static final int DONTSAVE
Flag value - This attribute shouldn't be saved.

See Also:
Constant Field Values

name

protected java.lang.String name
The attribute name.


type

protected java.lang.String type
The attribute's value type, as the name of its class.


flags

protected int flags
The associated flags (see the predefined flags).

Constructor Detail

Attribute

public Attribute(java.lang.String name,
                 java.lang.Object def,
                 java.lang.Integer flags)
Private constructore to create a new resource attribute description.

Parameters:
name - The name of the attribute.
type - Its type (as a Java class).
def - Its default value.
flags - Its associated flags.
Method Detail

getName

public java.lang.String getName()
Get this attribute name.

Returns:
A String giving the attribute name.

getType

public java.lang.String getType()
Get this attribute type.


checkFlag

public boolean checkFlag(int tst)
Check some flag on this attribute description.


getDefault

public java.lang.Object getDefault()
Get this attribute default value.

Returns:
A default value for this attribute (may be null).

stringify

public java.lang.String stringify(java.lang.Object value)
Stringify a value of this kind.

Parameters:
obj - The value to stringify.

checkValue

public abstract boolean checkValue(java.lang.Object value)
Is the provided object a suitable value for this attribute ? If so, store it into the given store.

Parameters:
value - The value to check.
store - The array to store the value to if succeed.
idx - The location in the above array.
Returns:
A boolean true if this object can be used as a value for this attribute.
Throws:
IllegalAttributeAccess - If the provided value doesn't match the expected type.

getPickleLength

public abstract int getPickleLength(java.lang.Object value)
Get number of bytes needed to pickle that attribute. This method is always called before pickling an attribute, to get the length of that attribute value, and record it before saving the actual bytes. This allows, for example, to skip attribute whose definition was removed from a class.

In an ASCII format, this plays a role similar to emitting a newline.

Parameters:
value - The value that is about to be pickled.
Returns:
The number of bytes needed to pickle that value.

pickle

public abstract void pickle(java.io.DataOutputStream out,
                            java.lang.Object obj)
                     throws java.io.IOException
Pickle an attribute of this type to the given stream. This method is used to make attribute values persistent, the pickle method should dump the provided value in whatever format, provided its unpickle method is able to restore it.

Parameters:
out - The DataOutputStream to dump the object to.
obj - The object to pickle.
Throws:
java.io.IOException - If some IO error occured while dump the attribute.

unpickle

public abstract java.lang.Object unpickle(java.io.DataInputStream in)
                                   throws java.io.IOException
Unpickle an attribute of this type from the given stream. This method is used to restore a pickled attribute value from the given stream. It should read in the format it used at pickle time, and consume the same number of bytes from the stream.

Parameters:
in - The DataInputStream to read from.
Returns:
The object value.
Throws:
java.io.IOException - If some IOError occured while reading the stream.