Class DefaultJoinGraphRegistry

java.lang.Object
cz.encircled.joiner.query.join.DefaultJoinGraphRegistry
All Implemented Interfaces:
JoinGraphRegistry

public class DefaultJoinGraphRegistry extends Object implements JoinGraphRegistry
ConcurrentHashMap-based implementation of JoinGraphRegistry
Author:
Vlad on 15-Aug-16.
  • Constructor Details

    • DefaultJoinGraphRegistry

      public DefaultJoinGraphRegistry()
  • Method Details

    • registerJoinGraph

      public void registerJoinGraph(Object graphName, Collection<JoinDescription> joins, Class<?>... rootClasses)
      Description copied from interface: JoinGraphRegistry
      Adds new join graph to the registry.
      Specified by:
      registerJoinGraph in interface JoinGraphRegistry
      Parameters:
      graphName - graph unique name. Generally, any object may be used as a name, it should have correct hashCode method. String or enum is recommended.
      joins - associated joins
      rootClasses - target class for a new join graph
    • replaceJoinGraph

      public void replaceJoinGraph(Object graphName, Collection<JoinDescription> joins, Class<?>... rootClasses)
      Description copied from interface: JoinGraphRegistry
      Replace an existing join graph with a new one
      Specified by:
      replaceJoinGraph in interface JoinGraphRegistry
      Parameters:
      graphName - graph unique name. Generally, any object may be used as a name, it should have correct hashCode method. String or enum is recommended.
      joins - associated joins
      rootClasses - target class for a new join graph
    • registerOrReplaceJoinGraph

      public void registerOrReplaceJoinGraph(Object graphName, Collection<JoinDescription> joins, Class<?>... rootClasses)
      Description copied from interface: JoinGraphRegistry
      Adds new join graph to the registry or replace an existing one.
      Specified by:
      registerOrReplaceJoinGraph in interface JoinGraphRegistry
      Parameters:
      graphName - graph unique name. Generally, any object may be used as a name, it should have correct hashCode method. String or enum is recommended.
      joins - associated joins
      rootClasses - target class for a new join graph
    • getJoinGraph

      public List<JoinDescription> getJoinGraph(Class<?> clazz, Object name)
      Specified by:
      getJoinGraph in interface JoinGraphRegistry
      Parameters:
      clazz - target class
      name - join graph name
      Returns:
      collection of registered join graphs
    • getAllJoinGraphs

      public Map<Object,List<JoinDescription>> getAllJoinGraphs(Class<?> clazz)
      Specified by:
      getAllJoinGraphs in interface JoinGraphRegistry
      Parameters:
      clazz - target class
      Returns:
      map of all registered join graphs