com.bbn.swede.core.dom
Class DocumentRoot

java.lang.Object
  extended bycom.bbn.swede.core.dom.OASTNode
      extended bycom.bbn.swede.core.dom.DocumentRoot

public class DocumentRoot
extends OASTNode

Custom node representing the entire document. DocumentRoot is used as the root of OASTs rather than Rdf so that the tree may contain XML prolog elements in addition to the nodes that make up the RDF graph.

Author:
jlerner

Nested Class Summary
 
Nested classes inherited from class com.bbn.swede.core.dom.OASTNode
OASTNode.NodeCleanupVisitor, OASTNode.NodeInitVisitor
 
Field Summary
 
Fields inherited from class com.bbn.swede.core.dom.OASTNode
_iLength, _iOffset, _nodeParent, _tree, AS_OWL, AS_RDF, AS_RDFS, BASE, COMMENT, DOCTYPE, DOCUMENT, GENERICATTRIBUTE, GENERICPREDICATE, GENERICTHING, LITERAL, NAMESPACE, OWL, OWL_ALLDIFFERENT, OWL_ALLVALUESFROM, OWL_ANNOTATIONPROPERTY, OWL_BACKWARDCOMPATIBLEWITH, OWL_CARDINALITY, OWL_CLASS, OWL_COMPLEMENTOF, OWL_DATARANGE, OWL_DATATYPEPROPERTY, OWL_DEPRECATEDCLASS, OWL_DEPRECATEDPROPERTY, OWL_DIFFERENTFROM, OWL_DISJOINTWITH, OWL_DISTINCTMEMBERS, OWL_EQUIVALENTCLASS, OWL_EQUIVALENTPROPERTY, OWL_FUNCTIONALPROPERTY, OWL_HASVALUE, OWL_IMPORTS, OWL_INCOMPATIBLEWITH, OWL_INTERSECTIONOF, OWL_INVERSEFUNCTIONALPROPERTY, OWL_INVERSEOF, OWL_MAXCARDINALITY, OWL_MINCARDINALITY, OWL_NOTHING, OWL_OBJECTPROPERTY, OWL_ONEOF, OWL_ONPROPERTY, OWL_ONTOLOGY, OWL_ONTOLOGYPROPERTY, OWL_PRIORVERSION, OWL_RESTRICTION, OWL_SAMEAS, OWL_SOMEVALUESFROM, OWL_SYMMETRICPROPERTY, OWL_THING, OWL_TRANSITIVEPROPERTY, OWL_UNIONOF, OWL_VERSIONINFO, PROCESSING_INSTRUCTION, RDF, RDF_ABOUT, RDF_ALT, RDF_BAG, RDF_DATATYPE, RDF_DESCRIPTION, RDF_FIRST, RDF_ID, RDF_LIST, RDF_NODEID, RDF_OBJECT, RDF_PARSETYPE, RDF_PREDICATE, RDF_PROPERTY, RDF_RDF, RDF_RESOURCE, RDF_REST, RDF_SEQ, RDF_STATEMENT, RDF_SUBJECT, RDF_TYPE, RDF_VALUE, RDF_XMLLITERAL, RDFS, RDFS_CLASS, RDFS_COMMENT, RDFS_CONTAINER, RDFS_CONTAINERMEMBERSHIPPROPERTY, RDFS_DATATYPE, RDFS_DOMAIN, RDFS_ISDEFINEDBY, RDFS_LABEL, RDFS_LITERAL, RDFS_MEMBER, RDFS_RANGE, RDFS_RESOURCE, RDFS_SEEALSO, RDFS_SUBCLASSOF, RDFS_SUBPROPERTYOF, S_OWL_URI, S_RDF_URI, S_RDFS_URI, S_XSD_URI, UNPARSEABLE, XML_VERSION
 
Constructor Summary
DocumentRoot(IFile file, IOWLAbstractSyntaxTree tree)
          Creates a DocumentRoot element for a file.
 
Method Summary
protected  int[] allowedChildren()
          Returns an array of node types indicating what is allowed as a child of the node.
 Object clone()
          Creates a deep copy of a node and all nodes below it in the tree.
 boolean displace(int offset, int length)
          Lengthens the root node to accomodate a character displacement.
protected  OASTNode duplicateType()
          Creates a new OAST node of the same type as this one.
protected  Base findXmlBase()
          Returns the XML base for the associated file, as stored in the project metadata.
 String generateNodeText()
          Subclasses must implement this method to provide text representing the contents of the node and its children.
 IFile getFile()
          Retrieves the file the document root represents.
 String getName()
          Returns the node's local name.
 String getNamespace()
          Returns the namespace abbreviation for the node.
 int getNodeType()
          Returns an integer indicating a node's type.
 String getQName()
          Returns the node's qualified name.
 IRegion[] simplePartitioning()
          Returns a rough partitioning of the node based on the node's tag structure; child nodes are not taken into account.
 String toString()
          Returns a string representation of the node.
 
