クラス TagParser

java.lang.Object
org.opengion.hayabusa.report2.TagParser

class TagParser extends Object
Calc帳票システムでタグのパースを行うためのクラスです。 主に開始タグ、終了タグを指定したパースのループ処理を行うための機能を提供します。 具体的には、doParse(String, String, String)により、パース文字列、開始タグ、終了タグを 指定し、パースを行います。 パース後の文字列は、doParse(String, String, String)の戻り値になります。 パース実行中に、発見された開始タグから終了タグまでの間の文字列の処理は、exec(String, StringBuilder, int)を オーバーライドすることにより定義します。 また、このクラスでは、パースに必要な各種ユーティリティメソッドについても同様に定義されています。
機能分類
帳票システム
導入されたバージョン:
JDK1.6
  • ネストされたクラスの概要

    ネストされたクラス
    修飾子とタイプ
    クラス
    説明
    (package private) static final class 
    アンダーバーで、キーと行番号の分離を行います。
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
     
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    protected boolean
    checkIgnore(int strOffset, int endOffset)
    開始タグから終了タグまでの文字列の処理を実行するかどうかを定義します。 falseが返された場合、何も処理されず(exec(String, StringBuilder, int)が実行されない)、 元の文字列がそのまま出力されます。
    static String
    引数のキーから不要なキーを取り除く、ユーティリティメソッドです。
    doParse(String content, String startTag, String endTag)
    パース処理を行います。 詳細は、doParse(String, String, String, boolean)のJavadocを参照して下さい。
    doParse(String content, String startTag, String endTag, boolean isAddTag)
    パース処理を行います。 パース中に取り出された開始タグから終了タグまでの文字列の処理は、 exec(String, StringBuilder, int)で定義します。 また、isAddTagをtrueにした場合、exec(String, StringBuilder, int)に渡される 文字列に、開始タグ、終了タグが含まれます。 逆にfalseにした場合は、開始タグ、終了タグを除き、exec(String, StringBuilder, int)に渡されます。
    protected void
    exec(String str, StringBuilder buf, int offset)
    開始タグから終了タグまでの文字列の処理を定義します。 この実装では、何も処理を行いません。(切り出した文字列はアペンドされません) サブクラスでオーバーライドして実際の処理を実装して下さい。
    static String
    getValueFromTag(String str, String start, String end)
    引数の文字列の開始文字と終了文字の間の文字列を取り出す、ユーティリティメソッドです。 ※返される文字列に、開始文字、終了文字は含まれません。
    void
    setOffset(int offset)
    パース実行中のoffset値を外部からセットします。 このメソッドは、exec(String, StringBuilder, int)で、処理結果により、offset値を 進めておく必要がある場合に利用されます。(つまり通常は利用する必要はありません)
    static String
    "{@" + key + '_' と、'}' の間の文字列を返します。
    static String[]
    tag2Array(String str, String startTag, String endTag)
    引数の文字列を指定された開始タグ、終了タグで解析し配列として返す、ユーティリティメソッドです。 開始タグより前の文字列は0番目に、終了タグより後の文字列は1番目に格納されます。 2番目以降に、開始タグ、終了タグの部分が格納されます。

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

  • メソッドの詳細

    • doParse

      public String doParse(String content, String startTag, String endTag, boolean isAddTag)
      パース処理を行います。 パース中に取り出された開始タグから終了タグまでの文字列の処理は、 exec(String, StringBuilder, int)で定義します。 また、isAddTagをtrueにした場合、exec(String, StringBuilder, int)に渡される 文字列に、開始タグ、終了タグが含まれます。 逆にfalseにした場合は、開始タグ、終了タグを除き、exec(String, StringBuilder, int)に渡されます。
      パラメータ:
      content - パース対象文字列
      startTag - 開始タグ
      endTag - 終了タグ
      isAddTag - 開始タグ・終了タグを含むか
      戻り値:
      パース後の文字列
      関連項目:
      変更履歴:
      5.2.2.0 (2010/11/01) 読み飛ばしをした場合に、開始タグが書き込まれないバグを修正
      このメソッドは、nullを返しません
    • doParse

      public String doParse(String content, String startTag, String endTag)
      パース処理を行います。 詳細は、doParse(String, String, String, boolean)のJavadocを参照して下さい。
      パラメータ:
      content - パース対象文字列
      startTag - 開始タグ
      endTag - 終了タグ
      戻り値:
      パース後の文字列
      関連項目:
    • exec

      protected void exec(String str, StringBuilder buf, int offset)
      開始タグから終了タグまでの文字列の処理を定義します。 この実装では、何も処理を行いません。(切り出した文字列はアペンドされません) サブクラスでオーバーライドして実際の処理を実装して下さい。
      パラメータ:
      str - 開始タグから終了タグまでの文字列(開始タグ・終了タグを含む)
      buf - 出力を行う文字列バッファ
      offset - 終了タグのオフセット
    • checkIgnore

      protected boolean checkIgnore(int strOffset, int endOffset)
      開始タグから終了タグまでの文字列の処理を実行するかどうかを定義します。 falseが返された場合、何も処理されず(exec(String, StringBuilder, int)が実行されない)、 元の文字列がそのまま出力されます。
      パラメータ:
      strOffset - 開始タグのオフセット
      endOffset - 終了タグのオフセット
      戻り値:
      処理を行うかどうか(true:処理を行う false:処理を行わない)
    • setOffset

      public void setOffset(int offset)
      パース実行中のoffset値を外部からセットします。 このメソッドは、exec(String, StringBuilder, int)で、処理結果により、offset値を 進めておく必要がある場合に利用されます。(つまり通常は利用する必要はありません)
      パラメータ:
      offset - オフセット
      関連項目:
    • tag2Array

      public static String[] tag2Array(String str, String startTag, String endTag)
      引数の文字列を指定された開始タグ、終了タグで解析し配列として返す、ユーティリティメソッドです。 開始タグより前の文字列は0番目に、終了タグより後の文字列は1番目に格納されます。 2番目以降に、開始タグ、終了タグの部分が格納されます。
      パラメータ:
      str - 解析する文字列
      startTag - 開始タグ
      endTag - 終了タグ
      戻り値:
      解析結果の配列
    • getValueFromTag

      public static String getValueFromTag(String str, String start, String end)
      引数の文字列の開始文字と終了文字の間の文字列を取り出す、ユーティリティメソッドです。 ※返される文字列に、開始文字、終了文字は含まれません。
      パラメータ:
      str - 解析する文字列
      start - 開始文字列
      end - 終了文字列
      戻り値:
      解析結果の文字
    • checkKey

      public static String checkKey(String key, StringBuilder sb)
      引数のキーから不要なキーを取り除く、ユーティリティメソッドです。
      パラメータ:
      key - オリジナルのキー
      sb - キーの外に含まれるaタグを削除するための、バッファ
      戻り値:
      削除後のキー
      変更履歴:
      5.1.8.0 (2010/07/01) spanタグを削除
      このメソッドは、nullを返しません
    • splitSufix

      public static String splitSufix(String row, String key)
      "{@" + key + '_' と、'}' の間の文字列を返します。 '_' を含まない場合は、ゼロ文字列を返します。 ここでは、簡易的に処理しているため、タグ等の文字列が含まれる場合は、 上手くいかない可能性があります。 "{@" + key + '_' と、'}' の間の文字列を返します。 '_' が存在しない場合は、空文字列を返します。 "{@" + key が存在しない場合は、null を返します。 "{@" + key が存在しており、'}' が存在しない場合は、Exception が throw されます。
      パラメータ:
      row - 検索元の文字列
      key - 検索対象のキー
      戻り値:
      "{@" + key + '_' と、'}' の間の文字列を返します。
      変更履歴:
      8.0.3.0 (2021/12/17) 新規追加, 8.1.1.1 (2022/02/18) 検索時に、リンク等のタグ情報があれば無視します。