Class InternalAggregation

    • Field Detail

      • name

        protected final java.lang.String name
      • metaData

        protected final java.util.Map<java.lang.String,​java.lang.Object> metaData
    • Constructor Detail

      • InternalAggregation

        protected InternalAggregation​(java.lang.String name,
                                      java.util.List<PipelineAggregator> pipelineAggregators,
                                      java.util.Map<java.lang.String,​java.lang.Object> metaData)
        Constructs an get with a given name.
        Parameters:
        name - The name of the get.
      • InternalAggregation

        protected InternalAggregation​(StreamInput in)
                               throws java.io.IOException
        Read from a stream.
        Throws:
        java.io.IOException
    • Method Detail

      • doWriteTo

        protected abstract void doWriteTo​(StreamOutput out)
                                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getName

        public java.lang.String getName()
        Specified by:
        getName in interface Aggregation
        Returns:
        The name of this aggregation.
      • reduce

        public final InternalAggregation reduce​(java.util.List<InternalAggregation> aggregations,
                                                InternalAggregation.ReduceContext reduceContext)
        Reduces the given aggregations to a single one and returns it. In most cases, the assumption will be the all given aggregations are of the same type (the same type as this aggregation). For best efficiency, when implementing, try reusing an existing instance (typically the first in the given list) to save on redundant object construction.
      • isMapped

        public boolean isMapped()
        Return true if this aggregation is mapped, and can lead a reduction. If this agg returns false, it should return itself if asked to lead a reduction
      • getProperty

        public java.lang.Object getProperty​(java.lang.String path)
        Get the value of specified path in the aggregation.
        Parameters:
        path - the path to the property in the aggregation tree
        Returns:
        the value of the property
      • getProperty

        public abstract java.lang.Object getProperty​(java.util.List<java.lang.String> path)
      • readSize

        protected static int readSize​(StreamInput in)
                               throws java.io.IOException
        Read a size under the assumption that a value of 0 means unlimited.
        Throws:
        java.io.IOException
      • writeSize

        protected static void writeSize​(int size,
                                        StreamOutput out)
                                 throws java.io.IOException
        Write a size under the assumption that a value of 0 means unlimited.
        Throws:
        java.io.IOException
      • getMetaData

        public java.util.Map<java.lang.String,​java.lang.Object> getMetaData()
        Description copied from interface: Aggregation
        Get the optional byte array metadata that was set on the aggregation
        Specified by:
        getMetaData in interface Aggregation
      • getType

        public java.lang.String getType()
        Specified by:
        getType in interface Aggregation
        Returns:
        a string representing the type of the aggregation. This type is added to the aggregation name in the response, so that it can later be used by clients to determine type of the aggregation and parse it into the proper object.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • doHashCode

        protected abstract int doHashCode()
        Opportunity for subclasses to the hashCode() for this class.
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • doEquals

        protected abstract boolean doEquals​(java.lang.Object obj)
        Opportunity for subclasses to add criteria to the equals(Object) method for this class. This method can safely cast obj to the subclass since the equals(Object) method checks that obj is the same class as this
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object