025cadb8bd2f1eb2480ed6d9c850514282fb56c8
[controller.git] / opendaylight / md-sal / sal-common-impl / src / main / java / org / opendaylight / controller / md / sal / common / impl / service / ListenerStateCapture.java
1 package org.opendaylight.controller.md.sal.common.impl.service;
2
3 import java.util.Map;
4
5 import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
6 import org.opendaylight.controller.md.sal.common.api.data.DataChangeListener;
7 import org.opendaylight.controller.md.sal.common.api.data.DataModification;
8 import org.opendaylight.yangtools.concepts.Path;
9
10 import com.google.common.base.Predicate;
11
12 @Deprecated
13 public final class ListenerStateCapture<P extends Path<P>, D, DCL extends DataChangeListener<P, D>> {
14
15     final P path;
16
17     final Iterable<DataChangeListenerRegistration<P, D, DCL>> listeners;
18
19     D initialOperationalState;
20
21     D initialConfigurationState;
22
23     D finalConfigurationState;
24
25     D finalOperationalState;
26
27     Map<P, D> additionalConfigOriginal;
28     Map<P, D> additionalConfigCreated;
29     Map<P, D> additionalConfigUpdated;
30     Map<P, D> additionalConfigDeleted;
31
32     Map<P, D> additionalOperOriginal;
33     Map<P, D> additionalOperCreated;
34     Map<P, D> additionalOperUpdated;
35     Map<P, D> additionalOperDeleted;
36
37     RootedChangeSet<P, D> normalizedConfigurationChanges;
38     RootedChangeSet<P, D> normalizedOperationalChanges;
39
40     private final Predicate<P> containsPredicate;
41
42     public ListenerStateCapture(P path, Iterable<DataChangeListenerRegistration<P, D, DCL>> listeners,
43             Predicate<P> containsPredicate) {
44         super();
45         this.path = path;
46         this.listeners = listeners;
47         this.containsPredicate = containsPredicate;
48     }
49
50     protected D getInitialOperationalState() {
51         return initialOperationalState;
52     }
53
54     protected void setInitialOperationalState(D initialOperationalState) {
55         this.initialOperationalState = initialOperationalState;
56     }
57
58     protected D getInitialConfigurationState() {
59         return initialConfigurationState;
60     }
61
62     protected void setInitialConfigurationState(D initialConfigurationState) {
63         this.initialConfigurationState = initialConfigurationState;
64     }
65
66     protected P getPath() {
67         return path;
68     }
69
70     protected Iterable<DataChangeListenerRegistration<P, D, DCL>> getListeners() {
71         return listeners;
72     }
73
74     protected D getFinalConfigurationState() {
75         return finalConfigurationState;
76     }
77
78     protected void setFinalConfigurationState(D finalConfigurationState) {
79         this.finalConfigurationState = finalConfigurationState;
80     }
81
82     protected D getFinalOperationalState() {
83         return finalOperationalState;
84     }
85
86     protected void setFinalOperationalState(D finalOperationalState) {
87         this.finalOperationalState = finalOperationalState;
88     }
89
90     protected RootedChangeSet<P, D> getNormalizedConfigurationChanges() {
91         return normalizedConfigurationChanges;
92     }
93
94     protected void setNormalizedConfigurationChanges(RootedChangeSet<P, D> normalizedConfigurationChanges) {
95         this.normalizedConfigurationChanges = normalizedConfigurationChanges;
96     }
97
98     protected RootedChangeSet<P, D> getNormalizedOperationalChanges() {
99         return normalizedOperationalChanges;
100     }
101
102     protected void setNormalizedOperationalChanges(RootedChangeSet<P, D> normalizedOperationalChange) {
103         this.normalizedOperationalChanges = normalizedOperationalChange;
104     }
105
106     protected DataChangeEvent<P, D> createEvent(DataModification<P, D> modification) {
107         return ImmutableDataChangeEvent.<P, D> builder()//
108                 .addTransaction(modification, containsPredicate) //
109                 .addConfigurationChangeSet(normalizedConfigurationChanges) //
110                 .addOperationalChangeSet(normalizedOperationalChanges) //
111                 .setOriginalConfigurationSubtree(initialConfigurationState) //
112                 .setOriginalOperationalSubtree(initialOperationalState) //
113                 .setUpdatedConfigurationSubtree(finalConfigurationState) //
114                 .setUpdatedOperationalSubtree(finalOperationalState) //
115                 .build();
116
117     }
118
119 }