javax.swing.text
Class AbstractDocument.AbstractElement

java.lang.Object
  extended byjavax.swing.text.AbstractDocument.AbstractElement
All Implemented Interfaces:
AttributeSet, Element, MutableAttributeSet, Serializable, TreeNode
Direct Known Subclasses:
AbstractDocument.BranchElement, AbstractDocument.LeafElement
Enclosing class:
AbstractDocument

public abstract class AbstractDocument.AbstractElement
extends Object
implements Element, MutableAttributeSet, Serializable, TreeNode

Implements the abstract part of an element. By default elements support attributes by having a field that represents the immutable part of the current attribute set for the element. The element itself implements MutableAttributeSet which can be used to modify the set by fetching a new immutable set. The immutable sets are provided by the AttributeContext associated with the document.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.text.AttributeSet
AttributeSet.CharacterAttribute, AttributeSet.ColorAttribute, AttributeSet.FontAttribute, AttributeSet.ParagraphAttribute
 
Field Summary
private  AttributeSet attributes
           
private  Element parent
           
 
Fields inherited from interface javax.swing.text.AttributeSet
NameAttribute, ResolveAttribute
 
Constructor Summary
AbstractDocument.AbstractElement(Element parent, AttributeSet a)
          Creates a new AbstractElement.
 
Method Summary
 void addAttribute(Object name, Object value)
          Adds an attribute to the element.
 void addAttributes(AttributeSet attr)
          Adds a set of attributes to the element.
private  void checkForIllegalCast()
           
abstract  Enumeration children()
          Returns the children of the receiver as an Enumeration.
 boolean containsAttribute(Object name, Object value)
          Checks whether a given attribute name/value is defined.
 boolean containsAttributes(AttributeSet attrs)
          Checks whether the element contains all the attributes.
 AttributeSet copyAttributes()
          Copies a set of attributes.
 void dump(PrintStream psOut, int indentAmount)
          Dumps a debugging representation of the element hierarchy.
abstract  boolean getAllowsChildren()
          Returns true if the receiver allows children.
 Object getAttribute(Object attrName)
          Gets the value of an attribute.
 int getAttributeCount()
          Gets the number of attributes that are defined.
 Enumeration getAttributeNames()
          Gets the names of all attributes.
 AttributeSet getAttributes()
          Gets the attributes for the element.
 TreeNode getChildAt(int childIndex)
          Returns the child TreeNode at index childIndex.
 int getChildCount()
          Returns the number of children TreeNode's receiver contains.
 Document getDocument()
          Retrieves the underlying model.
abstract  Element getElement(int index)
          Gets a child element.
abstract  int getElementCount()
          Gets the number of children for the element.
abstract  int getElementIndex(int offset)
          Gets the child element index closest to the given model offset.
abstract  int getEndOffset()
          Gets the ending offset in the model for the element.
 int getIndex(TreeNode node)
          Returns the index of node in the receivers children.
 String getName()
          Gets the name of the element.
 TreeNode getParent()
          Returns the parent TreeNode of the receiver.
 Element getParentElement()
          Gets the parent of the element.
 AttributeSet getResolveParent()
          Gets the resolving parent.
abstract  int getStartOffset()
          Gets the starting offset in the model for the element.
private  void indent(PrintWriter out, int n)
           
 boolean isDefined(Object attrName)
          Checks whether a given attribute is defined.
 boolean isEqual(AttributeSet attr)
          Checks whether two attribute sets are equal.
abstract  boolean isLeaf()
          Checks whether the element is a leaf.
private  void readObject(ObjectInputStream s)
           
 void removeAttribute(Object name)
          Removes an attribute from the set.
 void removeAttributes(AttributeSet attrs)
          Removes a set of attributes for the element.
 void removeAttributes(Enumeration names)
          Removes a set of attributes for the element.
 void setResolveParent(AttributeSet parent)
          Sets the resolving parent.
private  void writeObject(ObjectOutputStream s)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

