パッケージ org.opengion.hayabusa.report2

# クラス 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`
  `TagParser.SplitKey`
  ｱﾝﾀﾞｰﾊﾞｰで､ｷｰと行番号の分離を行います｡

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `TagParser()`

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `protected boolean`
  `checkIgnore(int strOffset, int endOffset)`
  開始ﾀｸﾞから終了ﾀｸﾞまでの文字列の処理を実行するかどうかを定義します｡ falseが返された場合､何も処理されず(`exec(String, StringBuilder, int)`が実行されない)､ 元の文字列がそのまま出力されます｡
  `static String`
  `checkKey(String key, StringBuilder sb)`
  引数のｷｰから不要なｷｰを取り除く､ﾕｰﾃｨﾘﾃｨﾒｿｯﾄﾞです｡
  `String`
  `doParse(String content, String startTag, String endTag)`
  ﾊﾟｰｽ処理を行います｡ 詳細は､`doParse(String, String, String, boolean)`のJavadocを参照して下さい｡
  `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)`に渡されます｡
  `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`
  `splitSufix(String row, String key)`
  "{@" + 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`

- ## コンストラクタの詳細

  - ### TagParser

    TagParser()

- ## メソッドの詳細

  - ### 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` - 開始ﾀｸﾞ･終了ﾀｸﾞを含むか
    戻り値:
      ﾊﾟｰｽ後の文字列
    関連項目:
      - `exec(String, StringBuilder, int)`
    変更履歴:
      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` - 終了ﾀｸﾞ
    戻り値:
      ﾊﾟｰｽ後の文字列
    関連項目:
      - `doParse(String, String, String, boolean)`

  - ### 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` - ｵﾌｾｯﾄ
    関連項目:
      - `exec(String, StringBuilder, int)`

  - ### 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) 検索時に、ﾘﾝｸ等のﾀｸﾞ情報があれば無視します。