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:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description JcrObject(org.apache.wicket.model.IModel<javax.jcr.Node> nodeModel)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
detach()
boolean
equals(Object obj)
Equivalence of observables; observation will only be started on one instance.protected javax.jcr.Node
getNode()
protected JcrNodeModel
getNodeModel()
protected IObservationContext
getObservationContext()
protected Set<String>
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
startObservation()
When the firstIObserver
of this observable is registered with the observer registry, observation is started.void
stopObservation()
When the lastIObserver
unregisters, observation is stopped.
-
-
-
Method Detail
-
getNode
protected javax.jcr.Node getNode() throws javax.jcr.ItemNotFoundException
- Throws:
javax.jcr.ItemNotFoundException
-
getNodeModel
protected JcrNodeModel getNodeModel()
-
save
public void save()
-
detach
public void detach()
- Specified by:
detach
in interfaceorg.apache.wicket.model.IDetachable
-
setObservationContext
public void setObservationContext(IObservationContext<? extends IObservable> context)
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
protected IObservationContext 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:
IObservable.equals(Object)
-
equals
public boolean equals(Object obj)
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
-
-