1 /* 2 * Copyright 2009-2013 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.orangesignal.csv.filters; 18 19 import java.util.regex.Pattern; 20 21 /** 22 * 区切り文字形式データフィルタを構築するファクトリクラスを提供します。 23 * 24 * @author Koji Sugisawa 25 * @since 1.2.3 26 */ 27 public abstract class CsvExpressions { 28 29 /** 30 * デフォルトコンストラクタです。 31 */ 32 protected CsvExpressions() {} 33 34 /** 35 * 指定された項目位置に対応する区切り文字形式データの値が <code>null</code> であるかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 36 * 37 * @param position 項目位置 38 * @return 区切り文字形式データフィルタ 39 */ 40 public static ColumnPositionNullExpression isNull(final int position) { 41 return new ColumnPositionNullExpression(position); 42 } 43 44 /** 45 * 指定された項目名に対応する区切り文字形式データの値が <code>null</code> であるかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 46 * 47 * @param name 項目名 48 * @return 区切り文字形式データフィルタ 49 * @throws IllegalArgumentException <code>name</code> が <code>null</code> の場合 50 */ 51 public static ColumnNameNullExpression isNull(final String name) { 52 return new ColumnNameNullExpression(name); 53 } 54 55 /** 56 * 指定された項目位置に対応する区切り文字形式データの値が <code>null</code> でないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 57 * 58 * @param position 項目位置 59 * @return 区切り文字形式データフィルタ 60 */ 61 public static ColumnPositionNotNullExpression isNotNull(final int position) { 62 return new ColumnPositionNotNullExpression(position); 63 } 64 65 /** 66 * 指定された項目名に対応する区切り文字形式データの値が <code>null</code> でないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 67 * 68 * @param name 項目名 69 * @return 区切り文字形式データフィルタ 70 * @throws IllegalArgumentException <code>name</code> が <code>null</code> の場合 71 */ 72 public static ColumnNameNotNullExpression isNotNull(final String name) { 73 return new ColumnNameNotNullExpression(name); 74 } 75 76 /** 77 * 指定された項目位置に対応する区切り文字形式データの値が空かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 78 * 79 * @param position 項目位置 80 * @return 区切り文字形式データフィルタ 81 */ 82 public static ColumnPositionEmptyExpression isEmpty(final int position) { 83 return new ColumnPositionEmptyExpression(position); 84 } 85 86 /** 87 * 指定された項目名に対応する区切り文字形式データの値が空かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 88 * 89 * @param name 項目名 90 * @return 区切り文字形式データフィルタ 91 */ 92 public static ColumnNameEmptyExpression isEmpty(final String name) { 93 return new ColumnNameEmptyExpression(name); 94 } 95 96 /** 97 * 指定された項目位置に対応する区切り文字形式データの値が空でないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 98 * 99 * @param position 項目位置 100 * @return 区切り文字形式データフィルタ 101 */ 102 public static ColumnPositionNotEmptyExpression isNotEmpty(final int position) { 103 return new ColumnPositionNotEmptyExpression(position); 104 } 105 106 /** 107 * 指定された項目名に対応する区切り文字形式データの値が空でないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 108 * 109 * @param name 項目名 110 * @return 区切り文字形式データフィルタ 111 */ 112 public static ColumnNameNotEmptyExpression isNotEmpty(final String name) { 113 return new ColumnNameNotEmptyExpression(name); 114 } 115 116 /** 117 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値と等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 118 * 119 * @param position 項目位置 120 * @param criteria 判定基準値 121 * @return 区切り文字形式データフィルタ 122 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 123 */ 124 public static ColumnPositionEqualExpression eq(final int position, final String criteria) { 125 return new ColumnPositionEqualExpression(position, criteria); 126 } 127 128 /** 129 * 指定された項目名に対応する区切り文字形式データの値が判定基準値と等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 130 * 131 * @param name 項目名 132 * @param criteria 判定基準値 133 * @return 区切り文字形式データフィルタ 134 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 135 */ 136 public static ColumnNameEqualExpression eq(final String name, final String criteria) { 137 return new ColumnNameEqualExpression(name, criteria); 138 } 139 140 /** 141 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値と等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 142 * 143 * @param position 項目位置 144 * @param criteria 判定基準値 145 * @param ignoreCase 大文字と小文字を区別するかどうか 146 * @return 区切り文字形式データフィルタ 147 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 148 */ 149 public static ColumnPositionEqualExpression eq(final int position, final String criteria, final boolean ignoreCase) { 150 return new ColumnPositionEqualExpression(position, criteria, ignoreCase); 151 } 152 153 /** 154 * 指定された項目名に対応する区切り文字形式データの値が判定基準値と等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 155 * 156 * @param name 項目名 157 * @param criteria 判定基準値 158 * @param ignoreCase 大文字と小文字を区別するかどうか 159 * @return 区切り文字形式データフィルタ 160 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 161 */ 162 public static ColumnNameEqualExpression eq(final String name, final String criteria, final boolean ignoreCase) { 163 return new ColumnNameEqualExpression(name, criteria, ignoreCase); 164 } 165 166 /** 167 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値と等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 168 * 169 * @param position 項目位置 170 * @param criteria 判定基準値 171 * @return 区切り文字形式データフィルタ 172 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 173 */ 174 public static ColumnPositionNotEqualExpression ne(final int position, final String criteria) { 175 return new ColumnPositionNotEqualExpression(position, criteria); 176 } 177 178 /** 179 * 指定された項目名に対応する区切り文字形式データの値が判定基準値と等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 180 * 181 * @param name 項目名 182 * @param criteria 判定基準値 183 * @return 区切り文字形式データフィルタ 184 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 185 */ 186 public static ColumnNameNotEqualExpression ne(final String name, final String criteria) { 187 return new ColumnNameNotEqualExpression(name, criteria); 188 } 189 190 /** 191 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値と等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 192 * 193 * @param position 項目位置 194 * @param criteria 判定基準値 195 * @param ignoreCase 大文字と小文字を区別するかどうか 196 * @return 区切り文字形式データフィルタ 197 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 198 */ 199 public static ColumnPositionNotEqualExpression ne(final int position, final String criteria, final boolean ignoreCase) { 200 return new ColumnPositionNotEqualExpression(position, criteria, ignoreCase); 201 } 202 203 /** 204 * 指定された項目名に対応する区切り文字形式データの値が判定基準値と等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 205 * 206 * @param name 項目名 207 * @param criteria 判定基準値 208 * @param ignoreCase 大文字と小文字を区別するかどうか 209 * @return 区切り文字形式データフィルタ 210 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 211 */ 212 public static ColumnNameNotEqualExpression ne(final String name, final String criteria, final boolean ignoreCase) { 213 return new ColumnNameNotEqualExpression(name, criteria, ignoreCase); 214 } 215 216 /** 217 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値群のいずれかと等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 218 * 219 * @param position 項目位置 220 * @param criterias 判定基準値群 221 * @return 区切り文字形式データフィルタ 222 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 223 */ 224 public static ColumnPositionInExpression in(final int position, final String... criterias) { 225 return new ColumnPositionInExpression(position, criterias); 226 } 227 228 /** 229 * 指定された項目名に対応する区切り文字形式データの値が判定基準値群のいずれかと等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 230 * 231 * @param name 項目名 232 * @param criterias 判定基準値群 233 * @return 区切り文字形式データフィルタ 234 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 235 */ 236 public static ColumnNameInExpression in(final String name, final String... criterias) { 237 return new ColumnNameInExpression(name, criterias); 238 } 239 240 /** 241 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値群のいずれかと等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 242 * 243 * @param position 項目位置 244 * @param criterias 判定基準値群 245 * @param ignoreCase 大文字と小文字を区別するかどうか 246 * @return 区切り文字形式データフィルタ 247 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 248 */ 249 public static ColumnPositionInExpression in(final int position, final String[] criterias, final boolean ignoreCase) { 250 return new ColumnPositionInExpression(position, criterias, ignoreCase); 251 } 252 253 /** 254 * 指定された項目名に対応する区切り文字形式データの値が判定基準値群のいずれかと等しいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 255 * 256 * @param name 項目名 257 * @param criterias 判定基準値群 258 * @param ignoreCase 大文字と小文字を区別するかどうか 259 * @return 区切り文字形式データフィルタ 260 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 261 */ 262 public static ColumnNameInExpression in(final String name, final String[] criterias, final boolean ignoreCase) { 263 return new ColumnNameInExpression(name, criterias, ignoreCase); 264 } 265 266 /** 267 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値群のいずれとも等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 268 * 269 * @param position 項目位置 270 * @param criterias 判定基準値群 271 * @return 区切り文字形式データフィルタ 272 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 273 */ 274 public static ColumnPositionNotInExpression notIn(final int position, final String... criterias) { 275 return new ColumnPositionNotInExpression(position, criterias); 276 } 277 278 /** 279 * 指定された項目名に対応する区切り文字形式データの値が判定基準値群のいずれとも等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 280 * 281 * @param name 項目名 282 * @param criterias 判定基準値群 283 * @return 区切り文字形式データフィルタ 284 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 285 */ 286 public static ColumnNameNotInExpression notIn(final String name, final String... criterias) { 287 return new ColumnNameNotInExpression(name, criterias); 288 } 289 290 /** 291 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値群のいずれとも等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 292 * 293 * @param position 項目位置 294 * @param criterias 判定基準値群 295 * @param ignoreCase 大文字と小文字を区別するかどうか 296 * @return 区切り文字形式データフィルタ 297 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 298 */ 299 public static ColumnPositionNotInExpression notIn(final int position, final String[] criterias, final boolean ignoreCase) { 300 return new ColumnPositionNotInExpression(position, criterias, ignoreCase); 301 } 302 303 /** 304 * 指定された項目名に対応する区切り文字形式データの値が判定基準値群のいずれとも等しくないかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 305 * 306 * @param name 項目名 307 * @param criterias 判定基準値群 308 * @param ignoreCase 大文字と小文字を区別するかどうか 309 * @return 区切り文字形式データフィルタ 310 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 311 */ 312 public static ColumnNameNotInExpression notIn(final String name, final String[] criterias, final boolean ignoreCase) { 313 return new ColumnNameNotInExpression(name, criterias, ignoreCase); 314 } 315 316 /** 317 * 指定された項目位置に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 318 * 319 * @param position 項目位置 320 * @param pattern 正規表現パターン 321 * @return 区切り文字形式データフィルタ 322 * @throws IllegalArgumentException <code>pattern</code> が <code>null</code> の場合 323 */ 324 public static ColumnPositionRegexExpression regex(final int position, final String pattern) { 325 return new ColumnPositionRegexExpression(position, pattern); 326 } 327 328 /** 329 * 指定された項目位置に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 330 * 331 * @param position 項目位置 332 * @param pattern 正規表現パターン 333 * @param ignoreCase 大文字と小文字を区別するかどうか 334 * @return 区切り文字形式データフィルタ 335 * @throws IllegalArgumentException <code>pattern</code> が <code>null</code> の場合 336 */ 337 public static ColumnPositionRegexExpression regex(final int position, final String pattern, final boolean ignoreCase) { 338 return new ColumnPositionRegexExpression(position, pattern, ignoreCase); 339 } 340 341 /** 342 * 指定された項目位置に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 343 * 344 * @param position 項目位置 345 * @param pattern 正規表現パターン 346 * @param flags マッチフラグ 347 * @return 区切り文字形式データフィルタ 348 * @throws IllegalArgumentException <code>pattern</code> が <code>null</code> の場合 349 */ 350 public static ColumnPositionRegexExpression regex(final int position, final String pattern, final int flags) { 351 return new ColumnPositionRegexExpression(position, pattern, flags); 352 } 353 354 /** 355 * 指定された項目位置に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 356 * 357 * @param position 項目位置 358 * @param pattern 正規表現パターン 359 * @return 区切り文字形式データフィルタ 360 * @throws IllegalArgumentException <code>pattern</code> が <code>null</code> の場合 361 */ 362 public static ColumnPositionRegexExpression regex(final int position, final Pattern pattern) { 363 return new ColumnPositionRegexExpression(position, pattern); 364 } 365 366 /** 367 * 指定された項目名に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 368 * 369 * @param name 項目名 370 * @param pattern 正規表現パターン 371 * @return 区切り文字形式データフィルタ 372 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 373 */ 374 public static ColumnNameRegexExpression regex(final String name, final String pattern) { 375 return new ColumnNameRegexExpression(name, pattern); 376 } 377 378 /** 379 * 指定された項目名に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 380 * 381 * @param name 項目名 382 * @param pattern 正規表現パターン 383 * @param ignoreCase 大文字と小文字を区別するかどうか 384 * @return 区切り文字形式データフィルタ 385 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 386 */ 387 public static ColumnNameRegexExpression regex(final String name, final String pattern, final boolean ignoreCase) { 388 return new ColumnNameRegexExpression(name, pattern, ignoreCase); 389 } 390 391 /** 392 * 指定された項目名に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 393 * 394 * @param name 項目名 395 * @param pattern 正規表現パターン 396 * @param flags マッチフラグ 397 * @return 区切り文字形式データフィルタ 398 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 399 */ 400 public static ColumnNameRegexExpression regex(final String name, final String pattern, final int flags) { 401 return new ColumnNameRegexExpression(name, pattern, flags); 402 } 403 404 /** 405 * 指定された項目名に対応する区切り文字形式データの値が正規表現パターンとマッチするかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 406 * 407 * @param name 項目名 408 * @param pattern 正規表現パターン 409 * @return 区切り文字形式データフィルタ 410 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 411 */ 412 public static ColumnNameRegexExpression regex(final String name, final Pattern pattern) { 413 return new ColumnNameRegexExpression(name, pattern); 414 } 415 416 /** 417 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値より大きいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 418 * 419 * @param position 項目位置 420 * @param criteria 判定基準値 421 * @return 区切り文字形式データフィルタ 422 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 423 */ 424 public static ColumnPositionGreaterThanExpression gt(final int position, final String criteria) { 425 return new ColumnPositionGreaterThanExpression(position, criteria); 426 } 427 428 /** 429 * 指定された項目名に対応する区切り文字形式データの値が判定基準値より大きいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 430 * 431 * @param name 項目名 432 * @param criteria 判定基準値 433 * @return 区切り文字形式データフィルタ 434 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 435 */ 436 public static ColumnNameGreaterThanExpression gt(final String name, final String criteria) { 437 return new ColumnNameGreaterThanExpression(name, criteria); 438 } 439 440 /** 441 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値より小さいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 442 * 443 * @param position 項目位置 444 * @param criteria 判定基準値 445 * @return 区切り文字形式データフィルタ 446 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 447 */ 448 public static ColumnPositionLessThanExpression lt(final int position, final String criteria) { 449 return new ColumnPositionLessThanExpression(position, criteria); 450 } 451 452 /** 453 * 指定された項目名に対応する区切り文字形式データの値が判定基準値より小さいかどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 454 * 455 * @param name 項目名 456 * @param criteria 判定基準値 457 * @return 区切り文字形式データフィルタ 458 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 459 */ 460 public static ColumnNameLessThanExpression lt(final String name, final String criteria) { 461 return new ColumnNameLessThanExpression(name, criteria); 462 } 463 464 /** 465 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値以上かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 466 * 467 * @param position 項目位置 468 * @param criteria 判定基準値 469 * @return 区切り文字形式データフィルタ 470 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 471 */ 472 public static ColumnPositionGreaterThanOrEqualExpression ge(final int position, final String criteria) { 473 return new ColumnPositionGreaterThanOrEqualExpression(position, criteria); 474 } 475 476 /** 477 * 指定された項目名に対応する区切り文字形式データの値が判定基準値以上かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 478 * 479 * @param name 項目名 480 * @param criteria 判定基準値 481 * @return 区切り文字形式データフィルタ 482 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 483 */ 484 public static ColumnNameGreaterThanOrEqualExpression ge(final String name, final String criteria) { 485 return new ColumnNameGreaterThanOrEqualExpression(name, criteria); 486 } 487 488 /** 489 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値以下かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 490 * 491 * @param position 項目位置 492 * @param criteria 判定基準値 493 * @return 区切り文字形式データフィルタ 494 * @throws IllegalArgumentException <code>criteria</code> が <code>null</code> の場合 495 */ 496 public static ColumnPositionLessThanOrEqualExpression le(final int position, final String criteria) { 497 return new ColumnPositionLessThanOrEqualExpression(position, criteria); 498 } 499 500 /** 501 * 指定された項目名に対応する区切り文字形式データの値が判定基準値以下かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 502 * 503 * @param name 項目名 504 * @param criteria 判定基準値 505 * @return 区切り文字形式データフィルタ 506 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 507 */ 508 public static ColumnNameLessThanOrEqualExpression le(final String name, final String criteria) { 509 return new ColumnNameLessThanOrEqualExpression(name, criteria); 510 } 511 512 /** 513 * 指定された項目位置に対応する区切り文字形式データの値が下限値から上限値の範囲かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 514 * 515 * @param position 項目位置 516 * @param low 下限値 517 * @param high 上限値 518 * @return 区切り文字形式データフィルタ 519 * @throws IllegalArgumentException <code>low</code> または <code>high</code> が <code>null</code> の場合 520 */ 521 public static ColumnPositionBetweenExpression between(final int position, final String low, final String high) { 522 return new ColumnPositionBetweenExpression(position, low, high); 523 } 524 525 /** 526 * 指定された項目名に対応する区切り文字形式データの値が下限値から上限値の範囲かどうかでフィルタを適用する区切り文字形式データフィルタを構築して返します。 527 * 528 * @param name 項目名 529 * @param low 下限値 530 * @param high 上限値 531 * @return 区切り文字形式データフィルタ 532 * @throws IllegalArgumentException パラメータが <code>null</code> の場合 533 */ 534 public static ColumnNameBetweenExpression between(final String name, final String low, final String high) { 535 return new ColumnNameBetweenExpression(name, low, high); 536 } 537 538 /** 539 * 指定された区切り文字形式データの値リストでフィルタする区切り文字形式データフィルタ群の論理積でフィルタを適用する区切り文字形式データフィルタを構築して返します。 540 * 541 * @param filters 論理積する区切り文字形式データフィルタ群 542 * @return 区切り文字形式データフィルタ 543 * @throws IllegalArgumentException <code>filters</code> が <code>null</code> の場合 544 */ 545 public static CsvValueLogicalExpression and(final CsvValueFilter... filters) { 546 return new CsvValueAndExpression(filters); 547 } 548 549 /** 550 * 指定された区切り文字形式データの項目名リストと値リストでフィルタする区切り文字形式データフィルタ群の論理積でフィルタを適用する区切り文字形式データフィルタを構築して返します。 551 * 552 * @param filters 論理積する区切り文字形式データフィルタ群 553 * @return 区切り文字形式データフィルタ 554 * @throws IllegalArgumentException <code>filters</code> が <code>null</code> の場合 555 */ 556 public static CsvNamedValueLogicalExpression and(final CsvNamedValueFilter... filters) { 557 return new CsvNamedValueAndExpression(filters); 558 } 559 560 /** 561 * 指定された区切り文字形式データの値リストでフィルタする区切り文字形式データフィルタ群の論理和でフィルタを適用する区切り文字形式データフィルタを構築して返します。 562 * 563 * @param filters 論理和する区切り文字形式データフィルタ群 564 * @return 区切り文字形式データフィルタ 565 * @throws IllegalArgumentException <code>filters</code> が <code>null</code> の場合 566 */ 567 public static CsvValueLogicalExpression or(final CsvValueFilter... filters) { 568 return new CsvValueOrExpression(filters); 569 } 570 571 /** 572 * 指定された区切り文字形式データの項目名リストと値リストでフィルタする区切り文字形式データフィルタ群の論理和でフィルタを適用する区切り文字形式データフィルタを構築して返します。 573 * 574 * @param filters 論理和する区切り文字形式データフィルタ群 575 * @return 区切り文字形式データフィルタ 576 * @throws IllegalArgumentException <code>filters</code> が <code>null</code> の場合 577 */ 578 public static CsvNamedValueLogicalExpression or(final CsvNamedValueFilter... filters) { 579 return new CsvNamedValueOrExpression(filters); 580 } 581 582 /** 583 * 指定された区切り文字形式データの値リストでフィルタする区切り文字形式データフィルタの論理否定でフィルタを適用する区切り文字形式データフィルタを構築して返します。 584 * 585 * @param filter 論理否定する区切り文字形式データフィルタ 586 * @return 区切り文字形式データフィルタ 587 * @throws IllegalArgumentException <code>filter</code> が <code>null</code> の場合 588 */ 589 public static CsvValueNotExpression not(final CsvValueFilter filter) { 590 return new CsvValueNotExpression(filter); 591 } 592 593 /** 594 * 指定された区切り文字形式データの項目名リストと値リストでフィルタする区切り文字形式データフィルタの論理否定でフィルタを適用する区切り文字形式データフィルタを構築して返します。 595 * 596 * @param filter 論理否定する区切り文字形式データフィルタ 597 * @return 区切り文字形式データフィルタ 598 * @throws IllegalArgumentException <code>filter</code> が <code>null</code> の場合 599 */ 600 public static CsvNamedValueNotExpression not(final CsvNamedValueFilter filter) { 601 return new CsvNamedValueNotExpression(filter); 602 } 603 604 }