Class AnnotationMergeCollector

  • All Implemented Interfaces:
    java.util.stream.Collector<java.lang.annotation.Annotation,​java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>>

    public class AnnotationMergeCollector
    extends java.lang.Object
    implements java.util.stream.Collector<java.lang.annotation.Annotation,​java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>>
    merge annotations by mapping ReflectionUtils.toMap(Annotation) and reduce using the given mergeFunction

    mergeFunction defaults to concatValues(Object, Object).

    optional annotatedElement used by ReflectionUtils.toMap(Annotation, AnnotatedElement)

    get(Annotations.of(...))
       .stream()
       .collect(new AnnotationMergeCollector())
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.stream.Collector

        java.util.stream.Collector.Characteristics
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.reflect.AnnotatedElement annotatedElement  
      private java.util.function.BiFunction<java.lang.Object,​java.lang.Object,​java.lang.Object> mergeFunction  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.function.BiConsumer<java.util.Map<java.lang.String,​java.lang.Object>,​java.lang.annotation.Annotation> accumulator()  
      private static java.lang.Object[] arrayAdd​(java.lang.Object[] o1, java.lang.Object[] o2)  
      java.util.Set<java.util.stream.Collector.Characteristics> characteristics()  
      java.util.function.BinaryOperator<java.util.Map<java.lang.String,​java.lang.Object>> combiner()  
      private static java.lang.Object concatValues​(java.lang.Object v1, java.lang.Object v2)  
      java.util.function.Function<java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>> finisher()  
      private java.util.Map<java.lang.String,​java.lang.Object> mergeMaps​(java.util.Map<java.lang.String,​java.lang.Object> m1, java.util.Map<java.lang.String,​java.lang.Object> m2)  
      private static java.lang.Object stringArrayConcat​(java.lang.String[] v1, java.lang.String[] v2)  
      private static java.lang.Object stringConcat​(java.lang.String v1, java.lang.String v2)  
      java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.Object>> supplier()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • annotatedElement

        private final java.lang.reflect.AnnotatedElement annotatedElement
      • mergeFunction

        private final java.util.function.BiFunction<java.lang.Object,​java.lang.Object,​java.lang.Object> mergeFunction
    • Constructor Detail

      • AnnotationMergeCollector

        public AnnotationMergeCollector​(java.lang.reflect.AnnotatedElement annotatedElement,
                                        java.util.function.BiFunction<java.lang.Object,​java.lang.Object,​java.lang.Object> mergeFunction)
      • AnnotationMergeCollector

        public AnnotationMergeCollector()
      • AnnotationMergeCollector

        public AnnotationMergeCollector​(java.lang.reflect.AnnotatedElement annotatedElement)
    • Method Detail

      • supplier

        public java.util.function.Supplier<java.util.Map<java.lang.String,​java.lang.Object>> supplier()
        Specified by:
        supplier in interface java.util.stream.Collector<java.lang.annotation.Annotation,​java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>>
      • accumulator

        public java.util.function.BiConsumer<java.util.Map<java.lang.String,​java.lang.Object>,​java.lang.annotation.Annotation> accumulator()
        Specified by:
        accumulator in interface java.util.stream.Collector<java.lang.annotation.Annotation,​java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>>
      • combiner

        public java.util.function.BinaryOperator<java.util.Map<java.lang.String,​java.lang.Object>> combiner()
        Specified by:
        combiner in interface java.util.stream.Collector<java.lang.annotation.Annotation,​java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>>
      • finisher

        public java.util.function.Function<java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>> finisher()
        Specified by:
        finisher in interface java.util.stream.Collector<java.lang.annotation.Annotation,​java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>>
      • characteristics

        public java.util.Set<java.util.stream.Collector.Characteristics> characteristics()
        Specified by:
        characteristics in interface java.util.stream.Collector<java.lang.annotation.Annotation,​java.util.Map<java.lang.String,​java.lang.Object>,​java.util.Map<java.lang.String,​java.lang.Object>>
      • mergeMaps

        private java.util.Map<java.lang.String,​java.lang.Object> mergeMaps​(java.util.Map<java.lang.String,​java.lang.Object> m1,
                                                                                 java.util.Map<java.lang.String,​java.lang.Object> m2)
      • concatValues

        private static java.lang.Object concatValues​(java.lang.Object v1,
                                                     java.lang.Object v2)
      • arrayAdd

        private static java.lang.Object[] arrayAdd​(java.lang.Object[] o1,
                                                   java.lang.Object[] o2)
      • stringArrayConcat

        private static java.lang.Object stringArrayConcat​(java.lang.String[] v1,
                                                          java.lang.String[] v2)
      • stringConcat

        private static java.lang.Object stringConcat​(java.lang.String v1,
                                                     java.lang.String v2)