Unified API Developer Manual / Version 2401
Table Of Contents
The
ObservedPropertyService
allows you to access contents which have a given value in an observed property.
A content property is observed when the property in the content type definition is annotated with extensions:observe
.
See Section 4.3.8.3, “Changing the Observe Attribute of a StringProperty” in Content Server Manual for the configuration of an observed property.
Currently only a string property with a maximum length of 256 is supported.
For such an observed property and a given non-empty value the Content Server maintains the set of contents
whose observed property has the value. The ObservedPropertyService
offers methods to retrieve the contents in
a cached and dependency-tracked way.
Example: Given is a content type ExternalProduct
with an observed string property externalId
.
Now, the set of external product contents whose external ID is "acme sportswear 123" can be retrieved by
observedPropertyService.getContentsWithValue("acme sportswear 123", externalIdDescriptor)
whereas externalIdDescriptor
is the content property descriptor of the externalId
property.
The same could be achieved using the query service. But the result retrieved by the ObservedPropertyService
is cached and dependency-tracked, which is more efficient. Additionally, for every change of the set of contents
with the observed value the content repository sends a corresponding event.
The ObservedPropertyEvent is thrown when a set of observed contents has changed. See the Javadoc for details.
Caution
Beware that the ObservedPropertyEvent
reveals the value of the observed property to the listener.
For example, the external IDs of the ExternalProduct
contents maintained in the CMS could be collected
without having the proper access rights to the Content Repository.