Class State


  • public class State
    extends Object

    一个状态有如下几个功能

    • success; 成功转移到另一个状态
    • failure; 不可顺着字符串跳转的话,则跳转到一个浅一点的节点
    • emits; 命中一个模式串

    根节点稍有不同,根节点没有 failure 功能,它的“failure”指的是按照字符串路径转移到下一个状态。其他节点则都有failure状态。

    Author:
    Robert Bor
    • Field Detail

      • depth

        protected final int depth
        模式串的长度,也是这个状态的深度
    • Constructor Detail

      • State

        public State()
        构造深度为0的节点
      • State

        public State​(int depth)
        构造深度为depth的节点
        Parameters:
        depth -
    • Method Detail

      • getDepth

        public int getDepth()
        获取节点深度
        Returns:
      • addEmit

        public void addEmit​(int keyword)
        添加一个匹配到的模式串(这个状态对应着这个模式串)
        Parameters:
        keyword -
      • getLargestValueId

        public Integer getLargestValueId()
        获取最大的值
        Returns:
      • addEmit

        public void addEmit​(Collection<Integer> emits)
        添加一些匹配到的模式串
        Parameters:
        emits -
      • emit

        public Collection<Integer> emit()
        获取这个节点代表的模式串(们)
        Returns:
      • isAcceptable

        public boolean isAcceptable()
        是否是终止状态
        Returns:
      • failure

        public State failure()
        获取failure状态
        Returns:
      • setFailure

        public void setFailure​(State failState,
                               int[] fail)
        设置failure状态
        Parameters:
        failState -
      • nextState

        public State nextState​(Character character)
        按照character转移,根节点转移失败会返回自己(永远不会返回null)
        Parameters:
        character -
        Returns:
      • nextStateIgnoreRootState

        public State nextStateIgnoreRootState​(Character character)
        按照character转移,任何节点转移失败会返回null
        Parameters:
        character -
        Returns:
      • getIndex

        public int getIndex()
      • setIndex

        public void setIndex​(int index)