Class SingleColumnRestriction

    • Field Detail

      • columnDef

        protected final ColumnMetadata columnDef
        The definition of the column to which apply the restriction.
    • Constructor Detail

      • SingleColumnRestriction

        public SingleColumnRestriction​(ColumnMetadata columnDef)
    • Method Detail

      • getColumnDefs

        public java.util.List<ColumnMetadata> getColumnDefs()
        Description copied from interface: Restriction
        Returns the column definitions in position order.
        Specified by:
        getColumnDefs in interface Restriction
        Returns:
        the column definitions in position order.
      • getFirstColumn

        public ColumnMetadata getFirstColumn()
        Description copied from interface: Restriction
        Returns the definition of the first column.
        Specified by:
        getFirstColumn in interface Restriction
        Returns:
        the definition of the first column.
      • getLastColumn

        public ColumnMetadata getLastColumn()
        Description copied from interface: Restriction
        Returns the definition of the last column.
        Specified by:
        getLastColumn in interface Restriction
        Returns:
        the definition of the last column.
      • hasSupportingIndex

        public boolean hasSupportingIndex​(IndexRegistry indexRegistry)
        Description copied from interface: Restriction
        Check if the restriction is on indexed columns.
        Specified by:
        hasSupportingIndex in interface Restriction
        Parameters:
        indexRegistry - the index registry
        Returns:
        true if the restriction is on indexed columns, false
      • needsFiltering

        public boolean needsFiltering​(Index.Group indexGroup)
        Description copied from interface: Restriction
        Returns whether this restriction would need filtering if the specified index group were used.
        Specified by:
        needsFiltering in interface Restriction
        Parameters:
        indexGroup - an index group
        Returns:
        true if this would need filtering if indexGroup were used, false otherwise
      • mergeWith

        public final SingleRestriction mergeWith​(SingleRestriction otherRestriction)
        Description copied from interface: SingleRestriction
        Merges this restriction with the specified one.

        Restriction are immutable. Therefore merging two restrictions result in a new one. The reason behind this choice is that it allow a great flexibility in the way the merging can done while preventing any side effect.

        Specified by:
        mergeWith in interface SingleRestriction
        Parameters:
        otherRestriction - the restriction to merge into this one
        Returns:
        the restriction resulting of the merge
      • isSupportedBy

        protected abstract boolean isSupportedBy​(Index index)
        Check if this type of restriction is supported by the specified index.
        Parameters:
        index - the secondary index
        Returns:
        true this type of restriction is supported by the specified index, false otherwise.