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 PropertyDefinition

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

All Implemented Interfaces
  Serializable, Cloneable

    public class PropertyDefinition

extends ContentEntity
implements Cloneable

PropertyDefinition defines the shape of a Property. It describes the Property type (binary, boolean, string, double, calendar, long, link), whether it is required, whether it is editable, the default value and restricted values, if applicable.

A PropertyDefinition may contain a PropertyChoice array. This is a list of values that may be selected for a Property's values.

Rules for a PropertyDefinition are as follows.

- If the PropertyDefinition contains a reference, it may not be multi-valued, or of types link or binary.
- If the PropertyDefinition is of type binary, it may not be multi-valued or restricted and may only have one PropertyChoice.
- If the PropertyDefinition is of type boolean, it may not be multi-valued.
- If the PropertyDefinition is of type link, it may not have PropertyChoice(s), or be set as the primary property.
- If the PropertyDefinition is restricted then the Properties of this type must have value(s) must be contained in the PropertyChoice list. For example: consider a PropertyDefinition named "color". It has PropertyChoices "blue", "green", and "red". If the PropertyDefinition is restricted then the value of a Property defined by this PropertyDefinition may not have a value that isn't "green", "red", or "blue".

  An ObjectClass is defined using PropertyDefinitions. ObjectClasses can be nested within one another. As an example, consider an ObjectClass 'Address' with PropertyDefinitions for 'street', 'city', and 'zipcode'. Another ObjectClass called 'PersonalInformation' contains PropertyDefinitions for 'firstname', 'lastname', etc. Now 'PersonalInformation' can also refer to 'Address' as a "nested" ObjectClass. Those PropertyDefinitions that belong to the 'Address' ObjectClass are then considered "nested" and 'Address' is an ObjectClass that is nested in 'PersonalInformation'.

  In the above example, 'PersonalInformation' is called the "root level container", and the two PropertyDefinitions 'firstname', 'lastname' are not considered nested.

  Here is a code example using nested property definitions:

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

  ###

              // First create the nested and container ObjectClasses
              ID repId = new ID(repositoryName, null);

              // create nested type with a mandatory primary property
              PropertyDefinition[] pds = new PropertyDefinition[2];
              pds[0] = new PropertyDefinition(repId, "stringType", null, Property.STRING, false, false,
                      false, false, false, null);
              pds[1] = new PropertyDefinition(repId, "primaryType", null, Property.STRING, false, false,
                      true, false, true, null);
              nestedType = new ObjectClass(repId, "NestedType", pds[1], pds);
              nestedType = typeManager.addType(context, nestedType);

              // create the container ObjectClass
              pds = new PropertyDefinition[2];
              pds[0] = new PropertyDefinition(repId, "longType", null, Property.LONG, false, false,
                      false, false, false, null);
              pds[1] = new PropertyDefinition(nestedType.getId(), repId, "nestedType", Property.NESTED,
                      false, multiValued, "nested type");
              container = new ObjectClass(repId, "container", null, pds);
              container = typeManager.addType(context, container);

      See AlsoSerialized Form

      Field Summary

      static int
      INHERITED

                An inherited type
       indicates a property definition which is a part of the object class due
       to the definition's object class extending another object class.

      static int
      NATIVE

                A native type
       indicates a property definition explicitly defined on a given object
       class.

      static int
      OVERRIDDEN

                An overridden type
       indicates a property definition which was inherited and then was further
       modified to override the original definition in some fashion.

      Fields inherited from class com.bea.content.ContentEntity

      id

      Constructor Summary

      PropertyDefinition(ID nestedObjectClassId,
                         ID id,
                         String name,
                         int type,
                         boolean isMandatory,
                         boolean isMultiValued,
                         String description)

                Constructs PropertyDefinition without PropertyChoices that represents a nested ObjectClass.

      PropertyDefinition(ID id,
                         String name,
                         String reference,
                         int type,
                         boolean isReadOnly,
                         boolean isRestricted,
                         boolean isMandatory,
                         boolean isMultiValued,
                         boolean isPrimary,
                         String description)

                Constructs PropertyDefinition without PropertyChoices.

      PropertyDefinition(PropertyChoice[] propertyChoices,
                         ID id,
                         String name,
                         String reference,
                         int type,
                         boolean isReadOnly,
                         boolean isRestricted,
                         boolean isMandatory,
                         boolean isMultiValued,
                         boolean isPrimary,
                         String description)

                Constructs the PropertyDefinition with all attributes.

      Method Summary

       Object
      clone()

                Clones a PropertyDefinition with its property choices.

       String
      getDescription()

                Gets the description.

       String
      getName()

                Returns the name of this PropertyDefinition.

       ObjectClass
      getNestedObjectClass()

                Return the object class associated with this property definition if is type NESTED.

       ID
      getNestedObjectClassId()

                Gets the nested object class id that this property definition represents.

       PropertyChoice[]
      getPropertyChoices()

                Returns the array of PropertyChoices.

       int
      getPropertyDefinitionType()

                Gets the property definition type for this definition.

       String
      getReference()

                Returns a means by which instances of properties for this PropertyDefinition may be referenced.

       int
      getType()

                Gets the defined data type.

       boolean
      isMandatory()

                Returns true if a value for the Property is required.

       void
      isMandatory(boolean isMandatory)

                Set to true if a value for the Property is required, or false otherwise.

       boolean
      isMultiValued()

                Returns true if the Property can have multiple values.

       void
      isMultiValued(boolean isMultiValued)

                Set to true if the Property can have multiple values, false otherwise.

       boolean
      isNested()

                Indicates whether this PropertyDefinition belongs to an Objectclass that is nested inside another ObjectClass.

       void
      isNested(boolean isNested)

                Indicates whether this PropertyDefinition belongs to an Objectclass that is nested inside another ObjectClass.

       boolean
      isPrimary()

                Returns true if this PropertyDefinition represents the primary PropertyDefinition for its ObjectClass.

       void
      isPrimary(boolean isPrimary)

                Set to true if this PropertyDefinition represents the primary PropertyDefinition for its ObjectClass.

       boolean
      isReadOnly()

                Returns true if a value for the Property cannot be edited.

       void
      isReadOnly(boolean isReadOnly)

                Set to true if a value for the Property cannot be edited, or false otherwise.

       boolean
      isRestricted()

                Returns true if a value for the Property is restricted
       to the available choices.

       void
      isRestricted(boolean isRestricted)

                Set to true if a value for the Property is restricted
       to the available choices, or false otherwise.

       boolean
      isSearchable()

                Returns true if a value for the Property should be indexed when nodes of this type are indexed in the
       repository's full-text search implementation.

       void
      isSearchable(boolean isSearchable)

                Set to true if a value for the Property should be indexed when nodes of this type are indexed in the
       repository's full-text search implementation.

       void
      setDescription(String description)

                Sets the description.

       void
      setMandatory(boolean isMandatory)

                Set to true if a value for the Property is required, or false otherwise.

       void
      setMultiValued(boolean isMultiValued)

                Set to true if the Property can have multiple values, false otherwise.

       void
      setName(String name)

                Sets the name of this PropertyDefinition.

       void
      setNested(boolean isNested)

                Indicates whether this PropertyDefinition belongs to an Objectclass that is nested inside another ObjectClass.

       void
      setObjectClassOps(ObjectClassOps objectClassOps)

                Sets the ObjectClassOps to perform objectclass lookup for a nested property.

       void
      setPrimary(boolean isPrimary)

                Set to true if this PropertyDefinition represents the primary PropertyDefinition for its ObjectClass.

       void
      setPropertyChoices(PropertyChoice[] propertyChoices)

                Sets the array of PropertyChoices.

       void
      setReadOnly(boolean isReadOnly)

                Set to true if a value for the Property cannot be edited, or false otherwise.

       void
      setReference(String reference)

                Sets a means by which all instances of properties for this PropertyDefinition may be referenced.

       void
      setRestricted(boolean isRestricted)

                Set to true if a value for the Property is restricted
       to the available choices, or false otherwise.

       void
      setSearchable(boolean isSearchable)

                Set to true if a value for the Property should be indexed when nodes of this type are indexed in the
       repository's full-text search implementation.

       void
      setType(int type)

                Sets the defined data type id.

       String
      toString()

                Returns the PropertyDefinition attributs as 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

      NATIVE

      public static final int NATIVE

      A native type
       indicates a property definition explicitly defined on a given object
       class.  The definition was not a part of the object class via object
       class inheritance.

      See AlsoConstants Summary

      INHERITED

      public static final int INHERITED

      An inherited type
       indicates a property definition which is a part of the object class due
       to the definition's object class extending another object class.

      See AlsoConstants Summary

      OVERRIDDEN

      public static final int OVERRIDDEN

      An overridden type
       indicates a property definition which was inherited and then was further
       modified to override the original definition in some fashion.

      See AlsoConstants Summary

      Constructor Detail

      PropertyDefinition

      public PropertyDefinition(PropertyChoice[] propertyChoices,
                                ID id,
                                String name,
                                String reference,
                                int type,
                                boolean isReadOnly,
                                boolean isRestricted,
                                boolean isMandatory,
                                boolean isMultiValued,
                                boolean isPrimary,
                                String description)

      Constructs the PropertyDefinition with all attributes.

      ParameterspropertyChoices - - available value choices for
       a Property that is defined by this PropertyDefinition.id - - the unique id for this PropertyDefinitionname - - the name of this PropertyDefinition that
       is unique relative to its ObjectClass.reference - - an external reference for all
       Properties defined by this PropertyDefinition. In the
       BEA Repository, this is the column name for an
       explicit property.type - - the type of this PropertyDefinition.isReadOnly - - true if a Property defined by
       this PropertyDefinition is intended to not be writable,
       false otherwise.isRestricted - - true if a Property defined by
       this PropertyDefinition may only contain value(s)
       defined in this PropertyDefinitions PropertyChoice array,
       false otherwiseisMandatory - - true if a Property defined by
       this PropertyDefinition must contain a non-null value
       and in the case of a String must not be empty, false otherwiseisMultiValued - - true if a Property defined by
       this PropertyDefinition may contain multiple values,
       false otherwise.isPrimary - - true if the PropertyDefinition is the
       Primary PropertyDefinition for the ObjectClass.description - - a description of this PropertyDefinition.

      PropertyDefinition

      public PropertyDefinition(ID id,
                                String name,
                                String reference,
                                int type,
                                boolean isReadOnly,
                                boolean isRestricted,
                                boolean isMandatory,
                                boolean isMultiValued,
                                boolean isPrimary,
                                String description)

      Constructs PropertyDefinition without PropertyChoices.

      Parametersid - - the unique id for this PropertyDefinitionname - - the name of this PropertyDefinition that
       is unique relative to its ObjectClass.reference - - an external reference for all
       Properties defined by this PropertyDefinition. In the
       BEA Repository, this is the column name for an
       explicit property.type - - the type of this PropertyDefinition.isReadOnly - - true if a Property defined by
       this PropertyDefinition is intended to not be writable,
       false otherwise.isRestricted - - true if a Property defined by
       this PropertyDefinition may only contain value(s)
       defined in this PropertyDefinitions PropertyChoice array,
       false otherwiseisMandatory - - true if a Property defined by
       this PropertyDefinition must contain a non-null value
       and in the case of a String must not be empty, false otherwise.isMultiValued - - true if a Property defined by
       this PropertyDefinition may contain multiple values,
       false otherwise.isPrimary - - true if the PropertyDefinition is the
       Primary PropertyDefinition for the ObjectClass.description - - a description of this PropertyDefinition.

      PropertyDefinition

      public PropertyDefinition(ID nestedObjectClassId,
                                ID id,
                                String name,
                                int type,
                                boolean isMandatory,
                                boolean isMultiValued,
                                String description)

      Constructs PropertyDefinition without PropertyChoices that represents a nested ObjectClass.
       There is no way to set propertyChoices, isReadOnly, reference, isRestricted,
       or isPrimary variables, as they have to be null or false for a nested type.

      ParametersnestedObjectClassId - - the unique id of the nested ObjectClass that this
       PropertyDefinition represents.id - - the unique id for this PropertyDefinitionname - - the name of this PropertyDefinition that
       is unique relative to its ObjectClass.type - - the type of this PropertyDefinition.isMandatory - - true if a Property defined by
       this PropertyDefinition must contain a non-null value
       and in the case of a String must not be empty, false otherwise.isMultiValued - - true if a Property defined by
       this PropertyDefinition may contain multiple values,
       false otherwise.description - - a description of this PropertyDefinition.

      Method Detail

      getDescription

      public String getDescription()

      Gets the description.

      ReturnsThe description.

      setDescription

      public void setDescription(String description)

      Sets the description.

      Parametersdescription - The description.

      getPropertyChoices

      public PropertyChoice[] getPropertyChoices()

      Returns the array of PropertyChoices.

      ReturnsThe array of property choices for this property definition or null if there aren't any.

      setPropertyChoices

      public void setPropertyChoices(PropertyChoice[] propertyChoices)

      Sets the array of PropertyChoices.

      ParameterspropertyChoices - The property choices for this property definition.

      getName

      public String getName()

      Returns the name of this PropertyDefinition.

       If this is a nested type, the name will reflect the nested hierarchy with
       Property.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.

      ReturnsThe name of this property definition.

      setName

      public void setName(String name)

      Sets the name of this PropertyDefinition.

       If this is a nested type, the name will reflect the nested hierarchy with
       Property.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.

      Parametersname - The name of this property definition.

      getReference

      public String getReference()

      Returns a means by which instances of properties for this PropertyDefinition may be referenced.  In the BEA
       Repository, this is the column name for an explicit property.  The property will be stored in the CM_NODE table
       as opposed to the CM_PROPERTY table.  Please see the product documentation for further details about explicit
       properties.

      ReturnsThe reference value.  A null value means that instances of this property definition are not referenced.

      setReference

      public void setReference(String reference)

      Sets a means by which all instances of properties for this PropertyDefinition may be referenced.  In the BEA
       Repository, this is the column name for an explicit property.  The property will be stored in the CM_NODE table
       as opposed to the CM_PROPERTY table.  Please see the product documentation for further details about explicit
       properties.

      Parametersreference - The reference value.  A null value means that instances of this property definition are not
       referenced.

      getType

      public int getType()

      Gets the defined data type.
       See constants defined in Property for the valid types.

      ReturnsThe data type.

      setType

      public void setType(int type)

      Sets the defined data type id.
       See constants defined in Property for the valid types.

      Parameterstype - The data type.

      setObjectClassOps

      public void setObjectClassOps(ObjectClassOps objectClassOps)

      Sets the ObjectClassOps to perform objectclass lookup for a nested property.
       This method exists for VCR usage.

      ParametersobjectClassOps - The objectClassOps of the SPI for this repository.

      getNestedObjectClass

      public ObjectClass getNestedObjectClass()
                                       throws RepositoryException

      Return the object class associated with this property definition if is type NESTED.

      ReturnsThe object class associated with this property definition if is type NESTED.
      Throws
      RepositoryException - If this operation fails.

      getNestedObjectClassId

      public ID getNestedObjectClassId()

      Gets the nested object class id that this property definition represents.

      ReturnsThe nested object class id or null if this property definition isn't a type of Property.NESTED

      getPropertyDefinitionType

      public int getPropertyDefinitionType()

      Gets the property definition type for this definition.  This will be one
       of NATIVE, INHERITED or
       OVERRIDDEN.  This is system managed and therefore is not settable.

      ReturnsThe property definition type.

      isReadOnly

      public boolean isReadOnly()

      Returns true if a value for the Property cannot be edited.

      ReturnsTrue if the property is read-only.

      isReadOnly

      public void isReadOnly(boolean isReadOnly)

      Set to true if a value for the Property cannot be edited, or false otherwise.

      ParametersisReadOnly - True if the property is read-only.

      setReadOnly

      public void setReadOnly(boolean isReadOnly)

      Set to true if a value for the Property cannot be edited, or false otherwise.

      ParametersisReadOnly - True if the property is read-only.

      isRestricted

      public boolean isRestricted()

      Returns true if a value for the Property is restricted
       to the available choices.

      ReturnsTrue if the proeprty value(s) is/are restricted.

      isRestricted

      public void isRestricted(boolean isRestricted)

      Set to true if a value for the Property is restricted
       to the available choices, or false otherwise.

      ParametersisRestricted - True if the property value(s) is/are restricted.

      setRestricted

      public void setRestricted(boolean isRestricted)

      Set to true if a value for the Property is restricted
       to the available choices, or false otherwise.

      ParametersisRestricted - True if the property value(s) is/are restricted.

      isMultiValued

      public boolean isMultiValued()

      Returns true if the Property can have multiple values.

      ReturnsTrue if the property can have multiple values.

      isMultiValued

      public void isMultiValued(boolean isMultiValued)

      Set to true if the Property can have multiple values, false otherwise.

      ParametersisMultiValued - True if the property can have multiple values.

      setMultiValued

      public void setMultiValued(boolean isMultiValued)

      Set to true if the Property can have multiple values, false otherwise.

      ParametersisMultiValued - True if the property can have multiple values.

      isMandatory

      public boolean isMandatory()

      Returns true if a value for the Property is required.

      ReturnsTrue if the property requires a value.

      isMandatory

      public void isMandatory(boolean isMandatory)

      Set to true if a value for the Property is required, or false otherwise.

      ParametersisMandatory - True if the property requires a value.

      setMandatory

      public void setMandatory(boolean isMandatory)

      Set to true if a value for the Property is required, or false otherwise.

      ParametersisMandatory - True if the property requires a value.

      isSearchable

      public boolean isSearchable()

      Returns true if a value for the Property should be indexed when nodes of this type are indexed in the
       repository's full-text search implementation.

      ReturnsTrue if properties should be indexed by the repository's full-text search implementation.

      isSearchable

      public void isSearchable(boolean isSearchable)

      Set to true if a value for the Property should be indexed when nodes of this type are indexed in the
       repository's full-text search implementation.

      ParametersisSearchable - True if properties should be indexed by the repository's full-text search implementation.

      setSearchable

      public void setSearchable(boolean isSearchable)

      Set to true if a value for the Property should be indexed when nodes of this type are indexed in the
       repository's full-text search implementation.

      ParametersisSearchable - True if properties should be indexed by the repository's full-text search implementation.

      isNested

      public boolean isNested()

      Indicates whether this PropertyDefinition belongs to an Objectclass that is nested inside another ObjectClass.
       A code example using nested PropertyDefinitions is provided in this class level javadoc.

      ReturnsTrue if this property definition is nested.

      isNested

      public void isNested(boolean isNested)

      Indicates whether this PropertyDefinition belongs to an Objectclass that is nested inside another ObjectClass.
       A code example using nested PropertyDefinitions is provided in this class level javadoc.

      ParametersisNested - True if this property definition is nested.

      setNested

      public void setNested(boolean isNested)

      Indicates whether this PropertyDefinition belongs to an Objectclass that is nested inside another ObjectClass.
       A code example using nested PropertyDefinitions is provided in this class level javadoc.

      ParametersisNested - True if this property definition is nested.

      isPrimary

      public boolean isPrimary()

      Returns true if this PropertyDefinition represents the primary PropertyDefinition for its ObjectClass. There may
       only be one primary PropertyDefinition per ObjectClass. The ObjectClass holds the true relationship to the
       primary PropertyDefinition.  This is an indicator to describe that relationship.

      ReturnsTrue if this properfy definition is the primary property definition for its containing object class.

      isPrimary

      public void isPrimary(boolean isPrimary)

      Set to true if this PropertyDefinition represents the primary PropertyDefinition for its ObjectClass. There may
       only be one primary PropertyDefinition per ObjectClass. The ObjectClass holds the true relationship to the
       primary PropertyDefinition.  This is an indicator to describe that relationship.

      ParametersisPrimary - True if this properfy definition is the primary property definition for its containing object
       class.

      setPrimary

      public void setPrimary(boolean isPrimary)

      Set to true if this PropertyDefinition represents the primary PropertyDefinition for its ObjectClass. There may
       only be one primary PropertyDefinition per ObjectClass. The ObjectClass holds the true relationship to the
       primary PropertyDefinition.  This is an indicator to describe that relationship.

      ParametersisPrimary - True if this properfy definition is the primary property definition for its containing object
       class.

      toString

      public String toString()

      Returns the PropertyDefinition attributs as a String.

      Overrides:toString in class ContentEntity

      clone

      public Object clone()
                   throws CloneNotSupportedException

      Clones a PropertyDefinition with its property choices.
       Note that binary property choice streams are not cloned, but merely copied.

      Overrides:clone in class ContentEntity

      ReturnsA clone of the PropertyDefinition.
      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