Overview | Package | Class | Tree | Deprecated | Index | Help
| Copyright © 2008 BEA Systems, Inc. All Rights Reserved
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bea.content
Class ObjectClass

    java.lang.Object
      com.bea.content.ContentEntity
          com.bea.content.ObjectClass

All Implemented Interfaces
  Serializable, Cloneable

    public class ObjectClass

extends ContentEntity
implements Cloneable

ObjectClass is the type for a Node. It has both an id and a name that uniquely identifies it within a content repository.

An ObjectClass may have PropertyDefinitions associated with it that define the shape of Properties required for a Node. This does not mean that the Property must contain a value, but simply that the Property must exist for the Node.

The ObjectClass may have PropertyDefinitions without them actually being attached in memory. In this case, hasPropertyDefinitions would be true and a call to get the PropertyDefinitions would lazy load them. If there is a need to check if the PropertyDefinitions are currently set then a call to isPropertyDefinitionsNull() is appropriate as it will not try to load the PropertyDefinitions.

It may also have a primary PropertyDefinition that defines the primary content Property for a Node. This allows for the definition of content in the type since the api does not distinguish between content and meta-content.

A Node is only considered valid in the repository if its Properties conform to its ObjectClass PropertyDefinitions.

ObjectClass PropertyDefinitions may be lazy loaded, depending on the implementation of the underyling operation that retrieved the ObjectClass.

Methods which return an `ISortableFilterablePagedList` from `ITypeManager` 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 BEA Repository are found via the `ISortablePagedList.getNativeSortableProperties()` method on a paged list of Node objects.

For Types in the BEA Repository, the current list of native sortable and filterable properties is:

- name
- path
- workflowId

See Also
  Serialized Form

Field Summary
`static String` | `FOLDER`
`static String` | `PATH_DELIMITER` The delimiter used to separate path components for Object Class paths.

Fields inherited from class com.bea.content.ContentEntity
`id`

Constructor Summary
`ObjectClass(ID id, String name)` Basic constructor.
`ObjectClass(ID id, String name, PropertyDefinition primaryPropertyDefinition, PropertyDefinition[] propertyDefinitions)` Constructor without hasPropertyDefinitions.
`ObjectClass(ID id, String name, PropertyDefinition primaryPropertyDefinition, PropertyDefinition[] propertyDefinitions, boolean hasPropertyDefinitions)` Constructor without propertyDefinitions.

