org.ozoneDB.xml.dom
Class EntityImpl

java.lang.Object
  extended byorg.ozoneDB.OzoneObject
      extended byorg.ozoneDB.xml.dom.NodeImpl
          extended byorg.ozoneDB.xml.dom.EntityImpl
All Implemented Interfaces:
org.w3c.dom.Entity, EntityProxy, java.io.Externalizable, org.w3c.dom.Node, NodeProxy, org.ozoneDB.OzoneCompatible, org.ozoneDB.OzoneCompatibleOrProxy, org.ozoneDB.OzoneRemote, java.io.Serializable

public class EntityImpl
extends NodeImpl
implements EntityProxy, java.io.Externalizable

Implements an entity.

Notes:

  1. Node type is Node.ENTITY_NODE
  2. Node supports childern
  3. Node does not have a value
  4. Node only accessible from DocumentType

Version:
$Revision: 1.1 $ $Date: 2003/11/02 17:26:14 $
Author:
Assaf Arkin
See Also:
Entity, NodeImpl, Serialized Form

Field Summary
protected  java.lang.String _notation
          The notation of this entity, if specified.
protected  java.lang.String _publicId
          The public identifier of this entity, if specified.
protected  java.lang.String _systemId
          The system identifier of this entity, if specified.
static short STATE_DECLARED
          Entity has been declared but not parsed.
static short STATE_NOT_FOUND
          Entity not found.
static short STATE_PARSED
          Entity has been parsed.
static short STATE_PARSING
          Entity is being parsed.
 
Fields inherited from class org.ozoneDB.xml.dom.NodeImpl
ATTLIST_DECL_NODE, ELEMENT_DECL_NODE, PARAM_ENTITY_NODE
 
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
Constructor Summary
EntityImpl()
           
EntityImpl(DocumentImpl owner, java.lang.String name, java.lang.String internalValue)
          Constructs an internal general entity.
EntityImpl(DocumentImpl owner, java.lang.String name, java.lang.String systemId, java.lang.String publicId)
          Constructs an external general entity.
EntityImpl(DocumentImpl owner, java.lang.String name, java.lang.String systemId, java.lang.String publicId, java.lang.String notation)
          Constructs an unparsed general entity.
 
Method Summary
 java.lang.Object clone()
           
 void cloneInto(NodeProxy into, boolean deep)
          This clone method is called after a new node has been constructed to copy the contents of this node into the new one.
 org.w3c.dom.Node cloneNode(boolean deep)
           
 boolean equals(java.lang.Object other)
           
 java.lang.String getInternal()
           
 short getNodeType()
          Abstract method must be implemented by each node class.
 java.lang.String getNotationName()
           
 java.lang.String getPublicId()
           
 short getState()
          Returns the parsing state of this entity.
 java.lang.String getSystemId()
           
 void init(DocumentProxy owner, java.lang.String name)
           
 void init(DocumentProxy owner, java.lang.String name, java.lang.String value)
           
 void init(DocumentProxy owner, java.lang.String name, java.lang.String systemId, java.lang.String publicId)
           
 void init(DocumentProxy owner, java.lang.String name, java.lang.String systemId, java.lang.String publicId, java.lang.String notation)
           
 boolean isInternal()
          Returns true if entity is an internal general entity.
 boolean isUnparsed()
          Returns true if entity is an unparsed general entity.
 void readExternal(java.io.ObjectInput in)
           
 void setInternal(java.lang.String internalValue)
           
 void setNodeValue(java.lang.String value)
          Changes the value of the node.
 void setNotationName(java.lang.String notation)
           
 void setPublicId(java.lang.String publicId)
           
 void setState(short newState)
          Changes the parsing state of this entity.
 void setSystemId(java.lang.String systemId)
           
protected  boolean supportsChildern()
           
 java.lang.String toString()
           
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class org.ozoneDB.xml.dom.NodeImpl
appendChild, castNewChild, castOldChild, getAttributes, getChild, getChildCount, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, init, insertBefore, isReadOnly, isSupported, normalize, notifyIterators, removeChild, replaceChild, setNextSibling, setNodeName, setOwnerDocument, setParentNode, setPrefix, setPreviousSibling, setReadOnly, supports
 
Methods inherited from class org.ozoneDB.OzoneObject
container, database, deleteRecursive, getHandle, getObjectID, handle, hashCode, onActivate, onCreate, onDelete, onPassivate, requireWriteLocking, self, setContainer, toXML
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.ozoneDB.OzoneCompatibleOrProxy
getObjectID
 
Methods inherited from interface org.w3c.dom.Node
appendChild, getAttributes, getChildNodes, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, hasAttributes, hasChildNodes, insertBefore, isSupported, normalize, removeChild, replaceChild, setPrefix
 
Methods inherited from interface org.ozoneDB.xml.dom.NodeProxy
getChild, getChildCount, getChildNodes, init, isReadOnly, setNextSibling, setNodeName, setOwnerDocument, setParentNode, setPreviousSibling, setReadOnly
 

Field Detail

_notation

protected java.lang.String _notation
The notation of this entity, if specified.


_systemId

protected java.lang.String _systemId
The system identifier of this entity, if specified.


_publicId

protected java.lang.String _publicId
The public identifier of this entity, if specified.


STATE_DECLARED

public static final short STATE_DECLARED
Entity has been declared but not parsed. This is the initial state for an entity after it has been declared in the DTD but before it is used in the document contents.

See Also:
Constant Field Values

STATE_PARSING

public static final short STATE_PARSING
Entity is being parsed. This state designates that the entity is being parsed right now. State is used to identify circular references.

See Also:
Constant Field Values

STATE_PARSED

public static final short STATE_PARSED
Entity has been parsed. This state indicates that entity has been parsed and it's parsed contents is contained in its child nodes.

See Also:
Constant Field Values

STATE_NOT_FOUND

public static final short STATE_NOT_FOUND
Entity not found. The entity could not be parsed before.

See Also:
Constant Field Values
Constructor Detail

EntityImpl

public EntityImpl(DocumentImpl owner,
                  java.lang.String name,
                  java.lang.String systemId,
                  java.lang.String publicId,
                  java.lang.String notation)
Constructs an unparsed general entity. Entity system identifier and notation name must be provided, public identifier is optional.

Parameters:
owner - The owner document
name - The entity name
systemId - The system identifier
publicId - The public identifier, if specified
notation - The notation, if specified

EntityImpl

public EntityImpl(DocumentImpl owner,
                  java.lang.String name,
                  java.lang.String systemId,
                  java.lang.String publicId)
Constructs an external general entity. Entity system identifier must be provided, public identifier is optional.

Parameters:
owner - The owner document
name - The entity name
systemId - The system identifier
publicId - The public identifier, if specified

EntityImpl

public EntityImpl(DocumentImpl owner,
                  java.lang.String name,
                  java.lang.String internalValue)
Constructs an internal general entity. Entity value must be provided.

Parameters:
owner - The owner document
name - The entity name
internalValue - The unparsed entity value

EntityImpl

public EntityImpl()
Method Detail

getNodeType

public short getNodeType()
Description copied from class: NodeImpl
Abstract method must be implemented by each node class.

Specified by:
getNodeType in interface org.w3c.dom.Node
Specified by:
getNodeType in class NodeImpl
See Also:
Node.getNodeType()

setNodeValue

public final void setNodeValue(java.lang.String value)
Description copied from class: NodeImpl
Changes the value of the node. Not all node types support the notion of a value. If the value is not supported by a particular node type, it will throw an exception when calling this method. The following table specifies which node types support values:
 Element                  Not supported
 Attr                     Value supported
 Text                     Value supported
 CDATASection             Value supported
 EntityReference          Not supported
 Entity                   Not supported
 ProcessingInstruction    Value supported
 Comment                  Value supported
 Document                 Not supported
 DocumentType             Not supported
 DocumentFragment         Not supported
 Notation                 Not supported
 
For most node types, if the value is set to null, NodeImpl.getNodeValue() will return an empty string instead.

Specified by:
setNodeValue in interface org.w3c.dom.Node
Overrides:
setNodeValue in class NodeImpl
Parameters:
value - New value of node

