Class ModelReference<T>

java.lang.Object
org.hippoecm.frontend.model.ModelReference<T>
Type Parameters:
T - the type of the object for the shared model
All Implemented Interfaces:
Serializable, org.apache.wicket.model.IDetachable, org.apache.wicket.util.io.IClusterable, IObservable, IModelReference<T>

public class ModelReference<T> extends Object implements IModelReference<T>
The default implementation of the IModelReference service interface.

After a model service is created, it can be made to register it self under the provided service id using the init(org.hippoecm.frontend.plugin.IPluginContext) method.

When model services are no longer needed, e.g. because the cluster that need it is no longer active, be sure to unregister the service using destroy().

See Also:
  • Constructor Details

    • ModelReference

      public ModelReference(String serviceId, org.apache.wicket.model.IModel<T> model)
      Construct a model service with a given service id and initial model.
      Parameters:
      serviceId - the service id that the service will be registered under
      model - the initial model
  • Method Details

    • init

      public void init(IPluginContext context)
      Register the service with the specified service id.
      Parameters:
      context - the plugin context to use for registration
    • destroy

      public void destroy()
      Unregister the service with the specified service id.
    • getModel

      public org.apache.wicket.model.IModel<T> getModel()
      Description copied from interface: IModelReference
      Retrieve the current model of the model service
      Specified by:
      getModel in interface IModelReference<T>
      Returns:
      the model
    • setModel

      public void setModel(org.apache.wicket.model.IModel<T> newModel)
      Description copied from interface: IModelReference
      Update the model of the service. Observers will be notified with an IModelReference.IModelChangeEvent.
      Specified by:
      setModel in interface IModelReference<T>
      Parameters:
      newModel - the new model
    • setObservationContext

      public void setObservationContext(IObservationContext 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
    • 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
    • detach

      public void detach()
      Specified by:
      detach in interface org.apache.wicket.model.IDetachable