Class ObjectProvider


  • public class ObjectProvider
    extends java.lang.Object
    • Field Detail

      • classNameItems

        private java.util.List<java.lang.String> classNameItems
      • jVMVendorToClassSuffix

        private java.util.Map<java.lang.String,​java.util.List<java.lang.String>> jVMVendorToClassSuffix
      • CLASS_NAME

        private static java.lang.String CLASS_NAME
      • jVMVersion

        private int jVMVersion
      • vendor

        private java.lang.String vendor
    • Constructor Detail

      • ObjectProvider

        public ObjectProvider​(int... versions)
    • Method Detail

      • init

        private void init​(int... versions)
      • getOrBuildObject

        public <T> T getOrBuildObject​(java.lang.Class<? super T> clazz,
                                      java.util.Map<java.lang.Object,​java.lang.Object> context)
      • putClassNameOptionalItem

        boolean putClassNameOptionalItem​(java.util.List<java.lang.String> classNameOptionalItems,
                                         java.lang.String value)
      • getOrBuildObjectInternal

        private <T> T getOrBuildObjectInternal​(java.lang.Class<? super T> clazz,
                                               java.util.Map<java.lang.Object,​java.lang.Object> context)
                                        throws java.lang.InstantiationException,
                                               java.lang.IllegalAccessException,
                                               java.lang.IllegalArgumentException,
                                               java.lang.reflect.InvocationTargetException,
                                               java.lang.NoSuchMethodException,
                                               java.lang.SecurityException
        Throws:
        java.lang.InstantiationException
        java.lang.IllegalAccessException
        java.lang.IllegalArgumentException
        java.lang.reflect.InvocationTargetException
        java.lang.NoSuchMethodException
        java.lang.SecurityException
      • retrieveClass

        private <T> java.lang.Class<? super T> retrieveClass​(java.util.List<java.lang.String> classNameItems,
                                                             java.util.Collection<java.lang.String> notFoundClasses,
                                                             java.lang.String separator)
                                                      throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • retrieveAllClassNameCombinations

        java.util.Collection<java.lang.String> retrieveAllClassNameCombinations​(java.util.List<java.lang.String> classNameItems,
                                                                                java.lang.String separator)
      • getObjectInternal

        private <F> F getObjectInternal​(java.lang.Class<? super F> clazz,
                                        java.util.Map<java.lang.Object,​java.lang.Object> context)
      • getObject

        public static <F> F getObject​(java.lang.Class<? super F> clazz,
                                      java.util.Map<java.lang.Object,​java.lang.Object> context)
      • get

        public static ObjectProvider get​(java.util.Map<java.lang.Object,​java.lang.Object> context)
      • putIfAbsent

        public static void putIfAbsent​(java.util.Map<java.lang.Object,​java.lang.Object> context,
                                       Supplier<ObjectProvider> objectProvider)
      • markToBeInitializedViaExceptionHandler

        public <T> boolean markToBeInitializedViaExceptionHandler​(java.lang.Class<? super T> clazz,
                                                                  java.util.Map<java.lang.Object,​java.lang.Object> context)
      • markToBeInitializedViaExceptionHandler

        public <T> boolean markToBeInitializedViaExceptionHandler​(java.lang.Class<? super T> clazz,
                                                                  java.util.Map<java.lang.Object,​java.lang.Object> context,
                                                                  ObjectProvider.InitializationMarkViaExceptionHandler exception)
      • setExceptionHandler

        public static void setExceptionHandler​(java.util.Map<java.lang.Object,​java.lang.Object> context,
                                               ObjectProvider.ExceptionHandler exceptionHandler)