Class NotDimFilter

    • Constructor Detail

      • NotDimFilter

        public NotDimFilter​(DimFilter field)
    • Method Detail

      • getCacheKey

        public byte[] getCacheKey()
        Description copied from interface: Cacheable
        Get a byte array used as a cache key.
        Specified by:
        getCacheKey in interface Cacheable
        Returns:
        a cache key
      • optimize

        public DimFilter optimize()
        Specified by:
        optimize in interface DimFilter
        Returns:
        Returns an optimized filter. returning the same filter can be a straightforward default implementation.
      • toFilter

        public Filter toFilter()
        Description copied from interface: DimFilter
        Returns a Filter that implements this DimFilter. This does not generally involve optimizing the DimFilter, so it does make sense to optimize first and then call toFilter on the resulting DimFilter.
        Specified by:
        toFilter in interface DimFilter
        Returns:
        a Filter that implements this DimFilter, or null if this DimFilter is a no-op.
      • getDimensionRangeSet

        public com.google.common.collect.RangeSet<String> getDimensionRangeSet​(String dimension)
        There are some special cases involving null that require special casing for And and Or instead of simply taking the complement Example 1 : "NOT ( [0,INF) OR null)" The inside of NOT would evaluate to null, and the complement would also be null. However, by breaking the NOT, this statement is "NOT([0,INF)) AND NOT(null)", which means it should actually evaluate to (-INF, 0). Example 2 : "NOT ( [0,INF) AND null )" The inside of NOT would evaluate to [0,INF), and the complement would be (-INF, 0). However the statement is actually "NOT([0,INF)) OR NOT(null)", and it should be evaluated to null.
        Specified by:
        getDimensionRangeSet in interface DimFilter
        Parameters:
        dimension - name of the dimension to get range for
        Returns:
        a RangeSet that represent the possible range of the input dimension, or null if it is not possible to determine for this DimFilter.
      • getRequiredColumns

        public Set<String> getRequiredColumns()
        Specified by:
        getRequiredColumns in interface DimFilter
        Returns:
        a HashSet that represents all columns' name which the DimFilter required to do filter.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object