The following table lists the types derived from IDependentObject .

Derived Types

Type Description
IAddOnInstallationRecord Represents a record that contains information pertaining to the installation of an add-on. An AddOnInstallationRecord object is created whenever an AddOn or UpgradeAddOn object is installed on an object store.
IAsyncProcessingConfiguration Represents configuration data for asynchronous processing of events. This class allows admininistrative clients to set or access event dispatcher configuration settings. An IAsyncProcessingConfiguration object can be assigned to objects of the server hierarchy (IDomain, ISite, IVirtualServer, and IServerInstance), and is persisted in the GCD.

To create a IAsyncProcessingConfiguration object, call the CreateInstance method on the IAsyncProcessingConfiguration class. To instantiate an IAsyncProcessingConfiguration object, retrieve the SubsystemConfigurations property from an object of the server hierarchy, then iterate the ISubsystemConfigurationList for the IAsyncProcessingConfiguration object.

IAuditDefinition Represents a definition that specifies audit-event parameters. Audit events are set on a per-class basis: use this interface to configure a ISubscribableClassDefinition object or subobject for auditing. Create an IAuditDefinition object for each event that you want to audit for the class.

To create a IAuditDefinition object, call the createInstance method on the Factory.AuditDefinition class. Once created, set its properties, which define the event to be audited and other parameters.

For each IAuditDefinition object that you create, add it to a IAuditDefinitionList collection, then set the collection on the ISubscribableClassDefinition object.

To retrieve IAuditDefinition objects, get the IAuditDefinitionList collection and iterate it.

ICenteraSiteSettings Represents the configuration settings that can be overridden for the EMC Centera fixed content devices on the specified site. For each setting that can be overridden, the CenteraSiteSettings object contains a property that, if populated, will override the corresponding property of the same name on the CenteraFixedContentDevice object.
ICFSImportAgentConfiguration Configures the importer component of Content Federation Service (CFS). The CFS importer works in conjunction with the CFS exporter to map external documents to FileNet P8 documents in a one-to-one relationship. Specifically, using data extracted from an external repository and loaded into a federator database by the exporter, the importer creates and updates FileNet P8 documents known as federated documents. (For background information on the exporter and on the relationship between the federator database, the IBM Content Integrator instance, and the external repository, see the IIICEFixedContentDevice interface.) A federated document is a FileNet P8 document created as a proxy for an external document, whereby FileNet P8 stores metadata (property values) mirroring the metadata stored in the external repository but keeps only a reference to the external stored content; the federated document accesses the external content in a transparent fashion, and thus behaves, with some limitations, like any other standard FileNet P8 document. The importer creates a new federated document to represent an external document when first importing the external document into FileNet P8. Thereafter, when subsequently re-importing the external document, the importer updates the metadata of the existing federated document.

You can associate this import configuration with a server or a group of servers. Specifically, as with all configuration objects belonging to ISubsystemConfiguration derived interfaces, an ICFSImportAgentConfiguration instance can be associated with the following types of objects (via the SubsystemConfigurations property): IServerInstance, representing one server; IVirtualServer, representing one or more servers; ISite, representing a yet larger grouping of servers and other objects based on a geographic location; and a IDomain, representing the largest possible collection of resources and services sharing the same Global Configuration Database (GCD). On startup, and periodically thereafter, the Content Engine server checks the IServerInstance object representing itself, then the IVirtualServer object representing the virtual server of which it is a part, and so on, searching for the most closely associated import configuration. At least one such configuration always exists, because the automatic creation of a default CFSImportAgentConfiguration object occurs when you first create the domain.

Some site-specific settings might override the settings configured here. For more information, see the ICFSSiteSettings interface.

The importer runs as part of the Content Engine, and one importer exists for each Content Engine instance. Each importer runs against all of the federator databases that have been defined for the domain (via GCD-stored IIICEFixedContentDevice objects); consequently, multiple importers can be operating against the same federator database. Importers process batches of import requests created in the federator database by the exporter, where each import request represents a document version series stored in the external repository. In addition to the external metadata and content, an import request has properties indicating the target document class and the target object store. An importer can process an import request for any object store within the domain. The configuration of import request processing revolves around these importer sub-components:

  • Import Dispatcher - The import dispatcher is the main sub-component of the importer; one dispatcher exists per importer. To enable or disable the dispatcher, set the DispatcherEnabled property.
  • Import Agent - The import agent periodically scans the federator database for incoming import batches, loads the batches into an in-memory federation request queue, and assigns the batches from the queue to the import workers it creates. One agent exists per federator database per Content Engine instance. Consequently, this configuration might govern the behavior of more than one dispatcher. To control the activity level of the agent, set these properties: MaxInMemoryItems and DispatcherWaitInterval.
  • Import Worker - The import worker performs the actual work of creating or updating FileNet P8 documents from the incoming external metadata and content. Each worker exists on a separate thread of execution. To control the number of workers and the distribution of work among workers, set these properties: MaxWorkerThreads, LeaseDuration, and BatchSelectionSize.
ICFSSiteSettings For a particular FileNet P8 site, configures the Content Federation Service (CFS). For information on specifying the site, and on the relationship between the FileNet P8 site and domain, see the Site property. This configuration works in conjunction with the standard CFS import configuration. For more information, see the ICFSImportAgentConfiguration interface.
IChoice Represents a single choice item in a choice list that can be assigned to a property, or represents a group node for a nested collection of choice items within a choice list. A choice item is a single possible value, or choice, in a choice list. A choice item can be of two possible types: integer or string. An integer-type choice item holds a single integer value and can be assigned only to an integer-valued property. A string-type choice item holds a single string value and can be assigned only to a string-valued property.

A Choice object is a dependently persistable object; it has no Save method and therefore cannot be independently saved. Because any given Choice object is dependent on the independently persistable com.filenet.api.admin.ChoiceList object to which it belongs, its state is not saved until you call the Save method of the ChoiceList object that owns it. For a given Choice object to belong to a com.filenet.api.admin.ChoiceList object, it must be added to the com.filenet.api.collection.ChoiceList collection that is returned by the com.filenet.api.admin.ChoiceList object's ChoiceValues property.

The type of data that a Choice object can represent is determined by the ChoiceType constant value that you specify with its ChoiceType property. This property determines whether a Choice object represents an integer-type choice item, a string-type choice item, a group node for a nested collection of integer-type choice items, or a group node for a nested collection of string-type choice items.

Localization is provided by the DisplayNames property, using the same mechanism that ClassDefinition and PropertyTemplate objects use. However, unlike those objects, the Choice object does not have a DescriptiveTexts property. To localize a Choice object, set its DisplayNames property to a LocalizedStringList object containing a collection of LocalizedString objects. Each object in this collection represents a locale-specific, user-readable display name that can be used for a Choice object; set its LocaleName property to a locale ID and its LocalizedText property to the localized text for the display name. Once you have set the DisplayNames property, the server will automatically set the value of the DisplayName property to the LocalizedText property value of the LocalizedString object in the LocalizedStringList collection that corresponds to the object store's default locale.

A Choice object's display name, or label, identifies it and is stored by its DisplayName property. You can either set the DisplayName property directly or you can set it indirectly by setting the DisplayNames property. Setting the DisplayNames property is the preferred method. You must set either a Choice object's DisplayName property or its DisplayNames property; you cannot set both. If you set the DisplayName property, the server will automatically create a LocalizedString object with its LocaleName property set to the object store's default locale and add it as a single item in the DisplayNames property's LocalizedStringList collection. If you set the DisplayName property directly, localization will be bypassed and the language of its text may not match the specified locale. For example, if you store English text (en-us) in the DisplayName property and the default locale is French (fr-fr), the DisplayNames property will return a collection containing a single LocalizedString object that specifies a French locale with English text. Note that this behavior is unique to Choice objects.

A Choice object's display name, which is always a string value, should not be confused with its value, which can be a string, an integer, or a collection of Choice objects (when a Choice object acts as a group node). A Choice object's display name is assigned with the DisplayName property, while its value is assigned using the appropriate property, depending on its type: ChoiceIntegerValue for integer-type choice items, ChoiceStringValue for string-type choice items, or ChoiceValues for group nodes. Although the server does not check the display names and values of the choice items within a given choice list for uniqueness, it is recommended that they be unique to avoid ambiguity.

To create a Choice object, call the Factory.Choice.CreateInstance method. In order to save the state of a new Choice object (when you save the com.filenet.api.collection.ChoiceList object to which it belongs), you must, at a minimum, set its ChoiceType and DisplayNames properties. The DisplayNames property can be either set directly, by setting it to a LocalizedStringList object; or set indirectly, by setting the DisplayName property. To create a list collection of Choice objects (com.filenet.api.collection.ChoiceList object), call the Factory.Choice.CreateList method.

ICmDirectoryConfigurationOID Configuration object for Oracle Directory Server security provider.
IColumnDefinition Represents the description of a column in a Content Engine database table. A ColumnDefinition object describes a column used by a TableDefinition object. By reading the properties of these objects, you can query the values contained in a table.
IContentCacheConfiguration Defines the configuration for a content cache. This includes, in particular, the file storage area for the cache (the ContentCacheArea property).

A cache configuration can be associated with a server or with a group of servers. More specifically, a ContentCacheConfiguration instance can be associated with the following types of objects: ServerInstance, which represents one server; VirtualServer, which represents one or more servers; and Site, which represents a still yet larger grouping of servers and other objects based on a geographic location. (A cache configuration can also be associated with a Domain, but typically you would not want servers in different geographical sites to use the same cache, since the cache must be local to the server to benefit server performance.) On startup, and periodically thereafter, a Content Engine server checks the ServerInstance object representing itself, then the VirtualServer object representing the virtual server of which it is a part, and so on, searching for the most closely associated cache configuration. Referred to as the primary cache, the first cache found becomes the cache for that server. Otherwise, in the absence of any cache configuration, the server does not use a cache.

In order for a cache area to be used, at least one server must be configured to be part of the same site as the cache.

IContentConfiguration Configures the Content Management Subsystem. The Content Management Subsystem is the part of the Content Engine Object Store Service that is responsible for adding and retrieving document content to and from managed storage areas in response to client requests. The ContentConfiguration interface allows the operation of the Content Management Subsystem to be tuned for the local environment in which it is executing.

Just as it must do for all other client requests involving the creation, update, or deletion of data in an object store, the Object Store Service must also guarantee transactional integrity with respect to adding content. Guaranteeing the transactional integrity of content upload and storage is one of the primary functions of the Content Management Subsystem.

In order to make this guarantee, the process of adding content is divided into two stages: Stage one involves copying content into a temporary location on the server while stage two is primarily concerned with copying the content to its permanent location.

Stage one occurs within the context of a client initiated transaction involving content upload; for example, checking in a document. In this stage, the content associated with the object or objects participating in the transaction are copied from the client to a temporary location that is associated with the designated storage area in which the content will ultimately be stored. This temporary location may be a specially designated file system directory, sometimes referred to as the "inbound directory" or it may a table in the database. The type of temporary storage depends on the destination storage area type. Any metadata changes associated with the participating objects are also carried out at this during this stage.

At the conclusion of the first stage of the operation, the transaction must be committed in order to make the changes durable. Committing the transaction includes adding a message to the ContentQueue, when processed, that will result in the second stage of the operation to be executed. The fact that the transaction has been committed after stage one necessarily implies that the server guarantees that the second stage will be carried out - even in the event of server disruptions, power failures, etc.

It is important to note that after a transaction involving content upload has been committed, that is, after stage one has completed, the new content has functionally been added to the storage area; a user can retrieve (or perform any other legal operation) on the new content just like any other content in the storage area, despite the fact that it may actually still reside in the temporary storage location.

At the conclusion of stage one of the operation or at anytime during its execution, the transaction can also be aborted and, therefore, must be rolled back. Rolling back a transaction in simple terms means guaranteeing that any intermediate changes that occurred during the execution of the transaction will be undone so that the system is restored to the state that it was in prior to the transaction and guaranteeing that none of these changes will be visible to any other transaction while they are being cleaned up.

With respect to content upload there are two categories of changes that need to be undone: Metadata changes and content that has been copied to the temporary storage area. The cleanup of the former is handled by the normal transaction processing mechanisms provided by the Object Store Service but the latter is a special case and is managed by the Content Management Subsystem. The way it works is temporary content is flagged as "abandoned". While it is in this state it is invisible to clients and is effectively "not there" from the client's point of view. The Content Management Subsystem then periodically sweeps the temporary storage areas and deletes all abandoned content.

Many of the functions of the Content Management Subsystem described above are parameterized such that their behavior can be modified. This is the purpose of the ContentConfiguration interface: To expose those aspects of content operations that can be adjusted in order to optimize the performance of the Object Store Service within a given operational environment.

IDirectoryConfiguration Represents the base configuration object for all security providers and holds directory configuration data. The DirectoryConfiguration object is used to configure the directory service providers that are used for authorization checks within the servers.

You can create one or more DirectoryConfiguration objects for each FileNet P8 domain. For example, if you have two Active Directory forests to be accessed by the FileNet P8 domain, you must create two Active Directory-specific DirectoryConfiguration objects--one for each forest. To create an instance of the DirectoryConfiguration class, call the type-specific CreateInstance factory method. For example, to create an instance of an Active Directory configuration object, call Factory.DirectoryConfigurationAD.CreateInstance().