getPublicId

public java.lang.String getPublicId()
Specified by:
getPublicId in interface org.w3c.dom.Entity

setPublicId

public void setPublicId(java.lang.String publicId)
Specified by:
setPublicId in interface EntityProxy

getSystemId

public java.lang.String getSystemId()
Specified by:
getSystemId in interface org.w3c.dom.Entity

setSystemId

public void setSystemId(java.lang.String systemId)
Specified by:
setSystemId in interface EntityProxy

getNotationName

public java.lang.String getNotationName()
Specified by:
getNotationName in interface org.w3c.dom.Entity

setNotationName

public void setNotationName(java.lang.String notation)
Specified by:
setNotationName in interface EntityProxy

getInternal

public final java.lang.String getInternal()
Specified by:
getInternal in interface EntityProxy

isUnparsed

public boolean isUnparsed()
Returns true if entity is an unparsed general entity. An unparsed entity is one for which a notation has been specified.

Returns:
True if unparsed general entity

isInternal

public boolean isInternal()
Returns true if entity is an internal general entity. An internal entity is one for which a value has been defined. An external entity is one for which an external entity has been assigned through either system or public identifiers.

If true is returned, then getInternal() will return a string (might be empty).

Specified by:
isInternal in interface EntityProxy
Returns:
True if internal general entity

setInternal

public void setInternal(java.lang.String internalValue)
Specified by:
setInternal in interface EntityProxy

getState

public short getState()
Returns the parsing state of this entity.

Returns:
State of entity

setState

public void setState(short newState)
Changes the parsing state of this entity. Note that only some changes are allowed: from declared to parsing, parsed or not found; from parsing to parsed or not found; from not found to declared.

Specified by:
setState in interface EntityProxy
Parameters:
newState - New state of entity

equals

public boolean equals(java.lang.Object other)

clone

public final java.lang.Object clone()

cloneNode

public final org.w3c.dom.Node cloneNode(boolean deep)
Specified by:
cloneNode in interface org.w3c.dom.Node

toString

public java.lang.String toString()

supportsChildern

protected final boolean supportsChildern()
Returns:
True if childern supported by this node type

cloneInto

public void cloneInto(NodeProxy into,
                      boolean deep)
Description copied from class: NodeImpl
This clone method is called after a new node has been constructed to copy the contents of this node into the new one. It clones in contents but not in context, and guarantees that the cloned node will pass the equality test (see OzoneObject.equals(java.lang.Object)).

into must be a valid node of the exact same class as this one. deep is true if deep cloning (includes all children nodes) is to be performed. If deep is false, the clone might not pass the equality test.

Derived classes override and call this method to add per-class variable copying. This method is called by Node.cloneNode(boolean) and the default Object.clone() method.

Contents cloning duplicates the node's name and value, and its children. It does not duplicate it's context, that is, the node's parent or sibling. Initially a clone node has no parents or siblings. However, the node does belong to the same document, since all nodes must belong to some document. The cloned node is never read-only.

Specified by:
cloneInto in interface NodeProxy
Overrides:
cloneInto in class NodeImpl
Parameters:
into - A node into which to duplicate this one
deep - True if deep cloning is required

init

public void init(DocumentProxy owner,
                 java.lang.String name)
Specified by:
init in interface EntityProxy

init

public void init(DocumentProxy owner,
                 java.lang.String name,
                 java.lang.String value)
Specified by:
init in interface EntityProxy

init

public void init(DocumentProxy owner,
                 java.lang.String name,
                 java.lang.String systemId,
                 java.lang.String publicId)
Specified by:
init in interface EntityProxy

init

public void init(DocumentProxy owner,
                 java.lang.String name,
                 java.lang.String systemId,
                 java.lang.String publicId,
                 java.lang.String notation)
Specified by:
init in interface EntityProxy

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Overrides:
writeExternal in class NodeImpl
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Overrides:
readExternal in class NodeImpl
Throws:
java.io.IOException
java.lang.ClassNotFoundException


Copyright © 2004 The Ozone Database Project - www.ozone-db.org. All Rights Reserved.