Class EntityResolver

java.lang.Object
org.apache.cayenne.map.EntityResolver
All Implemented Interfaces:
Serializable, MappingNamespace

public class EntityResolver extends Object implements MappingNamespace, Serializable
Represents a virtual shared namespace for zero or more DataMaps. Unlike DataMap, EntityResolver is intended to work as a runtime container of mapping. DataMaps can be added or removed dynamically at runtime.

EntityResolver is thread-safe.

Since:
1.1
See Also:
  • Field Details

  • Constructor Details

    • EntityResolver

      public EntityResolver()
      Creates new empty EntityResolver.
    • EntityResolver

      public EntityResolver(Collection<DataMap> dataMaps)
      Creates new EntityResolver that indexes a collection of DataMaps.
  • Method Details

    • applyDBLayerDefaults

      public void applyDBLayerDefaults()
      Updates missing mapping artifacts that can be guessed from other mapping information. This implementation creates missing reverse relationships, marking newly created relationships as "runtime".
      Since:
      3.0
    • getCallbackRegistry

      public LifecycleCallbackRegistry getCallbackRegistry()
      Returns a LifecycleCallbackRegistry for handling callbacks. Registry is lazily initialized on first call.
      Since:
      3.0
    • setCallbackRegistry

      public void setCallbackRegistry(LifecycleCallbackRegistry callbackRegistry)
      Sets a lifecycle callbacks registry of the EntityResolver. Users rarely if ever need to call this method as Cayenne would instantiate a registry itself as needed based on mapped configuration.
      Since:
      3.0
    • getClientEntityResolver

      public EntityResolver getClientEntityResolver()
      Returns ClientEntityResolver with mapping information that only includes entities available on CWS Client Tier.
      Since:
      1.2
    • getDbEntities

      public Collection<DbEntity> getDbEntities()
      Returns all DbEntities.
      Specified by:
      getDbEntities in interface MappingNamespace
    • getObjEntities

      public Collection<ObjEntity> getObjEntities()
      Description copied from interface: MappingNamespace
      Returns all ObjEntities in the namespace.
      Specified by:
      getObjEntities in interface MappingNamespace
    • getEmbeddables

      public Collection<Embeddable> getEmbeddables()
      Specified by:
      getEmbeddables in interface MappingNamespace
      Since:
      3.0
    • getResults

      public Collection<SQLResult> getResults()
      Specified by:
      getResults in interface MappingNamespace
      Since:
      4.0
    • getProcedures

      public Collection<Procedure> getProcedures()
      Description copied from interface: MappingNamespace
      Returns all Procedures in the namespace.
      Specified by:
      getProcedures in interface MappingNamespace
    • getQueryDescriptors

      public Collection<QueryDescriptor> getQueryDescriptors()
      Description copied from interface: MappingNamespace
      Returns all Queries in the namespace.
      Specified by:
      getQueryDescriptors in interface MappingNamespace
    • getDbEntity

      public DbEntity getDbEntity(String name)
      Description copied from interface: MappingNamespace
      Returns DbEntity for a given name, or null if no such DbEntity is found in the MappingNamespace.
      Specified by:
      getDbEntity in interface MappingNamespace
    • getObjEntity

      public ObjEntity getObjEntity(String name)
      Description copied from interface: MappingNamespace
      Returns ObjEntity for a given name, or null if no such ObjEntity is found in the MappingNamespace.
      Specified by:
      getObjEntity in interface MappingNamespace
    • getProcedure

      public Procedure getProcedure(String procedureName)
      Description copied from interface: MappingNamespace
      Returns Procedure for a given name, or null if no such Procedure is found in the MappingNamespace.
      Specified by:
      getProcedure in interface MappingNamespace
    • getQueryDescriptor

      public QueryDescriptor getQueryDescriptor(String name)
      Returns a named query or null if no query exists for a given name.
      Specified by:
      getQueryDescriptor in interface MappingNamespace
    • getEmbeddable

      public Embeddable getEmbeddable(String className)
      Description copied from interface: MappingNamespace
      Returns an Embeddable matching class name or null if such Embeddable is not mapped.
      Specified by:
      getEmbeddable in interface MappingNamespace
      Since:
      3.0
    • getResult

      public SQLResult getResult(String name)
      Description copied from interface: MappingNamespace
      Returns a named result set mapping.
      Specified by:
      getResult in interface MappingNamespace
      Since:
      3.0
    • getClassDescriptor

      public ClassDescriptor getClassDescriptor(String entityName)
      Returns ClassDescriptor for the ObjEntity matching the name. Returns null if no matching entity exists.
      Since:
      1.2
    • addDataMap

      public void addDataMap(DataMap map)
    • refreshMappingCache

      public void refreshMappingCache()
      Refreshes entity cache to reflect the current state of the DataMaps in the EntityResolver.
      Since:
      4.0
    • getDataMap

      public DataMap getDataMap(String mapName)
      Returns a DataMap matching the name.
    • setDataMaps

      public void setDataMaps(Collection<DataMap> maps)
    • getDataMaps

      public Collection<DataMap> getDataMaps()
      Returns an unmodifiable collection of DataMaps.
    • getInheritanceTree

      public EntityInheritanceTree getInheritanceTree(String entityName)
      Specified by:
      getInheritanceTree in interface MappingNamespace
      Since:
      4.0
    • getObjEntity

      public ObjEntity getObjEntity(Class<?> entityClass)
      Looks in the DataMap's that this object was created with for the ObjEntity that maps to the services the specified class
      Specified by:
      getObjEntity in interface MappingNamespace
      Returns:
      the required ObjEntity or null if there is none that matches the specifier
      Since:
      4.0
    • getObjEntity

      public ObjEntity getObjEntity(Class<?> entityClass, boolean lookupClientResolver)

      Looks in the DataMap's that this object was created with for the ObjEntity that maps to the services the specified class, with option to fallback to search by name with client resolver in case entity not found.

      This method can be used where entity class can be received from client.

      Parameters:
      entityClass - entity class to search
      lookupClientResolver - flag to fallback to client resolver
      Returns:
      the required ObjEntity or null if there is none that matches the specifier
      Since:
      4.0
    • getObjEntity

      public ObjEntity getObjEntity(Persistent object)
      Specified by:
      getObjEntity in interface MappingNamespace
    • removeDataMap

      public void removeDataMap(DataMap map)
    • getClassDescriptorMap

      public ClassDescriptorMap getClassDescriptorMap()
      Returns an object that compiles and stores ClassDescriptor instances for all entities.
      Since:
      3.0
    • getValueObjectTypeRegistry

      public ValueObjectTypeRegistry getValueObjectTypeRegistry()
    • setValueObjectTypeRegistry

      public void setValueObjectTypeRegistry(ValueObjectTypeRegistry valueObjectTypeRegistry)
    • setValueComparisionStrategyFactory

      public void setValueComparisionStrategyFactory(ValueComparisonStrategyFactory valueComparisonStrategyFactory)
      Since:
      4.2
    • setEntitySorter

      public void setEntitySorter(EntitySorter entitySorter)
      Since:
      4.2
    • getEntitySorter

      public EntitySorter getEntitySorter()
      Since:
      4.2