Represents the fixed description (immutable metadata) of a class. A ClassDescription object maintains a fixed snapshot, via its properties and property descriptions, of an instantiated object's property metadata throughout the object's lifetime. Because all of its properties are read-only, you cannot directly modify a ClassDescription object. If you need to update the metadata of a class, use its ClassDefinition object.


The following tables list the members exposed by IClassDescription.

Public Properties

  Name Description
Public property AllowsInstances Indicates whether an application can create an object instance of a given class. If this property is false, only the Content Engine server can instantiate the class.
Public property DefaultInstanceOwner The default security owner for an object of a given class. This property is useful if you want a group or user other than the object's creator to have owner security rights.
Public property DefaultInstancePermissions The default discretionary permissions to be used when creating an instance of a given class.
Public property HasIncludeSubclasses Specifies whether a given class supports queries that include its subclasses (true) or not (false).
Public property HasProperSubclassProperties Specifies whether a given class supports queries that include descendant properties (true) or not (false). A descendant property is a property that is added to one or more subclasses of a class.
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 ImmediateSubclassDescriptions Specifies a ClassDescriptionSet object, which includes a ClassDescription object for each class that is an immediate subclass of the class described by a given ClassDescription object.
Public property IsCBREnabled Specifies whether this class or property is enabled for full text indexing (content-based retrieval).

For classes, the following conditions apply:

  • The value of this property must be set to true if any property on this class is going to be enabled for CBR.
  • A value of true also enables full text indexing of any content associated with the class. (There is no content property to enable CBR.)

For properties, this property can be enabled only on Document, Annotation, CustomObject, and Folder objects.

Public property IsHidden Indicates whether this class or property should be hidden from non-administrative users (true) or not (false).
Public property IsPersistent Specifies whether you can save the state of the object instantiation of this class (true) or not (false). If this property is false, only the server can save the state of the object.
Public property IsSecurable Identifies whether objects of the described class have independently settable security.

Unlike a dependently securable object, which inherits its security from a parent object, an independently securable object has its own Access Control List (ACL) that specifies its security and ensures that access rights are checked each time a user tries to access the object. As an example, a IDocument object is the security parent of its dependent IContentElement objects. The value of this property is True if the given object's security is independently settable (as in the case of IDocument) and is False if the object's security is inherited from a security parent (as in the case of a IContentElement).

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 NamePropertyIndex Specifies the 0-based index of the PropertyDescription object in this ClassDescription object's PropertyDescriptions collection that serves as the name property for object instances of the class (usually resolves to the DisplayName property). If NamePropertyIndex is null, the class will not have a designated name property; in this case, the Name property of the object instantiation of the class will be set to the value of its Id property.
Public property PermissionDescriptions A list of descriptions of permissions applicable to objects of the described class.
Public property ProperSubclassPropertyDescriptions Specifies a PropertyDescriptionList object containing a collection of the property description objects belonging to all of the subclasses of the class described this ClassDescription object.
Public property PropertyDescriptions Specifies a PropertyDescriptionList object containing an ordered collection of all of the property descriptions belonging to this class description.
Public property SuperclassDescription Describes the class that is the immediate superclass of the current class in the DMA property class hierarchy.
Public property SuperclassPropertyCount Specifies the number of property descriptions contained in the class description that describes the immediate superclass of the class described by this class description. This value is equal to the number of properties inherited by a subclass from its superclass.
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.

Top

Public Methods

  Name Description
Public method DescribedIsOfClass Returns whether the class described by this ClassDescription object is a subclass of the specified class (true) or not (false). Note that this method will not work for search-related ClassDescription objects; that is, ClassDescription objects that are returned from a SearchScope.fetchSearchableClassDescriptions method call.
Public method GetScope Returns the originating "scope" (enclosing context) of this ClassDescription object. For more information about ClassDescription scope, see the IScope interface description.
Top

See Also