2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.api
.service
;
11 import java
.util
.HashSet
;
14 import org
.apache
.logging
.log4j
.LogManager
;
15 import org
.apache
.logging
.log4j
.Logger
;
17 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
20 * This class represents the result of a delete action.
25 public class DeleteResult
extends UpdateResult
{
27 private static final long serialVersionUID
= 8856465763413085548L;
28 @SuppressWarnings("unused")
29 private static final Logger logger
= LogManager
.getLogger();
31 private final Set
<CdmBase
> relatedObjects
= new HashSet
<>();
32 private Set
<CdmBase
> deletedObjects
= new HashSet
<>();
34 //***************************** GETTER /SETTER /ADDER *************************/
37 * Related objects that prevent the delete action to take place.
39 public Set
<CdmBase
> getRelatedObjects() {
40 return relatedObjects
;
42 public void addRelatedObject(CdmBase relatedObject
) {
43 this.relatedObjects
.add(relatedObject
);
45 public void addRelatedObjects(Set
<?
extends CdmBase
> relatedObjects
) {
46 this.relatedObjects
.addAll(relatedObjects
);
50 public Set
<CdmBase
> getDeletedObjects() {
51 return deletedObjects
;
53 public void addDeletedObjects(Set
<CdmBase
> deletedObjects
) {
54 this.deletedObjects
.addAll(deletedObjects
);
56 public void addDeletedObject(CdmBase deletedObject
) {
57 this.deletedObjects
.add(deletedObject
);
60 // ******************* Methods *************************************************/
63 public void includeResult(UpdateResult includedResult
, boolean excludeStatusAndException
){
64 super.includeResult(includedResult
, excludeStatusAndException
);
65 if (includedResult
instanceof DeleteResult
){
66 DeleteResult includedDeleteResult
= (DeleteResult
)includedResult
;
67 this.addDeletedObjects(includedDeleteResult
.getDeletedObjects());
68 //Note: we do not include related objects as they loose there context, if needed in some cases in future it should be done parameterized
72 // ******************* TO STRING ***********************************************/
75 public String
toString() {
76 String separator
= ", ";
77 String deletedObjectString
= toStringObjectsString(separator
, deletedObjects
);
78 String relatedObjectString
= toStringObjectsString(separator
, relatedObjects
);
79 return super.toString().replace("[UpdateResult]", "[DeleteResult]")+"\n"
80 + "Deleted objects: " + deletedObjectString
+"\n"
81 + "Related objects: " + relatedObjectString
;