Revision 27723 branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/spi/AbstractDataParameters.java
AbstractDataParameters.java | ||
---|---|---|
1 | 1 |
package org.gvsig.fmap.dal.spi; |
2 | 2 |
|
3 |
import java.util.Arrays; |
|
3 | 4 |
import java.util.Iterator; |
4 | 5 |
|
5 | 6 |
import org.gvsig.fmap.dal.DataParameters; |
6 | 7 |
import org.gvsig.fmap.dal.exception.CopyParametersException; |
8 |
import org.gvsig.fmap.dal.exception.ParameterMissingException; |
|
9 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
|
7 | 10 |
import org.gvsig.tools.dynobject.DelegatedDynObject; |
8 | 11 |
import org.gvsig.tools.dynobject.DynClass; |
9 | 12 |
import org.gvsig.tools.dynobject.DynField; |
... | ... | |
151 | 154 |
return this.delegatedDynObject.invokeDynMethod(this, code, context); |
152 | 155 |
} |
153 | 156 |
|
157 |
public void validate() throws ValidateDataParametersException { |
|
158 |
ValidateDataParametersException exception = new ValidateDataParametersException(); |
|
159 |
Iterator iter = Arrays.asList(this.getDynClass().getDynFields()) |
|
160 |
.iterator(); |
|
161 |
DynField field; |
|
162 |
while (iter.hasNext()) { |
|
163 |
field = (DynField) iter.next(); |
|
164 |
if (field.isMandatory()) { |
|
165 |
if (!this.hasDynValue(field.getName())) { |
|
166 |
if (field.getDefaultValue() != null) { |
|
167 |
this.setDynValue(field.getName(), field |
|
168 |
.getDefaultValue()); |
|
169 |
} else { |
|
170 |
exception.add(new ParameterMissingException(field |
|
171 |
.getName())); |
|
172 |
} |
|
173 |
} |
|
174 |
} else { |
|
175 |
if (field.getDefaultValue() != null |
|
176 |
&& !this.hasDynValue(field.getName())) { |
|
177 |
this.setDynValue(field.getName(), field.getDefaultValue()); |
|
178 |
} |
|
179 |
} |
|
180 |
|
|
181 |
} |
|
182 |
if (exception.size() > 0) { |
|
183 |
throw exception; |
|
184 |
} |
|
185 |
|
|
186 |
} |
|
187 |
|
|
154 | 188 |
} |
Also available in: Unified diff