|
Copyright © 2000, 2008, Oracle and/or its affiliates. All rights reserved. | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.bea.content.ContentEntity com.bea.content.Node
public class Node
A Node represents a content element in a hierarchy. A node can be uniquely identified via its path or its ID.
WARNING: If using this interface to retrieve binary content from
a WLP Repository, please read the javadoc for
RepositoryConfig
.
All nodes contain system metadata, such as name, path, parentId, created date, etc. The system metadata can be retrieved directly from the node, via methods such as Node.getName(). The system metadata is available on all nodes, regardless of their ObjectClass, and is set by the repository. All nodes must have a non-empty node name. Node names must not contain either forward or backslashes.
Nodes also may contain Properties (user metadata) based on the ObjectClass (type) defined for it. Nodes may optionally have a single associated ObjectClass. The ObjectClass contains a set of Property Definitions, which specify which Properties a Node of that ObjectClass may contain. For example, if Node n is of ObjectClass o, and o has a single-valued String PropertyDefinition stringVal, then Node n may have a Property named 'stringVal' with a single-valued string Value.
The concept of a 'node type' is deprecated. Newly written client code should not use this concept when creating or retrieving nodes, and should consider other means for expressing this concept, such as using nodes of different ObjectClasses (or no ObjectClass), the folder concept, or by using a property definition. Node type was previously defined as follows: A Node can either be a 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. Both Content and Hierarchy Nodes may contain an ObjectClass and Properties. Nodes are uniquely identified in a repository by an opaque uid on their ID. The uid could be a uuid, database id, the path, etc. The Repository root node is an artificial node (cannot be retrieved), which has a uid of either null or the empty string. All node IDs used by VCR client code must have the repository name specified. All nodes have a path composed of non-empty node names that uniquely identifies it within the repository. The path varies according to who is using the node -- either VCR client code or Repository code. From a VCR client perspective, the path should be in unix-like format starting with the repositoryname, such as /WLP_Repository/a/b/c where WLP_Repository is the repository name, a is a root level node name, and b is the name of a child node of a. From a Repository implementation perspective, the path is identical, except it must not start with the repository name. Using the same example, the path in the repository would be /a/b/c. The following are some rules related to the node's path:ISortableFilterablePagedList
from
INodeManager
can sort and filter the responses. For a discussion on paging,
sorting and filtering, see com.bea.content.paging
and ContentListKeys
.
Native sortable properties for the WLP Repository are found via the
ISortablePagedList.getNativeSortableProperties()
method on a paged list of
Node objects.
For Nodes in the WLP Repository, the current list of native sortable and filterable properties is:
PathHelper.SEPARATOR
,
Serialized FormField Summary | |
---|---|
static int |
CONTENT
Deprecated |
static int |
HIERARCHY
Deprecated |
static int |
NODE
Deprecated |
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)
Constructor with all attributes -- for use by repository implementations. |
|
Node(Calendar createdDate,
String createdBy,
boolean hasChildren,
ID id,
String modifiedBy,
Calendar modifiedDate,
ObjectClass objectClass,
ID parentId,
String path,
Property[] properties,
int type)
Deprecated due to the deprecated type parameter -- |
Method Summary | |
---|---|
Object |
clone()
Clones a node with its properties and values. |
Node[] |
getChildren()
Deprecated This method does not perform security check before returning results, therefore it may not return correct results. Use INodeManager.getNodes(ContentContext,ID) instead. |
Node[] |
getContentChildren()
Deprecated This method does not perform security check before returning results, therefore it may not return correct results. Use INodeManager.getNodes(ContentContext,ID) instead. |
String |
getCreatedBy()
The user who created this node. |
Calendar |
getCreatedDate()
The date this node was created on. |
Node[] |
getHierarchyChildren()
Deprecated This method does not perform security check before returning results, therefore it may not return correct results. Use INodeManager.getNodes(ContentContext,ID) instead. |
int |
getLifeCycleStatus()
Deprecated Please use getWorkflowStatus() |
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()
Retrieves the ObjectClass (possibly null) associated with this Node. |
ID |
getObjectClassId()
Retrieves the id (possibly null) for the ObjectClass associated with this node. |
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 |
Property[] |
getProperties()
Gets the Properties for this node. |
Property[] |
getProperties(String name)
Returns the properties referenced by name or null if the property does not exist. |
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()
Deprecated |
String |
getURLEncodedPath()
Returns a path which can be used in conjunction with the ShowPropertyServlet . |
Workflow |
getWorkflow()
Return the workflow associated with the node. |
ID |
getWorkflowId()
Return the workflow ID set on the node. |
int |
getWorkflowStatus()
Returns the status for this 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. |
boolean |
isRetired()
Returns true if the node's Workflow status is retired. |
void |
isRetired(boolean isRetired)
Sets the retired status for the node. |
void |
setCreatedBy(String createdBy)
Sets the user who created this node. |
void |
setCreatedDate(Calendar createdDate)
Sets the date this node was created on. |
void |
setLifeCycleStataus(int lifeCycleStatus)
Deprecated Please use setWorkflowStatus(int) |
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 |
setName(String name)
Set the node's name. |
void |
setNodeOps(NodeOps nodeOps)
Sets the NodeOps to perform operations on the repository. |
void |
setObjectClass(ObjectClass objectClass)
Sets the ObjectClass associated with this Node |
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 all properties for this node as specified. |
void |
setProperty(Property property)
Sets a property for this node as specified. |
void |
setType(int type)
Deprecated |
void |
setWorkflowId(ID workflowId)
Sets the workflowId for the node. |
void |
setWorkflowOps(WorkflowOps workflowOps)
Sets the WorkflowOps to perform workflow lookup on the repository. |
void |
setWorkflowStatus(int workflowStatus)
Sets the workflow status. |
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 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
@Deprecated public static final int HIERARCHY
@Deprecated public static final int CONTENT
@Deprecated public static final int NODE
HIERARCHY
or CONTENT
Node.
This is not a valid definition for a Node (getType()
should never return this value), but may be used when querying nodes.
Constructor Detail |
---|
@Deprecated public Node(Calendar createdDate, String createdBy, boolean hasChildren, ID id, String modifiedBy, Calendar modifiedDate, ObjectClass objectClass, ID parentId, String path, Property[] properties, int type)
createdDate
- - the date the Node was created, as defined by the Repository.createdBy
- - the user id who created this NodehasChildren
- - true if this Node hasChildren, false otherwise. A repository may set hasChildren=true if
it is expensive to determine if a Node has children.id
- - the id for the Node.modifiedBy
- - the user id who last modified this Node.modifiedDate
- - the date the Node was modified.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/foo2properties
- - Properties for this Node, null if none are defined.type
- - the type of Node, either HIERARCHY
or CONTENT
.public Node(Calendar createdDate, String createdBy, boolean hasChildren, ID id, String modifiedBy, Calendar modifiedDate, ObjectClass objectClass, ID parentId, String path, Property[] properties)
createdDate
- - the date the Node was created, as defined by the Repository.createdBy
- - the user id who created this NodehasChildren
- - true if this Node hasChildren, false otherwise. A repository may set hasChildren=true
if it is expensive to determine if a node has children.id
- - the id for the Node. The ID uid must be set.modifiedBy
- - the user id who last modified this Node.modifiedDate
- - the date the Node was modified.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, without the repository name.
For example, /foo/foo2properties
- - Properties for this Node, null if none are defined or if lazy-loading should be used.Method Detail |
---|
public Calendar getCreatedDate()
public void setCreatedDate(Calendar createdDate)
createdDate
- The node's created date.public String getCreatedBy()
public void setCreatedBy(String createdBy)
createdBy
- The user who created this node.public String getModifiedBy()
public void setModifiedBy(String modifiedBy)
modifiedBy
- The user who modified this node.public Calendar getModifiedDate()
public void setModifiedDate(Calendar modifiedDate)
modifiedDate
- The date this node was last modified.public String getName()
public void setName(String name)
name
- The new node namepublic void setNodeOps(NodeOps nodeOps)
nodeOps
- The nodeOps.public void setWorkflowOps(WorkflowOps workflowOps)
workflowOps
- The WorkflowOps.public ID getObjectClassId()
public ObjectClass getObjectClass()
public void setObjectClass(ObjectClass objectClass)
objectClass
- The node's ObjectClass.public ID getParentId()
public void setParentId(ID parentId)
parentId
- The node's parent node id.public String getPath()
public String getURLEncodedPath()
ShowPropertyServlet
.
This is a UTF-8 URLEncoded path leaving the '/'
character intact for use in that context.
public void setPath(String path)
path
- The node's path.@Deprecated public int getLifeCycleStatus()
getWorkflowStatus()
Workflow.PUBLISHED
or Workflow.RETIRED
.
Workflow
.public int getWorkflowStatus()
Workflow.PUBLISHED
or Workflow.RETIRED
.
Workflow
.@Deprecated public void setLifeCycleStataus(int lifeCycleStatus)
setWorkflowStatus(int)
Workflow.PUBLISHED
or Workflow.RETIRED
.
The default value is Workflow.PUBLISHED
.
This is used for such things as Content Selectors. When searching for published nodes,
all those set as Workflow.RETIRED
will be ignored.
lifeCycleStatus
- The workflow status as defined in the Workflow
object.public void setWorkflowStatus(int workflowStatus)
Workflow.PUBLISHED
or Workflow.RETIRED
.
The default value is Workflow.PUBLISHED
.
This is used for such things as Content Selectors. When searching for published nodes,
all those set as Workflow.RETIRED
will be ignored.
workflowStatus
- The workflow status as defined in the Workflow
object.public boolean isRetired()
Workflow
status is retired.
The default value is false.
This is used for such things as Content Selectors. When searching for published nodes,
all those set as Workflow.RETIRED
will be ignored.
getWorkflowStatus()
public void isRetired(boolean isRetired)
Workflow.RETIRED
will be ignored.
isRetired
- True if the node should be retired.public Property getPrimaryProperty() throws RepositoryException
RepositoryException
- If the retrieval fails.public Property getProperty(String name) throws AuthorizationException
isPropertiesNull()
.
name
- The name of the property to retrieve.
AuthorizationException
- - if the user attempting the operation is not authorized.
For nested type properties, the name must reflect the nested hierarchy using
NESTED_DELIMITER
between each parent and child property name.
The delimiter is not valid for use within the actual name, only to seperate the parent/child names.
If the Property
returned is that of a nested type, it will return Property
with a
Value
that is an array of Property
objects.
If the Property
returned is that of a multi valued nested type, it will return
Property
with an array of Value
objects, of which each is an array of
Property
objects.
A nested Property can be retrieved directly by using the property name with delimiter (ie. myAddress.city). If a nested Property is multivalued, the index of that multivalued property will have to be reflected in the name, if you retrieve it directly (ie myAddresses[0].city will retrieve the first address's city in a multivalued nested property, or myAddresses[1].city will retrieve the second address's city. If the indexedName is not used to retrieve a property that is nested by a multivalued nested type, then only the first instance found, with that property name will be returned. The nesting tree will not be walked to find all properties of that name. See getProperties(name) for retrieving all Properties using a non-indexedName.
If the specified property does not exist in the node, it will return null.
public Property[] getProperties(String name) throws AuthorizationException
isPropertiesNull()
.
name
- The name, indexedName or partially indexedName of the property to retrieve.
AuthorizationException
- - if the user attempting the operation is not authorized.
For nested type properties, the name must reflect the nested hierarchy using
NESTED_DELIMITER
between each parent and child property name.
The delimiter is not valid for use within the actual name, only to seperate the parent/child names.
If the Property
objects returned are that of nested types, each returned Property
will
have a Value
that is an array of Property
objects.
If the Property
objects returned are that of multi valued nested types, each returned
Property
will have an array of Value
objects, of which each is an array of
Property
objects.
Nested Property objects can be retrieved directly by using the property name with delimiter (ie. myAddress.city). If the nested Property is not multivalued, the returned Property array will only have a single value, just as if using the getProperty(name) method. If a nested Property is multivalued, the index of that multivalued property can be reflected fully or partially in the name. If it is retrieved directly, ie myAddresses[0].city, the first address's city of the multivalued nested property will be returned just as myAddresses[1].city will retrieve the second address's city. If the non indexedName is used, ie myAddresses.city, then all cities will be returned. If using a partially indexed name to retrieve multiple Property objects, it has to start by being specific to unspecific, ie myAddresses[0].myNeighborhoods.name would be valid, while myAddresses.myNeighborhoods[0].name would not be valid. If the beginning branches of the nesting tree are not specified via indexing, then the following branches cannot be specified.
If the specified property does not exist in the node, it will return null.
public Property[] getProperties() throws AuthorizationException
isPropertiesNull()
.
AuthorizationException
- - if the user attempting the operation is not authorized.public void setProperties(Property[] properties)
INodeManager.getStream(ContentContext, ID, String)
method.
So if this method is called with the retrieved Property with a null binary value, it will instruct the repository
to overwrite the persisted binary value with a null value when the node is saved or otherwise updated.
To avoid this problem, use the getProperties(java.lang.String)
or getProperty(java.lang.String)
method and call
Property.setValue(Value)
or Property.setValues(Value[])
which will just mark only the property
being changed as dirty.
properties
- The properties to set.public void setProperty(Property property)
property
- The property to set.public boolean isPropertiesNull()
@Deprecated public int getType()
HIERARCHY
or CONTENT
.
@Deprecated public void setType(int type)
HIERARCHY
or CONTENT
.
type
- The type of the node.public boolean hasChildren()
public void hasChildren(boolean hasChildren)
For repository implementation use only. This method should be called by SPI implementors when returning a Node object to the VCR.
hasChildren
- True if this node has children.@Deprecated public Node[] getChildren() throws AuthorizationException
INodeManager.getNodes(ContentContext,ID)
instead.
INodeManager.getNodes(ContentContext,ID)
instead.
This is a convenience method and does not keep the retrieved values in memory as part of
this instance.
AuthorizationException
- - if the user attempting the operation is not authorized.@Deprecated public Node[] getContentChildren() throws AuthorizationException
INodeManager.getNodes(ContentContext,ID)
instead.
AuthorizationException
- - if the user attempting the operation is not authorized.@Deprecated public Node[] getHierarchyChildren() throws AuthorizationException
INodeManager.getNodes(ContentContext,ID)
instead.
AuthorizationException
- - if the user attempting the operation is not authorized.public ID getWorkflowId()
public void setWorkflowId(ID workflowId)
workflowId
- Set the workflowId for the node.public Workflow getWorkflow() throws RepositoryException
RepositoryException
- if the retrieval of the workflow fails.WorkflowManagerImpl.getWorkflowForNode(ContentContext,ID)
public InputStream getPropertyBytes(ID propertyId) throws AuthorizationException, NoSuchPropertyException
WARNING: If using this interface to retrieve binary content from
a WLP Repository, please read the javadoc for
RepositoryConfig
and BinaryValue
propertyId
- The property id of the binary property to retrieve. Retrieved from the Property
.
AuthorizationException
- - if the user attempting the operation is not authorized.
NoSuchPropertyException
- - if the propertyId is not valid.public String toString()
toString
in class ContentEntity
public Object clone() throws CloneNotSupportedException
clone
in class ContentEntity
CloneNotSupportedException
- If the clone fails.
|
Copyright © 2000, 2008, Oracle and/or its affiliates. All rights reserved. | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |