クラス FileQueryTag

すべての実装されたインタフェース:
BodyTag, IterationTag, JspTag, Tag, TryCatchFinally, Serializable

public class FileQueryTag extends QueryTag
ファイルを検索し、DBTableModel にセットするタグです。 ファイルの検索結果は、[WRITABLE],LEVEL,FILE_TYPE,PARENT,NAME,LASTMODIFIED,FILE_LENGTH,RWH,[HASH],[TO_PARENT,TO_NAME],[・・・・] のカラムを持つ DBTableModel にセット されます。このカラムは、固定です。 並び替えについては、このタグで指定しますが、ファイルの選別(where 条件)は、 BODY 部に記述する fileWhere タグで指定します。(複数指定可能)) [カラム名] 検索するファイルの属性は、以下のカラム名で作成されます。 [WRITABLE] useWritable=trueで、先頭カラムに、WRITABLE カラムが挿入されます。 LEVEL ディレクトリを展開する場合のレベル。 FILE_TYPE ファイル(F)かディレクトリ(D)であるか判定。 PARENT この抽象パス名の親のパス名文字列を返します。 NAME この抽象パス名が示すファイルまたはディレクトリの名前を返します。 LASTMODIFIED 最後に変更された時刻を返します。 FILE_LENGTH ファイルの長さを返します。 RWH 読み込み、書き込み、隠し属性をそれぞれ、r,w,h で表します。 [HASH] HASH というカラムを追加したうえで、システム定数のFILE_HASH_CODEで計算を行います。 [TEXT] useText=trueで、ファイルの内容を文字列にして、TEXTというカラムに設定します。 [TO_PARENT] useUpdateClms=trueで、fileUpdateタグでCOPYやMOVEを行う時に使用する必須となるカラム(TO_PARENT,TO_NAME)を追加します。 [TO_NAME] 同上 [・・・・] addClms属性で指定されたカラムを追加します。
関連項目:
変更履歴:
4.0.0.0 (2005/01/31) 内部ロジック改定
機能分類
その他入力
形式サンプル:
●形式:<og:fileQuery from="…" multi="true/false" > <og:fileWhere … /> … </og:fileQuery> ●body:あり(EVAL_BODY_BUFFERED:BODYを評価し、{@XXXX} を解析します) ●Tag定義: <og:fileQuery from ○【TAG】検索を開始するファイルまたはディレクトリを指定します(必須)。 multi 【TAG】多段階展開するか、1レベル展開するかどうか[true:多段階/false:1レベル]を指定します(初期値:false:1レベル)。 level 【TAG】多段階展開するレベルを指定します(初期値:100)。 orderBy 【TAG】ソートするカラム名を指定します(一つのみ)。 desc 【TAG】表示順を逆転するかどうか[true/false]を指定します(初期値:false)。 useWritable 【TAG】先頭カラムに、WRITABLE カラムを追加するかどうか[true/false]を指定します(初期値:false)。 useHash 【TAG】HASHを追加したうえで、システム定数のFILE_HASH_CODEで計算を行うかどうか[true/false]を指定します(初期値:false)。 8.1.2.0 (2022/03/10) Add useText 【TAG】TEXTカラムを追加したうえで、ファイルの内容を読み込むかどうか[true/false]を指定します(初期値:false)。 useUpdateClms 【TAG】TO_PARENT、TO_NAMEカラムを追加するかどうか[true/false]を指定します(初期値:false)。 addClms 【TAG】検索結果のカラム列に追加するカラム名を、CSV形式で指定します。 addFrom 【TAG】from属性で指定された基準ファイル/フォルダ自体をリストに追加するかどうか[true/false]を指定します(初期値:true)。 fromBase 【TAG】検索結果のPARENT列から、fromBase指定のパスを削除した相対パスを作成します。 (7.0.2.1 (2019/03/04)) nameOnly 【TAG】ファイルの拡張子を除いた名前部分のみの値で行います。7.2.6.0 (2020/06/30) fileType 【TAG】選択対象[FILE/DIR]を指定します。下位展開は考慮(multi 属性準拠)されます。 command 【TAG】コマンド (NEW,RENEW)をセットします("NEW" と "RENEW" 時のみ実行する(初期値:NEW))。 scope 【TAG】キャッシュする場合のスコープ[request/session/application]を指定します (初期値:session) tableId 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します maxRowCount 【TAG】(通常は使いません)データの最大読み込み件数を指定します (初期値:DB_MAX_ROW_COUNT[=1000])(0:[無制限])。 displayMsg 【TAG】検索結果を画面上に表示するメッセージリソースIDを指定します (初期値:VIEW_DISPLAY_MSG[=]) overflowMsg 【TAG】検索データが最大検索数をオーバーした場合に表示するメッセージリソースIDを指定します (初期値:MSG0007[検索結果が、制限行数を超えましたので、残りはカットされました])。 notfoundMsg 【TAG】検索結果がゼロ件の場合に表示するメッセージリソースIDを指定します(初期値:MSG0077[対象データはありませんでした])。 stopZero 【TAG】検索結果が0件のとき処理を続行するかどうか[true/false]を指定します(初期値:false[続行する]) useTimeView 【TAG】処理時間を表示する TimeView を表示するかどうかを指定します (初期値:VIEW_USE_TIMEBAR[=])。 useSLabel 【TAG】7.0.7.0 (2019/12/13) エラーメッセージにSLABELを利用するかどうか[true/false]を指定します(初期値:false) useLocal 【TAG】システム定数でクラウド設定されていても、クラウド環境を使用しない場合、trueを指定します(初期値:false) 8.0.1.0 (2021/10/29) caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 6.8.0.0 (2017/06/02) caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 6.8.0.0 (2017/06/02) caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) 6.8.0.0 (2017/06/02) caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) 6.8.0.0 (2017/06/02) caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) 6.8.0.0 (2017/06/02) debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)。 useMD5 【廃止】MD5カラムを追加したうえで、MD5計算を行うかどうか[true/false]を指定します(初期値:false)。 8.1.2.0 (2022/03/10) Delete > ... Body ... </og:fileQuery> ●使用例 ・一般的な属性でファイルの検索を行います。 <og:fileQuery from = "d:/webapps/dbdef/jsp/" multi = "true" command = "{@command}" > <og:fileWhere endWith=".jsp" /> </og:fileQuery> ・最終変更日で逆順ソートする。対象は、2002/10/01 以降に変更されたファイル。 <og:fileQuery from = "d:/webapps/dbdef/jsp/" multi = "true" orderBy = "LASTMODIFIED" desc = "true" command = "{@command}" > <og:fileWhere lastModified="20021001000000" /> </og:fileQuery>
導入されたバージョン:
JDK5.0,
  • コンストラクタの詳細

    • FileQueryTag

      public FileQueryTag()
      デフォルトコンストラクター
      変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.
  • メソッドの詳細

    • doAfterBody

      public int doAfterBody()
      Taglibのタグ本体を処理する doAfterBody() を オーバーライドします。 タグ本体が空の場合は、呼ばれないので、従来の doAfterBody() 処理を、 doEndTag() に持っていきます。 よって、親クラスの doAfterBody() を実行させないため、このメソッドを用意しています。
      定義:
      doAfterBody インタフェース内 IterationTag
      オーバーライド:
      doAfterBody クラス内 QueryTag
      戻り値:
      後続処理の指示(SKIP_BODY)
      変更履歴:
      6.7.4.1 (2017/02/17) 親クラスの処理を、実行させない。
    • doEndTag

      public int doEndTag()
      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 タグ本体が空の場合は、呼ばれないので、従来の doAfterBody() 処理を、 doEndTag() に持っていきます。
      定義:
      doEndTag インタフェース内 Tag
      オーバーライド:
      doEndTag クラス内 QueryTag
      戻り値:
      後続処理の指示
      変更履歴:
      6.7.4.1 (2017/02/17) 従来の doAfterBody() 処理を、doEndTag() に持ってくる。, 6.8.0.0 (2017/06/02) caseKey,caseVal,caseNN,caseNull 属性を追加, 8.0.0.1 (2021/10/08) cloud対応
    • release2

      protected void release2()
      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
      release2 クラス内 QueryTag
      変更履歴:
      5.3.4.0 (2011/04/01) 指定カラムのソート処理機能、カラム追加機能、fileType追加, 5.3.9.0 (2011/09/01) addFrom属性追加, 5.7.4.3 (2014/03/28) useWritable,useMD5属性追加。valClms を defClms に置き換え。, 6.2.2.0 (2015/03/27) useText属性追加。, 7.0.2.1 (2019/03/04) fromBase属性追加に伴い、fromLen変数を用意。, 7.2.6.0 (2020/06/30) nameOnly 属性 を追加します。, 8.0.1.0 (2021/10/29) useLocal 属性を追加。, 8.1.2.0 (2022/03/10) useMD5属性廃止、useHash属性追加
    • execute

      protected void execute(File fin, int lvl)
      FileQuery を実行します。
      パラメータ:
      fin - 検索を開始するファイル/ディレクトリ
      lvl - 階層展開レベル
      変更履歴:
      5.3.4.0 (2011/04/01) fileType の条件に合致する場合だけ、データを作成する。, 5.3.7.0 (2011/07/01) フォルダにアクセスできない場合は、null となるのでその対応, 7.0.2.1 (2019/03/04) fromBase属性追加に伴い、fromLen変数を用意。
    • setFrom

      public void setFrom(String url)
      【TAG】ファイルの検索元となるディレクトリを指定します (初期値:FILE_URL[=])。
      パラメータ:
      url - ファイルの検索元となるディレクトリ
      変更履歴:
      4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。, 6.4.2.1 (2016/02/05) URLの最後に、"/" を追加する処理を廃止。, 6.4.2.1 (2016/02/05) HybsSystem.url2dir に引数追加。
      説明:
      ファイルの検索元となるディレクトリを指定します。
    • setMulti

      public void setMulti(String mlti)
      【TAG】多段階展開するか、1レベル展開するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      mlti - 多段階展開するか [true:する/false:1レベル]
      説明:
      初期値は、false(1レベル)です。
    • setLevel

      public void setLevel(String lvl)
      【TAG】多段階展開するレベルを指定します(初期値:100)。
      パラメータ:
      lvl - 多段階展開するレベル
      説明:
      多段階展開するレベルを指定します(初期値:100)。
    • setOrderBy

      public void setOrderBy(String clm)
      【TAG】ソートするカラム名を指定します(一つのみ)。
      パラメータ:
      clm - ソートするカラム名 (一つのみ、逆順はマイナスを付ける)
      関連項目:
      変更履歴:
      5.3.4.0 (2011/04/01) 新規追加, 6.3.4.0 (2015/08/01) Arrays.toString から String.join に置き換え。, 6.4.3.4 (2016/03/11) String配列 から、Setに置き換えます。
      説明:
      ソートするカラム名を、"LEVEL","FILE_TYPE","PARENT","NAME","LASTMODIFIED","FILE_LENGTH","RWH" から一つ選びます。 これは、複数カラムでのソートはできません。 逆順にソートする場合は、desc属性を true にセットください。 + をつけても、無効(カラム名がないということ)でエラーになります。
    • setDesc

      public void setDesc(String flag)
      【TAG】表示順を逆転するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      flag - 表示順逆順 [逆順:true/正順:false]
      関連項目:
      変更履歴:
      5.3.4.0 (2011/04/01) 新規追加
      説明:
      orderBy 属性で指定した表示順を、逆順にするかどうかを指定できます。 初期値は、false(昇順)です。
    • setUseWritable

      public void setUseWritable(String flag)
      【TAG】先頭カラムに、WRITABLE カラムを追加するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      flag - WRITABLEカラム追加 [true:する/false:しない]
      変更履歴:
      5.7.4.3 (2014/03/28) 新規追加
      説明:
      ファイル検索結果の1レコード単位に、書き込み許可/禁止属性を付けるには、 カラム列の先頭に、WRITABLE カラムを追加する必要があります。 初期値は、false(追加しない)です。
    • setUseHash

      public void setUseHash(String flag)
      【TAG】HASHカラムを追加したうえで、システム定数のFILE_HASH_CODEで計算を行うかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      flag - HASHカラム追加 [true:する/false:しない]
      変更履歴:
      8.1.2.0 (2022/03/10) 新規追加
      説明:
      ファイルの改変等をチェックするには、ファイルのハッシュ値を拾う必要があります。 タイムスタンプとサイズ(LASTMODIFIED,FILE_LENGTH)でも、類似の処理は可能ですが、 より、厳密な一致をみるなら、ハッシュした結果を突き合わせるのがベストです。 useHash=true に設定すると、HASH というカラムを追加したうえで、 システム定数のFILE_HASH_CODEで計算結果をセットします。 初期値は、false(追加しない)です。
    • setUseText

      public void setUseText(String flag)
      【TAG】TEXTカラムを追加したうえで、ファイルの内容を読み込むかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      flag - TEXTカラム追加 [true:する/false:しない]
      変更履歴:
      6.2.2.0 (2015/03/27) TEXTカラムを追加したうえで、ファイルの内容を読み込むかどうか[true/false]を指定します(初期値:false)。
      説明:
      ファイルの内容を取得する場合に、true に設定します。 初期値は、false(追加しない)です。
    • setUseUpdateClms

      public void setUseUpdateClms(String flag)
      【TAG】TO_PARENT、TO_NAMEカラムを追加するかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
      flag - TO_PARENT、TO_NAMEカラム追加 [true:追加する/false:追加しない]
      関連項目:
      変更履歴:
      5.3.4.0 (2011/04/01) 新規追加
      説明:
      fileUpdateタグでは、ファイルのCOPYやMOVEが出来ますが、そのコピー先、移動先の ファイルを行ごとに指定する場合、TO_PARENT、TO_NAMEカラムという固定名のカラムが 必要です。 これを、addClms 属性で指定する代わりに、この属性で、true をセットすることで、 自動的に追加されます。 初期値は、false(追加しない)です。
    • setAddClms

      public void setAddClms(String clms)
      【TAG】検索結果のカラム列に追加するカラム名を、CSV形式で指定します。
      パラメータ:
      clms - 追加するカラム名(CSV形式)
      関連項目:
      変更履歴:
      5.3.4.0 (2011/04/01) 新規追加
      説明:
      デフォルトのカラム名、[WRITABLE],LEVEL,FILE_TYPE,PARENT,NAME,LASTMODIFIED,FILE_LENGTH,RWH,[HASH],[TO_PARENT,TO_NAME] 以外に、指定のカラム名を追加することが可能です。 これは、ファイル検索結果以外の項目を追加して、データベースに書き込む場合に、利用できます。 並び順は、デフォルトカラムの後ろに、指定のカラムの順番で付きます。 ここで追加したカラムには、カラムリソースの初期値がセットされます。
    • setAddFrom

      public void setAddFrom(String flag)
      【TAG】from属性で指定された基準ファイル/フォルダ自体をリストに追加するかどうか[true/false]を指定します(初期値:true)。
      パラメータ:
      flag - 基準をリストに追加するかどうか [true:追加する/false:追加しない]
      変更履歴:
      5.3.9.0 (2011/09/01) 新規作成
      説明:
      初期値はtrue(追加する)です。
    • setFromBase

      public void setFromBase(String base)
      【TAG】検索結果のPARENT列から、fromBase指定のパスを削除した相対パスを作成します。
      パラメータ:
      base - PARENT列から、fromBase指定のパスを削除した相対パスを作成
      変更履歴:
      7.0.2.1 (2019/03/04) fromBase属性追加に伴い、fromLen変数を用意。, 7.0.5.0 (2019/09/16) fromBase のパスの文字数も、正規パス名から作成。, 7.1.0.0 (2020/01/20) fromLen属性で、CanonicalFileで区切り文字'¥'が消えるため、そのため、PARENTに'¥'が残る現象の対応。
      説明:
      実ファイルをURL化する場合に、階層をスキャンしたPARENTから、fromBase分の文字列を削除します。 PARENTに相対パスを指定することが可能になります。 元となるファイルパスは、getCanonicalFile() で作成した正規パス名になるため、 fromBase のパスの文字数も、同様に正規パス名から作成します。
    • setNameOnly

      public void setNameOnly(String flag)
      【TAG】ファイルの拡張子を除いた名前部分のみの値で行います(初期値:false)。
      パラメータ:
      flag - ファイルの拡張子を除いた名前部分のみで作成するかどうか [true:名前部分のみ/false:ファイル名]
      変更履歴:
      7.2.6.0 (2020/06/30) nameOnly 属性 を追加します。
      説明:
      ファイル検索の値を、ファイルの拡張子を取り除いた値のみで、作成します。 初期値は、false(拡張子付きファイル名でリスト)です。 但し、FileSearchTag などでファイル名を使用する場合には、拡張子は必須となるので、 nameOnly="true" は使用しないでください。
    • setFileType

      public void setFileType(String str)
      【TAG】ファイル名が、指定されたファイルタイプ[DIR/FILE]と一致した場合、スルー(選択)されます(初期値:null)。
      パラメータ:
      str - ファイルタイプ [null:スルー/DIR:ディレクトリのみ検索/FILE:ファイルのみ検索]
      変更履歴:
      5.3.4.0 (2011/04/01) fileType メソッドで選択対象指定の追加
      説明:
      大文字小文字は区別しません。 ファイルタイプ は、DIR,FILE が指定できます。 DIR は、ディレクトリのみ検索します。(階層下がりも行います) FILEは、ファイルのみ検索します。(階層下がりも行います) 引数が null の場合は、追加しません。(つまり、すべてスルーされます。)
    • setUseLocal

      public void setUseLocal(String flag)
      【TAG】システム定数でクラウド設定されていても、クラウド環境を使用しない場合、trueを指定します(初期値:false)。
      パラメータ:
      flag - ローカル環境のみ [true:ローカルのみ/false:設定どおり]
      変更履歴:
      8.0.1.0 (2021/10/29) useLocal 属性を追加。
      説明:
      クラウド設定は、システム定数の『CLOUD_TARGET』と『CLOUD_BUCKET』の設定で自動的に使用しますが、 どうしてもローカルでのみ使いたい場合は、この属性を true に設定します。 標準はfalse:設定どおりとなります。 true/false以外を指定した場合はfalse扱いとします。
    • setFileFilter

      protected void setFileFilter(FileFilter filter)
      FileFilterオブジェクトをセットします。 これは、BODY 部に登録した、FileWhereタグによって設定された ファイルフィルターです。
      パラメータ:
      filter - オブジェクト
    • toString

      public String toString()
      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
      toString クラス内 QueryTag
      戻り値:
      このクラスの文字列表現
      このメソッドは、nullを返しません