Method Summary
`void` | `addPropertyDefinition(PropertyDefinition propertyDefinition)` Add a property definition to the object class.
`Object` | `clone()` Clones an ObjectClass with its property definitions and property choices.
`Calendar` | `getCreationDate()` Returns the creation date of this ObjectClass.
`String` | `getDescription()` Returns the description for this ObjectClass.
`Calendar` | `getModifiedDate()` Returns the modified date of this ObjectClass.
`String` | `getName()` Returns a name that uniquely identifies this ObjectClass within a repository.
`ID` | `getParentObjectClassId()` Returns the `ID` of this `ObjectClass`'s parent if this class is extending another `ObjectClass`, or NULL if it does not extend another ObjectClass.``
`String` | `getPath()` Returns the inheritance path for this `ObjectClass`.
`PropertyDefinition` | `getPrimaryPropertyDefinition()` Returns the primary PropertyDefinition, or null if one does not exist.
`PropertyDefinition` | `getPropertyDefinition(String name)` Gets the named PropertyDefinition for this ObjectClass.
`PropertyDefinition[]` | `getPropertyDefinitions()` Gets the PropertyDefinitions for this ObjectClass.
`Workflow` | `getWorkflow()` Return the workflow associated with the node.
`ID` | `getWorkflowId()` Return the workflow ID set on the ObjectClass.
`boolean` | `hasNested()` Returns true if this ObjectClass has any PropertyDefinitions of type `Property.NESTED`
`boolean` | `hasOrderableChildNodes()` Returns true if nodes of this type support ordering their children.
`boolean` | `hasPropertyDefinitions()` Returns true if this ObjectClass has PropertyDefinitions.
`void` | `hasPropertyDefinitions(boolean hasPropertyDefinitions)` Sets if this ObjectClass has PropertyDefinitions.
`boolean` | `isAbstract()` Returns true if this `ObjectClass` is abstract and therefore may not but used as a type for nodes.
`boolean` | `isPropertyDefinitionsNull()` Returns true if the propertyDefitions is null, false otherwise.
`boolean` | `isSearchable()` Returns true when nodes of this type are indexed in the search engine.
`void` | `removePropertyDefinition(String name)` Remove a property definition from the object class if it exists.
`void` | `setAbstract(boolean isAbstract)` Setter to set whether or not this `ObjectClass` is abstract.
`void` | `setCreationDate(Calendar creationDate)` Sets the creation date of this ObjectClass.
`void` | `setDescription(String description)` Sets the description for this ObjectClass.
`void` | `setModifiedDate(Calendar modifiedDate)` Sets the modified date of this ObjectClass.
`void` | `setName(String name)` Sets the name for this ObjectClass.
`void` | `setObjectClassOps(ObjectClassOps objectClassOps)` Sets the ObjectClassOps for the repository.
`void` | `setParentObjectClassId(ID parentId)` Sets the parent `ObjectClass` `ID`.
`void` | `setPath(String path)` Set's the `ObjectClass` inheritance path.
`void` | `setPrimaryPropertyDefinition(PropertyDefinition propertyDefinition)` Sets the primary PropertyDefinition.
`void` | `setPropertyDefinitions(PropertyDefinition[] propertyDefinitions)` Sets the PropertyDefinitions for this ObjectClass.
`void` | `setSearchable(boolean isSearchable)` Set to true if nodes of this type should be searchable, false otherwise.
`void` | `setWorkflowId(ID workflowId)` Set the workflowID for the type
`void` | `setWorkflowOps(WorkflowOps workflowOps)` Sets the WorkflowOps to perform workflow lookup on the repository.
`String` | `toString()` Returns the ObjectClass attributes as a String.
`void` | `validateProperties(Property[] properties)` Validates that each property passed in as part of the properties array is valid according to its PropertyDefinition.
`void` | `validateProperty(Property property, PropertyDefinition definition)` Validates that the property passed in is valid according to the property definition passed in.

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

### FOLDER

    public static final String FOLDER

See Also
  Constants Summary

### PATH_DELIMITER

    public static final String PATH_DELIMITER

  The delimiter used to separate path components for Object Class paths. This is equivalent to `PathHelper.SEPARATOR`.

  See Also
    Constants Summary

Constructor Detail

### ObjectClass

    public ObjectClass(ID id,
                       String name)

  Basic constructor.

  Parameters
    `id` - - the id for this ObjectClass. The ID must include a repository name which indicates to the VCR which repository the ObjectClass belongs to. The underlying repository will generate the ID's uid when the ObjectClass is persisted.
    `name` - - a name that uniquely identifies this ObjectClass in the Repository.

### ObjectClass

    public ObjectClass(ID id,
                       String name,
                       PropertyDefinition primaryPropertyDefinition,
                       PropertyDefinition[] propertyDefinitions)

  Constructor without hasPropertyDefinitions. If the propertyDefinitions passed in is not null and size > 0 then hasPropertyDefinitions will be set to true, otherwise it will be set to false.

  Parameters
    `id` - - the id for this ObjectClass. The ID must include a repository name which indicates to the VCR which repository the ObjectClass belongs to. The underlying repository will generate the ID's uid when the ObjectClass is persisted.
    `name` - - a name that uniquely identifies this ObjectClass in the Repository.
    `primaryPropertyDefinition` - - the primary Property for this ObjectClass, null if there isn't one. This primary PropertyDefintion should also be included in the array of PropertyDefintions in the propertyDefinitions param.
    `propertyDefinitions` - - the PropertyDefinitions for this ObjectClass, may be null if none exist, or if they do exist but are intended to be lazy loaded. This param includes the primary PropertyDefinition, if there is one.

