loading table of contents...

5.4.5. Types and Property Descriptors

Both Content and Struct are derived from a common parent interface CapStruct, which takes the same responsibilities as its Unified API equivalent. It augments Bean objects by providing a type in the form of a CapType, the common parent of, for example, ContentType and StructType. Types can be arranged in a type hierarchy and they can be given a name.

A CapType provides access to CapPropertyDescriptor objects, which describe the individual properties allowed for a CapObject. In the type property a property descriptor indicates which value the property can take according to the constants defined in CapPropertyDescriptorType: string, integer, markup, and so on. Each property descriptor also declares whether the property is atomic and accepts plain values or is a collection and accepts arrays of appropriate values.

For certain descriptor types, more specific interfaces provide access for additional limitations on the property. A StringPropertyDescriptor declares a length attribute indicating the maximum length of a string stored in the property. A BlobPropertyDescriptor can limit the contentType (a MIME type string) of the property values. A LinkPropertyDescriptor specifies the type of linked objects and a MarkupPropertyDescriptor the grammar of stored XML data.