Class BitSetLabel


  • public class BitSetLabel
    extends Label
    This Label implementations sores match and mismatch data in a BitSet, so there is no limit on the cardinality.
    • Constructor Summary

      Constructors 
      Constructor Description
      BitSetLabel​(java.util.BitSet l, int c)
      Create a new label by storing match/mismatch information in the given bitset.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean allMatching()  
      java.util.Iterator<Label> descendantIterator()
      The "descendants" of a label are the set of labels with the same "mismatch" entries, but with one or more of the "match" entries changed into a "mismatch" entry.
      boolean equals​(java.lang.Object other)  
      int getCardinality()  
      int hashCode()  
      Label intersect​(Label other)
      Create a new label for which each location is marked as a match if both this label and otherLabel are marked match, otherwise mismatch.
      boolean isDescendantOf​(Label possibleDescendant)
      Determine if this label is the "descendant" of possibleAncestor.
      boolean matches​(int index)
      Determine if the given index is marked as a match or a mismatch.
      int numMatches()  
      java.lang.String toString()  
      Label union​(Label other)
      Create a new label for which each location is marked as a match if either this label or other is marked match, otherwise mismatch.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • BitSetLabel

        public BitSetLabel​(java.util.BitSet l,
                           int c)
        Create a new label by storing match/mismatch information in the given bitset.
        Parameters:
        l - BitSet whose set bits represent mismatches and clear bits represent matches.
        c - cardinality of the label
    • Method Detail

      • getCardinality

        public int getCardinality()
        Specified by:
        getCardinality in class Label
        Returns:
        The number of attributes represented in this label.
      • matches

        public boolean matches​(int index)
        Description copied from class: Label
        Determine if the given index is marked as a match or a mismatch.
        Specified by:
        matches in class Label
        Parameters:
        index - Index of the attribute being represented
        Returns:
        True if the index is a match, false otherwise.
      • numMatches

        public int numMatches()
        Specified by:
        numMatches in class Label
        Returns:
        The total number of matches marked in this label.
      • intersect

        public Label intersect​(Label other)
        Description copied from class: Label
        Create a new label for which each location is marked as a match if both this label and otherLabel are marked match, otherwise mismatch. In other words, keep all mismatches from both labels.
        Specified by:
        intersect in class Label
        Parameters:
        other - the label to intersect with this one
        Returns:
        an intersected label
      • union

        public Label union​(Label other)
        Description copied from class: Label
        Create a new label for which each location is marked as a match if either this label or other is marked match, otherwise mismatch. In other words, keep all matches from both labels.
        Specified by:
        union in class Label
      • allMatching

        public boolean allMatching()
        Specified by:
        allMatching in class Label
        Returns:
        true if every feature of this label is a match (i.e. this is the top of the lattice; false otherwise
      • toString

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

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

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

        public java.util.Iterator<Label> descendantIterator()
        Description copied from class: Label
        The "descendants" of a label are the set of labels with the same "mismatch" entries, but with one or more of the "match" entries changed into a "mismatch" entry. For example, the children of {match, mismatch, mismatch, match} are:
        • {mismatch, mismatch, mismatch, match},
        • {match, mismatch, mismatch, mismatch}, and
        • {mismatch, mismatch, mismatch, mismatch}
        .
        Specified by:
        descendantIterator in class Label
        Returns:
        An iterator over the label descendants
      • isDescendantOf

        public boolean isDescendantOf​(Label possibleDescendant)
        Description copied from class: Label
        Determine if this label is the "descendant" of possibleAncestor. This label is a descendant of the other label if every mismatching entry in the other label is also a mismatching entry in this label. Any label is also a descendant of itself.
        Specified by:
        isDescendantOf in class Label
        Parameters:
        possibleDescendant - possible label ancestor
        Returns:
        true if possibleAncestor is an ancestor of this label; false otherwise.