The following table lists the types derived from IContainable .

Derived Types

Type Description
ICodeModule Represents a user-implemented Java event handler that executes when an IAction-based object's events are raised. The event handler can be a Java class or JAR file, and must reside on the Content Engine.

To create an ICodeModule object, call the CreateInstance method on the Factory.CodeModule class, and then set the content elements of the Java module with the ContentElements property. Each content element must have the correct MimeType property value. For content elements containing a Java class, acceptable MIME types are "application/java", "application/java-byte-code", and "application/x-java-class". For content elements containing a JAR file, acceptable MIME types are "application/java-archive", "application/x-compressed", "application/x-zip-compressed", "application/zip", and "multipart/x-zip".

Note:

      The content elements that you set on an ICodeModule object must be of type IContentTransfer, not IContentReference. If you attempt to save an ICodeModule object with an IContentReference type in the content element list, the object will throw an EVENT_CM_CONTENTREFERENCE_NOT_ALLOWED exception.
      If you create a new version of anICodeModule, such as by updating the event handler content, then you must set the new version to the CodeModule property of any IAction-based object for which the new ICodeModule version is intended.

To instantiate an ICodeModule object, call the GetInstance or FetchInstance method on the Factory.CodeModule class.

As an alternative to representing a Java event handler as an ICodeModule object, you could specify the Java event handler in the classpath of your application server. However, in an enterprise environment, we recommend that you check in an event handler and any supporting libraries as a code module. Code modules are automatically available when deploying the Content Engine to multiple application server instances, or moving your content metadata from one system to another. If you reference event handlers in the classpath of an application server, you must manually distribute them to new systems.

For cache configuration considerations, see the applicable code module-related properties in the IServerCacheConfiguration interface.

See also the Javadocs for the following interfaces: DocumentClassifier, DocumentLifecycleActionHandler, EventActionHandler

IXMLPropertyMappingScript Represents the definition of a Document subclass for defining XML property mapping scripts. The Content Engine XML Classifier uses XML property mapping scripts to populate document object properties with values based on data extracted from an XML document’s content. Administrators build mapping scripts that associate XML tags in the incoming document to properties, thus enabling the automatic classification of any XML document. An XMLPropertyMappingScript object, in addition to having all of the capabilities of a Document object, provides a container for user-authored XSL scripts for transforming XML documents of a specified type. The script contains instructions for extracting content from source XML documents of the type identified by the XMLDocumentType property in order to map it onto property values for the properties associated with the target document class identified by the TargetClass property.
ICustomObject Represents a general interface that can be subclassed. A CustomObject object has no inherent semantics, but is independently securable and can be persisted to an object store. A CustomObject does not carry content, is not versionable, and does not support lifecycle functionality.

The ICustomObject base interface provides a minimal set of properties (such as Creator, DateCreated, and Name). Unlike most Content Engine objects, the ICustomObject base interface does not have a specific property defined as the name property in order that subclassed objects can define it in an appropriate way. Because a CustomObject object does not have a defined name property, the value of its Name property reverts to the default value, which is the same as its ID property.

IDocument Represents a single version of a document stored in an object store. In addition to being versionable, a Document object can be subclassed and can carry content, which is stored in one or more content elements. Each content element represents content data, which can either be local to an object store (represented by a ContentTransfer object) or external to an object store and therefore outside the control of the Content Engine server (represented by a ContentReference object). In addition, a Document object can be associated with 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 when a document's lifecycle state changes.
IFolder Represents a container that can hold other Containable subclasses, but cannot have content data of its own. Although Folder objects and their subclasses can be referentially contained, they are the only Containable subclass that can be directly contained (in a Folder). All other Containable subclasses are referentially contained using the ReferentialContainmentRelationship or DynamicReferentialContainmentRelationship classes.

Note: Folders that are referentially contained cannot participate in hierarchy index searches.

The container hierarchy is a one-to-many relationship: a folder can have many child folders, but a child folder can have only one parent folder. At the top of the container hierarchy is an automatically-created root folder. Use ObjectStore.RootFolder to get a reference to the root folder.

Folders are not versionable.

ReferentialContainmentRelationshipDynamicReferentialContainmentRelationship
IWorkflowDefinition Represents a workflow definition, an XML document of class "WorkflowDefinition" that is stored in a Content Engine object store. A workflow definition describes the instructions, paths, and queues available to a workflow, and acts as a processing template that the Process Engine uses each time the workflow runs. Workflow definition documents are versionable, containable, and can have a lifecycle associated with them.

The IWorkflowDefinition interface extends the IDocument interface, and can, therefore, be treated as a Document object. For example, a WorkflowDefinition object can have workflows linked to it. Therefore, a user selecting a workflow definition can either launch it, or launch a linked workflow.

To create a new WorkflowDefinition object and persist it to a Content Engine object store, call the CreateInstance method on the Factory.WorkflowDefinition class.

After you create a workflow definition, you link it to an object that implements the Subscribable interface by setting the SubscriptionTarget and WorkflowDefinition properties on a workflow subscription object (InstanceWorkflowSubscription or ClassWorkflowSubscription object). Note that you cannot delete a WorkflowDefinition object if a workflow subscription object refers to it in its WorkflowDefinition property.

To return all of the workflow subscription objects associated with this WorkflowDefinition object, retrieve the WorkflowSourceSubscriptions property.

You can instantiate a WorkflowDefinition object in the following ways:

  • By calling the GetInstance or FetchInstance method on the Factory.WorkflowDefinition class.
  • By retrieving the WorkflowDefinition property on a workflow subscription object.
  • By instantiating a WorkflowDefinitionSet collection, then returning a WorkflowDefinition object from the collection.
IPublishStyleTemplate Represents the style template that defines how a source document will be transformed. A style template serves as a template for a particular kind of transformation and is tied to a specific publishing event handler on a specific object store. (Note that a publishing event handler can have more than one style template associated with it.)

Information in the style template can be whatever is meaningful to the publishing event handler. For example, the style template might include an XML-based description of the transformation to be done for this style template, an ID of another document that contains a more detailed template, or a URL for publishing to an external location. A style template also specifies a list of input formats (MIME types) supported for the style template, the output format (MIME type) generated when the style template is applied, and, optionally, passwords used by PDF renditions.

A publish style template associated with the HTML publishing event handler does not specify any additional transformation options beyond the basic ones (title, description, input formats, output format, and provider ID). In addition to the basic transformation options (as mentioned above for the HTML publishing event handler), a publish style template associated with the PDF publishing event handler optionally specifies the user and master PDF passwords, as well as other PDF security and watermark settings (stored as XML in the TransformationOptions property).

IPublishTemplate Represents a template for publishing a document. A publish template is an XML document that contains information used to automate the selection of options for a publishing request. For example, it contains the properties and security to apply to the destination document, and instructions for republishing a document, such as whether to version the existing destination document or replace it. Also, a publish template's StyleTemplate property might reference a PublishStyleTemplate object, which describes how the document is to be transformed.

Because IPublishTemplate extends the IDocument interface, you can work with a publish template in the same way you work with a document. For example, you can version a publish template, file it into a folder, and delete it. Publish templates are usually authored in the Publishing Designer application. However, you can override certain publish options when you call the Publish or Republish method. See Publish Options XML for more information.

See Also