© 2003 BEA Systems, Inc.

com.bea.content
Class Node

java.lang.Object
  |
  +--com.bea.content.ContentEntity
        |
        +--com.bea.content.Node
All Implemented Interfaces:
Serializable

public class Node
extends ContentEntity

A Node represents an element in a hieararchy.

A Node can either be Hierarchy or Content Node. A Hierarchy Node can contain both other Hierarchy and Content Nodes while a Content Node can only contain other Content Nodes.

Nodes have a few system properties that are set by the repository. Nodes also may contain Properties based on the ObjectClass (type) defined for it. Both Content and Hierarchy Nodes may contain an ObjectClass and Properties.

Nodes are uniquely identified in a repository by the uid on their ID. The uid could be a uuid, database id, the path, etc. All nodes also have a path that uniquely identifies it within the repository. The path should be in unix-like format such as /a/b/c where / is the root and a is the root's child. The path must always begin with / and never end with it. So neither of the following are valid: a/b/c/d or /a/b/d/d/.

Node names must not contain either forward, or backslashes.

A Node's Properties may be lazy loaded, depending on the implementation of the underyling operation that retrieved the Node.

See Also:
Serialized Form

Field Summary
static int CONTENT
          This defines a Node that represents content, such as a file with metadata.
static int HIERARCHY
          This defines a Node as a container, like a Folder.
static int NODE
          This could either be a HIERARCHY or CONTENT Node.
 
Fields inherited from class com.bea.content.ContentEntity
id
 
Constructor Summary
Node(Calendar createdDate, String createdBy, boolean hasChildren, ID id, String modifiedBy, Calendar modifiedDate, ObjectClass objectClass, ID parentId, String path, Property[] properties, int type)
          Constructor with all attributes.
 
Method Summary
 Node[] getChildren()
          Returns the children of this node.
 Node[] getContentChildren()
          Returns the Content children of this node.
 String getCreatedBy()
          The user who created this node.
 Calendar getCreatedDate()
          The date this node was created on.
 Node[] getHierarchyChildren()
          Returns the Hierarchy children of this node.
 String getModifiedBy()
          The user who last modified this Node.
 Calendar getModifiedDate()
          The Date when this Node was last modified.
 String getName()
          The Node name.
 ObjectClass getObjectClass()
          The ObjectClass to which this Node is associated.
 ID getParentId()
          Gets the id for the parent of this node.
 String getPath()
          The path where this Node resides.
 Property getPrimaryProperty()
          Gets the primary property for this Node, or null if there isn't one or when the node doesn't have an object class (such as HIERARCHY nodes).
 Property[] getProperties()
          Gets the Properties for this node.
 Property getProperty(String name)
          Returns the property referenced by name or null if the property does not exist.
 InputStream getPropertyBytes(ID propertyId)
          Returns the bytes for the given property.
 int getType()
          The type of the Node.
 boolean hasChildren()
          True if this node has children.
 void hasChildren(boolean hasChildren)
          Set true if the node has children, false if not.
 boolean isPropertiesNull()
          Returns true if the properties have not been set in memory.
 void setCreatedBy(String createdBy)
          Sets the user who created this node.
 void setCreatedDate(Calendar createdDate)
          Sets the date this node was created on.
 void setModifiedBy(String modifiedBy)
          Sets the user who last modified this Node.
 void setModifiedDate(Calendar modifiedDate)
          Sets the Date when this Node was last modified.
 void setNodeOps(NodeOps nodeOps)
          Sets the NodeOps to perform operations on the repository.
 void setObjectClass(ObjectClass objectClass)
          Sets the ObjectClass to which this Node is associated.
 void setParentId(ID parentId)
          Sets this Node's parent id.
 void setPath(String path)
          Sets the path of this Node.
 void setProperties(Property[] properties)
          Sets the Properties for this node.
 void setType(int type)
          Gets the Node type.
 String toString()
          Returns the attributes of this Node in a String.
 
Methods inherited from class com.bea.content.ContentEntity
getId, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

HIERARCHY

public static final int HIERARCHY
This defines a Node as a container, like a Folder. A Hierarchy Node may contain other Hierarchy nodes as well as Content Nodes.

See Also:
Constant Field Values

CONTENT

public static final int CONTENT
This defines a Node that represents content, such as a file with metadata. A Content Node may contain other Content Nodes, but not Hierarchy Nodes.

See Also:
Constant Field Values

NODE

public static final int NODE
This could either be a HIERARCHY or CONTENT Node. This is not a valid definition for a Node (getType() should never return this value), but may be used as a description.

See Also:
Constant Field Values
Constructor Detail

Node

public Node(Calendar createdDate,
            String createdBy,
            boolean hasChildren,
            ID id,
            String modifiedBy,
            Calendar modifiedDate,
            ObjectClass objectClass,
            ID parentId,
            String path,
            Property[] properties,
            int type)
Constructor with all attributes.

