Class POJOPersistenceProviderBase

java.lang.Object
org.openxava.model.impl.POJOPersistenceProviderBase
All Implemented Interfaces:
Serializable, IPersistenceProvider
Direct Known Subclasses:
JPAPersistenceProvider

public abstract class POJOPersistenceProviderBase extends Object implements IPersistenceProvider
Abstract class for create Persistence Providers based in POJOs.

Author:
Javier Paniza
See Also:
  • Constructor Details

    • POJOPersistenceProviderBase

      public POJOPersistenceProviderBase()
  • Method Details

    • find

      protected abstract Object find(Class pojoClass, Serializable key)
      Return the object associated to the sent key.
    • persist

      protected abstract void persist(Object object)
      Marks the object as persistent.

    • createQuery

      protected abstract Object createQuery(String query)
      Creates a query, it can be Hibernate query or JPA query.

    • setParameterToQuery

      protected abstract void setParameterToQuery(Object query, String name, Object value)
      Sets the parameter to the indicated query.

      The query is of the type returned by createQuery method.

    • getUniqueResult

      protected abstract Object getUniqueResult(Object query)
      Returns the unique result of the sent query.

      It does not fail if there more than one match, in this case must returns the first one.

      Parameters:
      query - Of the type returned by createQuery method.
      Returns:
      Null if not result.
    • find

      public Object find(MetaModel metaModel, Map keyValues) throws javax.ejb.FinderException
      Description copied from interface: IPersistenceProvider
      Find an object from its key in map format.

      Specified by:
      find in interface IPersistenceProvider
      Returns:
      Never null.
      Throws:
      javax.ejb.FinderException
    • find

      protected Object find(MetaModel metaModel, Map keyValues, boolean useQueryForFind) throws javax.ejb.FinderException
      Throws:
      javax.ejb.FinderException
    • find

      public Object find(MetaModel metaModel, Object key) throws javax.ejb.FinderException
      Description copied from interface: IPersistenceProvider
      Find a object from its key object.

      Specified by:
      find in interface IPersistenceProvider
      Returns:
      Never null.
      Throws:
      javax.ejb.FinderException
    • moveCollectionElement

      public void moveCollectionElement(MetaModel metaModel, Map keyValues, String collectionName, int from, int to) throws javax.ejb.FinderException, XavaException
      Description copied from interface: IPersistenceProvider
      Move an element in a collection.

      The collection must be sortable, in JPA it means to be a List with @OrderColumn.

      Specified by:
      moveCollectionElement in interface IPersistenceProvider
      Parameters:
      metaModel - of the entity that contains the collection. Not null.
      keyValues - Key value of the container of the collection. Not null.
      collectionName - Collection name of the container collection of element to move. Not null.
      from - Original position of the element in the collection. Zero based.
      to - Position in the collection where the element will be moved. Zero based.
      Throws:
      javax.ejb.FinderException - Logic problem on find.
      XavaException - Any problem related to OpenXava. Rollback transaction.
    • toPropertiesContainer

      public IPropertiesContainer toPropertiesContainer(MetaModel metaModel, Object o) throws XavaException
      Description copied from interface: IPersistenceProvider
      Return an IPropertiesContainer to manage using introspection the sent object.

      Specified by:
      toPropertiesContainer in interface IPersistenceProvider
      Throws:
      XavaException
    • create

      public Object create(MetaModel metaModel, Map values) throws javax.ejb.CreateException, ValidationException, XavaException
      Description copied from interface: IPersistenceProvider
      Create a persistent object (saved in database) from the data passed in map format.

      Specified by:
      create in interface IPersistenceProvider
      Throws:
      javax.ejb.CreateException
      ValidationException
      XavaException
    • getKey

      public Object getKey(MetaModel metaModel, Map keyValues) throws XavaException
      Description copied from interface: IPersistenceProvider
      Return an object that can be used as primary key in model layer.

      For example, in EJB2 will be the Key class, in Hibernate can be the POJO class, and JPA ...

      Specified by:
      getKey in interface IPersistenceProvider
      Throws:
      XavaException
    • getContainer

      public Object getContainer(MetaModel metaModel, Map containerKeyValues) throws XavaException
      Description copied from interface: IPersistenceProvider
      Return the object that represents the container object.

      The container object apply only to aggregates, and it's the object that containt to the aggregate. It can be a POJO or key class, depends on the implementation.

      Specified by:
      getContainer in interface IPersistenceProvider
      Throws:
      XavaException
    • keyToMap

      public Map keyToMap(MetaModel metaModel, Object key) throws XavaException
      Description copied from interface: IPersistenceProvider
      Returns a map that contains the value of primary key sent as object.

      The map must contain at least the primary key value, but it can contains more, the rest is ignored.

      Specified by:
      keyToMap in interface IPersistenceProvider
      Throws:
      XavaException
    • createAggregate

      public Object createAggregate(MetaModel metaModel, Map values, MetaModel metaModelContainer, Object containerModel, int number) throws javax.ejb.CreateException, ValidationException, RemoteException, XavaException
      Description copied from interface: IPersistenceProvider
      Create an aggregate (saving it in database) from the data passed in map format.

      Specified by:
      createAggregate in interface IPersistenceProvider
      Parameters:
      metaModel - of the aggregate to create.
      values - Values to fill aggregate before save.
      metaModelContainer - of model that will contain the aggregate.
      containerModel - The object that will contain the new aggregate.
      number - This number will be passed to calculator of type IAggregateOidCalculator, it can use this number to calculate the oid. It's a simple counter.
      Throws:
      javax.ejb.CreateException
      ValidationException
      RemoteException
      XavaException
    • findByAnyProperty

      public Object findByAnyProperty(MetaModel metaModel, Map keyValues) throws javax.ejb.ObjectNotFoundException, javax.ejb.FinderException, XavaException
      Description copied from interface: IPersistenceProvider
      Find an object by any property (or properties).

      Returns the first object that match with the sent arguments (searchingValues).

      Specified by:
      findByAnyProperty in interface IPersistenceProvider
      Returns:
      Never null.
      Throws:
      javax.ejb.ObjectNotFoundException
      javax.ejb.FinderException
      XavaException
    • findByKeyUsingQuery

      public Object findByKeyUsingQuery(MetaModel metaModel, Map keyValues) throws javax.ejb.ObjectNotFoundException, javax.ejb.FinderException, XavaException
      Throws:
      javax.ejb.ObjectNotFoundException
      javax.ejb.FinderException
      XavaException
    • getModelName

      public String getModelName(Object modelObject)
      Description copied from interface: IPersistenceProvider
      Model name from the model object. It can be null. This value is useful when inheritance is used and the official model name does not match the real model name, so if inheritance does not apply it can be null.
      Specified by:
      getModelName in interface IPersistenceProvider
      Since:
      5.6