org.jhotdraw.xml
Class NanoXMLDOMInput

java.lang.Object
  extended by org.jhotdraw.xml.NanoXMLDOMInput
All Implemented Interfaces:
Disposable, DOMInput

public class NanoXMLDOMInput
extends java.lang.Object
implements DOMInput, Disposable

NanoXMLDOMInput.

Design pattern:
Name: Adapter.
Role: Adapter.
Partners: XMLElement as Adaptee.

Version:
$Id: NanoXMLDOMInput.java 527 2009-06-07 14:28:19Z rawcoder $
Author:
Werner Randelshofer

Field Summary
private  XMLElement current
          The current node used for input.
private  XMLElement document
          The document used for input.
private  DOMFactory factory
          The factory used to create objects from XML tag names.
private  java.util.HashMap<java.lang.String,java.lang.Object> idobjects
          This map is used to unmarshall references to objects to the XML DOM.
private  java.util.Stack<XMLElement> stack
          The stack.
 
Constructor Summary
NanoXMLDOMInput(DOMFactory factory, java.io.InputStream in)
           
NanoXMLDOMInput(DOMFactory factory, java.io.Reader in)
           
 
Method Summary
 void closeElement()
          Closes the current element of the DOM Document.
 void dispose()
          Disposes of all resources held by this object so that they can be garbage collected.
 boolean getAttribute(java.lang.String name, boolean defaultValue)
          Gets an attribute of the current element of the DOM Document.
 double getAttribute(java.lang.String name, double defaultValue)
          Gets an attribute of the current element of the DOM Document.
 int getAttribute(java.lang.String name, int defaultValue)
          Gets an attribute of the current element of the DOM Document.
 java.lang.String getAttribute(java.lang.String name, java.lang.String defaultValue)
          Gets an attribute of the current element of the DOM Document.
 int getElementCount()
          Returns the number of child elements of the current element.
 int getElementCount(java.lang.String tagName)
          Returns the number of child elements with the specified tag name of the current element.
 java.util.List<java.lang.String> getInheritedAttribute(java.lang.String name)
          Gets an attribute of the current element of the DOM Document and of all parent DOM elements.
 java.lang.String getTagName()
          Returns the tag name of the current element.
 java.lang.String getText()
          Gets the text of the current element of the DOM Document.
 java.lang.String getText(java.lang.String defaultValue)
          Gets the text of the current element of the DOM Document.
 void openElement(int index)
          Opens the element with the specified index and makes it the current node.
 void openElement(java.lang.String tagName)
          Opens the last element with the specified name and makes it the current node.
 void openElement(java.lang.String tagName, int index)
          Opens the element with the specified name and index and makes it the current node.
 java.lang.Object readObject()
          Reads an object from the current element.
 java.lang.Object readObject(int index)
          Reads an object from the current element.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

idobjects

private java.util.HashMap<java.lang.String,java.lang.Object> idobjects
This map is used to unmarshall references to objects to the XML DOM. A key in this map is a String representing a marshalled reference. A value in this map is an unmarshalled Object.


document

private XMLElement document
The document used for input.


current

private XMLElement current
The current node used for input.


factory

private DOMFactory factory
The factory used to create objects from XML tag names.


stack

private java.util.Stack<XMLElement> stack
The stack.

Constructor Detail

NanoXMLDOMInput

public NanoXMLDOMInput(DOMFactory factory,
                       java.io.InputStream in)
                throws java.io.IOException
Throws:
java.io.IOException

NanoXMLDOMInput

public NanoXMLDOMInput(DOMFactory factory,
                       java.io.Reader in)
                throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getTagName

public java.lang.String getTagName()
Returns the tag name of the current element.

Specified by:
getTagName in interface DOMInput

getAttribute

public java.lang.String getAttribute(java.lang.String name,
                                     java.lang.String defaultValue)
Gets an attribute of the current element of the DOM Document.

Specified by:
getAttribute in interface DOMInput

getInheritedAttribute

public java.util.List<java.lang.String> getInheritedAttribute(java.lang.String name)
Gets an attribute of the current element of the DOM Document and of all parent DOM elements.

Specified by:
getInheritedAttribute in interface DOMInput

getText

public java.lang.String getText()
Gets the text of the current element of the DOM Document.

Specified by:
getText in interface DOMInput

getText

public java.lang.String getText(java.lang.String defaultValue)
Gets the text of the current element of the DOM Document.

Specified by:
getText in interface DOMInput

getAttribute

public int getAttribute(java.lang.String name,
                        int defaultValue)
Gets an attribute of the current element of the DOM Document.

Specified by:
getAttribute in interface DOMInput

getAttribute

public double getAttribute(java.lang.String name,
                           double defaultValue)
Gets an attribute of the current element of the DOM Document.

Specified by:
getAttribute in interface DOMInput

getAttribute

public boolean getAttribute(java.lang.String name,
                            boolean defaultValue)
Gets an attribute of the current element of the DOM Document.

Specified by:
getAttribute in interface DOMInput

getElementCount

public int getElementCount()
Returns the number of child elements of the current element.

Specified by:
getElementCount in interface DOMInput

getElementCount

public int getElementCount(java.lang.String tagName)
Returns the number of child elements with the specified tag name of the current element.

Specified by:
getElementCount in interface DOMInput

openElement

public void openElement(int index)
Opens the element with the specified index and makes it the current node.

Specified by:
openElement in interface DOMInput

openElement

public void openElement(java.lang.String tagName)
                 throws java.io.IOException
Opens the last element with the specified name and makes it the current node.

Specified by:
openElement in interface DOMInput
Throws:
java.io.IOException

openElement

public void openElement(java.lang.String tagName,
                        int index)
                 throws java.io.IOException
Opens the element with the specified name and index and makes it the current node.

Specified by:
openElement in interface DOMInput
Throws:
java.io.IOException

closeElement

public void closeElement()
Closes the current element of the DOM Document. The parent of the current element becomes the current element.

Specified by:
closeElement in interface DOMInput
Throws:
java.lang.IllegalArgumentException - if the provided tagName does not match the tag name of the element.

readObject

public java.lang.Object readObject()
                            throws java.io.IOException
Reads an object from the current element.

Specified by:
readObject in interface DOMInput
Throws:
java.io.IOException

readObject

public java.lang.Object readObject(int index)
                            throws java.io.IOException
Reads an object from the current element.

Specified by:
readObject in interface DOMInput
Throws:
java.io.IOException

dispose

public void dispose()
Description copied from interface: Disposable
Disposes of all resources held by this object so that they can be garbage collected.

Specified by:
dispose in interface Disposable