Package org.hippoecm.frontend.model.ocm
Class JcrObject
java.lang.Object
org.hippoecm.frontend.model.ocm.JcrObject
- All Implemented Interfaces:
Serializable
,org.apache.wicket.model.IDetachable
,org.apache.wicket.util.io.IClusterable
,IObservable
public abstract class JcrObject
extends Object
implements org.apache.wicket.model.IDetachable, IObservable
A base class for implementing object content mapping. It wraps a JcrNodeModel,
and provides an observable on top of JCR. Subclasses can override the processEvents
method to translate these events to object-type specific events.
All instances of a type that correspond to the same node are equivalent with respect to the hashCode and equals methods.
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
detach()
boolean
Equivalence of observables; observation will only be started on one instance.protected Node
getNode()
protected JcrNodeModel
protected IObservationContext
getStringSet
(String relPath) int
hashCode()
protected abstract void
processEvents
(IObservationContext context, Iterator<? extends IEvent> events) Process the JCR events.void
save()
void
setObservationContext
(IObservationContext<? extends IObservable> context) Before observation is started on the observable, an observation context is injected by the observer registry.protected void
setStringSet
(String relPath, Set<String> strings) void
When the firstIObserver
of this observable is registered with the observer registry, observation is started.void
When the lastIObserver
unregisters, observation is stopped.
-
Constructor Details
-
JcrObject
-
-
Method Details
-
getNode
- Throws:
ItemNotFoundException
-
getNodeModel
-
getStringSet
-
setStringSet
-
save
public void save() -
detach
public void detach()- Specified by:
detach
in interfaceorg.apache.wicket.model.IDetachable
-
setObservationContext
Description copied from interface:IObservable
Before observation is started on the observable, an observation context is injected by the observer registry. This context can be used to notify listeners.- Specified by:
setObservationContext
in interfaceIObservable
-
getObservationContext
-
processEvents
protected abstract void processEvents(IObservationContext context, Iterator<? extends IEvent> events) Process the JCR events. Implementations should create higher-level events that are meaningful for the subtype. These must be broadcast to the observation context.- Parameters:
context
- subtype specific observation contextevents
- received JCR events
-
startObservation
public void startObservation()Description copied from interface:IObservable
When the firstIObserver
of this observable is registered with the observer registry, observation is started. Implementations must notify observers until observation is stopped.An implementation should register listeners with external data sources, when appropriate. It is possible for an observable to register as an observer for another observable.
- Specified by:
startObservation
in interfaceIObservable
-
stopObservation
public void stopObservation()Description copied from interface:IObservable
When the lastIObserver
unregisters, observation is stopped. Any listeners or observers registered by the observable must be unregistered by the implementation.- Specified by:
stopObservation
in interfaceIObservable
-
hashCode
public int hashCode()- Specified by:
hashCode
in interfaceIObservable
- Overrides:
hashCode
in classObject
- See Also:
-
equals
Description copied from interface:IObservable
Equivalence of observables; observation will only be started on one instance.- Specified by:
equals
in interfaceIObservable
- Overrides:
equals
in classObject
-