code: public int[] transferValues(int state, int codePoint)
      {
          if (state < 1)
          {
              return EMPTY_WALK_STATE;
          }
          if ((state != 1) && (isEmpty(state)))
          {
              return EMPTY_WALK_STATE;
          }
          int[] ids = this.charMap.toIdList(codePoint);
          if (ids.length == 0)
          {
              return EMPTY_WALK_STATE;
          }
          for (int i = 0; i < ids.length; i++)
          {
              int c = ids[i];
              if ((getBase(state) + c < getBaseArraySize())
                  && (getCheck(getBase(state) + c) == state))
              {
                  state = getBase(state) + c;
              }
              else
              {
                  return EMPTY_WALK_STATE;
              }
          }
          if (getCheck(getBase(state) + UNUSED_CHAR_VALUE) == state)
          {
              int value = getLeafValue(getBase(getBase(state)
                                                   + UNUSED_CHAR_VALUE));
              return new int[]{state, value};
          }
          return new int[]{state, -1};
      }
docs: 转移状态并输出值
  
  @param state
  @param codePoint char
  @return