Project

General

Profile

Download (2.88 KB) Statistics
| Branch: | Tag: | Revision:
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.log4j.Logger;
15

    
16
import eu.etaxonomy.cdm.model.common.CdmBase;
17

    
18
/**
19
 * This class represents the result of a delete action.
20
 *
21
 * @author a.mueller
22
 * @since 04.01.2012
23
 */
24
public class DeleteResult extends UpdateResult{
25

    
26
    private static final long serialVersionUID = 8856465763413085548L;
27
    @SuppressWarnings("unused")
28
	private static final Logger logger = Logger.getLogger(DeleteResult.class);
29

    
30
	private final Set<CdmBase> relatedObjects = new HashSet<>();
31
	private Set<CdmBase> deletedObjects = new HashSet<>();
32

    
33
//***************************** GETTER /SETTER /ADDER *************************/
34

    
35
	/**
36
	 * Related objects that prevent the delete action to take place.
37
	 */
38
	public Set<CdmBase> getRelatedObjects() {
39
		return relatedObjects;
40
	}
41
	public void addRelatedObject(CdmBase relatedObject) {
42
		this.relatedObjects.add(relatedObject);
43
	}
44
	public void addRelatedObjects(Set<? extends CdmBase> relatedObjects) {
45
		this.relatedObjects.addAll(relatedObjects);
46
	}
47

    
48
	//deleted objects
49
    public Set<CdmBase> getDeletedObjects() {
50
        return deletedObjects;
51
    }
52
    public void addDeletedObjects(Set<CdmBase> deletedObjects) {
53
        this.deletedObjects.addAll(deletedObjects);
54
    }
55
    public void addDeletedObject(CdmBase deletedObject) {
56
        this.deletedObjects.add(deletedObject);
57
    }
58

    
59
// ******************* Methods *************************************************/
60

    
61
    @Override
62
    public void includeResult(UpdateResult includedResult, boolean excludeStatusAndException){
63
        super.includeResult(includedResult, excludeStatusAndException);
64
        if (includedResult instanceof DeleteResult){
65
            DeleteResult includedDeleteResult = (DeleteResult)includedResult;
66
            this.addDeletedObjects(includedDeleteResult.getDeletedObjects());
67
            //Note: we do not include related objects as they loose there context, if needed in some cases in future it should be done parameterized
68
        }
69
    }
70

    
71
// ******************* TO STRING ***********************************************/
72

    
73
    @Override
74
    public String toString() {
75
        String separator = ", ";
76
        String deletedObjectString = toStringObjectsString(separator, deletedObjects);
77
        String relatedObjectString = toStringObjectsString(separator, relatedObjects);
78
        return super.toString().replace("[UpdateResult]", "[DeleteResult]")+"\n"
79
                + "Deleted objects: " + deletedObjectString +"\n"
80
                + "Related objects: " + relatedObjectString;
81
    }
82
}
(9-9/97)