Package mgui.interfaces.attributes
Class AttributeList
java.lang.Object
mgui.interfaces.AbstractInterfaceObject
mgui.interfaces.attributes.AttributeList
- All Implemented Interfaces:
java.lang.Cloneable,AttributeListener,InterfaceObject,NamedObject,TreeObject,CleanableObject,XMLObject,IconObject
public class AttributeList extends AbstractInterfaceObject implements java.lang.Cloneable, AttributeListener, IconObject, XMLObject
Stores a list of
Attribute objects, and provides methods to access and modify them, as well as
set methods to intersect and union with other lists. This class also listens for changes on its
attributes and can inform all listeners of these changes.
It provides XML reading writing implementations.
It constructs its own tree nodes vis the setTreeNode method; these nodes can be used to modify
attribute values.
The AttributeList should be used for all InterfaceObject instances which require attributes.
- Since:
- 1.0
- Version:
- 1.0
- Author:
- Andrew Reid
-
Nested Class Summary
Nested classes/interfaces inherited from interface mgui.interfaces.xml.XMLObject
XMLObject.XMLEncoding, XMLObject.XMLType -
Field Summary
Fields Modifier and Type Field Description protected java.util.HashMap<java.lang.String,Attribute<?>>attributesprotected java.util.HashMap<java.lang.String,java.util.ArrayList<Attribute<?>>>category_attributesbooleanupdateableFields inherited from class mgui.interfaces.AbstractInterfaceObject
isDestroyed, tree_nodes -
Constructor Summary
Constructors Constructor Description AttributeList() -
Method Summary
Modifier and Type Method Description voidadd(java.lang.String category, Attribute<?> attribute)Adds an attribute to the specified category.voidadd(Attribute<?> attribute)Adds an attribute to the default listvoidaddAttributeListener(AttributeListener a)java.util.ArrayList<Attribute<?>>addCategory(java.lang.String category)voidattributeUpdated(AttributeEvent e)Called when an Attribute's value has been updated.java.lang.Objectclone()voidfireAttributeListeners(Attribute<?> a)java.util.ArrayList<Attribute<?>>getAsList()Attribute<?>getAttribute(int index)Returns the attribute at the specified index.Attribute<?>getAttribute(java.lang.String name)Gets theAttributeobject for the specified name; returnsnullif this attribute does not exist.java.lang.StringgetDTD()Returns the Data Type Declaration (DTD) for this object's XML representationjava.util.ArrayList<java.lang.String>getKeys()java.lang.StringgetLocalName()Returns the local name associated with this XML object.javax.swing.IcongetObjectIcon()Returns theIconassociated with this object.java.lang.StringgetShortXML(int tab)Returns a short XML representation of this object.intgetSize()java.lang.StringgetTreeLabel()Returns the label text to appear in a tree node.java.lang.ObjectgetValue(java.lang.String name)Get the current value of the attribute namedname.java.lang.StringgetXML()Returns this object's XML representation as a single string.java.lang.StringgetXML(int tab)Returns this object's XML representation as a single string.static XMLObjectgetXMLInstance(org.xml.sax.Attributes attributes)java.lang.StringgetXMLSchema()Returns the XML schema for this object's XML representationvoidhandleXMLElementEnd(java.lang.String localName)Handles the end of an XML element.voidhandleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)Handles the start of an XML element.voidhandleXMLString(java.lang.String s)Handles a string within an XML element.booleanhasAttribute(java.lang.String name)booleanhasAttribute(Attribute<?> attribute)voidremove(java.lang.String name)voidremove(Attribute<?> thisAttr)voidremoveAttributeListener(AttributeListener a)voidremoveCategory(java.lang.String category)voidreplace(Attribute<?> thisAttr)booleansetAttribute(Attribute<?> thisAttr)Sets the given attribute.<V> booleansetAttribute(Attribute<V> attribute, boolean fire)voidsetAttributeListeners(AttributeList a)voidsetIntersection(java.util.List<Attribute<?>> list, boolean fire)Set any attributes which intersect with the passed list.voidsetIntersection(AttributeList list)Set any attributes which intersect with the passed list.voidsetIntersection(AttributeList list, boolean fire)Set any attributes which intersect with the passed list.voidsetTreeNode(InterfaceTreeNode treeNode)Sets the children for this node'sInterfaceTreeNode.voidsetUnion(AttributeList list)Sets thisAttributeListto the union of itself andlist.voidsetUnion(AttributeList list, boolean overwrite)Sets thisAttributeListto the union of itself andlist.<V> booleansetValue(java.lang.String name, V value)Sets the value of the attribute represented byname.<V> booleansetValue(java.lang.String name, V value, boolean fire)<V> booleansetValue(Attribute<V> attribute)<V> booleansetValueForced(java.lang.String name, V value)Sets the value of the attribute represented byname; ignores theisEditableflag.java.lang.StringtoString()voidwriteXML(int tab, java.io.Writer writer)Writes the XML representation of this object to file.voidwriteXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar)Writes the XML representation of this object to file, asXMLType.Normal.voidwriteXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar)Writes the XML representation of this object to file.Methods inherited from class mgui.interfaces.AbstractInterfaceObject
clean, destroy, getName, isDestroyed, issueTreeNode, setName, updateTreeNodesMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Field Details
-
attributes
-
category_attributes
protected java.util.HashMap<java.lang.String,java.util.ArrayList<Attribute<?>>> category_attributes -
updateable
public boolean updateable
-
-
Constructor Details
-
AttributeList
public AttributeList()
-
-
Method Details
-
getObjectIcon
public javax.swing.Icon getObjectIcon()Description copied from interface:IconObjectReturns theIconassociated with this object.- Specified by:
getObjectIconin interfaceIconObject- Returns:
-
getAsList
-
hasAttribute
public boolean hasAttribute(java.lang.String name) -
hasAttribute
-
getTreeLabel
public java.lang.String getTreeLabel()Description copied from interface:TreeObjectReturns the label text to appear in a tree node.- Specified by:
getTreeLabelin interfaceTreeObject- Overrides:
getTreeLabelin classAbstractInterfaceObject- Returns:
-
add
Adds an attribute to the default list- Parameters:
thisAttr-
-
add
Adds an attribute to the specified category. If the category does not exist, creates a new one.- Parameters:
category-attribute-
-
addCategory
-
removeCategory
public void removeCategory(java.lang.String category) -
remove
public void remove(java.lang.String name) -
remove
-
replace
-
getValue
public java.lang.Object getValue(java.lang.String name)Get the current value of the attribute namedname.- Parameters:
name-- Returns:
-
setAttribute
Sets the given attribute. If an attribute by this name already exists, it is overriden.- Parameters:
thisAttr-- Returns:
-
setAttribute
-
getAttribute
Returns the attribute at the specified index. Note: this function will be deprecated.- Parameters:
index-- Returns:
-
getAttribute
Gets theAttributeobject for the specified name; returnsnullif this attribute does not exist.- Parameters:
name-- Returns:
-
setValueForced
public <V> boolean setValueForced(java.lang.String name, V value)Sets the value of the attribute represented byname; ignores theisEditableflag.- Parameters:
thisAttr-thisValue-- Returns:
-
setValue
public <V> boolean setValue(java.lang.String name, V value)Sets the value of the attribute represented byname.- Parameters:
thisAttr-thisValue-- Returns:
-
setValue
public <V> boolean setValue(java.lang.String name, V value, boolean fire) -
setValue
- Type Parameters:
V-- Parameters:
attribute-- Returns:
-
addAttributeListener
-
removeAttributeListener
-
fireAttributeListeners
-
setAttributeListeners
-
toString
public java.lang.String toString()- Overrides:
toStringin classjava.lang.Object
-
getSize
public int getSize() -
clone
public java.lang.Object clone()- Overrides:
clonein classjava.lang.Object
-
attributeUpdated
Description copied from interface:AttributeListenerCalled when an Attribute's value has been updated.- Specified by:
attributeUpdatedin interfaceAttributeListener
-
getKeys
public java.util.ArrayList<java.lang.String> getKeys() -
setTreeNode
Description copied from interface:TreeObjectSets the children for this node'sInterfaceTreeNode.- Specified by:
setTreeNodein interfaceTreeObject- Overrides:
setTreeNodein classAbstractInterfaceObject
-
setIntersection
Set any attributes which intersect with the passed list. -
setIntersection
Set any attributes which intersect with the passed list. -
setIntersection
Set any attributes which intersect with the passed list. -
setUnion
Sets thisAttributeListto the union of itself andlist. The values of attributes which already exist in this list are updated to reflect the new values.- Parameters:
list-
-
setUnion
Sets thisAttributeListto the union of itself andlist. Ifoverwriteistrue, the values of attributes which already exist in this list are updated to reflect the new values; otherwise the current values are preserved. Note that if the attribute's type is different in the new list, overwriting will also change the type.- Parameters:
list-overwrite-
-
getDTD
public java.lang.String getDTD()Description copied from interface:XMLObjectReturns the Data Type Declaration (DTD) for this object's XML representationSee http://en.wikipedia.org/wiki/Document_Type_Definition for a description.
-
getLocalName
public java.lang.String getLocalName()Description copied from interface:XMLObjectReturns the local name associated with this XML object.- Specified by:
getLocalNamein interfaceXMLObject- Returns:
-
getXML
public java.lang.String getXML()Description copied from interface:XMLObjectReturns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)functions to write larger objects to file. -
getXML
public java.lang.String getXML(int tab)Description copied from interface:XMLObjectReturns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)functions to write larger objects to file. -
getXMLSchema
public java.lang.String getXMLSchema()Description copied from interface:XMLObjectReturns the XML schema for this object's XML representation- Specified by:
getXMLSchemain interfaceXMLObject- Returns:
-
handleXMLElementEnd
public void handleXMLElementEnd(java.lang.String localName)Description copied from interface:XMLObjectHandles the end of an XML element.- Specified by:
handleXMLElementEndin interfaceXMLObject- Parameters:
localName- Local name of the element
-
handleXMLElementStart
public void handleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)Description copied from interface:XMLObjectHandles the start of an XML element.- Specified by:
handleXMLElementStartin interfaceXMLObject- Parameters:
localName- Local name of the elementattributes- Set of element attributestype- TheXMLTypeof this element
-
handleXMLString
public void handleXMLString(java.lang.String s)Description copied from interface:XMLObjectHandles a string within an XML element.- Specified by:
handleXMLStringin interfaceXMLObject- Parameters:
s- String to handle
-
getXMLInstance
-
writeXML
public void writeXML(int tab, java.io.Writer writer) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format ofXMLFormat.Asciiwill be used. -
writeXML
public void writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites the XML representation of this object to file, asXMLType.Normal. The default format ofXMLFormat.Asciiwill be used. The basic contract for this method is that it should not write a newline character at its start or end. -
writeXML
public void writeXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format ofXMLFormat.Asciiwill be used. -
getShortXML
public java.lang.String getShortXML(int tab)Description copied from interface:XMLObjectReturns a short XML representation of this object.- Specified by:
getShortXMLin interfaceXMLObject- Returns:
-