Properties and meta-properties

Resources have properties. Each property has a name, a type, and a value; it might have other meta-properties associated with it (such as its value, size, or an indication of its validity).

The value of a property is of a specific type, such as integer, string, date, time, or reference-to-resource. The property type depends on the property name and the resource class. The name of a property is represented in the HCL Compass CM API by a PropertyNameList.PropertyName object. PropertyNameList.PropertyName is a parameterized type, where the parameter specifies the type of the property's value. Some properties are defined by WVCM, others are defined by the HCL Compass CM API as extensions to WVCM, and some might also be defined by the server, and the client application.

In the HCL Compass CM API, meta-properties are identified by a MetaPropertyName object. The MetaPropertyName can be used to access a meta-property of a property after it has been read from the server. The MetaPropertyNames are defined in the StpProperty class and its subclasses. They are also parameterized with the type of the meta-property's value.

The PROPERTY_NAME and VALUE meta-properties of a property are distinguished meta-properties. The PROPERTY_NAME value is used to request and access the property and any of its meta-properties. The VALUE is the meta-property requested if only the property-name is used in the request.

The set of property names understood by each type of resource defined by each CM API proxy interface is a series of fields of type PropertyName. These PropertyName objects are used to request properties from the server and to access the property values after they are obtained from the server. The name of each PropertyName field defined in the CM API is an uppercase identifier in which words are separated by underscores (for example, CONTENT_LENGTH).

Examples of property names are Resource.COMMENT, Resource.DISPLAY_NAME, Resource.CREATION_DATE, and Resource.CONTENT_LENGTH. Property names are defined in the Resource class and its subclasses. Properties defined in a class are appropriate for the class and all of its subclasses. For example, the CqQuery class has CqQuery.DISPLAY_FIELDS, CqQuery.DYNAMIC_FILTERS, CqQuery.USER_FRIENDLY_LOCATION, and CqQuery.STABLE_LOCATION property names, these last two properties having been inherited from the StpResource class. Each Resource proxy subclass defines PropertyName fields that name and identify the properties associated with resources of the type represented by the proxy.