private Element parent

attributes

private transient AttributeSet attributes
Constructor Detail

AbstractDocument.AbstractElement

public AbstractDocument.AbstractElement(Element parent,
                                        AttributeSet a)
Creates a new AbstractElement.

Parameters:
parent - the parent element
a - the attributes for the element
Method Detail

indent

private final void indent(PrintWriter out,
                          int n)

dump

public void dump(PrintStream psOut,
                 int indentAmount)
Dumps a debugging representation of the element hierarchy.

Parameters:
psOut - the output stream
indentAmount - the indentation level >= 0

getAttributeCount

public int getAttributeCount()
Gets the number of attributes that are defined.

Specified by:
getAttributeCount in interface AttributeSet
Returns:
the number of attributes >= 0
See Also:
AttributeSet.getAttributeCount()

isDefined

public boolean isDefined(Object attrName)
Checks whether a given attribute is defined.

Specified by:
isDefined in interface AttributeSet
Parameters:
attrName - the non-null attribute name
Returns:
true if the attribute is defined
See Also:
AttributeSet.isDefined(java.lang.Object)

isEqual

public boolean isEqual(AttributeSet attr)
Checks whether two attribute sets are equal.

Specified by:
isEqual in interface AttributeSet
Parameters:
attr - the attribute set to check against
Returns:
true if the same
See Also:
AttributeSet.isEqual(javax.swing.text.AttributeSet)

copyAttributes

public AttributeSet copyAttributes()
Copies a set of attributes.

Specified by:
copyAttributes in interface AttributeSet
Returns:
the copy
See Also:
AttributeSet.copyAttributes()

getAttribute

public Object getAttribute(Object attrName)
Gets the value of an attribute.

Specified by:
getAttribute in interface AttributeSet
Parameters:
attrName - the non-null attribute name
Returns:
the attribute value
See Also:
AttributeSet.getAttribute(java.lang.Object)

getAttributeNames

public Enumeration getAttributeNames()
Gets the names of all attributes.

Specified by:
getAttributeNames in interface AttributeSet
Returns:
the attribute names as an enumeration
See Also:
AttributeSet.getAttributeNames()

containsAttribute

public boolean containsAttribute(Object name,
                                 Object value)
Checks whether a given attribute name/value is defined.

Specified by:
containsAttribute in interface AttributeSet
Parameters:
name - the non-null attribute name
value - the attribute value
Returns:
true if the name/value is defined
See Also:
AttributeSet.containsAttribute(java.lang.Object, java.lang.Object)

containsAttributes

public boolean containsAttributes(AttributeSet attrs)
Checks whether the element contains all the attributes.

Specified by:
containsAttributes in interface AttributeSet
Parameters:
attrs - the attributes to check
Returns:
true if the element contains all the attributes
See Also:
AttributeSet.containsAttributes(javax.swing.text.AttributeSet)

getResolveParent

public AttributeSet getResolveParent()
Gets the resolving parent. If not overridden, the resolving parent defaults to the parent element.

Specified by:
getResolveParent in interface AttributeSet
Returns:
the attributes from the parent, null if none
See Also:
AttributeSet.getResolveParent()

addAttribute

public void addAttribute(Object name,
                         Object value)
Adds an attribute to the element.

Specified by:
addAttribute in interface MutableAttributeSet
Parameters:
name - the non-null attribute name
value - the attribute value
See Also:
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

addAttributes

public void addAttributes(AttributeSet attr)
Adds a set of attributes to the element.

Specified by:
addAttributes in interface MutableAttributeSet
Parameters:
attr - the attributes to add
See Also:
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)

removeAttribute

public void removeAttribute(Object name)
Removes an attribute from the set.

Specified by:
removeAttribute in interface MutableAttributeSet
Parameters:
name - the non-null attribute name
See Also:
MutableAttributeSet.removeAttribute(java.lang.Object)

removeAttributes

public void removeAttributes(Enumeration names)
Removes a set of attributes for the element.

