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 Details

    • JcrObject

      public JcrObject(org.apache.wicket.model.IModel<Node> nodeModel)
  • Method Details

    • getNode

      protected Node getNode() throws ItemNotFoundException
      Throws:
      ItemNotFoundException
    • getNodeModel

      protected JcrNodeModel getNodeModel()
    • getStringSet

      protected Set<String> getStringSet(String relPath)
    • setStringSet

      protected void setStringSet(String relPath, Set<String> strings)
    • save

      public void save()
    • detach

      public void detach()
      Specified by:
      detach in interface org.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 interface IObservable
    • 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 context
      events - received JCR events
    • startObservation

      public void startObservation()
      Description copied from interface: IObservable
      When the first IObserver 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 interface IObservable
    • stopObservation

      public void stopObservation()
      Description copied from interface: IObservable
      When the last IObserver unregisters, observation is stopped. Any listeners or observers registered by the observable must be unregistered by the implementation.
      Specified by:
      stopObservation in interface IObservable
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface IObservable
      Overrides:
      hashCode in class Object
      See Also:
    • 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 interface IObservable
      Overrides:
      equals in class Object