IDirectoryConfigurationAD Represents the configuration object for the Active Directory security provider. You must create a configuration object for each Active Directory forest that is accessed by the FileNet P8 domain. For example, if you have two Active Directory forests to be accessed by the FileNet P8 domain, you need to create two Active Directory-specific DirectoryConfiguration objects--one for each forest. To create an instance of the DirectoryConfigurationAD class, call Factory.DirectoryConfigurationAD.CreateInstance(). The group of type-specific directory configuration objects is contained in the DirectoryConfigurationADList collection object.
IDirectoryConfigurationAdam Represents the configuration object for an ADAM or AD LDS security provider. A Microsoft Active Directory Application Mode (ADAM) directory server or a Microsoft Active Directory Lightweight Directory Services (AD LDS) directory server can be mapped to multiple FileNet P8 realms. Each FileNet P8 realm has a one-to-one relationship with the authentication provider. There is also a one-to-one relationship between a FileNet P8 Realm object and a DirectoryConfigurationAdam object. Therefore, you must create one DirectoryConfigurationAdam object for each authentication provider in each realm. To create an instance of the DirectoryConfigurationAdam class, call Factory.DirectoryConfigurationAdam.CreateInstance(). The group of type-specific directory configuration objects is contained in the DirectoryConfigurationAdamList collection object.
IDirectoryConfigurationCA This interface is not supported. An IDirectoryConfigurationCA instance represents the configuration object for a CA eTrust security provider.
IDirectoryConfigurationIBM Represents the configuration object for an IBM Tivoli security provider. An IBM Tivoli directory server can be mapped to multiple FileNet P8 realms. Each FileNet P8 realm has a one-to-one relationship with the authentication provider. There is also a one-to-one relationship between a FileNet P8 Realm object and a DirectoryConfigurationIBM object. Therefore, you must create one DirectoryConfigurationIBM object for each authentication provider in each realm. To create an instance of the DirectoryConfigurationIBM class, call Factory.DirectoryConfigurationIBM.CreateInstance(). The group of type-specific directory configuration objects is contained in the DirectoryConfigurationIBMList collection object.
IDirectoryConfigurationNovell Represents the configuration object for a Novell eDirectory security provider. A Novell eDirectory server can be mapped to multiple FileNet P8 realms. Each FileNet P8 realm has a one-to-one relationship with the authentication provider. There is also a one-to-one relationship between a FileNet P8 Realm object and a DirectoryConfigurationNovell object. Therefore, you must create one DirectoryConfigurationNovell object for each authentication provider in each realm. To create an instance of the DirectoryConfigurationNovell class, call Factory.DirectoryConfigurationNovell.CreateInstance(). The group of type-specific directory configuration objects is contained in the DirectoryConfigurationNovellList collection object.
IDirectoryConfigurationSunOne Represents the configuration object for a SunOne security provider. A SunOne directory server can be mapped to multiple FileNet P8 realms. Each FileNet P8 realm has a one-to-one relationship with the authentication provider. There is also a one-to-one relationship between a FileNet P8 Realm object and a DirectoryConfigurationSunOne object. Therefore, you must create one DirectoryConfigurationSunOne object for each authentication provider in each realm. To create an instance of the DirectoryConfigurationSunOne class, call Factory.DirectoryConfigurationSunOne.CreateInstance(). The group of type-specific directory configuration objects is contained in the DirectoryConfigurationSunOneList collection object.
IImageServicesClassDescription Represents the description of an Image Services document class.
IImageServicesImportAgentConfiguration Represents configuration data for an Image Services import operation.
IImageServicesPropertyDescription Represents the description of an Image Services document class property.
IImageServicesSiteSettings Represents the configuration settings that can be overridden for the Image Services fixed content devices on the specified site. For each setting that can be overridden, the ImageServicesSiteSettings object contains a property that, if populated, will override the corresponding property of the same name on the IMFixedContentDevice object.
IIndexJobClassItem Identifies the class to be full text indexed. When a property or class is enabled or disabled for indexing, objects with newly enabled properties/classes need to be indexed, and objects with newly disabled properties/classes need to be removed from the index. The specified class can be any base class (such as, Document or Folder), or any of its subclasses, that support indexing. All instances of the specified class are indexed.

Warning: Do not change the CBREnabled status of a class or property while an IndexJob operation is running on that class. Doing so will cause unpredictable results. Instead, abort any index job running on a class before changing the configuration, then resubmit the index job for that class.

If the class selected to index is a base class (Versionable, Document, Annotation, Folder, or CustomObject), new VerityCollection objects are created to hold the new indexing information. When this index operation completes, the old collections that previously held the indexing information are deleted. Because deleting the indexing information is not done on an individual object basis, and is instead done by deleting all relevant Verity collections, indexing a base class is somewhat faster than indexing a subclass of the base class.

Note: For indexing purposes, the Document class is also considered to be a base class, because the Document class is the only subclass of the Versionable class, and no instances of the Versionable class can be created.

For Document or Annotation objects created using a FileNet P8 3.5.x installation: If the CBREnabled status is changed to disabled for a class that had either Document or Annotation objects that were indexed, the index job to remove the indexing information should be run before any documents or annotations are deleted or modified (the content elements removed). If this cannot be accomplished, the Document and/or Annotation class and all subclasses of these classes should be reindexed.

IIndexJobCollectionItem Identifies a Verity collection to be full text indexed. When the indexing data for one or more Verity collections becomes corrupted or lost (due to a storage device failure), the collection needs to be reindexed. This operation deletes the current indexing data, and creates new full text index data to replace it.

Warning: Do not use collection indexing to address a change in the CBREnabled status on a class or property. Only the existing data in the collection will be submitted to be indexed (even if all collections of an object store are selected). Any classes newly enabled/disabled for indexing will not be reindexed because instances of these classes may not be in the existing collections.

IIndexJobItem Indicates a particular item that is being full text indexed.
IIndexJobSingleItem Identifies an object to be full text indexed. When the original index attempt results in an indexing failure for a single object (such as a Document or Annotation object), or some aspect of the configuration (such as a Verity style file) needs to be changed, the affected object can be reindexed. Performing this operation on an object whose class is CBR enabled attempts to reindex the object. Performing this operation on an object whose class is not CBR enabled attempts to delete the object from any existing indexes.
ILocalizedString Provides a means of support for locale-specific display names and descriptive text used by a class definition or property template.

You can create an instance of a LocalizedString object by calling the CreateInstance method on the Factory.LocalizedString class.

