Represents the base class for all property definition classes. A property definition is created from a property template and holds mutable property metadata. Each property definition class corresponds to a specific property data type (for example, PropertyDefinitionBinary defines a property that returns a binary value, PropertyDefinitionBoolean defines a property that returns a Boolean value, and so on). When a property definition is added to a class definition's PropertyDefinitions collection, a user-defined property is added to that class.


The following tables list the members exposed by IPropertyDefinition.

Public Properties

  Name Description
Public property AliasIds Specifies an IdList object containing a list of optional alias IDs for this class definition, property definition, or property template. Depending on the type of object to which it belongs, an alias ID is set equal to the PrimaryId of another property definition, the Id of another property template, or the Id of another class definition in another object store to equate the two properties or classes as being the same entity in multiple object store searches (see the SearchScope class).
Public property Cardinality Specifies a Cardinality constant, which indicates whether an object property can hold a single value (single cardinality) or a collection of multiple values (list or enumeration cardinality). You can only set the Cardinality property when you create a new property template. When you create a property definition from a property template, its Cardinality property will be automatically populated with the same value as that of the property template on which it is based. Once you have instantiated an object from the class to which the property definition belongs, the property defined by the property definition will have the specified cardinality.

For PropertyDescription and PropertyDefinition object types, this property is read-only:

  • For PropertyDescriptionObject and PropertyDefinitionObject objects only, this property can have any Cardinality constant value: SINGLE, ENUM, or LIST.
  • For all other PropertyDescription and PropertyDefinition object types, this property must have a value of SINGLE or LIST.

For PropertyTemplate object types, this property is settable on create:

  • For PropertyTemplateObject objects only, this property must have a value of SINGLE or ENUM. You can only create a custom object-valued property that has single or enumeration cardinality; list cardinality is allowed for system object-valued properties only.
  • For all other PropertyTemplate object types, this property must have a value of SINGLE or LIST.

Public property ChoiceList Specifies a ChoiceList object that represents the discrete set of possible values that this property can hold.
Public property ColumnId The globally unique identifier (GUID) of the column in which the value of the property is stored.
Public property CopyToReservation A value indicating whether some particular document feature gets passed on as a default feature for the next document version. The passed-on feature can be a property value or a component relationship. When the CopyToReservation property value is true, source document checkout causes the source feature to be replicated for the newly created document reservation object.

For a PropertyDefinition object, a value indicating whether the value of the property defined by this property definition should be copied, during checkout, from the source document to the newly created reservation object.

For a ComponentRelationship object, a value indicating whether this object gets copied, during checkout of the parent component source document, for the newly created reservation object. The reservation object becomes the parent component for the new copy of this ComponentRelationship object. Consequently, both the reservation object and the source document have an equivalent component relationship with the same child document. Note that the reservation object behaves like any other document with respect to compound document properties and relationships.

Public property DataType Specifies a TypeID constant, which indicates the data type of the value that an object property, choice list, or database table column can hold.

For PropertyDescription, PropertyDefinition, and PropertyTemplate object types, this property is read-only and specifies the data type of the value that an object property can hold. Because the value of the DataType property is automatically set by the server to correspond to the specific object type of the PropertyDescription, PropertyDefinition, or PropertyTemplate object, you do not need to set it when you are creating a property template or property definition. For example, in a PropertyDescriptionBinary, PropertyDefinitionBinary, or PropertyTemplateBinary object, the server automatically sets the DataType property to a value of BINARY.

For ChoiceList objects, this property is settable on create and must be a LONG or STRING constant value. This property determines whether a choice list is an integer-type choice list, which holds integer-type choice items or a string-type choice list, which holds string-type choice items.

For ColumnDefinition objects, this property is read-only and specifies the data type of the object property value that is stored in the represented database table column.

Public property DescriptiveText User-readable text that describes an object.

The text is not locale-specific to the retrieving user except for the following classes:

  • ClassDescription
  • PropertyDescription*
  • ClassDefinition
  • PropertyTemplate*
  • PropertyDefinition*
Public property DisplayName The user-readable, provider-specific name of an object. This property is usually the designated Name property of the object's class.
Public property ExternalAliases Specifies an ExternalPropertyAliasList collection of the external aliases defined for this property definition or replicable class definition.
Public property Id A representation of the Globally Unique Identifier (GUID), a unique 128-bit number, that is assigned to this Content Engine object when the object is created. When converted to a string, the Id property is typically depicted as 32 hexadecimal characters enclosed by brackets in the following format: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}. For example, {3F2504E0-4F89-11D3-9A0C-0305E82C3301}.

