Class RestrictionRegistry


  • public class RestrictionRegistry
    extends java.lang.Object
    Central registry for restrictions
    • Field Detail

      • OPTION_RESTRICTION_FACTORIES

        private static final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,​OptionRestrictionFactory> OPTION_RESTRICTION_FACTORIES
      • ARGUMENT_RESTRICTION_FACTORIES

        private static final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,​ArgumentsRestrictionFactory> ARGUMENT_RESTRICTION_FACTORIES
      • GLOBAL_RESTRICTION_FACTORIES

        private static final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,​GlobalRestrictionFactory> GLOBAL_RESTRICTION_FACTORIES
      • init

        private static volatile boolean init
    • Constructor Detail

      • RestrictionRegistry

        public RestrictionRegistry()
    • Method Detail

      • loadRestrictions

        static <T> void loadRestrictions​(java.lang.Class<T> cls,
                                         java.util.function.Function<T,​java.util.List<java.lang.Class<? extends java.lang.annotation.Annotation>>> annotationsSelector,
                                         java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,​T> registry)
      • init

        static void init()
        Initializes the base set of restrictions using the ServiceLoader mechanism
      • reset

        public static void reset()
        Resets the registry to its default state
      • getOptionRestrictionAnnotationClasses

        public static java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> getOptionRestrictionAnnotationClasses()
      • addOptionRestriction

        public static void addOptionRestriction​(java.lang.Class<? extends java.lang.annotation.Annotation> cls,
                                                OptionRestrictionFactory factory)
      • getOptionRestriction

        public static <T extends java.lang.annotation.Annotation> OptionRestriction getOptionRestriction​(java.lang.Class<? extends java.lang.annotation.Annotation> cls,
                                                                                                         T annotation)
      • addArgumentsRestriction

        public static void addArgumentsRestriction​(java.lang.Class<? extends java.lang.annotation.Annotation> cls,
                                                   ArgumentsRestrictionFactory factory)
      • getArgumentsRestrictionAnnotationClasses

        public static java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> getArgumentsRestrictionAnnotationClasses()
      • getArgumentsRestriction

        public static <T extends java.lang.annotation.Annotation> ArgumentsRestriction getArgumentsRestriction​(java.lang.Class<? extends java.lang.annotation.Annotation> cls,
                                                                                                               T annotation)
      • getGlobalRestrictionAnnotationClasses

        public static java.util.Set<java.lang.Class<? extends java.lang.annotation.Annotation>> getGlobalRestrictionAnnotationClasses()
      • addGlobalRestriction

        public static void addGlobalRestriction​(java.lang.Class<? extends java.lang.annotation.Annotation> cls,
                                                GlobalRestrictionFactory factory)
      • getGlobalRestriction

        public static <T extends java.lang.annotation.Annotation> GlobalRestriction getGlobalRestriction​(java.lang.Class<? extends java.lang.annotation.Annotation> cls,
                                                                                                         T annotation)