IPropertyDefinition 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.
IPropertyDefinitionBinary Represents the definition of a property that holds a binary value. A PropertyDefinitionBinary object is created from a PropertyTemplateBinary object and contains mutable property metadata that you can customize. When a PropertyDefinitionBinary object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPropertyDefinitionBoolean Represents the definition of a property that holds a Boolean value. A PropertyDefinitionBoolean object is created from a PropertyTemplateBoolean object and contains mutable property metadata that you can customize. When a PropertyDefinitionBoolean object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPropertyDefinitionDateTime Represents the definition of a property that holds a DateTime value. A PropertyDefinitionDateTime object is created from a PropertyTemplateDateTime object and contains mutable property metadata that you can customize. When a PropertyDefinitionDateTime object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPropertyDefinitionFloat64 Represents the definition of a property that holds a Double (Float64) value. A PropertyDefinitionFloat64 object is created from a PropertyTemplateFloat64 object and contains mutable property metadata that you can customize. When a PropertyDefinitionFloat64 object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPropertyDefinitionId Represents the definition of a property that holds a GUID string value. A PropertyDefinitionId object is created from a PropertyTemplateId object and contains mutable property metadata that you can customize. When a PropertyDefinitionId object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPropertyDefinitionInteger32 Represents the definition of a property that holds an integer value. A PropertyDefinitionInteger32 object is created from a PropertyTemplateInteger32 object and contains mutable property metadata that you can customize. When a PropertyDefinitionInteger32 object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPropertyDefinitionObject Represents the definition of a property that holds a Content Engine object value. A PropertyDefinitionObject object is created from a PropertyTemplateObject object and contains mutable metadata that you can customize. When a PropertyDefinitionObject object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPropertyDefinitionString Represents the definition of a property that holds a string value. A PropertyDefinitionString object is created from a PropertyTemplateString object and contains mutable property metadata that you can customize. When a PropertyDefinitionString object is added to a class definition's PropertyDefinitions collection, a user-defined property is created in that class.
IPublishingConfiguration References the configuration data for a publishing operation. This class allows admininistrative clients to set or access publishing-related configuration settings. A PublishingConfiguration object can be assigned to objects of the server hierarchy (Domain, Site, VirtualServer, and ServerInstance), and is persisted in the GCD.
IReplicationConfiguration Represents configuration settings for the replication components of a server.
IServerCacheConfiguration Defines configuration options for all server caches that do not have object store-specific characteristics. The options apply to the following caches: code module cache, GCD cache, marking set cache, metadata cache, subject cache, and user token cache. Options include a time-to-live (TTL) value for managing cache entry residency and a value that, when exceeded, triggers cache refresh activity on a least-recently-used basis. (Object store-related cache options, such as folder cache TTL and object security cache attributes, are set at the object store level.)

The ServerCacheConfiguration object is contained in the SubsystemConfigurationList property of the server hierarchy objects (Domain, Site, Virtual Server, and ServerInstance). To access a ServerCacheConfiguration object, call Get_SubsystemConfigurations to retrieve the SubsystemConfigurationList from the "host" independent object, then iterate the returned list.

To create a new instance, call Factory.ServerCacheConfiguration.CreateInstance and add the new object to the SubsystemConfigurationList of the appropriate server hierarchy object. (Note: The SubsystemConfigurationList of the Domain object cannot be modified. To update its ServerCacheConfiguration object, locate the pre-existing object in the list and update it.) The created object is a dependent object and is only persisted when its parent object (the independently persistable object that references it) is persisted.

The ServerCacheConfiguration object is associated with a Domain, Site, Virtual Server, or ServerInstance object. The values of the cache configuration properties are used while the FileNet P8 system is running and override the default values defined at installation time.

ISiteSettings Represents an abstract, dependent object that provides site-specific, configuration value overrides. For each fixed content device type with settings that can be overridden, a corresponding subclass of SiteSettings is defined with properties that, if populated, will override the corresponding properties of the same name on the fixed content device object.
ISubsystemConfiguration Represents a configuration object related to a particular subsystem or functional area that can be configured relative to a server hierarchy. This interface is the superclass for configuration objects. For each object in the hierarchy, there are a number of associated configuration objects. Each of these configuration objects has one or more attributes defining various configuration options for a particular subsystem area (such as content cache, server caching, trace logging, and so on).

All of the configuration objects available on the objects of the server hierarchy (Domain, Site, VirtualServer, and ServerInstance) are represented as a collection of dependent objects (SubsystemConfigurationList). To access a SubsystemConfiguration object, retrieve the SubsystemConfigurations property from the "host" independent object.

ITraceLoggingConfiguration Configures and enables trace logging on the Content Engine host for the supported subsystems. Each of the supported subsystems is a property on this class, enabling trace logging to be configured per subsystem. Configuring trace logging for a subsystem applies the trace logging settings to all classes in that subsystem. The TraceFlag constant class contains the trace log settings available. These settings can be ORed together to apply multiple settings to a subsystem. The TraceLoggingEnabled property on this (TraceLoggingConfiguration) class enables or disables trace logging for all of the configured subsystems. Use the AppenderNames property to specify the output destination classes for the trace logs.

