Class ConfigUtils


  • public class ConfigUtils
    extends Object
    • Method Detail

      • newInstance

        public static <T> T newInstance​(Object bean,
                                        String propertyName,
                                        Class<T> clazz)
      • applyCustomProperties

        public static void applyCustomProperties​(Object bean,
                                                 String beanClassPropertyName,
                                                 Map<String,​String> customProperties,
                                                 String customPropertiesPropertyName)
      • inheritConfig

        public static <C extends AbstractConfig<C>> C inheritConfig​(C original,
                                                                    C inherited)
      • inheritMergeableListConfig

        public static <C extends AbstractConfig<C>> List<C> inheritMergeableListConfig​(List<C> originalList,
                                                                                       List<C> inheritedList)
      • inheritOverwritableProperty

        public static <T> T inheritOverwritableProperty​(T original,
                                                        T inherited)
      • inheritMergeableListProperty

        public static <T> List<T> inheritMergeableListProperty​(List<T> originalList,
                                                               List<T> inheritedList)
      • inheritMergeableMapProperty

        public static <K,​T> Map<K,​T> inheritMergeableMapProperty​(Map<K,​T> originalMap,
                                                                             Map<K,​T> inheritedMap)
      • mergeProperty

        public static <T> T mergeProperty​(T a,
                                          T b)
      • meldProperty

        public static <T> T meldProperty​(T a,
                                         T b)
        A relaxed version of mergeProperty(Object, Object). Used primarily for merging failed benchmarks, where a property remains the same over benchmark runs (for example: dataset problem size), but the property in the failed benchmark isn't initialized, therefore null. When merging, we can still use the correctly initialized property of the benchmark that didn't fail.

        Null-handling:

        • if both properties are null, returns null
        • if only one of the properties is not null, returns that property
        • if both properties are not null, returns mergeProperty(Object, Object)
        Type Parameters:
        T - the type of property a and b
        Parameters:
        a - property a
        b - property b
        Returns:
        sometimes null
        See Also:
        mergeProperty(Object, Object)
      • isEmptyCollection

        public static boolean isEmptyCollection​(Collection<?> collection)
      • ceilDivide

        public static int ceilDivide​(int dividend,
                                     int divisor)
        Divides and ceils the result without using floating point arithmetic. For floor division, see Math.floorDiv(long, long).
        Parameters:
        dividend - the dividend
        divisor - the divisor
        Returns:
        dividend / divisor, ceiled
        Throws:
        ArithmeticException - if divisor == 0
      • resolvePoolSize

        public static int resolvePoolSize​(String propertyName,
                                          String script,
                                          org.slf4j.Logger logger,
                                          String... magicValues)
      • getAllAnnotatedLineageClasses

        public static List<Class<?>> getAllAnnotatedLineageClasses​(Class<?> bottomClass,
                                                                   Class<? extends Annotation> annotation)
      • getDeclaredMembers

        public static List<Member> getDeclaredMembers​(Class<?> baseClass)
        Parameters:
        baseClass - never null
        Returns:
        never null, sorted by type (fields before methods), then by AlphabeticMemberComparator.
      • getAllMembers

        public static List<Member> getAllMembers​(Class<?> baseClass,
                                                 Class<? extends Annotation> annotationClass)
        Parameters:
        baseClass - never null
        annotationClass - never null
        Returns:
        never null, sorted by type (fields before methods), then by AlphabeticMemberComparator.
      • extractCollectionGenericTypeParameter

        public static Class<?> extractCollectionGenericTypeParameter​(String parentClassConcept,
                                                                     Class<?> parentClass,
                                                                     Class<?> type,
                                                                     Type genericType,
                                                                     Class<? extends Annotation> annotationClass,
                                                                     String memberName)
      • findPlanningIdMemberAccessor

        public static <C> MemberAccessor findPlanningIdMemberAccessor​(Class<C> clazz)