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<?>>
attributes
protected java.util.HashMap<java.lang.String,java.util.ArrayList<Attribute<?>>>
category_attributes
boolean
updateable
Fields inherited from class mgui.interfaces.AbstractInterfaceObject
isDestroyed, tree_nodes
-
Constructor Summary
Constructors Constructor Description AttributeList()
-
Method Summary
Modifier and Type Method Description void
add(java.lang.String category, Attribute<?> attribute)
Adds an attribute to the specified category.void
add(Attribute<?> attribute)
Adds an attribute to the default listvoid
addAttributeListener(AttributeListener a)
java.util.ArrayList<Attribute<?>>
addCategory(java.lang.String category)
void
attributeUpdated(AttributeEvent e)
Called when an Attribute's value has been updated.java.lang.Object
clone()
void
fireAttributeListeners(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 theAttribute
object for the specified name; returnsnull
if this attribute does not exist.java.lang.String
getDTD()
Returns the Data Type Declaration (DTD) for this object's XML representationjava.util.ArrayList<java.lang.String>
getKeys()
java.lang.String
getLocalName()
Returns the local name associated with this XML object.javax.swing.Icon
getObjectIcon()
Returns theIcon
associated with this object.java.lang.String
getShortXML(int tab)
Returns a short XML representation of this object.int
getSize()
java.lang.String
getTreeLabel()
Returns the label text to appear in a tree node.java.lang.Object
getValue(java.lang.String name)
Get the current value of the attribute namedname
.java.lang.String
getXML()
Returns this object's XML representation as a single string.java.lang.String
getXML(int tab)
Returns this object's XML representation as a single string.static XMLObject
getXMLInstance(org.xml.sax.Attributes attributes)
java.lang.String
getXMLSchema()
Returns the XML schema for this object's XML representationvoid
handleXMLElementEnd(java.lang.String localName)
Handles the end of an XML element.void
handleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)
Handles the start of an XML element.void
handleXMLString(java.lang.String s)
Handles a string within an XML element.boolean
hasAttribute(java.lang.String name)
boolean
hasAttribute(Attribute<?> attribute)
void
remove(java.lang.String name)
void
remove(Attribute<?> thisAttr)
void
removeAttributeListener(AttributeListener a)
void
removeCategory(java.lang.String category)
void
replace(Attribute<?> thisAttr)
boolean
setAttribute(Attribute<?> thisAttr)
Sets the given attribute.<V> boolean
setAttribute(Attribute<V> attribute, boolean fire)
void
setAttributeListeners(AttributeList a)
void
setIntersection(java.util.List<Attribute<?>> list, boolean fire)
Set any attributes which intersect with the passed list.void
setIntersection(AttributeList list)
Set any attributes which intersect with the passed list.void
setIntersection(AttributeList list, boolean fire)
Set any attributes which intersect with the passed list.void
setTreeNode(InterfaceTreeNode treeNode)
Sets the children for this node'sInterfaceTreeNode
.void
setUnion(AttributeList list)
Sets thisAttributeList
to the union of itself andlist
.void
setUnion(AttributeList list, boolean overwrite)
Sets thisAttributeList
to the union of itself andlist
.<V> boolean
setValue(java.lang.String name, V value)
Sets the value of the attribute represented byname
.<V> boolean
setValue(java.lang.String name, V value, boolean fire)
<V> boolean
setValue(Attribute<V> attribute)
<V> boolean
setValueForced(java.lang.String name, V value)
Sets the value of the attribute represented byname
; ignores theisEditable
flag.java.lang.String
toString()
void
writeXML(int tab, java.io.Writer writer)
Writes the XML representation of this object to file.void
writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar)
Writes the XML representation of this object to file, asXMLType.Normal
.void
writeXML(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, updateTreeNodes
Methods 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:IconObject
Returns theIcon
associated with this object.- Specified by:
getObjectIcon
in interfaceIconObject
- Returns:
-
getAsList
-
hasAttribute
public boolean hasAttribute(java.lang.String name) -
hasAttribute
-
getTreeLabel
public java.lang.String getTreeLabel()Description copied from interface:TreeObject
Returns the label text to appear in a tree node.- Specified by:
getTreeLabel
in interfaceTreeObject
- Overrides:
getTreeLabel
in 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 theAttribute
object for the specified name; returnsnull
if 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 theisEditable
flag.- 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:
toString
in classjava.lang.Object
-
getSize
public int getSize() -
clone
public java.lang.Object clone()- Overrides:
clone
in classjava.lang.Object
-
attributeUpdated
Description copied from interface:AttributeListener
Called when an Attribute's value has been updated.- Specified by:
attributeUpdated
in interfaceAttributeListener
-
getKeys
public java.util.ArrayList<java.lang.String> getKeys() -
setTreeNode
Description copied from interface:TreeObject
Sets the children for this node'sInterfaceTreeNode
.- Specified by:
setTreeNode
in interfaceTreeObject
- Overrides:
setTreeNode
in 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 thisAttributeList
to 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 thisAttributeList
to the union of itself andlist
. Ifoverwrite
istrue
, 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:XMLObject
Returns 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:XMLObject
Returns the local name associated with this XML object.- Specified by:
getLocalName
in interfaceXMLObject
- Returns:
-
getXML
public java.lang.String getXML()Description copied from interface:XMLObject
Returns 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:XMLObject
Returns 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:XMLObject
Returns the XML schema for this object's XML representation- Specified by:
getXMLSchema
in interfaceXMLObject
- Returns:
-
handleXMLElementEnd
public void handleXMLElementEnd(java.lang.String localName)Description copied from interface:XMLObject
Handles the end of an XML element.- Specified by:
handleXMLElementEnd
in 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:XMLObject
Handles the start of an XML element.- Specified by:
handleXMLElementStart
in interfaceXMLObject
- Parameters:
localName
- Local name of the elementattributes
- Set of element attributestype
- TheXMLType
of this element
-
handleXMLString
public void handleXMLString(java.lang.String s)Description copied from interface:XMLObject
Handles a string within an XML element.- Specified by:
handleXMLString
in interfaceXMLObject
- Parameters:
s
- String to handle
-
getXMLInstance
-
writeXML
public void writeXML(int tab, java.io.Writer writer) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes 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.Ascii
will be used. -
writeXML
public void writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes the XML representation of this object to file, asXMLType.Normal
. The default format ofXMLFormat.Ascii
will 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:XMLObject
Writes 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.Ascii
will be used. -
getShortXML
public java.lang.String getShortXML(int tab)Description copied from interface:XMLObject
Returns a short XML representation of this object.- Specified by:
getShortXML
in interfaceXMLObject
- Returns:
-