Project

General

Profile

Download (2.18 KB) Statistics
| Branch: | Tag: | Revision:
1 ae7e2680 Cherian Mathew
// $Id$
2
/**
3
* Copyright (C) 2015 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.cdm.api.application;
11
12 b13da0b9 Cherian Mathew
import java.util.HashSet;
13 ae7e2680 Cherian Mathew
import java.util.Set;
14
15
import eu.etaxonomy.cdm.model.common.CdmBase;
16
17
/**
18
 * @author cmathew
19
 * @date 7 Apr 2015
20
 *
21
 */
22
public class CdmChangeEvent {
23
24
    public enum Action {
25
        Create,
26
        Update,
27
        Delete
28
    }
29
30
    private final Action action;
31 b13da0b9 Cherian Mathew
    private final Set<CdmBase> changedObjects;
32 ae7e2680 Cherian Mathew
    private final Class sourceType;
33 c69c2dcd Cherian Mathew
    private Class entityType;
34 ae7e2680 Cherian Mathew
    private Object source;
35
36 b13da0b9 Cherian Mathew
    public CdmChangeEvent(Action action, Set<CdmBase> changedObjects, Class sourceType) {
37 ae7e2680 Cherian Mathew
        this.action = action;
38
        this.changedObjects = changedObjects;
39
        this.sourceType = sourceType;
40
    }
41
42 b13da0b9 Cherian Mathew
    public CdmChangeEvent(Action action, CdmBase changedObject, Class sourceType) {
43
        this.action = action;
44
        changedObjects = new HashSet<CdmBase>();
45
        changedObjects.add(changedObject);
46
        this.sourceType = sourceType;
47
    }
48
49 c69c2dcd Cherian Mathew
    public CdmChangeEvent(Action action, Set<CdmBase> changedObjects, Class sourceType, Class entityType) {
50
        this(action, changedObjects, sourceType);
51
        this.entityType = entityType;
52
    }
53
54 b13da0b9 Cherian Mathew
    public CdmChangeEvent(Action action, Set<CdmBase> changedObjects, Object source) {
55 ae7e2680 Cherian Mathew
        this(action, changedObjects, source.getClass());
56
        this.source = source;
57
    }
58
59
    /**
60
     * @return the action
61
     */
62
    public Action getAction() {
63
        return action;
64
    }
65
66
    /**
67
     * @return the changedObjects
68
     */
69
    public Set<? extends CdmBase> getChangedObjects() {
70
        return changedObjects;
71
    }
72
73
    /**
74
     * @return the sourceType
75
     */
76
    public Class getSourceType() {
77
        return sourceType;
78
    }
79
80
81
    /**
82
     * @return the source
83
     */
84
    public Object getSource() {
85
        return source;
86
    }
87
88 c69c2dcd Cherian Mathew
    public Class getEntityType() {
89
        return entityType;
90
    }
91
92 ae7e2680 Cherian Mathew
    public boolean hasChanges() {
93
        return changedObjects != null && !changedObjects.isEmpty();
94
    }
95
96
}