Class EvaluableCredentialCriteriaRegistry


public final class EvaluableCredentialCriteriaRegistry extends Object
A registry which manages mappings from types of Criterion to the class type which can evaluate that criteria's data against a Credential target. That latter class will be a subtype of EvaluableCredentialCriterion. Each EvaluableCredentialCriterion implementation that is registered MUST implement a single-arg constructor which takes an instance of the Criterion to be evaluated. The evaluable instance is instantiated reflectively based on this requirement.
  • Field Details


      public static final String DEFAULT_MAPPINGS_FILE
      Properties file storing default mappings from criteria to evaluable credential criteria. Will be loaded as a resource stream relative to this class.
      See Also:
    • registry

      private static Map<Class<? extends Criterion>,Class<? extends EvaluableCredentialCriterion>> registry
      Storage for the registry mappings.
    • initialized

      private static boolean initialized
      Flag to track whether registry is initialized.
    • LOG

      @Nonnull private static final org.slf4j.Logger LOG
  • Constructor Details

    • EvaluableCredentialCriteriaRegistry

      private EvaluableCredentialCriteriaRegistry()
  • Method Details

    • getEvaluator

      @Nullable public static EvaluableCredentialCriterion getEvaluator(@Nonnull Criterion criteria) throws SecurityException
      Get an instance of EvaluableCredentialCriterion which can evaluate the supplied criteria's requirements against a Credential target.
      criteria - the criteria to be evaluated against a credential
      an instance of of EvaluableCredentialCriterion representing the specified criteria's requirements
      SecurityException - thrown if there is an error reflectively instantiating a new instance of EvaluableCredentialCriterion based on class information stored in the registry
    • lookup

      @Nullable public static Class<? extends EvaluableCredentialCriterion> lookup(@Nonnull Class<? extends Criterion> clazz)
      Lookup the class subtype of EvaluableCredentialCriterion which is registered for the specified Criterion class.
      clazz - the Criterion class subtype to lookup
      the registered EvaluableCredentialCriterion class subtype
    • register

      public static void register(@Nonnull Class<? extends Criterion> criteriaClass, @Nonnull Class<? extends EvaluableCredentialCriterion> evaluableClass)
      Register a credential evaluator class for a criteria class.
      criteriaClass - class subtype of Criterion
      evaluableClass - class subtype of EvaluableCredentialCriterion
    • deregister

      public static void deregister(@Nonnull Class<? extends Criterion> criteriaClass)
      Deregister a criteria-evaluator mapping.
      criteriaClass - class subtype of Criterion
    • clearRegistry

      public static void clearRegistry()
      Clear all mappings from the registry.
    • isInitialized

      public static boolean isInitialized()
      Check whether the registry has been initialized.
      true if registry is already initialized, false otherwise
    • init

      public static void init()
      Initialize the registry.
    • loadDefaultMappings

      public static void loadDefaultMappings()
      Load the default set of criteria-evaluator mappings from the default mappings properties file.
    • loadMappings

      public static void loadMappings(@Nonnull Properties mappings)
      Load a set of criteria-evaluator mappings from the supplied properties set.
      mappings - properties set where the key is the criteria class name, the value is the evaluator class name