Methods inherited from class com.bbn.swede.core.dom.OASTNode
accept, appendChild, attach, cleanup, createChild, createChildAttribute, detach, displace, endsBefore, findCommonAncestor, getChildren, getContainingChild, getDefaultNamespace, getFirstChild, getLastAttribute, getLength, getLevel, getLockObject, getNamespaces, getNextChild, getNodesOfType, getNodesOfType, getOffset, getOWLAbstractSyntaxTree, getOWLDocument, getParent, getPreviousChild, getQName, getRoot, getUri, getXmlBase, init, insert, match, remove, replace, setLength, setOffset, startsAfter
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DocumentRoot

public DocumentRoot(IFile file,
                    IOWLAbstractSyntaxTree tree)
Creates a DocumentRoot element for a file. This does not cause the file to be parsed, it is simply stored for reference purposes.

Parameters:
file - The file the root element represents.
tree - The OWL abstract syntax tree for which this node is the root
Method Detail

getFile

public IFile getFile()
Retrieves the file the document root represents.

Returns:
The associated file.

allowedChildren

protected int[] allowedChildren()
Description copied from class: OASTNode
Returns an array of node types indicating what is allowed as a child of the node. Node types are defined as public static fields in OASTNode. This method is not currently used, but will eventually become important for real-time syntax checking.

Specified by:
allowedChildren in class OASTNode
Returns:
An array of allowed node types.

getNodeType

public int getNodeType()
Description copied from class: OASTNode
Returns an integer indicating a node's type. Subclasses must override this method to return one of the node types defined as public static fields in OASTNode. There is a distinct node type for each langauge element as well as several additional types for generics and XML constructs.

Specified by:
getNodeType in class OASTNode
Returns:
The type of this node

getName

public String getName()
Description copied from class: OASTNode
Returns the node's local name. This implementation returns local names for language nodes, and null for everything else. Subclasses that represent non-language tags and attributes should override this method to return a non-null local name.

Overrides:
getName in class OASTNode
Returns:
The local name of the node, or null if it is not a language node

getNamespace

public String getNamespace()
Description copied from class: OASTNode
Returns the namespace abbreviation for the node. This implementation returns one of "owl", "rdfs", or "rdf" for language nodes or null for anything else. Subclasses that represent non-language tags or attributes should override this method to return a non-null namespace.

Overrides:
getNamespace in class OASTNode
Returns:
The namespace abbreviation for the node, or null if it is not a language node

getQName

public String getQName()
Description copied from class: OASTNode
Returns the node's qualified name. This implementation returns qnames for language nodes, and null for everything else. Subclasses that represent non-language tags and attributes should override this method to return a non-null qname.

Overrides:
getQName in class OASTNode
Returns:
The qualified name of the node, or null if it is not a lanuage node

toString

public String toString()
Description copied from class: OASTNode
Returns a string representation of the node. The default implementation just returns the node's qname, but subclasses may override it to supply something more appropriate.

Overrides:
toString in class OASTNode
Returns:
A string representation of the node.

generateNodeText

public String generateNodeText()
Description copied from class: OASTNode
Subclasses must implement this method to provide text representing the contents of the node and its children. This method is only used by the editor for inserting an extrnally-constructed node (i.e., as a result of a New... wizard) into the text. The formatting of the generated text is thus unimportant, as it will likely be modified by the Auto-Indent Strategy and Content Formatter anyway.

Specified by:
generateNodeText in class OASTNode
Returns:
A text approximation of the node and its children

findXmlBase

protected Base findXmlBase()
Returns the XML base for the associated file, as stored in the project metadata. This override of the standard findXmlBase() functionality ensures that the recursion in OASTNode.getXmlBase() always returns a value.

Overrides:
findXmlBase in class OASTNode
Returns:
A new Base node constructed based on the base URI stored in the project metadata.
See Also:
OASTNode.getXmlBase(), OASTNode.findXmlBase()

simplePartitioning

public IRegion[] simplePartitioning()
Description copied from class: OASTNode

Returns a rough partitioning of the node based on the node's tag structure; child nodes are not taken into account. Partitioning should be as follows:

Specified by:
simplePartitioning in class OASTNode
Returns:
A rough partitioning of the node.

displace

public boolean displace(int offset,
                        int length)
Lengthens the root node to accomodate a character displacement. This is different than the standard displace behavior, which would adjust the node's starting position if the displacement offset is 0. The root must always start at offset 0, so all displacements must be handled by adjusting the length.

Overrides:
displace in class OASTNode
Parameters:
offset - The location of the displacement.
length - The magnitude of the displacement. May be negative.
Returns:
true to ensure that the appropriate child nodes are displaced.
See Also:
OASTNode.displace(int, int)

duplicateType

protected OASTNode duplicateType()
Description copied from class: OASTNode
Creates a new OAST node of the same type as this one.

Specified by:
duplicateType in class OASTNode
Returns:
A new node of the same node type

clone

public Object clone()
Description copied from class: OASTNode
Creates a deep copy of a node and all nodes below it in the tree. The resulting copy is not attached to any OWL abstract syntax tree.

Overrides:
clone in class OASTNode
Returns:
A deep copy of this node, including copies of any node structure below it in the tree.


Copyright © 2004-2005 BBN Technologies. All Rights Reserved.