Specified by:
removeAttributes in interface MutableAttributeSet
Parameters:
names - the attribute names
See Also:
MutableAttributeSet.removeAttributes(java.util.Enumeration)

removeAttributes

public void removeAttributes(AttributeSet attrs)
Removes a set of attributes for the element.

Specified by:
removeAttributes in interface MutableAttributeSet
Parameters:
attrs - the attributes
See Also:
MutableAttributeSet.removeAttributes(java.util.Enumeration)

setResolveParent

public void setResolveParent(AttributeSet parent)
Sets the resolving parent.

Specified by:
setResolveParent in interface MutableAttributeSet
Parameters:
parent - the parent, null if none
See Also:
MutableAttributeSet.setResolveParent(javax.swing.text.AttributeSet)

checkForIllegalCast

private final void checkForIllegalCast()

getDocument

public Document getDocument()
Retrieves the underlying model.

Specified by:
getDocument in interface Element
Returns:
the model

getParentElement

public Element getParentElement()
Gets the parent of the element.

Specified by:
getParentElement in interface Element
Returns:
the parent

getAttributes

public AttributeSet getAttributes()
Gets the attributes for the element.

Specified by:
getAttributes in interface Element
Returns:
the attribute set

getName

public String getName()
Gets the name of the element.

Specified by:
getName in interface Element
Returns:
the name, null if none

getStartOffset

public abstract int getStartOffset()
Gets the starting offset in the model for the element.

Specified by:
getStartOffset in interface Element
Returns:
the offset >= 0
See Also:
Document, AbstractDocument

getEndOffset

public abstract int getEndOffset()
Gets the ending offset in the model for the element.

Specified by:
getEndOffset in interface Element
Returns:
the offset >= 0
See Also:
Document, AbstractDocument

getElement

public abstract Element getElement(int index)
Gets a child element.

Specified by:
getElement in interface Element
Parameters:
index - the child index, >= 0 && < getElementCount()
Returns:
the child element

getElementCount

public abstract int getElementCount()
Gets the number of children for the element.

Specified by:
getElementCount in interface Element
Returns:
the number of children >= 0

getElementIndex

public abstract int getElementIndex(int offset)
Gets the child element index closest to the given model offset.

Specified by:
getElementIndex in interface Element
Parameters:
offset - the offset >= 0
Returns:
the element index >= 0

isLeaf

public abstract boolean isLeaf()
Checks whether the element is a leaf.

Specified by:
isLeaf in interface Element
Returns:
true if a leaf

getChildAt

public TreeNode getChildAt(int childIndex)
Returns the child TreeNode at index childIndex.

Specified by:
getChildAt in interface TreeNode

getChildCount

public int getChildCount()
Returns the number of children TreeNode's receiver contains.

Specified by:
getChildCount in interface TreeNode
Returns:
the number of children TreeNodews's receiver contains

getParent

public TreeNode getParent()
Returns the parent TreeNode of the receiver.

Specified by:
getParent in interface TreeNode
Returns:
the parent TreeNode of the receiver

getIndex

public int getIndex(TreeNode node)
Returns the index of node in the receivers children. If the receiver does not contain node, -1 will be returned.

Specified by:
getIndex in interface TreeNode
Parameters:
node - the location of interest
Returns:
the index of node in the receiver's children, or -1 if absent

getAllowsChildren

public abstract boolean getAllowsChildren()
Returns true if the receiver allows children.

Specified by:
getAllowsChildren in interface TreeNode
Returns:
true if the receiver allows children, otherwise false

children

public abstract Enumeration children()
Returns the children of the receiver as an Enumeration.

Specified by:
children in interface TreeNode
Returns:
the children of the receiver as an Enumeration

writeObject

private void writeObject(ObjectOutputStream s)
                  throws IOException
Throws:
IOException

readObject

private void readObject(ObjectInputStream s)
                 throws ClassNotFoundException,
                        IOException
Throws:
ClassNotFoundException
IOException