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.


        • 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
        a - property a
        b - property b
        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).
        dividend - the dividend
        divisor - the divisor
        dividend / divisor, ceiled
        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)
        baseClass - never null
        never null, sorted by type (fields before methods), then by AlphabeticMemberComparator.
      • getAllMembers

        public static List<Member> getAllMembers​(Class<?> baseClass,
                                                 Class<? extends Annotation> annotationClass)
        baseClass - never null
        annotationClass - never null
        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)