Trace logging is implemented using the Apache log4j package (org.apache.log4j).

IVerityCollection Identifies the full text indexing information used for a particular base class and all of its subclasses. A VerityCollection is associated with only one IndexArea, and the full text information is stored in a file system directory identified by the VerityIndexArea.RootDirectoryPath property.

For each VerityCollection object in the Content Engine database, there is a corresponding collection maintained by the Verity software that actually holds the full text index data. The name of this collection is identified in the VerityCollection.CollectionName property.

VerityCollection objects are automatically created by the server when needed, and do not need to be created by a client application. When full text indexing is available, and the first instance of a class is created or modified, the server looks for an existing VerityCollection associated with the appropriate base class, and will use this VerityCollection. If a VerityCollection is not found, a new VerityCollection is created, along with the corresponding collection maintained by the Verity software.

An application can set the ResourceStatus property to "closed" if a problem occurs with writing data to a particular VerityCollection, or to "unavailable" if the collection is expected to be made available again eventually.

The ResourceStatus property is set to "full" by the server when the number of rows in the collection is greater than VerityServerConfiguration.MaxRowsPerCollection (no new data will be written to the collection). Whenever a collection is needed for writing full text information, the collection is selected from the list of eligible "open" collections. If no open collection exists, then a collection with a status of "standby" is selected, and that collection’s status is changed to "open".

New indexing information is written only to collections having a status of "open". However, all collections, regardless of their status, are searched when queries are performed. To prevent a collection from being searched, the associated VerityCollection object must be deleted.

IVerityServerConfiguration Contains the Verity configuration data (properties) for a server instance. This configuration data can differ from one server to the next. A VerityServerConfiguration object is contained in the SubsystemsConfiguration property of Domain, Site, VirtualServer, and ServerInstance objects. The VerityServerConfiguration object used is the first occurrence found by searching (in this order) the ServerInstance instance, the VirtualServer instance, the Site instance, and the Domain instance.

None of the properties on this object must be set or changed to enable full text indexing. This object is used only to address performance issues.

IContentElement Represents the superclass for classes used to access document or annotation content data. Each content element represents content data, which can either be local to an object store (represented by an ContentTransfer object) or external to an object store and therefore outside the control of the Content Engine server (represented by a ContentReference object).
IContentReference Represents external content data that exists outside of an object store (and therefore outside the control of the Content Engine server), but to which an object store maintains a reference. The URL of the resource that contains the content data is stored in the ContentLocation property.
IContentTransfer Represents content data that is local to an object store and directly managed by the Content Engine server.
IDocumentState Represents a valid lifecycle state of a document lifecycle policy. A document lifecycle policy defines a set of valid lifecycle states for a document, controls the transition of those states, and specifies the actions to be taken and which access permissions to be applied when a document's lifecycle state changes. To define the lifecycle states in a document lifecycle policy, create a DocumentState object for each lifecycle state that you want to define and add it to a DocumentLifecyclePolicy object's DocumentStates collection.

Each lifecycle state must have a name, which is set by the StateName property. Each lifecycle state name must be unique within the lifecycle policy in which it is defined. To specify whether a given lifecycle state can be demoted or not, set its CanBeDemoted property.

The order of the lifecycle states in a document lifecycle policy's DocumentStates collection is important and determines the succession of lifecycle states. When a document that is associated with a document lifecycle policy is created, its initial lifecycle state is the first DocumentState object in the document lifecycle policy's DocumentStates collection. To move a document into the next lifecycle state defined in the document lifecycle policy's DocumentStates collection, call the document's ChangeState method and set its flags parameter to the LifecycleChangeFlags.PROMOTE constant. To move a document into the previous lifecycle state (unless the document's current lifecycle state's CanBeDemoted property is set to false), set the method's flags parameter to DEMOTE.

The template permissions specified by the TemplatePermissions property will be applied during a lifecycle state change if you set the ApplyTemplatePermissions property to true; otherwise the permissions will not be applied. If the ApplyTemplatePermissions property to set to true and you reset a document's lifecycle state, either by calling its ChangeState method and specifying RESET or by calling its Checkin method while the ResetLifecycleOnCheckin property on its document lifecycle policy is set to true, the access permissions will be reset to the access permissions of the initial lifecycle state.

ISubscribedEvent A ISubscribedEvent object represents a system or custom event that applies to a ISubscription object. You add a ISubscribedEvent object to a subscription via the ISubscriptionobject's SubscribedEvents property. You set this property to a ISubscribedEventList collection.

To create a ISubscribedEvent object, call the CreateInstance method on the Factory.SubscribedEvent class. You then set the object's EventClass property to a IEventClassDefinition object.

You can get a reference to a SubscribedEvent object by iterating a ISubscribedEventList collection.