Parameters:
createdDate - - the date the Node was created, as defined by the Repository.
createdBy - - the user id who created this Node
hasChildren - - true if this Node hasChildren, false otherwise.
id - - the id for the Node.
modifiedBy - - the user id who last modified this Node.
objectClass - - the ObjectClass associated with this Node, null if an ObjectClass is not associated with this Node.
parentId - - the Id for the parent of this Node, null if Node resides at root.
path - - the path of the Node in unix-like format. For example, /foo/foo2
properties - - Properties for this Node, null if none are defined.
type - - the type of Node, either HIERARCHY or CONTENT.
Method Detail

getCreatedDate

public Calendar getCreatedDate()
The date this node was created on.


setCreatedDate

public void setCreatedDate(Calendar createdDate)
Sets the date this node was created on.


getCreatedBy

public String getCreatedBy()
The user who created this node.


setCreatedBy

public void setCreatedBy(String createdBy)
Sets the user who created this node.


getModifiedBy

public String getModifiedBy()
The user who last modified this Node.


setModifiedBy

public void setModifiedBy(String modifiedBy)
Sets the user who last modified this Node.


getModifiedDate

public Calendar getModifiedDate()
The Date when this Node was last modified.


setModifiedDate

public void setModifiedDate(Calendar modifiedDate)
Sets the Date when this Node was last modified.


getName

public String getName()
The Node name. This is the last element in the path.


setNodeOps

public void setNodeOps(NodeOps nodeOps)
Sets the NodeOps to perform operations on the repository. This NodeOps may be used internally to lazy load attributes such as Properties.


getObjectClass

public ObjectClass getObjectClass()
The ObjectClass to which this Node is associated.


setObjectClass

public void setObjectClass(ObjectClass objectClass)
Sets the ObjectClass to which this Node is associated.


getParentId

public ID getParentId()
Gets the id for the parent of this node.


setParentId

public void setParentId(ID parentId)
Sets this Node's parent id.


getPath

public String getPath()
The path where this Node resides. This is unique to the repository.


setPath

public void setPath(String path)
Sets the path of this Node. This is unique to the repository.


getPrimaryProperty

public Property getPrimaryProperty()
                            throws RepositoryException
Gets the primary property for this Node, or null if there isn't one or when the node doesn't have an object class (such as HIERARCHY nodes).

RepositoryException

getProperty

public Property getProperty(String name)
                     throws AuthorizationException
Returns the property referenced by name or null if the property does not exist. If the Properties are not currently in memory, they will be retrieved. If you need to check if the Node instance in memory has its Propereties set, use isPropertiesNull().

Throws:
AuthorizationException - - if the user attempting the operation is not authrorized.

getProperties

public Property[] getProperties()
                         throws AuthorizationException
Gets the Properties for this node. Each property must have a corresponding PropertyDefinition defined in the Node's ObjectClass. If the Properties are not currently in memory, they will be retrieved. If you need to check if the Node instance in memory has its Propereties set, use isPropertiesNull().

Throws:
AuthorizationException - - if the user attempting the operation is not authrorized.

setProperties

public void setProperties(Property[] properties)
Sets the Properties for this node. Each property must have a corresponding PropertyDefinition defined in the Node's ObjectClass.


isPropertiesNull

public boolean isPropertiesNull()
Returns true if the properties have not been set in memory.


getType

public int getType()
The type of the Node. Either HIERARCHY or CONTENT.


setType

public void setType(int type)
Gets the Node type. Either HIERARCHY or CONTENT.


hasChildren

public boolean hasChildren()
True if this node has children. If the node does have children they may be retrieved through the NodeOps.


hasChildren

public void hasChildren(boolean hasChildren)
Set true if the node has children, false if not. This does not indicate if it currently has them as part of the instance (in memory), or if they will be lazy loaded, but rather simply that they exist.


getChildren

public Node[] getChildren()
                   throws AuthorizationException
Returns the children of this node. This is a convenience method to NodeOps.getNodeChildren() and does not keep the retrieved values in memory as part of this instance.

Throws:
AuthorizationException - - if the user attempting the operation is not authrorized.

getContentChildren

public Node[] getContentChildren()
                          throws AuthorizationException
Returns the Content children of this node. This is a convenience method to NodeOps.getNodeChildren() and does not keep the retrieved values in memory as part of this instance.

Throws:
AuthorizationException - - if the user attempting the operation is not authrorized.

getHierarchyChildren

public Node[] getHierarchyChildren()
                            throws AuthorizationException
Returns the Hierarchy children of this node. This is a convenience method to NodeOps.getNodeChildren() and does not keep the retrieved values in memory as part of this instance.

Throws:
AuthorizationException - - if the user attempting the operation is not authrorized.

getPropertyBytes

public InputStream getPropertyBytes(ID propertyId)
                             throws AuthorizationException,
                                    NoSuchPropertyException
Returns the bytes for the given property. This is a convenience method to NodeOps.getPropertyBytes() and does not keep the retrieved values in memory as part of this instance.

WARNING: If using this interface to retrieve binary content from a BEA Repository, please read the javadoc for RepositoryConfig.

Throws:
AuthorizationException - - if the user attempting the operation is not authrorized.
NoSuchPropertyException - - if the propertyId is not a valid one.

toString

public String toString()
Returns the attributes of this Node in a String.

Overrides:
toString in class ContentEntity

© 2003 BEA Systems, Inc.

Copyright © 2003 BEA Systems, Inc. All Rights Reserved