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.