IPropertyDescription Represents the base class for all property description classes. A property description object holds immutable metadata that describes a specific class property. Each property description class corresponds to a specific property data type (for example, PropertyDescriptionBinary defines a property that returns a binary value, PropertyDescriptionBoolean defines a property that returns a Boolean value, and so on). Because all of its properties are read-only, you cannot directly modify a property description object.
IPropertyDescriptionBinary Represents the fixed description of a property that holds a binary value. A PropertyDescriptionBinary object contains immutable property metadata, which you cannot directly modify.
IPropertyDescriptionBoolean Represents the fixed description of a property that holds a Boolean value. A PropertyDescriptionBoolean object contains immutable property metadata, which you cannot directly modify.
IPropertyDescriptionDateTime Represents the fixed description of a property that holds a DateTime value. A PropertyDescriptionDateTime object contains immutable property metadata, which you cannot directly modify.
IPropertyDescriptionFloat64 Represents the fixed description of a property that holds a Double (Float64) value. A PropertyDescriptionFloat64 object contains immutable property metadata, which you cannot directly modify.
IPropertyDescriptionId Represents the fixed description of a property that holds a GUID string value. A PropertyDescriptionId object contains immutable property metadata, which you cannot directly modify.
IPropertyDescriptionInteger32 Represents the fixed description of a property that holds an integer value. A PropertyDescriptionInteger32 object contains immutable property metadata, which you cannot directly modify.
IPropertyDescriptionObject Represents the fixed description of a property that holds a Content Engine object value. A PropertyDescriptionObject object contains immutable property metadata, which you cannot directly modify.
IPropertyDescriptionString Represents the fixed description of a property that holds a string value. A PropertyDescriptionString object contains immutable property metadata, which you cannot directly modify.
IExternalAlias Represents the mechanism for mapping an external class or property to a corresponding Content Engine class or property. This interface is the base for subinterfaces representing external class and property aliases.
IExternalClassAlias Represents the mechanism for mapping an external class to a corresponding Content Engine class.
IExternalIdentity Represents the identity of a replicated object in an external repository.
IExternalParticipant This interface is not supported.
IExternalPropertyAlias Represents the mechanism for mapping an external class property to a corresponding Content Engine class property.
IExternalPropertyDescription Represents the description of a class property in an external repository.
IObjectStoreParticipant Represents an object store participant of a replication group.
IReplicationParticipant This interface is the base for subinterfaces representing external repository or object store participants in a replication group.
IAccessPermission Defines access permissions through a bitmask of access rights. You can create an instance of this class by calling CreateInstance on the Factory.AccessPermission class.
IAccessPermissionDescription Describes an access right or level.

This interface provides helper methods that you can use to retrieve descriptive information for a particular access right or access level (a commonly-used combination of access rights) for a particular object. The most typical use of this interface's methods is to populate a security edit dialog. For example, you can retrieve a PermissionDescriptionList for an object, then use these methods to list the access rights and levels that a user can add. You can also retrieve the display name, descriptive text, and the permission type for the object.

The user must have Read (AccessRight.READ) permission on the parent object to be able to retrieve the permission description information.

You can get an instance of this object in the following ways:

  • By iterating an AccessPermissionDescriptionList collection.
  • By retrieving the TemplatePermissionDescriptions property from a SecurityTemplate object.
  • By retrieving the PermissionDescriptions property from a ClassDescription object.

These methods return an AccessPermissionDescriptionList collection from which you can retrieve an AccessPermissionDescription object.

IActiveMarking Represents a marking that is currently applied to a given object.

Any object that can have a marking can be assigned one or more markings. A marking that is assigned to an object is called an active marking. An ActiveMarkingList collection contains all markings assigned to a single object.

From the properties on this interface, you can retrieve the value of the associated Marking property, and the display name of the property to which the active marking applies. (See the PropertyDisplayName property.)

You cannot create a new ActiveMarking object. However, you can get a reference to one by retrieving an object's ActiveMarkings property, the value of which is an ActiveMarkingList, and then retrieving an item from the returned collection using an approach of your choice.

IApplicationSecurityTemplate Represents a template through which an application can apply permissions (access rights) to a Document, CustomObject, or Folder object, and to their subclasses. Security templates are not independently persistable to the Content Engine; they are contained in a SecurityPolicy object. The template contains the permissions that will be applied to an object by the application program. An ApplicationSecurityTemplate object also has associated AccessPermissionDescription objects, each of which provide descriptive information for an access right or level.

You can enable or disable a template within its security policy container. An enabled template can be applied to an object; a disabled template remains an item in the security policy container but cannot be applied to an object.

A SecurityTemplate object can represent either an application security template or a versioning security template, and both types can exist simultaneously in a single SecurityPolicy object. The two template types have the same object type, but are differentiated by their use and by their class IDs (GUIDs), which are available as constants defined in the ClassDescription interface. A versioning security template is automatically applied when the state of a document version changes, and may also be explicitly applied at any time by a user or group with permission to modify the object's security (AccessRight.WRITE_ACL). However, an application security template is never automatically applied. It must be explicitly applied by an application calling the ApplySecurityTemplate method. For more information, see the ApplySecurityTemplate method on the Document, CustomObject, and Folder interfaces.