### ObjectClass

    public ObjectClass(ID id,
                       String name,
                       PropertyDefinition primaryPropertyDefinition,
                       PropertyDefinition[] propertyDefinitions,
                       boolean hasPropertyDefinitions)

  Constructor without propertyDefinitions. Useful for when the PropertyDefinitions will be lazy loaded (if they exist).

  Parameters
    `id` - - the id for this ObjectClass. The ID must include a repository name which indicates to the VCR which repository the ObjectClass belongs to. The underlying repository will generate the ID's uid when the ObjectClass is persisted.
    `name` - - a name that uniquely identifies this ObjectClass in the Repository.
    `primaryPropertyDefinition` - - the primary Property for this ObjectClass, null if there isn't one. This primary PropertyDefintion should also be included in the array of PropertyDefintions in the propertyDefinitions param.
    `propertyDefinitions` - - the PropertyDefinitions for this ObjectClass, may be null if none exist, or if they do exist but are intended to be lazy loaded. This param includes the primary PropertyDefinition, if there is one.
    `hasPropertyDefinitions` - - true if this ObjectClass has PropertyDefinitions or false otherwise. This does not mean it has them in memory, but rather that that they do exist.

Method Detail

### getName

    public String getName()

  Returns a name that uniquely identifies this ObjectClass within a repository.

  Returns
    The name of this `ObjectClass`

### setName

    public void setName(String name)

  Sets the name for this ObjectClass.

  Parameters
    `name` - The name to set

### getPrimaryPropertyDefinition

    public PropertyDefinition getPrimaryPropertyDefinition()

  Returns the primary PropertyDefinition, or null if one does not exist.

  Returns
    The primary `PropertyDefinition` or null if one is not specified for this `ObjectClass`.

### setPrimaryPropertyDefinition

    public void setPrimaryPropertyDefinition(PropertyDefinition propertyDefinition)

  Sets the primary PropertyDefinition. The property defintion supplied should have already been added using `addPropertyDefinition(PropertyDefinition)`, `setPropertyDefinitions(PropertyDefinition[])` or via one of the constructors.

  Parameters
    `propertyDefinition` - The primary `PropertyDefinition`for this `ObjectClass```

### isAbstract

    public boolean isAbstract()

  Returns true if this `ObjectClass` is abstract and therefore may not but used as a type for nodes.

  Returns
    true if abstract

### setAbstract

    public void setAbstract(boolean isAbstract)

  Setter to set whether or not this `ObjectClass` is abstract.

  Parameters
    `isAbstract` - true if abstract

### getParentObjectClassId

    public ID getParentObjectClassId()

  Returns the `ID` of this `ObjectClass`'s parent if this class is extending another `ObjectClass`, or NULL if it does not extend another ObjectClass.

  ``
  Returns
    The `ID` of the parent `ObjectClass`.

### setParentObjectClassId

    public void setParentObjectClassId(ID parentId)

  Sets the parent `ObjectClass` `ID`. This is used to allow this class to extend another `ObjectClass`.

  ``
  Parameters
    `parentId` - The `ID` of the parent `ObjectClass`.

### getPath

    public String getPath()

  Returns the inheritance path for this `ObjectClass`. If this class extends another, then the path will include the parent object class each type in the inheritance chain. For example, if this type extends typeB and it extends typeA, then the path returned would be /repositoryName/typeA/typeB. If this type does not extend another, then /repositoryName/type is returned.

  This value is system generated and therefore is not settable on this object.

  Returns
    The inheritance path for this `ObjectClass`.

### setPath

    public void setPath(String path)

  Set's the `ObjectClass` inheritance path. This value is computed and therefore is ignored during update operations.

  Parameters
    `path` - The path to set.

