Class SplitData<O,​T extends IntrusiveList<?>>

  • Type Parameters:
    O - output symbol type
    T - transition type

    public class SplitData<O,​T extends IntrusiveList<?>>
    extends Object
    Data associated with a discrimination tree node while an enclosing subtree is being split.
    • Constructor Detail

      • SplitData

        public SplitData​(Supplier<T> listSuppllier)
    • Method Detail

      • mark

        public boolean mark​(O label)
        Mark this node with the given label. The result indicates whether it has been newly marked.
        Parameters:
        label - the label to mark this node with
        Returns:
        true if the node was previously unmarked (wrt. to the given label), false otherwise
      • getLabels

        public Set<O> getLabels()
      • getStateLabel

        public O getStateLabel()
        Retrieves the state label associated with this split data.

        Note: invoking this operation is illegal if no state label has previously been set.

        Returns:
        the state label
      • setStateLabel

        public void setStateLabel​(O label)
        Sets the state label associated with this split data.

        Note: invoking this operation is illegal if a state label has already been set.

        Parameters:
        label - the state label
      • hasStateLabel

        public boolean hasStateLabel()
        Checks whether there is a state label associated with this node, regardless of its value.
        Returns:
        true if there is a state label (true or false) associated with this node, false otherwise
      • getIncoming

        public T getIncoming​(O label)
        Retrieves the list of incoming transitions for the respective label.

        This method will always return a non-null value.

        Parameters:
        label - the label
        Returns:
        the (possibly empty) list associated with the given state label
      • isMarked

        public boolean isMarked​(O label)
        Checks whether the corresponding node is marked with the given label.
        Parameters:
        label - the label
        Returns:
        true if the corresponding node is marked with the given label, false otherwise