Class TimeGenerator

  • Direct Known Subclasses:
    TsFileTimeGenerator

    public abstract class TimeGenerator
    extends java.lang.Object
    All SingleSeriesExpression involved in a IExpression will be transferred to a TimeGenerator tree whose leaf nodes are all SeriesReaders, The TimeGenerator tree can generate the next timestamp that satisfies the filter condition. Then we use this timestamp to get values in other series that are not included in IExpression
    • Field Detail

      • operatorNode

        protected Node operatorNode
    • Constructor Detail

      • TimeGenerator

        public TimeGenerator()
    • Method Detail

      • hasNext

        public boolean hasNext()
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • next

        public long next()
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getValues

        public java.lang.Object[] getValues​(Path path)
                                     throws java.io.IOException
        ATTENTION: this method should only be used when there is no `OR` node
        Throws:
        java.io.IOException
      • getValue

        public java.lang.Object getValue​(Path path)
                                  throws java.io.IOException
        ATTENTION: this method should only be used when there is no `OR` node
        Throws:
        java.io.IOException
      • constructNode

        public void constructNode​(IExpression expression)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • construct

        protected Node construct​(IExpression expression)
                          throws java.io.IOException
        construct the tree that generate timestamp.
        Throws:
        java.io.IOException
      • generateNewBatchReader

        protected abstract IBatchReader generateNewBatchReader​(SingleSeriesExpression expression)
                                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • hasOrNode

        public boolean hasOrNode()
      • isAscending

        protected abstract boolean isAscending()
      • getTimeFilter

        public abstract Filter getTimeFilter()