From ef52cdd56cd3e930195e0083f7419ae3fbad3033 Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Wed, 11 Feb 2015 13:23:45 +0000 Subject: [PATCH] add UpdateResult and make DeleteResult a subclass --- .../cdm/api/service/DeleteResult.java | 140 +----------------- .../cdm/api/service/ITaxonNodeService.java | 2 + .../api/service/OccurrenceServiceImpl.java | 4 +- .../cdm/api/service/TaxonNodeServiceImpl.java | 10 ++ .../cdm/api/service/TaxonServiceImpl.java | 4 +- .../cdm/api/service/TermServiceImpl.java | 4 +- .../api/service/SecurityWithTransaction.java | 2 +- 7 files changed, 26 insertions(+), 140 deletions(-) diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DeleteResult.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DeleteResult.java index e8b74d55bf..54f75251d8 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DeleteResult.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DeleteResult.java @@ -27,12 +27,12 @@ import eu.etaxonomy.cdm.model.common.IIdentifiableEntity; * @date 04.01.2012 * */ -public class DeleteResult implements Serializable { +public class DeleteResult extends UpdateResult{ @SuppressWarnings("unused") private static final Logger logger = Logger.getLogger(DeleteResult.class); - private DeleteStatus status = DeleteStatus.OK; + private final List exceptions = new ArrayList(); @@ -47,49 +47,11 @@ public class DeleteResult implements Serializable { // protected ICdmEntityDao dao; // } - public enum DeleteStatus { - OK(0), - ABORT(1), - ERROR(3), - ; - - protected Integer severity; - private DeleteStatus(int severity){ - this.severity = severity; - } - - public int compareSeverity(DeleteStatus other){ - return this.severity.compareTo(other.severity); - } - } + //***************************** GETTER /SETTER /ADDER *************************/ - /** - * The resuting status of a delete action. - * - * @see DeleteStatus - * @return - */ - public DeleteStatus getStatus() { - return status; - } - public void setStatus(DeleteStatus status) { - this.status = status; - } + - /** - * The highest exception that occurred during delete (if any). - * @return - */ - public List getExceptions() { - return exceptions; - } - public void addException(Exception exception) { - this.exceptions.add(exception); - } - public void addExceptions(List exceptions) { - this.exceptions.addAll(exceptions); - } /** * Related objects that prevent the delete action to take place. @@ -106,104 +68,16 @@ public class DeleteResult implements Serializable { } -// /** -// * @return -// */ -// public Set getObjectsToDelete() { -// return objectsToDelete; -// } -// public void setObjectsToDelete(Set objectsToDelete) { -// this.objectsToDelete = objectsToDelete; -// } -// -// /** -// * @return -// */ -// public Set getObjectsToSave() { -// return objectsToSave; -// } -// public void setObjectsToSave(Set objectsToSave) { -// this.objectsToSave = objectsToSave; -// } - - -//****************** CONVENIENCE *********************************************/ - - /** - * Sets the status to {@link DeleteStatus#ERROR} if not yet set to a more serious - * status. - */ - public void setError(){ - setMaxStatus(DeleteStatus.ERROR); - } - - /** - * Sets the status to {@link DeleteStatus#ABORT} if not yet set to a more serious - * status. - */ - public void setAbort(){ - setMaxStatus(DeleteStatus.ABORT); - } - - /** - * Sets status to most severe status. If maxStatus is more severe then existing status - * existing status is set to maxStatus. Otherwise nothing changes. - * If minStatus is more severe then given status minStatus will be the new status. - * @param maxStatus - */ - public void setMaxStatus(DeleteStatus maxStatus) { - if (this.status.compareSeverity(maxStatus) < 0){ - this.status = maxStatus; - } - } - public void includeResult(DeleteResult includedResult){ - this.setMaxStatus(includedResult.getStatus()); - this.addExceptions(includedResult.getExceptions()); - this.addRelatedObjects(includedResult.getRelatedObjects()); - } - public boolean isOk(){ - return this.status == DeleteStatus.OK; - } - public boolean isAbort(){ - return this.status == DeleteStatus.ABORT; - } + - public boolean isError(){ - return this.status == DeleteStatus.ERROR; - } + - @Override - public String toString(){ - String separator = ", "; - String exceptionString = ""; - for (Exception exception : exceptions) { - exceptionString += exception.getLocalizedMessage()+separator; - } - if(exceptionString.endsWith(separator)){ - exceptionString = exceptionString.substring(0, exceptionString.length()-separator.length()); - } - String relatedObjectString = ""; - for (CdmBase relatedObject: relatedObjects) { - if(relatedObject instanceof IIdentifiableEntity){ - relatedObjectString += ((IIdentifiableEntity) relatedObject).getTitleCache()+separator; - } - else{ - relatedObjectString += relatedObject.toString()+separator; - } - } - if(relatedObjectString.endsWith(separator)){ - relatedObjectString = relatedObjectString.substring(0, relatedObjectString.length()-separator.length()); - } - return "[DeleteResult]\n" + - "Status: " + status.toString()+"\n" + - "Exceptions: " + exceptionString+"\n" + - "Related Objects: "+relatedObjectString; - } + } diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonNodeService.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonNodeService.java index db54602842..122d56c205 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonNodeService.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonNodeService.java @@ -90,6 +90,8 @@ public interface ITaxonNodeService extends IAnnotatableService{ */ public int countAllNodesForClassification(Classification classification); + public TaxonNode moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent); + diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java index ba271aa822..433e604ff7 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java @@ -40,7 +40,7 @@ import org.springframework.transaction.annotation.Transactional; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator; import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException; -import eu.etaxonomy.cdm.api.service.DeleteResult.DeleteStatus; +import eu.etaxonomy.cdm.api.service.UpdateResult.Status; import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase; import eu.etaxonomy.cdm.api.service.config.SpecimenDeleteConfigurator; import eu.etaxonomy.cdm.api.service.dto.DerivateHierarchyDTO; @@ -1105,7 +1105,7 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase> commonNameResults = dao.getTaxaByCommonNameForEditor(configurator.getTitleSearchStringSqlized(), configurator.getClassification(), configurator.getMatchMode(), configurator.getNamedAreas()); if(commonNameResults != null){ results.addAll(commonNameResults); } - } + // } } return results; } diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TermServiceImpl.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TermServiceImpl.java index d6fcdc0cd6..5263595b13 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TermServiceImpl.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TermServiceImpl.java @@ -27,7 +27,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import eu.etaxonomy.cdm.api.service.DeleteResult.DeleteStatus; +import eu.etaxonomy.cdm.api.service.UpdateResult.Status; import eu.etaxonomy.cdm.api.service.config.TermDeletionConfigurator; import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException; import eu.etaxonomy.cdm.api.service.pager.Pager; @@ -376,7 +376,7 @@ public class TermServiceImpl extends IdentifiableServiceBase