Mercurial > lada > lada-server
changeset 70:9409d00b9254
Merged
author | Torsten Irländer <torsten.irlaender@intevation.de> |
---|---|
date | Fri, 31 May 2013 14:49:04 +0200 (2013-05-31) |
parents | ccb8e93b7eca (current diff) 9e34b7e872f9 (diff) |
children | 48f5b038cebf |
files | src/main/java/de/intevation/lada/rest/LProbeService.java |
diffstat | 6 files changed, 122 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/data/LProbeRepository.java Fri May 31 14:44:58 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/LProbeRepository.java Fri May 31 14:49:04 2013 +0200 @@ -90,14 +90,19 @@ return em.createQuery(criteria).getResultList(); } - public LProbe details(String probeId) { - return em.find(LProbe.class, probeId); - } - + /** + * Validate and persist a new LProbe object. + * + * @param probe The new LProbe object + * @return True on success, else returns false. + */ public boolean create(LProbe probe) { + // Make sure that no old errors and warnings remain. setGeneralError(200); setErrors(new HashMap<String, Integer>()); setWarnings(new HashMap<String, Integer>()); + + // Try to save the new LProbe. try { manager.create(probe); setWarnings(manager.getWarnings()); @@ -120,26 +125,56 @@ return false; } + /** + * Getter for the error code returned by the validator. + * + * @return The error code returned by the validator. + */ public int getGeneralError() { return generalError; } + /** + * Private setter for the general error code. + * + * @param generalError + */ private void setGeneralError(int generalError) { this.generalError = generalError; } + /** + * Getter for all errors occured while validating a LProbe object. + * + * @return Map of field - error code pairs. + */ public Map<String, Integer> getErrors() { return errors; } + /** + * Private setter for validation errors. + * + * @param errors + */ private void setErrors(Map<String, Integer> errors) { this.errors = errors; } + /** + * Getter for all warnings occured while validating a LProbe object. + * + * @return Map of field - error code pairs. + */ public Map<String, Integer> getWarnings() { return warnings; } + /** + * Private setter for validation warnings. + * + * @param warnings + */ private void setWarnings(Map<String, Integer> warnings) { this.warnings = warnings; }
--- a/src/main/java/de/intevation/lada/manage/LProbeManager.java Fri May 31 14:44:58 2013 +0200 +++ b/src/main/java/de/intevation/lada/manage/LProbeManager.java Fri May 31 14:49:04 2013 +0200 @@ -16,6 +16,11 @@ import de.intevation.lada.validation.ValidationException; import de.intevation.lada.validation.Validator; +/** + * This Manager provides databse operations for LProbe objects. + * + * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> + */ @Stateless public class LProbeManager { @@ -42,6 +47,16 @@ em.remove(probe); } + /** + * Persist a new LProbe object in the database using the LProbeValidator. + * + * @param probe The new LProbe object. + * + * @throws EntityExistsException + * @throws IllegalArgumentException + * @throws TransactionRequiredException + * @throws ValidationException + */ @TransactionAttribute(TransactionAttributeType.REQUIRED) public void create(LProbe probe) throws EntityExistsException, @@ -52,6 +67,11 @@ em.persist(probe); } + /** + * Get the warnings found while validating a LProbe object. + * + * @return Map of warnings containing field - warn code pair. + */ public Map<String, Integer> getWarnings() { return validator.getWarnings(); }
--- a/src/main/java/de/intevation/lada/rest/LProbeService.java Fri May 31 14:44:58 2013 +0200 +++ b/src/main/java/de/intevation/lada/rest/LProbeService.java Fri May 31 14:49:04 2013 +0200 @@ -49,8 +49,8 @@ @GET @Path("/{id}") @Produces("text/json") - public LProbe details(@PathParam("id") String id) { - return repository.details(id); + public LProbe findById(@PathParam("id") String id) { + return repository.findById(LProbe.class, id); } /**
--- a/src/main/java/de/intevation/lada/validation/LProbeValidator.java Fri May 31 14:44:58 2013 +0200 +++ b/src/main/java/de/intevation/lada/validation/LProbeValidator.java Fri May 31 14:49:04 2013 +0200 @@ -5,30 +5,64 @@ import javax.inject.Named; +import de.intevation.lada.model.LProbe; + +/** + * Validator for LProbe objects. + * + * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> + */ @Named("lprobevalidator") public class LProbeValidator implements Validator { + /** + * Warnings found while validating the LProbe + */ private Map<String, Integer> warnings; + /** + * Validate a LProbe object. + * + * @param probe The LProbe object. + */ @Override public void validate(Object probe) throws ValidationException { warnings = new HashMap<String, Integer>(); + if (!(probe instanceof LProbe)) { + Map<String, Integer> errors = new HashMap<String, Integer>(); + errors.put("lprobe", 610); + throw new ValidationException(errors); + } + // Dummy warning. warnings.put("entnahmeort", 612); validateId(probe); } + /** + * Validate the LProbe id. + * + * @param probe The LProbe object. + * @throws ValidationException + */ private void validateId(Object probe) throws ValidationException{ Map<String, Integer> errors = new HashMap<String, Integer>(); // TODO Implement me! + + // Dummy error. errors.put("probeid", 611); ValidationException ve = new ValidationException(errors); throw ve; } + /** + * Getter for warnings occured while validating the LProbe. + * + * @return Map of field - warning code pairs. + */ @Override public Map<String, Integer> getWarnings() { return warnings;
--- a/src/main/java/de/intevation/lada/validation/ValidationException.java Fri May 31 14:44:58 2013 +0200 +++ b/src/main/java/de/intevation/lada/validation/ValidationException.java Fri May 31 14:49:04 2013 +0200 @@ -2,20 +2,40 @@ import java.util.Map; - +/** + * Exception used for validation errors. + * + * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> + */ public class ValidationException extends Exception { + /** + * Errors saved in this exception. + */ private Map<String, Integer> errors; - @SuppressWarnings("unused") + /** + * Do not allow an empty ValidationException object. + */ private ValidationException() { } + /** + * Create a new instance with errors. + * + * @param errors + */ public ValidationException(Map<String, Integer> errors) { + this(); this.errors = errors; } + /** + * Getter for the errors. + * + * @return + */ public Map<String, Integer> getErrors() { return errors; }
--- a/src/main/java/de/intevation/lada/validation/Validator.java Fri May 31 14:44:58 2013 +0200 +++ b/src/main/java/de/intevation/lada/validation/Validator.java Fri May 31 14:49:04 2013 +0200 @@ -2,7 +2,11 @@ import java.util.Map; - +/** + * Validator interface. Implement this interface for lada object validations. + * + * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> + */ public interface Validator { public void validate(Object object) throws ValidationException;