Represents a choice list in an object store. Each choice list contains a list collection of Choice objects that, when associated with a property, provides a discrete set of possible values that the property can hold. By using a choice list, you can enforce restrictions on property values.

There are two types of choice lists: integer and string. A choice list's type is specified by the following TypeID constant values, which are stored in a ChoiceList object's DataType property:

  • LONG: A ChoiceList object that represents a choice list that holds integer-type Choice objects. Each Choice object in such a choice list must represent either an integer-type choice item or a group node that holds a nested collection of integer-type Choice objects. An integer-type choice list cannot contain any string-type Choice objects.
  • STRING: A ChoiceList object that represents a choice list that holds string-type Choice objects. Each Choice object in such a choice list must represent either a string-type choice item or a group node that holds a nested collection of string-type Choice objects. A string-type choice list cannot contain any integer-type Choice objects.
Note that although there are eight TypeID constants, only LONG and STRING are valid constants for a ChoiceList object's DataType property.

A ChoiceList object is independently persistable (that is, it can be saved directly using its Save method) and controls the state of any dependently persistable Choice objects that belong to it. You can access each Choice object that belong to a ChoiceList object in the com.filenet.api.collection.ChoiceList collection that is specified by its ChoiceValues property. Each Choice object in this collection represents either an individual choice item or a group node for a nested collection of Choice objects.

A choice list's display name is stored in its DisplayName property and must be unique within an object store. Unlike a Choice object, a ChoiceList object does not have a mechanism for localizing its display name.

Choice list hierarchy is specified by its HasHierarchy property. This read-only property indicates whether a given choice list has a hierarchical structure or not. If the choice list contains at least one Choice object that represents a group node, the server automatically sets this property to true.

For a choice list to be useful, it must be associated with a property. You can either associate a choice list with a property template, therefore causing it to be automatically associated with every property definition created from that property template, or you can associate a choice list with an individual property definition. To associate a choice list with a property template or a property definition, set its ChoiceList property to the com.filenet.api.admin.ChoiceList object representing the choice list.

To create a new ChoiceList object, call the Factory.ChoiceList.CreateInstance method. Set the appropriate properties and add any Choice objects to the com.filenet.api.collection.ChoiceList collection specified by its ChoiceValues property. Call the Save method to save the new object to the persistent store. For the save to be successful you must, at a minimum, set the new ChoiceList object's DisplayName and DataType properties.


The following tables list the members exposed by IChoiceList.

Public Properties

 NameDescription
Public propertyAuditedEventsAn EventSet collection of the Event objects containing the audited events that have occurred for the object.
Public propertyChoiceValuesA ChoiceList object representing a set of allowable values. If it is associated with a property, ChoiceValues provides a discrete set of possible values that the property can hold. Otherwise, if a ChoiceValues is associated with a Choice object, it defines the set of possible values in a choice list group.
Public propertyCreatorIndicates the name of the user assigned as the creator of the object.

Settability of this property is read-only for most users. For users who have been granted privileged write access (AccessRight.PRIVILEGED_WRITE), this property is settable only on create. After initial object creation, this property is read-only for all users.

Public propertyDataTypeSpecifies 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 propertyDateCreatedIndicates the date and time the object was created. The Content Engine stores dates and times using Coordinated Universal Time (UTC).

Settability of this property is read-only for most users. For users who have been granted privileged write access (AccessRight.PRIVILEGED_WRITE), this property is settable only on create. After initial object creation, this property is read-only for all users.

Public propertyDateLastModifiedIndicates the date and time the object was last modified. The Content Engine stores dates and times using Coordinated Universal Time (UTC).

Settability of this property is read-only for most users. For users who have been granted privileged write access (AccessRight.PRIVILEGED_WRITE), this property is read/write. (The read/write access for those users can only change if a change is made to the ACL on the object store that controls who has privileged write access to objects in that object store).

Public propertyDescriptiveTextUser-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 propertyDisplayNameThe user-readable, provider-specific name of an object. This property is usually the designated Name property of the object's class.
Public propertyHasHierarchySpecifies whether a given choice list has a hierarchical structure (true) or not (false).
Public propertyIdA 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 propertyLastModifierIndicates the name of the user who last modified the object.

Settability of this property is read-only for most users. For users who have been granted privileged write access (AccessRight.PRIVILEGED_WRITE), this property is read/write. (The read/write access for those users could only change if a change is made to the ACL on the object store that controls who has privileged write access to objects in that object store).

Public propertyNameThe 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 propertyOwnerManages the security owner assigned to the object.
Public propertyPermissionsManages the discretionary permissions assigned to the object.
Top

See Also