### getPropertyDefinitions

    public PropertyDefinition[] getPropertyDefinitions()
                                                throws AuthorizationException

  Gets the PropertyDefinitions for this ObjectClass. If they aren't currently set on this ObjectClass, then they will be retrieved. If you need to check if the ObjectClass instance in memory has its ProperetyDefinitions set, use isPropertyDefinitionsNull(). If you need to know if the ObjectClass has PropertyDefinitions (they may not be loaded in memory, but actually exist), use hasPropertyDefinitions().

  Returns
    An array of `PropertyDefinition` objects for this `ObjectClass`.
  Throws
    `AuthorizationException` - - if the user attempting the get is not authorized.

### setPropertyDefinitions

    public void setPropertyDefinitions(PropertyDefinition[] propertyDefinitions)

  Sets the PropertyDefinitions for this ObjectClass.

  Parameters
    `propertyDefinitions` - The array of `PropertyDefinition` objects to set for this `ObjectClass`.

### addPropertyDefinition

    public void addPropertyDefinition(PropertyDefinition propertyDefinition)
                               throws AuthorizationException

  Add a property definition to the object class. Do not use this method if the property definition already exists for this object class. Instead use `setPropertyDefinitions(PropertyDefinition[])`

  Parameters
    `propertyDefinition` - The definition to add.
  Throws
    `AuthorizationException` - if the user is not authorized

### removePropertyDefinition

    public void removePropertyDefinition(String name)
                                  throws AuthorizationException

  Remove a property definition from the object class if it exists. This method will fail silently to remove a property definition which is not present on the ObjectClass.

  Parameters
    `name` - The name of the definition to remove.
  Throws
    `AuthorizationException` - if the user is not authorized

### hasPropertyDefinitions

    public boolean hasPropertyDefinitions()

  Returns true if this ObjectClass has PropertyDefinitions. 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.

  Returns
    true if this `ObjectClass` has `PropertyDefinition` objects.

### hasPropertyDefinitions

    public void hasPropertyDefinitions(boolean hasPropertyDefinitions)

  Sets if this ObjectClass has PropertyDefinitions. 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.

  Parameters
    `hasPropertyDefinitions` - True if this `ObjectClass` has `PropertyDefinition` objects.

### hasNested

    public boolean hasNested()

  Returns true if this ObjectClass has any PropertyDefinitions of type `Property.NESTED`

  Returns
    true if this `ObjectClass` has any nested `ObjectClass`'s.

### isPropertyDefinitionsNull

    public boolean isPropertyDefinitionsNull()

  Returns true if the propertyDefitions is null, false otherwise. This does not indicate whether PropertyDefinitions exist for this ObjectClass, but rather if they are currently part of the instance.

  Returns
    true if the property definitions for this object class are null.

### setObjectClassOps

    public void setObjectClassOps(ObjectClassOps objectClassOps)

  Sets the ObjectClassOps for the repository.

  Parameters
    `objectClassOps` - the implementation for this `ObjectClass`.

### getPropertyDefinition

    public PropertyDefinition getPropertyDefinition(String name)
                                             throws RepositoryException

  Gets the named PropertyDefinition for this ObjectClass. If this is a nested property definition type, the name will reflect the nested hierarchy with `NESTED_DELIMITER` between each parent and child property definition name. The delimiter is not valid for use within the actual name, only to seperate the parent/child names.

  Parameters
    `name` - - the name of the property definition to get.
  Returns
    PropertyDefinition - that matches the name passed in, or null if none.
  Throws
    `RepositoryException` - - if an error occurs getting the property definition.

### validateProperties

    public void validateProperties(Property[] properties)
                            throws RepositoryException

  Validates that each property passed in as part of the properties array is valid according to its PropertyDefinition. Note that this method does not validate Link property node targets -- these are verified when a node is created/updated.

  Parameters
    `properties` - The properties to validate.
  Throws
    `RepositoryException` - If validation fails.

### validateProperty

    public void validateProperty(Property property,
                                 PropertyDefinition definition)
                          throws RepositoryException

  Validates that the property passed in is valid according to the property definition passed in. Note that this method does not validate Link property node targets -- these are verified when a node is created/updated.

  Parameters
    `property` - The property to validate.
    `definition` - The property definition to validate against.
  Throws
    `RepositoryException` - If this validation fails.

