cleanup
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / DeleteResult.java
1 /**
2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9 package eu.etaxonomy.cdm.api.service;
10
11 import java.util.HashSet;
12 import java.util.Set;
13
14 import org.apache.logging.log4j.LogManager;
15 import org.apache.logging.log4j.Logger;
16
17 import eu.etaxonomy.cdm.model.common.CdmBase;
18
19 /**
20 * This class represents the result of a delete action.
21 *
22 * @author a.mueller
23 * @since 04.01.2012
24 */
25 public class DeleteResult extends UpdateResult{
26
27 private static final long serialVersionUID = 8856465763413085548L;
28 @SuppressWarnings("unused")
29 private static final Logger logger = LogManager.getLogger();
30
31 private final Set<CdmBase> relatedObjects = new HashSet<>();
32 private Set<CdmBase> deletedObjects = new HashSet<>();
33
34 //***************************** GETTER /SETTER /ADDER *************************/
35
36 /**
37 * Related objects that prevent the delete action to take place.
38 */
39 public Set<CdmBase> getRelatedObjects() {
40 return relatedObjects;
41 }
42 public void addRelatedObject(CdmBase relatedObject) {
43 this.relatedObjects.add(relatedObject);
44 }
45 public void addRelatedObjects(Set<? extends CdmBase> relatedObjects) {
46 this.relatedObjects.addAll(relatedObjects);
47 }
48
49 //deleted objects
50 public Set<CdmBase> getDeletedObjects() {
51 return deletedObjects;
52 }
53 public void addDeletedObjects(Set<CdmBase> deletedObjects) {
54 this.deletedObjects.addAll(deletedObjects);
55 }
56 public void addDeletedObject(CdmBase deletedObject) {
57 this.deletedObjects.add(deletedObject);
58 }
59
60 // ******************* Methods *************************************************/
61
62 @Override
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
69 }
70 }
71
72 // ******************* TO STRING ***********************************************/
73
74 @Override
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;
82 }
83 }