001/* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016package org.opengion.hayabusa.taglib; 017 018import org.opengion.hayabusa.common.HybsSystemException; 019import org.opengion.fukurou.util.HybsFileFilter; 020import org.opengion.fukurou.util.ToString; // 6.1.1.0 (2015/01/17) 021 022import static org.opengion.fukurou.util.StringUtil.nval ; 023 024/** 025 * fileOption でファイルを検索する場合の条件を指定するタグです。 026 * 027 * @og.formSample 028 * ●形式:<og:fileWhere name="…" startsWith="…" endsWith="…" … /> 029 * ●body:なし 030 * 031 * ●Tag定義: 032 * <og:fileWhere 033 * startsWith 【TAG】指定された接頭辞で始まる場合、スルー(選択)されます(初期値:null) 034 * unStartsWith 【TAG】(追加:7.2.6.0 (2020/06/30))指定された接頭辞で始まらない場合、スルー(選択)されます(初期値:null) 035 * startsDir 【TAG】(追加:7.2.6.0 (2020/06/30))指定された接頭辞で始まるフォルダ場合、スルー(選択)されます(初期値:null) 036 * unStartsDir 【TAG】(追加:7.2.6.0 (2020/06/30))指定された接頭辞で始まらないフォルダ場合、スルー(選択)されます(初期値:null) 037 * endsWith 【TAG】指定された接頭辞で終わる場合、スルー(選択)されます(初期値:null) 038 * unEndsWith 【TAG】(追加:7.2.6.0 (2020/06/30))指定された接頭辞で終わらない場合、スルー(選択)されます(初期値:null) 039 * instr 【TAG】指定された文字列がファイル名に含まれる場合、スルー(選択)されます(初期値:null) 040 * unInstr 【TAG】(追加:7.2.6.0 (2020/06/30))指定された文字列がファイル名に含まれない場合、スルー(選択)されます(初期値:null) 041 * instrDir 【TAG】(追加:7.2.6.0 (2020/06/30))指定された文字列がフォルダ名に含まれる場合、スルー(選択)されます(初期値:null) 042 * unInstrDir 【TAG】(追加:7.2.6.0 (2020/06/30))指定された文字列がフォルダ名に含まれない場合、スルー(選択)されます(初期値:null) 043 * × equals 【廃止】ファイル名が一致する場合、スルー(選択)されます(初期値:null) 7.2.7.0 (2020/08/07) 044 * fileEquals 【TAG】ファイル名が一致する場合、スルー(選択)されます(初期値:null) 7.2.7.0 (2020/08/07) 新規 045 * unFileEquals 【TAG】(追加:7.2.6.0 (2020/06/30))ファイル名が一致しない場合、スルー(選択)されます(初期値:null) 046 * matches 【TAG】ファイル名が、指定された正規表現と一致する場合、スルー(選択)されます(初期値:null) 047 * unMatches 【TAG】ファイル名が、指定された正規表現と一致しない場合、スルー(選択)されます(初期値:null) 048 * matchDir 【TAG】(追加:7.2.6.0 (2020/06/30))フォルダ名が、指定された正規表現と一致する場合、スルー(選択)されます(初期値:null) 049 * unMatchDir 【TAG】(追加:7.2.6.0 (2020/06/30))フォルダ名が、指定された正規表現と一致しない場合、スルー(選択)されます(初期値:null) 050 * lastModified 【TAG】指定のタイムスタンプ以後に変更されている場合、スルー(選択)されます(初期値:null) 051 * unLastModified 【TAG】(追加:7.2.6.0 (2020/06/30))指定のタイムスタンプ以前に変更されている場合、スルー(選択)されます(初期値:null) 052 * isLarger 【TAG】指定の大きさより大きいファイルの場合、スルー(選択)されます(初期値:null) 053 * isSmaller 【TAG】指定の大きさより小さいファイルの場合、スルー(選択)されます(初期値:null) 054 * isHidden 【TAG】true:HIDDENファイルのみ/false:NORMALファイルのみスルー(選択)されます(初期値:null) 055 * × useDir 【廃止】(廃止:7.2.6.0 (2020/06/30))判定をファイルだけでなく、ディレクトリでも行うかどうかを指定[false:File/true:File+Dir/only:Dir](初期値:false) 056 * ignoreCase 【TAG】大文字/小文字を区別しないかどうか[true/false]を指定します(初期値:false(区別する)) 057 * notEquals 【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false) 6.8.0.0 (2017/06/02) 058 * caseKey 【TAG】このタグ自体を利用するかどうかの条件キーを指定します(初期値:null) 6.8.0.0 (2017/06/02) 059 * caseVal 【TAG】このタグ自体を利用するかどうかの条件値を指定します(初期値:null) 6.8.0.0 (2017/06/02) 060 * caseNN 【TAG】指定の値が、null/ゼロ文字列 でない場合(Not Null=NN)は、このタグは使用されます(初期値:判定しない) 6.8.0.0 (2017/06/02) 061 * caseNull 【TAG】指定の値が、null/ゼロ文字列 の場合は、このタグは使用されます(初期値:判定しない) 6.8.0.0 (2017/06/02) 062 * caseIf 【TAG】指定の値が、true/TRUE文字列の場合は、このタグは使用されます(初期値:判定しない) 6.8.0.0 (2017/06/02) 063 * debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) 064 * /> 065 * 066 * ●使用例 067 * <og:fileOption select="NAME" from="./jsp" > 068 * <og:fileWhere 069 * startsWith = "File" :指定された接頭辞で始まる場合、選択される 070 * endsWith = ".java" :指定された接頭辞で終わる場合、選択される 071 * instr = "Tag" :指定された文字列がファイル名に含まれる場合、選択される 072 * equalsName = "FileWhereTag.java" :ファイル名が一致する場合、選択される(大文字小文字は区別しない) 073 * matches = "File*Tag" :ファイル名が、指定された正規表現と一致する場合、選択される(大文字小文字は区別しない) 074 * unMatches = "File*Tag" :ファイル名が、指定された正規表現と一致しない場合、選択される(大文字小文字は区別しない) 075 * lastModified = "20050101" :指定のタイムスタンプ以後に変更された場合、選択される 076 * 日付けの指定は、YYYYMMDD 形式, TODAY , YESTERDAY が使用できます。 077 * isLarger = "1024" :指定の大きさ(バイト単位)より大きいファイルの場合、選択される 078 * isSmaller = "1024" :指定の大きさ(バイト単位)より小さいファイルの場合、選択される 079 * isHidden = "true" :true:HIDDENファイルのみ選択される 080 * useDir = "false" :(廃止)フィルタによる対象の絞込みをディレクトリにも適用するかどうか 081 * /> 082 * </og:fileOption> 083 * 084 * ・検索条件が入力された時 085 * 条件を満足して全てのファイルを列挙します。 086 * 087 * ・検索条件が入力されなかった時 088 * 該当ディレクトリ内の全てのファイルを列挙します。 089 * 090 * @og.rev 2.1.1.0 (2002/11/11) 新規作成 091 * @og.rev 4.0.0.0 (2005/01/31) 内部ロジックの全面見直し 092 * @og.rev 7.2.6.0 (2020/06/30) 内部ロジックの全面見直し 093 * @og.group その他入力 094 * 095 * @version 7.2 096 * @author Kazuhiko Hasegawa 097 * @since JDK11.0, 098 */ 099public class FileWhereTag extends CommonTagSupport { 100 /** このプログラムのVERSION文字列を設定します。 {@value} */ 101 private static final String VERSION = "7.2.6.2 (2020/07/29)" ; 102 private static final long serialVersionUID = 726220200729L ; 103 104 private String startsWith ; // 指定された接頭辞で始まる場合、選択される 105 private String unStartsWith ; // (追加:7.2.6.0 (2020/06/30))指定された接頭辞で始まらない場合、スルー(選択)されます(初期値:null) 106 private String startsDir ; // (追加:7.2.6.0 (2020/06/30))指定された接頭辞で始まるフォルダ場合、スルー(選択)されます(初期値:null) 107 private String unStartsDir ; // (追加:7.2.6.0 (2020/06/30))指定された接頭辞で始まらないフォルダ場合、スルー(選択)されます(初期値:null) 108 private String endsWith ; // 指定された接頭辞で終わる場合、選択される 109 private String unEndsWith ; // (追加:7.2.6.0 (2020/06/30))指定された接頭辞で終わらない場合、スルー(選択)されます(初期値:null) 110 private String instr ; // 指定された文字列がファイル名に含まれる場合、選択される 111 private String unInstr ; // (追加:7.2.6.0 (2020/06/30))指定された文字列がファイル名に含まれない場合、スルー(選択)されます(初期値:null) 112 private String instrDir ; // (追加:7.2.6.0 (2020/06/30))指定された文字列がフォルダ名に含まれる場合、スルー(選択)されます(初期値:null) 113 private String unInstrDir ; // (追加:7.2.6.0 (2020/06/30))指定された文字列がフォルダ名に含まれない場合、スルー(選択)されます(初期値:null) 114 private String fileEquals ; // ファイル名が一致する場合、選択される(大文字小文字は区別しない) 115 private String unFileEquals ; // ファイル名が一致しない場合、選択される(大文字小文字は区別しない) 116 private String matches ; // ファイル名が、指定された正規表現と一致する場合、選択される(大文字小文字は区別しない) 117 private String unMatches ; // ファイル名が、指定された正規表現と一致しない場合、選択される(大文字小文字は区別しない) 118 private String matchDir ; // (追加:7.2.6.0 (2020/06/30))フォルダ名が、指定された正規表現と一致する場合、スルー(選択)されます(初期値:null) 119 private String unMatchDir ; // (追加:7.2.6.0 (2020/06/30))フォルダ名が、指定された正規表現と一致しない場合、スルー(選択)されます(初期値:null) 120 private String lastModified ; // 指定のタイムスタンプ以後に変更された場合、選択される 121 private String unLastModified ; // (追加:7.2.6.0 (2020/06/30))指定のタイムスタンプ以前に変更されている場合、スルー(選択)されます(初期値:null) 122 private String isLarger ; // 指定の大きさ(バイト単位)より大きいファイルの場合、選択される 123 private String isSmaller ; // 指定の大きさ(バイト単位)より小さいファイルの場合、選択される 124 private String isHidden ; // 5.7.5.0 (2014/04/04) true:HIDDENファイルのみ/false:NORMALファイルのみスルー(選択)されます 125// private String useDir = "false"; // (廃止:7.2.6.0 (2020/06/30))6.4.0.2 (2015/12/11) useDIR 属性に、onlyパラメータを追加します[false:File/true:File+Dir/only:Dir]。 126 private boolean ignoreCase ; // 6.3.1.1 (2015/07/10) 大文字/小文字の区別なしで検索可能にするかどうか(初期値:false:区別する) 127 private boolean notEquals ; // 6.8.0.0 (2017/06/02) 判定結果を反転させて処理します。 128 129 /** 130 * デフォルトコンストラクター 131 * 132 * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. 133 */ 134 public FileWhereTag() { super(); } // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。 135 136 /** 137 * Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。 138 * 139 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 140 * @og.rev 5.1.2.0 (2010/01/01) unMatches メソッドで反転属性の追加 141 * @og.rev 5.3.9.0 (2011/09/01) useDir属性を追加 142 * @og.rev 5.6.6.0 (2013/07/05) unMatchesの引数間違いの訂正 143 * @og.rev 5.7.5.0 (2014/04/04) isHidden属性を追加します。 144 * @og.rev 6.3.1.1 (2015/07/10) メソッドチェーン化と、大文字/小文字の区別なし(ignoreCase=true)対応 145 * @og.rev 6.4.0.2 (2015/12/11) useDIR 属性に、onlyパラメータを追加します[false:File/true:File+Dir/only:Dir]。 146 * @og.rev 6.8.0.0 (2017/06/02) caseKey,caseVal,caseNN,caseNull 属性を追加 147 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 148 * @og.rev 7.2.6.2 (2020/07/29) unEquals対応忘れ 149 * 150 * @return 後続処理の指示 151 */ 152 @Override 153 public int doEndTag() { 154 debugPrint(); // 4.0.0 (2005/02/28) 155 156 // 6.8.0.0 (2017/06/02) caseKey,caseVal,caseNN,caseNull 属性を追加 157 if( !useTag() ) { return EVAL_PAGE ; } 158 159 // 6.3.1.1 (2015/07/10) メソッドチェーン化と、大文字/小文字の区別なし(ignoreCase=true)対応 160 // 6.8.0.0 (2017/06/02) notEquals で、判定結果を反転させて処理します。 161// final HybsFileFilter filter = new HybsFileFilter( useDir,ignoreCase,notEquals ) 162 final HybsFileFilter filter = new HybsFileFilter( ignoreCase,notEquals ) // 7.2.6.0 (2020/06/30) useDIR 属性 廃止 163 .startsWith( startsWith ) 164 .startsWith( unStartsWith, true ) // 7.2.6.0 (2020/06/30) 165 .startsDir( startsDir ) // 7.2.6.0 (2020/06/30) 166 .startsDir( unStartsDir , true ) // 7.2.6.0 (2020/06/30) 167 .endsWith( endsWith ) 168 .endsWith( unEndsWith , true ) // 7.2.6.0 (2020/06/30) 169 .instr( instr ) 170 .instr( unInstr , true ) // 7.2.6.0 (2020/06/30) 171 .instrDir( instrDir ) // 7.2.6.0 (2020/06/30) 172 .instrDir( unInstrDir , true ) // 7.2.6.0 (2020/06/30) 173 .fileEquals( fileEquals ) 174 .fileEquals( unFileEquals, true ) // 7.2.6.2 (2020/07/29) 対応忘れ 175 .matches( matches ) 176 .matches( unMatches , true ) // 7.2.6.0 (2020/06/30) 177 .matchDir( matchDir ) // 7.2.6.0 (2020/06/30) 178 .matchDir( unMatchDir , true ) // 7.2.6.0 (2020/06/30) 179 .lastModified( lastModified ) 180 .lastModified( unLastModified , true ) // 7.2.6.0 (2020/06/30) 181 .isLarger( isLarger ) 182 .isSmaller( isSmaller ) 183 .isHidden( isHidden ); // 5.7.5.0 (2014/04/04) 追加 184 185 // ファイルフィルタを追加 186 final FileQueryTag fileQuery = (FileQueryTag)findAncestorWithClass( this, FileQueryTag.class ); 187 if( fileQuery != null ) { 188 fileQuery.setFileFilter( filter ); 189 return EVAL_PAGE ; 190 } 191 192 final FileOptionTag fileOption = (FileOptionTag)findAncestorWithClass( this, FileOptionTag.class ); 193 if( fileOption != null ) { 194 fileOption.setFileFilter( filter ); 195 return EVAL_PAGE ; 196 } 197 198 // どちらにも属していなかった場合は、エラーになる。 199 final String errMsg = "この、FileWhereTag タグは、FileQueryTag か、FileOption の" 200 + "BODY 部にのみ、配置できます。(それ以外の箇所での使用はできません。)" ; 201 throw new HybsSystemException( errMsg ); 202 } 203 204 /** 205 * タグリブオブジェクトをリリースします。 206 * キャッシュされて再利用されるので、フィールドの初期設定を行います。 207 * 208 * @og.rev 2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加 209 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。 210 * @og.rev 4.0.0.0 (2005/01/31) 内部ロジックの全面見直し 211 * @og.rev 5.3.9.0 (2011/09/01) useDir属性追加 212 * @og.rev 5.7.4.3 (2014/03/28) isLarger,isSmaller属性を文字列に変更 213 * @og.rev 5.7.5.0 (2014/04/04) isHidden属性を追加 214 * @og.rev 6.3.1.1 (2015/07/10) 大文字/小文字の区別なし(ignoreCase=true)対応 215 * @og.rev 6.4.0.2 (2015/12/11) useDIR 属性に、onlyパラメータを追加します[false:File/true:File+Dir/only:Dir]。 216 * @og.rev 6.8.0.0 (2017/06/02) notEquals 属性追加 , useDir="false" の初期値設定 217 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 218 * @og.rev 7.2.6.2 (2020/07/29) unEquals対応忘れ 219 */ 220 @Override 221 protected void release2() { 222 super.release2(); 223 startsWith = null; 224 unStartsWith = null; // 7.2.6.0 (2020/06/30) 225 startsDir = null; // 7.2.6.0 (2020/06/30) 226 unStartsDir = null; // 7.2.6.0 (2020/06/30) 227 endsWith = null; 228 unEndsWith = null; // 7.2.6.0 (2020/06/30) 229 instr = null; 230 unInstr = null; // 7.2.6.0 (2020/06/30) 231 instrDir = null; // 7.2.6.0 (2020/06/30) 232 unInstrDir = null; // 7.2.6.0 (2020/06/30) 233 fileEquals = null; 234 unFileEquals = null; // 7.2.6.2 (2020/07/29) 対応忘れ 235 matches = null; 236 unMatches = null; 237 matchDir = null; // 7.2.6.0 (2020/06/30) 238 unMatchDir = null; // 7.2.6.0 (2020/06/30) 239 lastModified = null; 240 unLastModified = null; // 7.2.6.0 (2020/06/30) 241 isLarger = null; // 5.7.4.3 (2014/03/28) isLarger,isSmaller属性を文字列に変更 242 isSmaller = null; // 5.7.4.3 (2014/03/28) isLarger,isSmaller属性を文字列に変更 243 isHidden = null; // 5.7.5.0 (2014/04/04) isHidden属性を追加 244// useDir = "false"; // 6.4.0.2 (2015/12/11) useDIR 属性に、onlyパラメータを追加 // 7.2.6.0 (2020/06/30) useDIR 属性 廃止 245 ignoreCase = false; // 大文字/小文字の区別 246 notEquals = false; // 6.8.0.0 (2017/06/02) notEquals 属性追加 247 } 248 249 /** 250 * 【TAG】指定された接頭辞で始まる場合、スルー(選択)されます(初期値:null)。 251 * @og.tag 252 * 引数が null の場合は、追加しません。 253 * 254 * @param prefix 接頭辞 255 * @see java.lang.String#startsWith(String) 256 */ 257 public void setStartsWith( final String prefix ) { 258 startsWith = nval( getRequestParameter( prefix ),startsWith ); 259 } 260 261 /** 262 * 【TAG】指定された接頭辞で始まらない場合、スルー(選択)されます(初期値:null)。 263 * @og.tag 264 * 引数が null の場合は、追加しません。 265 * 266 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 267 * 268 * @param prefix 接頭辞 269 * @see java.lang.String#startsWith(String) 270 */ 271 public void setUnStartsWith( final String prefix ) { 272 unStartsWith = nval( getRequestParameter( prefix ),unStartsWith ); 273 } 274 275 /** 276 * 【TAG】指定された接頭辞で始まるフォルダ場合、スルー(選択)されます(初期値:null)。 277 * @og.tag 278 * 引数が null の場合は、追加しません。 279 * 280 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 281 * 282 * @param prefix 接頭辞 283 * @see java.lang.String#startsWith(String) 284 */ 285 public void setStartsDir( final String prefix ) { 286 startsDir = nval( getRequestParameter( prefix ),startsDir ); 287 } 288 289 /** 290 * 【TAG】指定された接頭辞で始まらないフォルダ場合、スルー(選択)されます(初期値:null)。 291 * @og.tag 292 * 引数が null の場合は、追加しません。 293 * 294 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 295 * 296 * @param prefix 接頭辞 297 * @see java.lang.String#startsWith(String) 298 */ 299 public void setUnStartsDir( final String prefix ) { 300 unStartsDir = nval( getRequestParameter( prefix ),unStartsDir ); 301 } 302 303 /** 304 * 【TAG】指定された接頭辞で終わる場合、スルー(選択)されます(初期値:null)。 305 * @og.tag 306 * 引数が null の場合は、追加しません。 307 * 308 * @param suffix 接尾辞 309 * @see java.lang.String#endsWith(String) 310 */ 311 public void setEndsWith( final String suffix ) { 312 endsWith = nval( getRequestParameter( suffix ),endsWith ); 313 } 314 315 /** 316 * 【TAG】指定された接頭辞で終わらない場合、スルー(選択)されます(初期値:null)。 317 * @og.tag 318 * 引数が null の場合は、追加しません。 319 * 320 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 321 * 322 * @param suffix 接尾辞 323 * @see java.lang.String#endsWith(String) 324 */ 325 public void setUnEndsWith( final String suffix ) { 326 unEndsWith = nval( getRequestParameter( suffix ),unEndsWith ); 327 } 328 329 /** 330 * 【TAG】指定された文字列がファイル名に含まれる場合、スルー(選択)されます(初期値:null)。 331 * @og.tag 332 * 引数が null の場合は、追加しません。 333 * 334 * @param str 指定の部分文字列 335 */ 336 public void setInstr( final String str ) { 337 instr = nval( getRequestParameter( str ),instr ); 338 } 339 340 /** 341 * 【TAG】指定された文字列がファイル名に含まれない場合、スルー(選択)されます(初期値:null)。 342 * @og.tag 343 * 引数が null の場合は、追加しません。 344 * 345 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 346 * 347 * @param str 指定の部分文字列 348 * @see java.lang.String#endsWith(String) 349 */ 350 public void setUnInstr( final String str ) { 351 unInstr = nval( getRequestParameter( str ),unInstr ); 352 } 353 354 /** 355 * 【TAG】指定された文字列がフォルダ名に含まれる場合、スルー(選択)されます(初期値:null)。 356 * @og.tag 357 * 引数が null の場合は、追加しません。 358 * 359 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 360 * 361 * @param str 指定の部分文字列 362 * @see java.lang.String#endsWith(String) 363 */ 364 public void setInstrDir( final String str ) { 365 instrDir = nval( getRequestParameter( str ),instrDir ); 366 } 367 368 /** 369 * 【TAG】指定された文字列がフォルダ名に含まれない場合、スルー(選択)されます(初期値:null)。 370 * @og.tag 371 * 引数が null の場合は、追加しません。 372 * 373 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 374 * 375 * @param str 指定の部分文字列 376 * @see java.lang.String#endsWith(String) 377 */ 378 public void setUnInstrDir( final String str ) { 379 unInstrDir = nval( getRequestParameter( str ),unInstrDir ); 380 } 381 382 /** 383 * 【TAG】ファイル名が一致する場合、スルー(選択)されます(初期値:null)。 384 * @og.tag 385 * 大文字小文字は区別しません。 386 * 引数が null の場合は、追加しません。 387 * 388 * @param str ファイル名文字列 389 * @see java.lang.String#equals(Object) 390 */ 391// public void setEquals( final String str ) { 392 public void setFileEquals( final String str ) { 393 fileEquals = nval( getRequestParameter( str ),fileEquals ); 394 } 395 396 /** 397 * 【TAG】ファイル名が一致しない場合、スルー(選択)されます(初期値:null)。 398 * @og.tag 399 * 大文字小文字は区別しません。 400 * 引数が null の場合は、追加しません。 401 * 402 * @og.rev 7.2.6.2 (2020/07/29) unEquals対応忘れ 403 * 404 * @param str ファイル名文字列 405 * @see java.lang.String#equals(Object) 406 */ 407// public void setUnEquals( final String str ) { 408 public void setUnFileEquals( final String str ) { 409 unFileEquals = nval( getRequestParameter( str ),unFileEquals ); 410 } 411 412 /** 413 * 【TAG】ファイル名が、指定された正規表現と一致する場合、スルー(選択)されます(初期値:null)。 414 * @og.tag 415 * 416 * ignoreCase を使用する場合、Pattern.CASE_INSENSITIVE を適用します。 417 * Pattern.compile( str,Pattern.CASE_INSENSITIVE ) ; 418 * pattern.matcher( pathname.getName() ).find() == true と同じ結果が得られます。 419 * 引数が null の場合は、追加しません。 420 * 421 * @param str ファイル名文字列(正規表現) 422 * @see java.util.regex.Pattern#compile(String,int) 423 * @see java.util.regex.Matcher#find() 424 */ 425 public void setMatches( final String str ) { 426 matches = nval( getRequestParameter( str ),matches ); 427 } 428 429 /** 430 * 【TAG】ファイル名が、指定された正規表現と一致しない場合、スルー(選択)されます(初期値:null)。 431 * @og.tag 432 * 433 * ignoreCase を使用する場合、Pattern.CASE_INSENSITIVE を適用します。 434 * Pattern.compile( str,Pattern.CASE_INSENSITIVE ) ; 435 * pattern.matcher( pathname.getName() ).find() == false と同じ結果が得られます。 436 * 引数が null の場合は、追加しません。 437 * 438 * @param str ファイル名文字列(不一致させる正規表現) 439 * @see java.util.regex.Pattern#compile(String,int) 440 * @see java.util.regex.Matcher#find() 441 */ 442 public void setUnMatches( final String str ) { 443 unMatches = nval( getRequestParameter( str ),unMatches ); 444 } 445 446 /** 447 * 【TAG】フォルダ名が、指定された正規表現と一致する場合、スルー(選択)されます(初期値:null)。 448 * @og.tag 449 * 450 * ignoreCase を使用する場合、Pattern.CASE_INSENSITIVE を適用します。 451 * Pattern.compile( str,Pattern.CASE_INSENSITIVE ) ; 452 * pattern.matcher( pathname.getName() ).find() == true と同じ結果が得られます。 453 * 引数が null の場合は、追加しません。 454 * 455 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 456 * 457 * @param str ファイル名文字列(正規表現) 458 * @see java.util.regex.Pattern#compile(String,int) 459 * @see java.util.regex.Matcher#find() 460 */ 461 public void setMatchDir( final String str ) { 462 matchDir = nval( getRequestParameter( str ),matchDir ); 463 } 464 465 /** 466 * 【TAG】フォルダ名が、指定された正規表現と一致しない場合、スルー(選択)されます(初期値:null)。 467 * @og.tag 468 * 469 * ignoreCase を使用する場合、Pattern.CASE_INSENSITIVE を適用します。 470 * Pattern.compile( str,Pattern.CASE_INSENSITIVE ) ; 471 * pattern.matcher( pathname.getName() ).find() == true と同じ結果が得られます。 472 * 引数が null の場合は、追加しません。 473 * 474 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 475 * 476 * @param str ファイル名文字列(正規表現) 477 * @see java.util.regex.Pattern#compile(String,int) 478 * @see java.util.regex.Matcher#find() 479 */ 480 public void setUnMatchDir( final String str ) { 481 unMatchDir = nval( getRequestParameter( str ),unMatchDir ); 482 } 483 484 /** 485 * 【TAG】指定のタイムスタンプ以後に変更されている場合、スルー(選択)されます(初期値:null)。 486 * @og.tag 487 * ディレクトリは、ここの判定では無視します。(必ず true を返します) 488 * 日付けの指定に、YYYYMMDD 形式の 8文字数字文字列以外に、 489 * TODAY や YESTERDAY なども使用できます。 490 * TODAY は、実行日の 00:00:00 を基準時刻とし、YESTERDAY は、その前日になります。 491 * 引数が null の場合は、追加しません。 492 * 493 * YYYYMMDD YYYYMMDD形式の指定日の 00:00:00 を基準時刻 494 * TODAY 実行日の 00:00:00 を基準時刻 495 * YESTERDAY 実行日前日の 00:00:00 を基準時刻 496 * LAST_WEEK 実行日の先週(7日前) 00:00:00 を基準時刻 497 * MONTH 実行月の 1日 00:00:00 を基準時刻 498 * LAST_MONTH 実行前月の 同日 00:00:00 を基準時刻 499 * LAST_YEAR 実行前年の 同月同日 00:00:00 を基準時刻 500 * 501 * @param modify YYYYMMDD形式の指定日 502 */ 503 public void setLastModified( final String modify ) { 504 lastModified = nval( getRequestParameter( modify ),lastModified ); 505 } 506 507 /** 508 * 【TAG】指定のタイムスタンプ以前に変更されている場合、スルー(選択)されます(初期値:null)。 509 * @og.tag 510 * ディレクトリは、ここの判定では無視します。(必ず true を返します) 511 * 日付けの指定のフォーマットは、lastModifiedと同じ記号が使用できます。 512 * LAST_YEAR 実行前年の 同月同日 00:00:00 を基準時刻 513 * 514 * @param modify YYYYMMDD形式の指定日 515 */ 516 public void setUnLastModified( final String modify ) { 517 unLastModified = nval( getRequestParameter( modify ),unLastModified ); 518 } 519 520 /** 521 * 【TAG】指定の大きさより大きいファイルの場合、スルー(選択)されます(初期値:null)。 522 * 523 * @og.tag 524 * ファイルの大きさ(バイト単位)は同値を含みます。 525 * 未指定の場合は、スルー(選択)されます。 526 * 527 * 指定はバイト単位ですが、**KB , **MB , **GB などの単位を付ける事も可能です。 528 * 現時点では、K , KB , M , MB , G , GB のみ指定可能です。 529 * 530 * @param len ファイルの大きさ(バイト単位) 531 */ 532 public void setIsLarger( final String len ) { 533 isLarger = nval( getRequestParameter( len ),isLarger ); 534 } 535 536 /** 537 * 【TAG】指定の大きさより小さいファイルの場合、スルー(選択)されます(初期値:null)。 538 * 539 * @og.tag 540 * ファイルの大きさ(バイト単位)は同値を含みません。 541 * 未指定の場合は、スルー(選択)されます。 542 * 543 * 指定はバイト単位ですが、**KB , **MB , **GB などの単位を付ける事も可能です。 544 * 現時点では、K , KB , M , MB , G , GB のみ指定可能です。 545 * 546 * @param len ファイルの大きさ(バイト単位) 547 */ 548 public void setIsSmaller( final String len ) { 549 isSmaller = nval( getRequestParameter( len ),isSmaller ); 550 } 551 552 /** 553 * 【TAG】対象に隠しファイル(hidden)を、スルー(選択)する場合、true を指定します(初期値:null)。 554 * @og.tag 555 * trueを指定すると、隠しファイル(hidden)のみ選択します。 556 * falseを指定すると、隠しファイル(hidden)以外を選択します。 557 * 隠しファイルかどうかの定義はOSに従います。 558 * 初期値は、両方とも選択する為、null (trueでもfalseでもない)です。 559 * 560 * @og.rev 5.7.5.0 (2014/04/04) 新規作成 561 * 562 * @param flag hidden対象 [true:する/false:しない] 563 */ 564 public void setIsHidden( final String flag ) { 565 isHidden = nval( getRequestParameter( flag ), isHidden ); 566 } 567 568 /** 569 * 【廃止】フィルタによる対象の絞込みをディレクトリにも適用するかどうか[false:File/true:File+Dir/only:Dir]を指定します(初期値:false:しない)。 570 * 571 * @og.tag 572 * このフラグは、設定したすべての属性に対して一律に作用します。 573 * 個々に適用するには、それぞれの属性のxxxDir などを使用してください。 574 * 初期値は、false(ディレクトリはフィルタによる絞込みをしない)です。 575 * 576 * @og.rev 5.3.9.0 (2011/09/01) 新規作成 577 * @og.rev 6.4.0.2 (2015/12/11) useDIR 属性に、onlyパラメータを追加します[false:File/true:File+Dir/only:Dir]。 578 * @og.rev 7.2.6.0 (2020/06/30) ディレクトリ処理を統一します。 579 * 580 * @param flag ディレクトリ適用 [true:する/false:しない] 581 */ 582 public void setUseDir( final String flag ) { 583// useDir = nval( getRequestParameter( flag ),useDir ); 584 } 585 586 /** 587 * 【TAG】大文字/小文字を区別しないかどうか[true/false]を指定します(初期値:false(区別する))。 588 * 589 * @og.tag 590 * startsWith , contains , endsWith , equalsIgnoreCase での比較時に、比較対象の 591 * 大文字/小文字を区別しないかどうかを指定します。 592 * 区別しない ("true") 場合、aaa と AAA は、一致したとみなされます。 593 * 初期値は、区別する ("false") です。 594 * 595 * @og.rev 6.3.1.1 (2015/07/10) 大文字/小文字の区別なし(ignoreCase=true)対応 596 * 597 * @param flag 大文字/小文字を区別しないかどうか [true:しない/それ以外:する] 598 */ 599 public void setIgnoreCase( final String flag ) { 600 ignoreCase = nval( getRequestParameter( flag ),ignoreCase ); 601 } 602 603 /** 604 * 【TAG】判定結果を反転させるかどうか[true/false]を指定します(初期値:false)。 605 * 606 * @og.tag 607 * 通常の判定結果において、結果の正反対の処理を行います。 608 * 初期値は、通常 (false)です。 609 * 610 * @og.rev 6.8.0.0 (2017/06/02) 新規追加 611 * 612 * @param flag 判定結果反転 [true:反転する/それ以外:通常] 613 */ 614 public void setNotEquals( final String flag ) { 615 notEquals = nval( getRequestParameter( flag ),notEquals ); 616 } 617 618 /** 619 * このオブジェクトの文字列表現を返します。 620 * 基本的にデバッグ目的に使用します。 621 * 622 * @return String型。このクラスの文字列表現 623 * @og.rtnNotNull 624 */ 625 @Override 626 public String toString() { 627 return ToString.title( this.getClass().getName() ) 628 .println( "VERSION" ,VERSION ) 629 .println( "startsWith" ,startsWith ) 630 .println( "endsWith" ,endsWith ) 631 .println( "instr" ,instr ) 632 .println( "equals" ,fileEquals ) 633 .println( "matches" ,matches ) 634 .println( "unMatches" ,unMatches ) 635 .println( "lastModified" ,lastModified ) 636 .println( "isLarger" ,isLarger ) 637 .println( "isSmaller" ,isSmaller ) 638// .println( "useDir" ,useDir ) 639 .println( "ignoreCase" ,ignoreCase ) // 6.3.1.1 (2015/07/10) 640 .println( "Other..." ,getAttributes().getAttribute() ) 641 .fixForm().toString() ; 642 } 643}