1 /***
2 * Copyright (C) 2008 rweber <quietgenie@users.sourceforge.net>
3 *
4 * This file is part of CsvObjectMapper.
5 *
6 * CsvObjectMapper is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * CsvObjectMapper is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with CsvObjectMapper. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 /***
21 *
22 */
23 package com.projectnine.csvmapper;
24
25 import java.util.List;
26
27 import org.apache.commons.chain.Chain;
28 import org.apache.commons.chain.impl.ContextBase;
29
30 /***
31 * This is the context that is passed between {@link CsvFieldValidator} in the
32 * same {@link Chain}.
33 *
34 * @author robweber
35 *
36 */
37 public class CsvFieldValidationContext extends ContextBase {
38 private static final long serialVersionUID = 8773791574677655162L;
39
40 /***
41 * The RAW CSV String value to validate.
42 */
43 private String valueToValidate;
44
45 /***
46 * The Object to which the CSV Field value will be stored once it has been
47 * validated and adjusted.
48 */
49 private Object generatedObject;
50
51 /***
52 * A list of every other CSV field value on the same line as the CSV FIeld
53 * value that will be validated.
54 */
55 private List<String> currentCsvLine;
56
57 /***
58 * String used to track the progress of this context through a {@link Chain}
59 * of {@link CsvFieldValidator}s.
60 */
61 private String currentValidationCommandName;
62
63 /***
64 * @return the valueToValidate
65 */
66 public String getValueToValidate() {
67 return valueToValidate;
68 }
69
70 /***
71 * @param valueToValidate
72 * the valueToValidate to set
73 */
74 public void setValueToValidate(String valueToValidate) {
75 this.valueToValidate = valueToValidate;
76 }
77
78 /***
79 * Set the Object to which the CSV Field value will be stored once it has
80 * been validated and adjusted.
81 *
82 * @param generatedObject
83 */
84 public void setGeneratedObject(Object generatedObject) {
85 this.generatedObject = generatedObject;
86 }
87
88 /***
89 * @return the generatedObject
90 */
91 public Object getGeneratedObject() {
92 return generatedObject;
93 }
94
95 /***
96 * Set the list of every other CSV field value on the same line as the CSV
97 * Field value that will be validated.
98 *
99 * @param currentCsvLine
100 */
101 public void setCurrentCsvLine(List<String> currentCsvLine) {
102 this.currentCsvLine = currentCsvLine;
103 }
104
105 /***
106 * @return the currentCsvLine
107 */
108 public List<String> getCurrentCsvLine() {
109 return currentCsvLine;
110 }
111
112 /***
113 * Set the String used to track the progress of this context through a
114 * {@link Chain} of {@link CsvFieldValidator}s.
115 *
116 * @param currentValidationCommandName
117 */
118 public void setCurrentValidationCommandName(
119 String currentValidationCommandName) {
120 this.currentValidationCommandName = currentValidationCommandName;
121 }
122
123 /***
124 * Get the String used to track the progress of this context through a
125 * {@link Chain} of {@link CsvFieldValidator}s.
126 *
127 * @return
128 */
129 public String getCurrentValidationCommandName() {
130 return currentValidationCommandName;
131 }
132 }