Classes and inheritance

Classes are objects that serve as templates for creating other objects that are called instances of that class. These instances inherit the properties and behavior from their parent class. The classes embody the features, properties, and behaviors that are delivered to users.

A new object store is populated with many built-in classes that provide extensive functionality, both ready to use and ready to be configured.

A short primer on classes

There are many analogies you can use to help you understand generally what classes are. A common way to describe things in our world is to classify them as animal, vegetable, or mineral. If you know which of these three categories something belongs to, you know a lot about what it is, and what it can and cannot do. Each of these base categories has many subclasses that further define the common characteristics of that class. For example, the animal class, at some level in its tree of subclasses, has subclasses for cat and dog. As soon as you know whether an animal is one or the other, a cat or a dog, you know a lot about the animal. In this way, the class that an instance belongs to describes a lot about what the instance is.

A different analogy, and one that is a little more accurate when describing the kind of programmatic classes used by FileNet P8 Platform, is to compare them to a recipe. For example, a cookie recipe is itself not a cookie—it specifies ingredients and provides instructions for making cookies. (Content Engine's document class is itself not a document, but it defines how documents will behave.) Each cookie based on the recipe is very similar to the other cookies. (Two different documents based on the same document class could be about different subjects and have different authors.) So, each instance (the document) of a programmatic class (the document class) is similar to the other instances of that class, but not identical.

The recipe analogy is also a good one to understand how classes can be changed. You could take your basic cookie recipe, and change it a little so that it calls for one ingredient instead of another. By making subclasses of the base document class, you could specify that all the documents based on one subclass have the same group of custom properties, while documents based on the other subclass have some other set of properties. But regardless of the differences imposed by the different document subclasses, all the objects based on these classes would still be documents and their similarities would outweigh their differences.

What gets inherited

Classes pass the following to the objects based on them:

There are other class attributes that will be important to programmers and less important to system administrators. For example, the Content Engine's classes all have the following attributes:

About inheritance

Subclasses inherit the properties and behaviors of their parent class. By design, anything that is inherited cannot be changed or removed. Once you create a subclass, however, you can make certain changes:

A subclass inherits properties and methods from its parent.

A subclass inherits properties and methods from its parent.
These are passed on to the instances of that class.

Classes and Enterprise Manager

Using Enterprise Manager, you can examine the properties of objects and find out what class they belong to. Enterprise Manager also gives you easy access to the base classes and subclasses that initially make up an object store, and it provides a wizard for creating subclasses that will customize the object store according to your system design.

There is no functional limit to the number of "generations" of subclasses a class can have. However, you might find it useful to put restrictions on the number of sublevels to avoid hierarchical and administrative complexity.

See Classes, Properties, and Documents and Folders for more information.