Revision 27723 branches/v2_0_0_prep/libraries/libFMap_dal/src/org/gvsig/fmap/dal/spi/AbstractDataParameters.java

View differences:

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