Class StrategySelectorImpl

java.lang.Object
org.hibernate.boot.registry.selector.internal.StrategySelectorImpl
All Implemented Interfaces:
Serializable, StrategySelector, Service

public class StrategySelectorImpl extends Object implements StrategySelector
Standard implementation of the StrategySelector contract.
See Also:
  • Constructor Details

    • StrategySelectorImpl

      public StrategySelectorImpl(ClassLoaderService classLoaderService)
      Constructs a StrategySelectorImpl using the given class loader service.
      Parameters:
      classLoaderService - The class loader service usable by this StrategySelectorImpl instance.
  • Method Details

    • registerStrategyLazily

      public <T> void registerStrategyLazily(Class<T> strategy, LazyServiceResolver<T> resolver)
    • registerStrategyImplementor

      public <T> void registerStrategyImplementor(Class<T> strategy, String name, Class<? extends T> implementation)
      Description copied from interface: StrategySelector
      Registers a named implementor of a particular strategy contract.
      Specified by:
      registerStrategyImplementor in interface StrategySelector
      Type Parameters:
      T - The type of the strategy. Used to make sure that the strategy and implementation are type compatible.
      Parameters:
      strategy - The strategy contract.
      name - The registration name
      implementation - The implementation Class
    • unRegisterStrategyImplementor

      public <T> void unRegisterStrategyImplementor(Class<T> strategy, Class<? extends T> implementation)
      Description copied from interface: StrategySelector
      Un-registers a named implementor of a particular strategy contract. Un-registers all named registrations for the given strategy contract naming the given class.
      Specified by:
      unRegisterStrategyImplementor in interface StrategySelector
      Type Parameters:
      T - The type of the strategy. Used to make sure that the strategy and implementation are type compatible.
      Parameters:
      strategy - The strategy contract.
      implementation - The implementation Class
    • selectStrategyImplementor

      public <T> Class<? extends T> selectStrategyImplementor(Class<T> strategy, String name)
      Description copied from interface: StrategySelector
      Locate the named strategy implementation.
      Specified by:
      selectStrategyImplementor in interface StrategySelector
      Type Parameters:
      T - The type of the strategy. Used to make sure that the strategy and implementation are type compatible.
      Parameters:
      strategy - The type of strategy to be resolved.
      name - The name of the strategy to locate; might be either a registered name or the implementation FQN.
      Returns:
      The named strategy implementation class.
    • resolveStrategy

      public <T> T resolveStrategy(Class<T> strategy, Object strategyReference)
      Description copied from interface: StrategySelector
      Resolve strategy instances. See discussion on StrategySelector.resolveDefaultableStrategy(java.lang.Class<T>, java.lang.Object, T). Only difference is that here, the implied default value is null.
      Specified by:
      resolveStrategy in interface StrategySelector
      Type Parameters:
      T - The type of the strategy. Used to make sure that the strategy and implementation are type compatible.
      Parameters:
      strategy - The type (interface) of the strategy to be resolved.
      strategyReference - The reference to the strategy for which we need to resolve an instance.
      Returns:
      The strategy instance
    • resolveDefaultableStrategy

      public <T> T resolveDefaultableStrategy(Class<T> strategy, Object strategyReference, T defaultValue)
      Description copied from interface: StrategySelector
      Resolve strategy instances. The incoming reference might be:
      • null - in which case defaultValue is returned.
      • An actual instance of the strategy type - it is returned, as is
      • A reference to the implementation Class - an instance is created by calling Class.newInstance() (aka, the class's no-arg ctor).
      • The name of the implementation class - First the implementation's Class reference is resolved, and then an instance is created by calling Class.newInstance()
      Specified by:
      resolveDefaultableStrategy in interface StrategySelector
      Type Parameters:
      T - The type of the strategy. Used to make sure that the strategy and implementation are type compatible.
      Parameters:
      strategy - The type (interface) of the strategy to be resolved.
      strategyReference - The reference to the strategy for which we need to resolve an instance.
      defaultValue - THe default value to use if strategyReference is null
      Returns:
      The strategy instance
    • resolveDefaultableStrategy

      public <T> T resolveDefaultableStrategy(Class<T> strategy, Object strategyReference, Callable<T> defaultResolver)
      Description copied from interface: StrategySelector
      Resolve strategy instances. The incoming reference might be:
      • null - in which case defaultValue is returned.
      • An actual instance of the strategy type - it is returned, as is
      • A reference to the implementation Class - an instance is created by calling Class.newInstance() (aka, the class's no-arg ctor).
      • The name of the implementation class - First the implementation's Class reference is resolved, and then an instance is created by calling Class.newInstance()
      Specified by:
      resolveDefaultableStrategy in interface StrategySelector
      Type Parameters:
      T - The type of the strategy. Used to make sure that the strategy and implementation are type compatible.
      Parameters:
      strategy - The type (interface) of the strategy to be resolved.
      strategyReference - The reference to the strategy for which we need to resolve an instance.
      defaultResolver - A strategy for resolving the default value strategyReference resolves to null.
      Returns:
      The strategy instance
    • resolveStrategy

      public <T> T resolveStrategy(Class<T> strategy, Object strategyReference, T defaultValue, StrategyCreator<T> creator)
      Specified by:
      resolveStrategy in interface StrategySelector
    • getRegisteredStrategyImplementors

      public Collection getRegisteredStrategyImplementors(Class strategy)
      Description copied from interface: StrategySelector
      Retrieve all of the registered implementors of the given strategy. Useful to allow defaulting the choice to the single registered implementor when only one is registered
      Specified by:
      getRegisteredStrategyImplementors in interface StrategySelector
      Returns:
      The implementors. Should never return null
    • resolveStrategy

      public <T> T resolveStrategy(Class<T> strategy, Object strategyReference, Callable<T> defaultResolver, StrategyCreator<T> creator)
      Specified by:
      resolveStrategy in interface StrategySelector