To create an instance of ApplicationSecurityTemplate, call CreateInstance on the Factory.ApplicationSecurityTemplate class. To retrieve an ApplicationSecurityTemplate object from a SecurityPolicy object, first retrieve the SecurityPolicy object's SecurityTemplates property then retrieve a SecurityTemplate object of the desired type from the returned SecurityTemplates collection.

IDiscretionaryPermission Base class for permission objects that define discretionary access permissions. The object's owner grants individual users or groups access rights to the object based on the grantee's identity and group memberships.
IMarking Represents the definition of a value that may be assigned to a marking-controlled property. Markings provide an additional, optional layer of security that is primarily designed for the records management marketplace, but which can also be applied by non-records management applications. Markings allow controlled access to objects based on specific property values. The set of definitions for all possible Marking objects is contained in a MarkingSet collection.

A marking represents a single item in a set of markings. For example, if a set of markings is called Security Codes, items within the set might be Top Secret, Secret, Confidential, and so on. Each of those marking values contains a set of access permissions that define who can assign that specific value to an object property, who can modify or remove that specific value, and, once the value is assigned, who will have access to the object to which the value is assigned. You can assign one or more of these markings to an object. To then be able to access that object, a user must be granted sufficient access from all assigned markings. The set of all active markings (that is, those that are currently assigned to a given object) are contained in an ActiveMarkingList collection. To retrieve the active markings on a given object, get the value of its ActiveMarkings property. You can then retrieve each marking and its value.

The user's access to an object is represented by an effective access mask. The effective access is calculated using the object's permission list and subtracting the constraint mask of the applied markings. The resulting effective access is used to control what that user can do with the object.

IPermission Represents the base class for Permission objects.

A Permission object represents an access control (or rule) associated with an object. Every object has an associated Access Control List (ACL), which is represented by a Content Engine PermissionList object. Each ACL is composed of Access Control Entries (ACEs), each of which grants or denies specific permissions (access rights) to a particular user or group. An individual Permission object represents an access control and corresponds to an Access Control Entry (ACE).

You can get a Permission object by calling an object's Get_Permissions method and using methods on the returned collection to retrieve its elements. You can create a new Permission instance by calling Factory.AccessPermission.CreateInstance().

You can optionally set the Permission object to be inheritable. That is, by calling Set_InheritableDepth, you can specify the level (depth) to which the permission you create can be inherited. You can specify that the permission is not inheritable, or that it can be inherited to a single level, or that it can be inherited to an unlimited level.

A permission can be acquired from several sources: direct, default, a security parent, or a security template. A permission's source is direct as a result of explicitly setting the object's permission, for example, by calling Set_Permissions. The source is default when a permission is acquired as a result of default settings on an object's class. For example, if you do not specify any permissions when you create an object, the permissions assigned to the class are assigned to the new object. A permission's source is its security parent if the permission is assigned as a result of inheriting a parent object's permissions. For example, if you create a subfolder, the subfolder can inherit the permissions assigned to the folder in which it is contained (that is, its parent folder). If the permission is acquired from a security template, its permission source is the template. To determine the permission source of a Permission object, call Get_PermissionSource().

IPermissionDescription Base class for objects describing permissions.
ISecurityTemplate Represents the base class for security template classes. The templates are contained within a security policy and can be one of two types: versioning or application templates. For more information on each of these types, refer to the interface descriptions for IVersioningSecurityTemplate and IApplicationSecurityTemplate interface descriptions.
IVersioningSecurityTemplate Represents a template for automatically applying permissions (access rights) to a Document object during versioning state changes. Security templates are not independently persistable to the Content Engine; they are contained in a SecurityPolicy object. The template contains the permissions that will be applied to an object as its version state changes. A VersioningSecurityTemplate object also has associated AccessPermissionDescription objects, each of which provide descriptive information for an access right or level.

You can enable or disable a template within its security policy container. An enabled template can be applied to an object; a disabled template remains an item in the security policy container but cannot be applied to an object.

A SecurityTemplate object can represent either an application security template or a versioning security template, and both types can exist simultaneously in a single SecurityPolicy object. The two template types have the same object type, but are differentiated by their use and by their class IDs (GUIDs), which are available as constants defined in the VersionStatusId class. An application security template must be explicitly applied by calling an object's ApplySecurityTemplate method; it is never automatically applied. A versioning security template is automatically applied when the state of a document version changes, and may also be explicitly applied at any time by a user or group with permission to modify the object's security (AccessRight.WRITE_ACL).

If an object has no associated security policy, its permissions remain unchanged when it undergoes a versioning change. However, if the object has an associated SecurityPolicy object, its permissions are modified according to the non-disabled, applicable security templates of its SecurityPolicy when:

  • The object undergoes a versioning change (for example, a document's version status moves from in-process to released).
  • The object's class changes (as the result of a call to the object's ChangeClass method).

To create a new VersioningSecurityTemplate object, call CreateInstance on the Factory.VersioningSecurityTemplate class. To retrieve a VersioningSecurityTemplate object from a SecurityPolicy object, first retrieve the SecurityPolicy object's SecurityTemplates property then retrieve a SecurityTemplate object of the desired type from the returned SecurityTemplates collection.

See Also