org.opengion.hayabusa.taglib

## クラス FileTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.FileTag

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

      public class FileTag
      extends CommonTagSupport

  各種アクションを指定して、ファイル関連の操作をおこなうタグです。 各種アクション に応じた振る舞いを行います。 結果については、false の場合は、body 要素を表示して、終了します。 これは、BODYにエラーメッセージを書いておくことを想定した作りになっています。 判定結果を反転したい場合は、notEquals 属性を使用してください。また、 結果に応じて、処理を止めたくない場合は、useStop 属性を false に指定することで、 後続処理を実行できます。 [各種アクション] canRead 読み込めるかどうかを判定。 canWrite 変更できるかどうか判定。 createNewFile 空の新しいファイルを不可分 (atomic) に生成。(そのファイルがまだ存在しない場合だけ) delete ファイルまたはディレクトリを削除。 renameTo ファイルまたはディレクトリ名を変更。 exists ファイルが存在するかどうか判定。 isDirectory ファイルがディレクトリであるかどうか判定。 isFile ファイルが普通のファイルかどうか判定。 isHidden ファイルが隠しファイルかどうか判定。 mkdir ディレクトリを生成。 mkdirs ディレクトリを複数生成。 read ファイルを読み込んでjspWriterに出力 existsLength ファイルサイズが０Byte以上のファイルが存在するかどうか判定。 copy ファイルまたはディレクトリをコピー(file1 ⇒ file2 にコピー)。 zip ファイルまたはディレクトリをZIPファイルに圧縮します。(file1⇒file2)
  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:file action="…" fileURL="…" >･･･</og:file>
         ●body：あり(EVAL_BODY_INCLUDE:BODYをインクルードし、{@XXXX} は解析しません)

         ●Tag定義：
           <og:file
               action           ○【TAG】アクション(canRead,canWrite,createNewFile,delete,exists,isDirectory,isFile,isHidden,mkdir,mkdirs)を指定します(必須)。
               fileURL            【TAG】操作するファイルのディレクトリを指定します (初期値:FILE_URL[=filetemp/])
               file1              【TAG】基準となるファイル名を指定します(コマンドの左辺のファイル名です)
               file2              【TAG】処理結果となるファイル名を指定します(コマンドの右辺のファイル名です)
               notEquals          【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false)
               useStop            【TAG】エラー時BODYを処理後に停止するかどうか[true/false]を指定します(初期値:true)
               encode             【TAG】ファイルを読み込む(action="READ")際のエンコードを指定します(初期値:OS依存文字コード)
               caseKey            【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 5.7.7.2 (2014/06/20)
               caseVal            【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 5.7.7.2 (2014/06/20)
               caseNN             【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:true) 5.7.7.2 (2014/06/20)
               caseNull           【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:true) 5.7.7.2 (2014/06/20)
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           >   ... Body ...
           </og:file>

         ●使用例
            ・ファイルの存在チェック→存在しなければエラーメッセージを表示。
                <og:file action="exists" fileURL="N:/CIR/" file1="{@USER.LKISB}/{@USER.LDNO1KAI}.cir/001.sht">
                    <og:message lbl="RKE_0157" comment="回路図が存在しません。" />
                </og:file>

            ・N:/Filetemp/にユーザーディレクトリが存在しなければ作成。→失敗した場合エラーメッセージを表示。
                <og:file action="mkdir" fileURL="N:/Filetemp/{@USER.ID}" >
                    <og:message comment="エラーが発生しました。システム管理者に連絡してください。" />
                </og:file>

            ・N:/Filetemp/test.txt ファイルの削除。ファイルが存在しなくても処理を続ける。
                <og:file action="delete" fileURL="N:/Filetemp/" file1="test.txt" useStop="false" >
                    <og:message comment="ファイルは存在しませんでした。" />
                </og:file>

  機能分類
    その他部品
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールドと説明
    --- | ---
    `static String` | `ACT_CANREAD` action 引数に渡す事の出来る アクションコマンド 読み込めるかどうか "canRead"
    `static String` | `ACT_CANWRITE` action 引数に渡す事の出来る アクションコマンド 変更できるかどうか "canWrite"
    `static String` | `ACT_COPY` action 引数に渡す事の出来る アクションコマンド ファイルまたはディレクトリをコピーします。
    `static String` | `ACT_CREATENEWFILE` action 引数に渡す事の出来る アクションコマンド 空の新しいファイルを不可分 (atomic) に生成します (そのファイルがまだ存在しない場合だけ "createNewFile"
    `static String` | `ACT_DELETE` action 引数に渡す事の出来る アクションコマンド ファイルまたはディレクトリを削除"delete"
    `static String` | `ACT_EXISTS` action 引数に渡す事の出来る アクションコマンド ファイルが存在するかどうか "exists"
    `static String` | `ACT_EXISTSLENGTH` action 引数に渡す事の出来る アクションコマンド ファイルサイズが０Byte以上のファイルが存在するかどうか判定。
    `static String` | `ACT_ISDIRECTORY` action 引数に渡す事の出来る アクションコマンド ファイルがディレクトリであるかどうか"isDirectory"
    `static String` | `ACT_ISFILE` action 引数に渡す事の出来る アクションコマンド ファイルが普通のファイルかどうか"isFile"
    `static String` | `ACT_ISHIDDEN` action 引数に渡す事の出来る アクションコマンド ファイルが隠しファイルかどうか "isHidden"
    `static String` | `ACT_MKDIR` action 引数に渡す事の出来る アクションコマンド ディレクトリを生成します。
    `static String` | `ACT_MKDIRS` action 引数に渡す事の出来る アクションコマンド ディレクトリを生成します。
    `static String` | `ACT_READ` action 引数に渡す事の出来る アクションコマンド ファイルを読み込んで表示します。
    `static String` | `ACT_RENAMETO` action 引数に渡す事の出来る アクションコマンド ファイル名を変更します。
    `static String` | `ACT_ZIP` action 引数に渡す事の出来る アクションコマンド ZIP圧縮します。

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

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

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

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `int` | `doStartTag()` Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setAction(String cmd)` 【TAG】アクション(canRead,canWrite,createNewFile,delete,exists,isDirectory,isFile,isHidden,mkdir,mkdirs)を指定します。
    `void` | `setEncode(String enc)` 【TAG】ファイルを読み込む(action="READ")際のエンコードを指定します(初期値:OS依存文字コード)。
    `void` | `setFile1(String fname)` 【TAG】基準となるファイル名を指定します(コマンドの左辺のファイル名です)。
    `void` | `setFile2(String fname)` 【TAG】処理結果となるファイル名を指定します(コマンドの右辺のファイル名です)。
    `void` | `setFileURL(String url)` 【TAG】操作するファイルのディレクトリを指定します (初期値:FILE_URL[=filetemp/])。
    `void` | `setNotEquals(String flag)` 【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false)。
    `void` | `setUseStop(String flag)` 【TAG】エラー時BODYを処理後に停止するかどうか[true/false]を指定します(初期値:true)。
    `String` | `toString()` このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getTagName, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport

      `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### インタフェースから継承されたメソッド javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

- - ### フィールドの詳細

    - #### ACT_CANREAD

          public static final String ACT_CANREAD

      action 引数に渡す事の出来る アクションコマンド 読み込めるかどうか "canRead"
      関連項目:
        定数フィールド値

    - #### ACT_CANWRITE

          public static final String ACT_CANWRITE

      action 引数に渡す事の出来る アクションコマンド 変更できるかどうか "canWrite"
      関連項目:
        定数フィールド値

    - #### ACT_CREATENEWFILE

          public static final String ACT_CREATENEWFILE

      action 引数に渡す事の出来る アクションコマンド 空の新しいファイルを不可分 (atomic) に生成します (そのファイルがまだ存在しない場合だけ "createNewFile"
      関連項目:
        定数フィールド値

    - #### ACT_DELETE

          public static final String ACT_DELETE

      action 引数に渡す事の出来る アクションコマンド ファイルまたはディレクトリを削除"delete"
      関連項目:
        定数フィールド値

    - #### ACT_EXISTS

          public static final String ACT_EXISTS

      action 引数に渡す事の出来る アクションコマンド ファイルが存在するかどうか "exists"
      関連項目:
        定数フィールド値

    - #### ACT_ISDIRECTORY

          public static final String ACT_ISDIRECTORY

      action 引数に渡す事の出来る アクションコマンド ファイルがディレクトリであるかどうか"isDirectory"
      関連項目:
        定数フィールド値

    - #### ACT_ISFILE

          public static final String ACT_ISFILE

      action 引数に渡す事の出来る アクションコマンド ファイルが普通のファイルかどうか"isFile"
      関連項目:
        定数フィールド値

    - #### ACT_ISHIDDEN

          public static final String ACT_ISHIDDEN

      action 引数に渡す事の出来る アクションコマンド ファイルが隠しファイルかどうか "isHidden"
      関連項目:
        定数フィールド値

    - #### ACT_MKDIR

          public static final String ACT_MKDIR

      action 引数に渡す事の出来る アクションコマンド ディレクトリを生成します。 "mkdir"
      関連項目:
        定数フィールド値

    - #### ACT_MKDIRS

          public static final String ACT_MKDIRS

      action 引数に渡す事の出来る アクションコマンド ディレクトリを生成します。 "mkdirs"
      関連項目:
        定数フィールド値

    - #### ACT_RENAMETO

          public static final String ACT_RENAMETO

      action 引数に渡す事の出来る アクションコマンド ファイル名を変更します。 "renameTo"
      関連項目:
        定数フィールド値

    - #### ACT_READ

          public static final String ACT_READ

      action 引数に渡す事の出来る アクションコマンド ファイルを読み込んで表示します。 "read"
      関連項目:
        定数フィールド値

    - #### ACT_EXISTSLENGTH

          public static final String ACT_EXISTSLENGTH

      action 引数に渡す事の出来る アクションコマンド ファイルサイズが０Byte以上のファイルが存在するかどうか判定。 "existsLength"
      関連項目:
        定数フィールド値

    - #### ACT_COPY

          public static final String ACT_COPY

      action 引数に渡す事の出来る アクションコマンド ファイルまたはディレクトリをコピーします。 "copy"
      関連項目:
        定数フィールド値

    - #### ACT_ZIP

          public static final String ACT_ZIP

      action 引数に渡す事の出来る アクションコマンド ZIP圧縮します。 "zip"
      関連項目:
        定数フィールド値

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

    - #### FileTag

          public FileTag()

  - ### メソッドの詳細

    - #### doStartTag

          public int doStartTag()

      Taglibの開始タグが見つかったときに処理する doStartTag() を オーバーライドします。
      定義:
        `doStartTag` インタフェース内 `Tag`
      オーバーライド:
        `doStartTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        3.6.0.0 (2004/09/25) file オブジェクトの作成を actionExec 移動
        3.8.5.2 (2006/05/31) notEquals追加。 判定結果を反転させて処理します。
        5.7.7.2 (2014/06/20) caseKey,caseVal,caseNN,caseNull 属性を追加

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.8.5.2 (2006/05/31) useStop 追加。 エラー時BODYを処理後に停止(true)するかどうか
        5.7.7.2 (2014/06/20) caseKey,caseVal,caseNN,caseNull 属性を追加

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:

        2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加
        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.6.0.0 (2004/09/24) columns 、tableId 、file 削除
        3.8.5.2 (2006/05/31) notEquals 、useStop 追加
        5.1.9.0 (2010/08/01) READ時のエンコード指定

    - #### setAction

          public void setAction(String cmd)

      【TAG】アクション(canRead,canWrite,createNewFile,delete,exists,isDirectory,isFile,isHidden,mkdir,mkdirs)を指定します。
      パラメータ:
        `cmd` - アクション文字列
      関連項目:
        アクション定数
      説明:

             アクションは,HTMLから(get/post)指定されますので,ACT_xxx で設定される
             フィールド定数値のいづれかを、指定できます。
             処理の結果が、false の場合は、body 要素を表示して終了します。
             useStop 属性と、notEquals 属性によって、上記の振る舞いをけることが可能です。

             canRead          読み込めるかどうかを判定。
             canWrite         変更できるかどうか判定。
             createNewFile    空の新しいファイルを不可分 (atomic) に生成。(そのファイルがまだ存在しない場合だけ)
             delete           ファイルまたはディレクトリを削除。
             renameTo         ファイルまたはディレクトリ名を変更。
             exists           ファイルが存在するかどうか判定。
             isDirectory      ファイルがディレクトリであるかどうか判定。
             isFile           ファイルが普通のファイルかどうか判定。
             isHidden         ファイルが隠しファイルかどうか判定。
             mkdir            ディレクトリを生成。
             mkdirs           ディレクトリを複数生成。
             read             ファイルを読み込んでjspWriterに出力
             existsLength     ファイルサイズが０Byte以上のファイルが存在するかどうか判定。
             copy             ファイルまたはディレクトリをコピー(file1 ⇒ file2 にコピー)。

      変更履歴:

        3.0.0.0 (2002/12/25) ACTION_LIST のチェックを導入
        3.5.6.2 (2004/07/05) 文字列の連結にStringBuilderを使用します。

    - #### setFileURL

          public void setFileURL(String url)

      【TAG】操作するファイルのディレクトリを指定します (初期値:FILE_URL[=filetemp/])。
      パラメータ:
        `url` - ファイルURL
      関連項目:
        `SystemData.FILE_URL`
      説明:

             この属性で指定されるディレクトリのファイルを操作します。
             指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、２文字目が、
             ":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、
             (初期値:システム定数のFILE_URL[={@og.value org.opengion.hayabusa.common.SystemData#FILE_URL}])。

      変更履歴:

        4.0.0.0 (2005/01/31) urlAppend メソッドの利用
        4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。

    - #### setFile1

          public void setFile1(String fname)

      【TAG】基準となるファイル名を指定します(コマンドの左辺のファイル名です)。
      パラメータ:
        `fname` - ファイル名１
      説明:

             コマンドの左辺のファイル名です。

    - #### setFile2

          public void setFile2(String fname)

      【TAG】処理結果となるファイル名を指定します(コマンドの右辺のファイル名です)。
      パラメータ:
        `fname` - ファイル名２
      説明:

             コマンドの右辺のファイル名です。

    - #### setNotEquals

          public void setNotEquals(String flag)

      【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `flag` - [true:反転する/それ以外:通常]
      説明:

             通常の判定結果において、不成立(false)の場合に、BODY を実行します。
             通常の処理結果の正反対の処理を行います。
             初期値は、通常 (true 以外)です。

      変更履歴:

        3.8.5.2 (2006/05/31) 新規追加

    - #### setUseStop

          public void setUseStop(String flag)

      【TAG】エラー時BODYを処理後に停止するかどうか[true/false]を指定します(初期値:true)。
      パラメータ:
        `flag` - [true:判定する/それ以外:しない]
      説明:

             処理結果などに応じて、以下の処理を停止したい場合に、使用します。
             通常は、条件を判定後、false の場合に、BODY部を出力(処理)した後に、
             処理を停止します。(useStop="true")
             false を指定すると、判定結果に無関係に、以下の処理を実行します。
             処理は継続したいが、警告表示する場合に、useStop="false" を指定します。
             初期値は、停止する ("true")です。

      変更履歴:

        3.8.5.2 (2006/05/31) 新規追加

    - #### setEncode

          public void setEncode(String enc)

      【TAG】ファイルを読み込む(action="READ")際のエンコードを指定します(初期値:OS依存文字コード)。
      パラメータ:
        `enc` - ファイル読み込みのエンコード
      説明:

             ファイルを読み込む(action="READ")際のエンコードを指定します。
             action="READ"以外場合には、この属性値は利用されません。
             指定しない場合は、OS依存文字コードで読み込まれます。

      変更履歴:

        5.1.9.0 (2010/08/01) 新規作成

    - #### toString

          public String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.