For IUser and IGroup classes, the Id property takes the value of the Security Identifier (SID) rather than the 128-bit GUID. The string representation of the SID is in this example format: S-1-5-21-1559522492-2815155736-3711640725-55269. When Active Directory is used as the directory service for IBM FileNet P8, IUser.Id and IGroup.Id always return the current SID for the principal, even if this user or group has only historical SIDs populating the Active Directory server.

For a given property representation, the Id property has the following characteristics:

  • PropertyDescription.Id is equal to PropertyTemplate.Id, which is equal to PropertyDefinition.PrimaryId.
  • PropertyDefinition.Id is not equal to PropertyDefinition.PrimaryId.
  • PropertyDefinition.Id is not equal to PropertyDescription.Id.

For a newly created document object, you can override the Id property of its associated VersionSeries object before you save or check in the document for the first time.

Public property IsHidden Indicates whether this class or property should be hidden from non-administrative users (true) or not (false).
Public property IsNameProperty Specifies whether the value of a property provides the name of the object instances of the class to which it belongs (true) or not (false). An object that has a designated name property (the IsNameProperty property of one of its properties is set or the NamePropertyIndex property of the object's class description is set) will have the designated name property's value assigned to its Name property. An object can have only one designated name property.
Public property IsSystemOwned Indicates whether a given class or property was originally created by the Content Engine (true), as opposed to user-created (false).
Public property IsValueRequired Indicates whether the property represented by a given property description, property definition, or property template is required to have a value (true) or not (false). If you attempt to save an object containing a property that requires a value and that property does not have a value assigned to it, an exception will result.
Public property ModificationAccessRequired Specifies the access rights that are required to change the value of a given property on the object instances on which the property occurs. To specify access rights, or combinations of access rights and levels, use the AccessRight and AccessLevel classes in the com.filenet.api.constants package. You can:
  • set the value of the ModificationAccessRequired property when creating a given property
  • modify its value after creating the given property
  • modify its value on the ClassDefinition object when creating a document class.
Public property Name The name for this object.

For most classes, this property is read-only and returns the value of the designated name property for the object, or its ID if there is no name property. If ClassDescription.NamePropertyIndex has a value, this property contains the value of the designated name property. If there is no designated name property value, and the object has an Id property, this property contains the string value of the Id property. If neither of these conditions is satisfied, this property contains an empty string.

For a ComponentRelationship object, this property is read/write and specifies the name of the object.

Public property PersistenceType Specifies a PropertyPersistence constant that indicates whether a property can be made persistent (that is, have its state stored in a database). If a property can be made persistent, it must have either a dedicated column or a dedicated table in the database.
Public property PrimaryId The primary ID for this property definition, which is equal to the Id property of the property template on which this property definition is based.

Property definitions that exist on different classes but are derived from the same property template will all have the same PrimaryId property value. Because multiple property definitions can be created from the same property template and a property definition's Id property must be unique for every property definition in every class, a property definition's PrimaryId property will not be equal to its Id property. For a given property representation, the PrimaryId property has the following characteristics:

  • PropertyDefinition.PrimaryId is equal to PropertyTemplate.Id, which is equal to PropertyDescription.Id.
  • PropertyDefinition.PrimaryId is not equal to PropertyDefinition.Id
  • PropertyDefinition.Id is not equal to PropertyDescription.Id.

Public property PropertyTemplate Contains an object instance of a PropertyTemplate subclass (PropertyTemplateBinary, for example) that specifies the property template on which this property definition is based.
Public property RequiresUniqueElements Specifies whether the values of a multi-valued property must be unique (True) or not (False).
Public property Settability Specifies a PropertySettability constant, which indicates when the value of a property can be set. For special system property cases in which privileged write access may be granted, the PrivilegedSettability property governs the property's settability for users who have AccessRight.PRIVILEGED_SETTABILITY access, while the Settability property continues to indicate the property's settability for all other users. See the description of the PrivilegedSettability property for these special cases.
Public property SymbolicName Represents the programmatic identifier for this class description, class definition, property description, property definition, property template, or object store.

For objects in which you can set the SymbolicName property (object store, class definition, and property template), the value of the SymbolicName property must begin with a letter and contain the following characters only: 'A' to 'Z', 'a' to 'z', '0' to '9', and '_' (underscore). No blanks or symbols are allowed. If you do not provide a value for the SymbolicName property, the server will generate it, based on the value of the DisplayName property, when you save the object.

For property template objects, changing the symbolic name of a property template for a string-valued property that has been enabled for full-text indexing (IsCBREnabled property set to true) will require re-indexing of all objects containing that property. If you do not re-index, full-text searches on this property will fail to find any objects.

Public property TableDefinition The TableDefinition object for the database table in which this ClassDefinition or PropertyDefinition object resides.
Top

See Also