### getWorkflowId

    public ID getWorkflowId()

  Return the workflow ID set on the ObjectClass.

  Returns
    Returns the workflowId associated with the ObjectClass. Will return null if no workflow is explicitly set on the ObjectClass.

### setWorkflowId

    public void setWorkflowId(ID workflowId)

  Set the workflowID for the type

  Parameters
    `workflowId` - The ID of the workflow to set.

### setWorkflowOps

    public void setWorkflowOps(WorkflowOps workflowOps)

  Sets the WorkflowOps to perform workflow lookup on the repository. This may be used internally to lookup workflow associated with the node.

  Parameters
    `workflowOps` - The workflow ops for this ObjectClass.

### getWorkflow

    public Workflow getWorkflow()
                         throws RepositoryException

  Return the workflow associated with the node. This method is slightly different than the getWorkflowId() because getWorkflowId() only returns the workflow explicitly set on the node, while this method does the workflow inheritance lookup to figure out the correct workflow for the node.

  Returns
    The workflow associated with the node, or the default workflow if there is no workflow associated with that node.
  Throws
    `RepositoryException` - If this operation fails.
  See Also
    `WorkflowManagerImpl.getWorkflowForNode(ContentContext, ID)`

### toString

    public String toString()

  Returns the ObjectClass attributes as a String.

  Overrides:
    `toString` in class `ContentEntity`

### getDescription

    public String getDescription()

  Returns the description for this ObjectClass. Only populated by repositories implementing the ExtendedObjectClassOps SPI.

  Returns
    The description.

### setDescription

    public void setDescription(String description)

  Sets the description for this ObjectClass. Only used by repositories implementing the ExtendedObjectClassOps SPI.

  Parameters
    `description` - The description.

### isSearchable

    public boolean isSearchable()

  Returns true when nodes of this type are indexed in the search engine.

  Returns
    The searchable value for this ObjectClass.

### setSearchable

    public void setSearchable(boolean isSearchable)

  Set to true if nodes of this type should be searchable, false otherwise.

  Parameters
    `isSearchable` - The searchable value to set.

### getCreationDate

    public Calendar getCreationDate()

  Returns the creation date of this ObjectClass.

  Returns
    The creation date.

### setCreationDate

    public void setCreationDate(Calendar creationDate)

  Sets the creation date of this ObjectClass. This method is used by the SPI when constructing an ObjectClass.

  Parameters
    `creationDate` - The creation date.

### getModifiedDate

    public Calendar getModifiedDate()

  Returns the modified date of this ObjectClass.

  Returns
    The modified date.

### setModifiedDate

    public void setModifiedDate(Calendar modifiedDate)

  Sets the modified date of this ObjectClass. This method is used by the SPI when constructing an ObjectClass.

  Parameters
    `modifiedDate` - The modified date.

### hasOrderableChildNodes

    public boolean hasOrderableChildNodes()

  Returns true if nodes of this type support ordering their children. In other words, if node NP of type T has children NC1, NC2, etc, and if T.hasOrderableChildNodes() returns true, then the children NC1, NC2, etc can be ordered via INodeManager.orderBefore(...). This order is used when children of a node are retrieved via the INodeManager.getNodes(...) methods.

  If child node ordering is supported, then a) INodeManager.getNodes(...) on the parent will retrieve deterministic results; repeated calls will return results in the same order. b) New child nodes are implicitly added at the end of the order. c) The child node ordering can be modified via INodeManager.orderBefore(...).

  Returns
    Returns `true` if nodes of this type must support orderable child nodes; returns `false` otherwise.

### clone

    public Object clone()
                 throws CloneNotSupportedException

  Clones an ObjectClass with its property definitions and property choices. Note that binary property choice streams are not cloned, but merely copied.

  Overrides:
    `clone` in class `ContentEntity`
  Returns
    A clone of the ObjectClass.
  Throws
    `CloneNotSupportedException` - If the clone fails.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008 BEA Systems, Inc. All Rights Reserved