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.Collection; 20 import java.util.List; 21 22 /** 23 * 指定された項目位置に対応する区切り文字形式データの値が判定基準値群のいずれかと等しいかどうかでフィルタを適用する区切り文字形式データフィルタの実装です。 24 * 25 * @author Koji Sugisawa 26 * @since 1.2.3 27 */ 28 public class ColumnPositionInExpression extends ColumnPositionCriteriasExpression { 29 30 /** 31 * コンストラクタです。 32 * 33 * @param position 項目位置 34 * @param criterias 判定基準値群 35 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 36 */ 37 protected ColumnPositionInExpression(final int position, final Collection<String> criterias) { 38 super(position, criterias); 39 } 40 41 /** 42 * コンストラクタです。 43 * 44 * @param position 項目位置 45 * @param criterias 判定基準値群 46 * @param ignoreCase 大文字と小文字を区別するかどうか 47 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 48 */ 49 protected ColumnPositionInExpression(final int position, final Collection<String> criterias, final boolean ignoreCase) { 50 super(position, criterias, ignoreCase); 51 } 52 53 /** 54 * コンストラクタです。 55 * 56 * @param position 項目位置 57 * @param criterias 判定基準値群 58 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 59 */ 60 protected ColumnPositionInExpression(final int position, final String... criterias) { 61 super(position, criterias); 62 } 63 64 /** 65 * コンストラクタです。 66 * 67 * @param position 項目位置 68 * @param criterias 判定基準値群 69 * @param ignoreCase 大文字と小文字を区別するかどうか 70 * @throws IllegalArgumentException <code>criterias</code> が <code>null</code> の場合 71 */ 72 protected ColumnPositionInExpression(final int position, final String[] criterias, final boolean ignoreCase) { 73 super(position, criterias, ignoreCase); 74 } 75 76 @Override 77 public boolean accept(final List<String> values) { 78 return CsvExpressionUtils.in(values, position, criterias, ignoreCase); 79 } 80 81 @Override 82 public boolean accept(final List<String> header, final List<String> values) { 83 return CsvExpressionUtils.in(values, position, criterias, ignoreCase); 84 } 85 86 }