クラス FileQueryTag

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

    public class FileQueryTag
    extends QueryTag
    ファイルを検索し、DBTableModel にセットするタグです。 ファイルの検索結果は、[WRITABLE],LEVEL,FILE_TYPE,PARENT,NAME,LASTMODIFIED,FILE_LENGTH,RWH,[MD5],[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 で表します。 [MD5] useMD5=trueで、MD5 というカラムを追加したうえで、ファイルのMD5計算を行います。 [TEXT] useText=trueで、ファイルの内容を文字列にして、TEXTというカラムに設定します。 [TO_PARENT] useUpdateClms=trueで、fileUpdateタグでCOPYやMOVEを行う時に使用する必須となるカラム(TO_PARENT,TO_NAME)を追加します。 [TO_NAME] 同上 [・・・・] addClms属性で指定されたカラムを追加します。
    関連項目:
    直列化された形式
    機能分類
    その他入力
    形式サンプル:
    ●形式:<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)。 useMD5 【TAG】MD5カラムを追加したうえで、MD5計算を行うかどうか[true/false]を指定します(初期値:false)。 useText 【TAG】TEXTカラムを追加したうえで、ファイルの内容を読み込むかどうか[true/false]を指定します(初期値:false)。 useUpdateClms 【TAG】TO_PARENT、TO_NAMEカラムを追加するかどうか[true/false]を指定します(初期値:false)。 addClms 【TAG】検索結果のカラム列に追加するカラム名を、CSV形式で指定します。 fileType 【TAG】選択対象[FILE/DIR]を指定します。下位展開は考慮(multi 属性準拠)されます。 addFrom 【TAG】from属性で指定された基準ファイル/フォルダ自体をリストに追加するかどうか[true/false]を指定します(初期値:true)。 command 【TAG】コマンド (NEW,RENEW)をセットします("NEW" と "RENEW" 時のみ実行する(初期値:NEW))。 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[続行する]) tableId 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session)。 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)。 > ... 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>
    変更履歴:
    4.0.0.0 (2005/01/31) 内部ロジック改定
    バージョン
    4.0
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    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 属性を追加
      • 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属性追加。
      • execute

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

        public void setFrom​(java.lang.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​(java.lang.String mlti)
        【TAG】多段階展開するか、1レベル展開するかどうか[true/false]を指定します(初期値:false)。
        パラメータ:
        mlti - 多段階展開するか [true:する/false:1レベル]
        説明:
        初期値は、false (1レベル) です。
      • setLevel

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

        public void setOrderBy​(java.lang.String clm)
        【TAG】ソートするカラム名を指定します(一つのみ)。
        パラメータ:
        clm - ソートするカラム名 (一つのみ、逆順はマイナスを付ける)
        関連項目:
        setDesc( String )
        説明:
        ソートするカラム名を、"LEVEL","FILE_TYPE","PARENT","NAME","LASTMODIFIED","FILE_LENGTH","RWH" から一つ選びます。 これは、複数カラムでのソートはできません。 逆順にソートする場合は、desc属性を true にセットください。 + をつけても、無効(カラム名がないということ)でエラーになります。
        変更履歴:
        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に置き換えます。
      • setDesc

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

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

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

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

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

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

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

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

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

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