Page tree

Use custom property classes to create complex sets of properties that you can associate with an object such as a BLPackage. Because subclasses inherit any properties defined in a parent custom class, you can create a hierarchical structure with multiple levels and different properties defined at the various levels. Each class inherits all properties defined for its parent class.

Consider a custom property structure like the following, which is four classes deep.

For each of the lowest classes in this structure, three instances are defined, as shown in the following illustration.

The following graphic shows one branch in this custom class structure. For any custom class, you can define an unlimited number of properties, which are then inherited by its subclasses. The graphic shows how one property defined at each level propagates downward through the structure.

The properties in this graphic can be used to identify an installation location for a BLPackage. In this example, the BLPackage is assigned a local property called DEPLOY_LOC. This local property is a property class property — that is, a type of property that refers to a specific property class or subclass. In this example, the DEPLOY_LOC property refers to the DEV custom property subclass, which includes the properties ROOT_DIR, APP_DIR, VER_DIR, and LEVEL_DIR. Three instances of the DEV custom property class are defined.

The path to the BLPackage installation directory uses the following series of parameters.

??DEPLOY_LOC.ROOT_DIR??/??DEPLOY_LOC.APP_DIR??/
??DEPLOY_LOC.VER_DIR??/??DEPLOY_LOC.LEVEL_DIR??

In this path, each parameter refers to the DEPLOY_LOC local property, which in turn refers to the DEV custom property class.

When you deploy the BLPackage, you must provide a value for the DEPLOY_LOC property. The value of a property class type of property is an instance of the referenced property class — in this case, an instance of the DEV property class. In each instance of the DEV property class, a different value is assigned to the LEVEL_DIR property. For two instances, different values are assigned to the APP_DIR property. In the first instance, LEVEL_DIR is set to dev1. When all the parameters in the path to the BLPackage are resolved, the path becomes /c/apps/a/211/dev1. In the second instance, LEVEL_DIR is set to dev2 and APP_DIR is set to apps/sandbox/a, so the path resolves to /c/apps/sandbox/a/211/dev2. In the third instance, LEVEL_DIR is set to dev3 and APP_DIR is set to apps/experimental/a, so the path resolves to /c/apps/experimental/a/211/dev3. All three paths identify different locations on the same server.

This example examines one set of properties on one branch of a custom property class hierarchy. You can use the same approach on each branch of the hierarchy. You can also use other properties to establish other types of information that are inherited downward throughout the hierarchy.