Class Statistics<T extends java.io.Serializable>

  • Direct Known Subclasses:
    BinaryStatistics, BooleanStatistics, DoubleStatistics, FloatStatistics, IntegerStatistics, LongStatistics, TimeStatistics

    public abstract class Statistics<T extends java.io.Serializable>
    extends java.lang.Object
    This class is used for recording statistic information of each measurement in a delta file. While writing processing, the processor records the statistics information. Statistics includes maximum, minimum and null value count up to version 0.0.1.
    Each data type extends this Statistic as super class.

    For the statistics in the Unseq file TimeSeriesMetadata, only firstValue, lastValue, startTime and endTime can be used.
    • Field Detail

      • isEmpty

        protected boolean isEmpty
        isEmpty being false means this statistic has been initialized and the max and min is not null.
    • Constructor Detail

      • Statistics

        public Statistics()
    • Method Detail

      • getStatsByType

        public static Statistics<? extends java.io.Serializable> getStatsByType​(TSDataType type)
        static method providing statistic instance for respective data type.
        Parameters:
        type - - data type
        Returns:
        Statistics
        Throws:
        UnknownColumnTypeException - if the type is unknown
      • getSizeByType

        public static int getSizeByType​(TSDataType type)
      • getSerializedSize

        public int getSerializedSize()
      • getStatsSize

        public abstract int getStatsSize()
      • serialize

        public int serialize​(java.io.OutputStream outputStream)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • deserialize

        public abstract void deserialize​(java.io.InputStream inputStream)
                                  throws java.io.IOException
        deserialize data from the inputStream.
        Parameters:
        inputStream - input stream
        Throws:
        java.io.IOException - exception when operating stream
      • deserialize

        public abstract void deserialize​(java.nio.ByteBuffer byteBuffer)
      • deserialize

        public static Statistics<? extends java.io.Serializable> deserialize​(java.io.InputStream inputStream,
                                                                             TSDataType dataType)
                                                                      throws java.io.IOException
        Throws:
        java.io.IOException
      • deserialize

        public static Statistics<? extends java.io.Serializable> deserialize​(java.nio.ByteBuffer buffer,
                                                                             TSDataType dataType)
      • getMinValue

        public abstract T getMinValue()
      • getMaxValue

        public abstract T getMaxValue()
      • getFirstValue

        public abstract T getFirstValue()
      • getLastValue

        public abstract T getLastValue()
      • getSumDoubleValue

        public abstract double getSumDoubleValue()
      • getSumLongValue

        public abstract long getSumLongValue()
      • mergeStatistics

        public void mergeStatistics​(Statistics<? extends java.io.Serializable> stats)
        merge parameter to this statistic.
        Throws:
        StatisticsClassException - cannot merge statistics
      • update

        public void update​(long time,
                           boolean value)
      • update

        public void update​(long time,
                           int value)
      • update

        public void update​(long time,
                           long value)
      • update

        public void update​(long time,
                           float value)
      • update

        public void update​(long time,
                           double value)
      • update

        public void update​(long time,
                           Binary value)
      • update

        public void update​(long time)
      • update

        public void update​(long[] time,
                           boolean[] values,
                           int batchSize)
      • update

        public void update​(long[] time,
                           int[] values,
                           int batchSize)
      • update

        public void update​(long[] time,
                           long[] values,
                           int batchSize)
      • update

        public void update​(long[] time,
                           float[] values,
                           int batchSize)
      • update

        public void update​(long[] time,
                           double[] values,
                           int batchSize)
      • update

        public void update​(long[] time,
                           Binary[] values,
                           int batchSize)
      • update

        public void update​(long[] time,
                           int batchSize)
      • update

        public void update​(long[] time,
                           int batchSize,
                           int arrayOffset)
      • mergeStatisticsValue

        protected abstract void mergeStatisticsValue​(Statistics<T> stats)
      • isEmpty

        public boolean isEmpty()
      • setEmpty

        public void setEmpty​(boolean empty)
      • updateStats

        public void updateStats​(long min,
                                long max)
        This method with two parameters is only used by unsequence which updates/inserts/deletes timestamp.
        Parameters:
        min - min timestamp
        max - max timestamp
        Throws:
        java.lang.UnsupportedOperationException - throw exception when executing this method
      • getStartTime

        public long getStartTime()
      • getEndTime

        public long getEndTime()
      • getCount

        public long getCount()
      • setStartTime

        public void setStartTime​(long startTime)
      • setEndTime

        public void setEndTime​(long endTime)
      • setCount

        public void setCount​(int count)
      • calculateRamSize

        public abstract long calculateRamSize()
      • containedByTimeFilter

        public boolean containedByTimeFilter​(Filter timeFilter)
      • hasNullValue

        public boolean hasNullValue​(long timeRowCount)
      • toString

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

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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