All Packages Class Hierarchy This Package Previous Next Index
Class w3c.tools.store.AttributeHolder
java.lang.Object
|
+----w3c.tools.store.AttributeHolder
- public class AttributeHolder
- extends Object
- implements Cloneable
An attribute holder is an object that holds a list of attributes.
Each of the attributes maintained by a holder are described by an
Attribute object, wich is able to pickle/unpickle its value, provides
the status of the attribute (eg mandatory, editable, etc), etc.
Given this, an attribute holder is able to pickle its state (made of
its attribute values), and unpickle it to any DataOutputStream (resp.
DataInputStream).
- See Also:
- Attribute, Resource
-
attributes
- Pointer to this class registered list of attributes.
-
slowpickle
- Turns on/off fast pickling.
-
values
- Attribute values.
-
AttributeHolder()
- Create an attribute holder.
-
definesAttribute(int)
- Does this resource has defined a value for the given attribute.
-
definesAttribute(String)
- Does this resource has defined a value for the given attribute.
-
getAttributes()
- Get this attribute holders attributes description.
-
getBoolean(int, boolean)
-
-
getChar(int, char)
-
-
getClone()
- Clone this attribute holder.
-
getClone(Hashtable)
- Clone this AttributeHolder instance, and initialize it with defaults.
-
getClone(Object[])
- Clone this attribute holder, and init it with the given attributes.
-
getDouble(int, double)
-
-
getFloat(int, float)
-
-
getInt(int, int)
-
-
getLong(int, long)
-
-
getString(int, String)
-
-
getValue(int, Object)
- Generic get of an attribute value.
-
getValue(String, Object)
- Generic get of an attribute value.
-
initialize(Hashtable)
- Initialization method for attribute holders.
-
initialize(Object[])
- Initialization method for attribute holders.
-
lookupAttribute(String)
- Lookup up the index of an attribute in our attribute description.
-
pickle(DataOutputStream)
- Pickle this attribute holder to the given stream.
-
print(PrintStream)
- Debugging purposes only, print this attribute holder.
-
setBoolean(int, boolean)
-
-
setChar(int, char)
-
-
setDouble(int, double)
-
-
setFloat(int, float)
-
-
setInt(int, int)
-
-
setLong(int, long)
-
-
setString(int, String)
-
-
setValue(int, Object)
- Set an attribute value.
-
setValue(String, Object)
- Set an attribute value.
-
unpickle(DataInputStream)
- Unpickle an attribute holder from the given input stream.
-
unpickle(DataInputStream, Hashtable)
- A short hand for unpickling and initializing a resource.
-
unpickle(DataInputStream, Hashtable, boolean)
- Unpickle an attribute holder from the given input stream.
-
unpickleInstance(DataInputStream, Hashtable)
- A short-hand for unpickling and initializing resources.
-
unpickleInstance(DataInputStream, Hashtable, boolean)
- Finish the instance part of the unpickling job.
slowpickle
protected boolean slowpickle
- Turns on/off fast pickling.
Fast pickling is a mode of pickling attribute holders in which
evolutivity is lost in favor of speed. With slow pickling obtained by
setting that flag to false, resources are dumped
in a alist like format, so you can preserve informations
if the attribute list changes.
attributes
protected Attribute attributes[]
- Pointer to this class registered list of attributes.
values
protected Object values[]
- Attribute values.
AttributeHolder
public AttributeHolder()
- Create an attribute holder.
getClone
public Object getClone(Object values[])
- Clone this attribute holder, and init it with the given attributes.
- Parameters:
- values - Attribute values to overide in the clone.
- Returns:
- A clone of this resource.
getClone
public Object getClone()
- Clone this attribute holder.
The resulting clone will share the attribute values of
the cloned attribute holder.
- Returns:
- An attribute holder sharing its ancestor attribute values.
getClone
public Object getClone(Hashtable defs)
- Clone this AttributeHolder instance, and initialize it with defaults.
This method first clones the receiving attribute holder, and then
uses the defaults provided to finish the initialization.
- Parameters:
- defs - The attribute values, in a Hashtable.
- Returns:
- The clone.
- Throws: CloneNotSupportedException
- In case of Java implementation
bug !
getAttributes
public Attribute[] getAttributes()
- Get this attribute holders attributes description.
The attribute list is guaranteed to be returned always in the same
order, wich is fixed at compilation time. This allows for fast access
to resource by their position rather than by name.
- Returns:
- An array of Attribute objects, each one containing the
description of one single attribute of the resource.
- See Also:
- Attribute
lookupAttribute
public int lookupAttribute(String name)
- Lookup up the index of an attribute in our attribute description.
- Parameters:
- name - The name of the attribute to look for.
- Returns:
- An integer, positive if found, negative otherwise.
setValue
public synchronized void setValue(int idx,
Object value)
- Set an attribute value.
This method sets the value of some attribute of the resource. It marks
the resource as being modified, and alert its resource store (so
that it knows it will have to save the object at some time in the
future).
- Parameters:
- idx - The attribute index, in the list of attributes advertized by
the resource.
- value - The new value for this attribute.
- Throws: IllegalAttributeValue
- if the provided value doesn't match
the attribute expected type.
- Throws: UnknownAttribute
- If the provided index doesn't match
an attribute of this object.
setValue
public synchronized void setValue(String name,
Object value)
- Set an attribute value.
This method sets the value of an attribute, referenced by its name.
- Parameters:
- name - The attribute name.
- value - The new value for the attribute.
- Throws: IllegalAttributeValue
- if the provided value doesn't match
the attribute expected type.
- Throws: UnknownAttribute
- if the given name doesn't match any of
the attribute's name.
setBoolean
public synchronized void setBoolean(int idx,
boolean b)
setChar
public synchronized void setChar(int idx,
char ch) throws IllegalAttributeAccess
setDouble
public synchronized void setDouble(int idx,
double d) throws IllegalAttributeAccess
setFloat
public synchronized void setFloat(int idx,
float f) throws IllegalAttributeAccess
setInt
public synchronized void setInt(int idx,
int i) throws IllegalAttributeAccess
setLong
public synchronized void setLong(int idx,
long l) throws IllegalAttributeAccess
setString
public synchronized void setString(int idx,
String s) throws IllegalAttributeAccess
getValue
public synchronized Object getValue(int idx,
Object def) throws IllegalAttributeAccess
- Generic get of an attribute value.
Retreive an attribute value from its index in the resource's attribute
list.
- Parameters:
- idx - The index of the attribute whose value is queried.
- def - The default value (if the attribute isn't defined).
- Returns:
- An object, giving the attribute value, or the provided
default if this attribute isn't currently define for the resource.
- Throws: IllegalAttributeAccess
- if the given index doesn't match any
of the resource's attributes.
getValue
public synchronized Object getValue(String name,
Object def) throws IllegalAttributeAccess
- Generic get of an attribute value.
Get the method of an attribute, by name.
- Parameters:
- name - The name of the queried attribute.
- def - The default value.
- Throws: IllegalAttributeAccess
- if the given name doesn't match any
of the attribute's name.
getBoolean
public synchronized boolean getBoolean(int idx,
boolean def)
getChar
public synchronized char getChar(int idx,
char def)
getDouble
public synchronized double getDouble(int idx,
double def)
getFloat
public synchronized float getFloat(int idx,
float def)
getInt
public synchronized int getInt(int idx,
int def)
getLong
public synchronized long getLong(int idx,
long def)
getString
public synchronized String getString(int idx,
String def)
definesAttribute
public boolean definesAttribute(int idx) throws IllegalAttributeAccess
- Does this resource has defined a value for the given attribute.
- Parameters:
- idx - The index of the attribute to check.
- Returns:
- A boolean true if the resource has a value
for this attribute, false otherwise.
definesAttribute
public boolean definesAttribute(String name) throws IllegalAttributeAccess
- Does this resource has defined a value for the given attribute.
- Parameters:
- name - The name of the attribute to check.
- Returns:
- A boolean true if the resource has a value
for this attribute, false otherwise.
pickle
public void pickle(DataOutputStream out) throws IOException
- Pickle this attribute holder to the given stream.
- Parameters:
- out - The output stream we should pickle ourselve to.
- Throws: IOException
- If some IO error occured during pickling.
unpickle
public static AttributeHolder unpickle(DataInputStream in,
Hashtable defs,
boolean init) throws IOException
- Unpickle an attribute holder from the given input stream.
AttributeHolder unpickling is done in two stage: the first stage
wich is not redefinable, consists in recreating an instance of the
attribute holder (this method).
The second stage restore the instance attributes (and whatever
information the pickle method as written there). This is the
unpickleInstance
method.
- Parameters:
- defs - Set of default values for the holder.
- in - The input stream to read from.
- init - Should the resource be initialized ?
- Returns:
- An instance of AttributeHolder of one of its subclass.
- Throws: IOException
- If some IO error occured while reading the
stream.
- Throws: AttributeHolderInitException
- If we weren't able to restore
the attribute holder.
unpickle
public static AttributeHolder unpickle(DataInputStream in,
Hashtable defs) throws IOException
- A short hand for unpickling and initializing a resource.
- Parameters:
- defs - Set of default values for the holder.
- in - The input stream to read from.
- init - Should the resource be initialized ?
- Returns:
- An instance of AttributeHolder of one of its subclass.
- Throws: IOException
- If some IO error occured while reading the
stream.
- Throws: AttributeHolderInitException
- If we weren't able to restore
the attribute holder.
unpickleInstance
public AttributeHolder unpickleInstance(DataInputStream in,
Hashtable defs,
boolean init) throws IOException
- Finish the instance part of the unpickling job.
The standard way of redefining how your attribute holder should be
pickled is as follow:
- redefine the
pickle
method, make sure the first
method it calls is it super-method, than pickle whatever additional
infos you want to pickle.
- Than, redefine the
unpickleInstance
method, make
sure ut first calls its super class unpickleInstance
method, and than unpickle the additional informations you have
store at pickling time.
- Parameters:
- in - The input stream to read from.
- defs - The proposed attribute default values.
- init - Should we initialize the resource after unpickling.
unpickleInstance
public AttributeHolder unpickleInstance(DataInputStream in,
Hashtable defs) throws IOException
- A short-hand for unpickling and initializing resources.
- Parameters:
- in - The input stream to read.
- defs - The default attribute values.
- Returns:
- An AttributeHolder instance.
unpickle
public static AttributeHolder unpickle(DataInputStream in) throws IOException
- Unpickle an attribute holder from the given input stream.
- Parameters:
- in - The input stream to read from.
- Returns:
- An instance of AttributeHolder of one of its subclass.
- Throws: IOException
- If some IO error occured while reading the
stream.
- Throws: AttributeHolderInitException
- If we weren't able to restore
the attribute holder.
initialize
public void initialize(Object values[])
- Initialization method for attribute holders.
Each time an attribute holder get restored, its
initialize
method gets called. The holder should initialize itself with the set
of provided values and perform any additional startup code.
- Parameters:
- values - The attribute values the holder should initialize from.
- Throws: AttributeHolderInitException
- If tghe holder wasn't able
to initialize itself from the given set of attribute values.
initialize
public void initialize(Hashtable defs)
- Initialization method for attribute holders.
This method allows to initialize an attribute holder by providing
its attributes values through a Hashtable mapping attribute names
to attribute values.
- Parameters:
- defs - The Hashtable containing the default values.
print
public void print(PrintStream out)
- Debugging purposes only, print this attribute holder.
- Parameters:
- out - The print stream to print to.
All Packages Class Hierarchy This Package Previous Next Index