raimund@711: /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz raimund@711: * Software engineering by Intevation GmbH raimund@711: * raimund@711: * This file is Free Software under the GNU GPL (v>=3) raimund@711: * and comes with ABSOLUTELY NO WARRANTY! Check out raimund@711: * the documentation coming with IMIS-Labordaten-Application for details. raimund@711: */ raimund@537: package de.intevation.lada.validation; raimund@537: raimund@537: import javax.enterprise.context.ApplicationScoped; raimund@537: import javax.enterprise.inject.Instance; raimund@537: import javax.inject.Inject; raimund@537: raimund@540: import de.intevation.lada.model.land.LProbe; raimund@540: import de.intevation.lada.validation.annotation.ValidationConfig; raimund@537: import de.intevation.lada.validation.annotation.ValidationRule; raimund@537: import de.intevation.lada.validation.rules.Rule; raimund@537: raimund@711: /** raimund@711: * Validation for probe objects. raimund@711: * raimund@711: * Instantiates the set of rules for probe objects and uses these rules to raimund@711: * validate the object. raimund@711: * raimund@711: * @author Raimund Renkert raimund@711: */ raimund@537: @ValidationConfig(type="Probe") raimund@537: @ApplicationScoped raimund@537: public class ProbeValidator implements Validator { raimund@537: raimund@537: @Inject raimund@537: @ValidationRule("Probe") raimund@537: private Instance rules; raimund@537: raimund@537: @Override raimund@537: public Violation validate(Object object) { raimund@537: Violation violations = new Violation(); raimund@540: if (!(object instanceof LProbe)) { raimund@540: violations.addError("probe", 602); raimund@540: return violations; raimund@540: } raimund@537: for(Rule rule: rules) { raimund@537: Violation result = rule.execute(object); raimund@537: if (result != null) { raimund@537: if (result.hasWarnings()) { raimund@537: violations.addWarnings(result.getWarnings()); raimund@537: } raimund@537: if (result.hasErrors()) { raimund@537: violations.addErrors(result.getErrors()); raimund@537: } raimund@537: } raimund@537: } raimund@537: return violations; raimund@537: } raimund@537: }