Initial OpenECOMP policy/engine commit
[policy/engine.git] / ECOMP-XACML / src / main / java / org / openecomp / policy / xacml / std / pap / StdPDPItemSetChangeNotifier.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ECOMP-XACML
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.openecomp.policy.xacml.std.pap;
21
22 import java.util.Collection;
23 import java.util.LinkedList;
24
25 import org.openecomp.policy.xacml.api.pap.EcompPDP;
26 import org.openecomp.policy.xacml.api.pap.EcompPDPGroup;
27
28 import com.att.research.xacml.api.pap.PDP;
29 import com.att.research.xacml.api.pap.PDPGroup;
30
31 public class StdPDPItemSetChangeNotifier {
32         
33         private Collection<StdItemSetChangeListener> listeners = null;
34         
35         public interface StdItemSetChangeListener {
36                 
37                 public void changed();
38                 
39                 public void groupChanged(EcompPDPGroup group);
40                 
41                 public void pdpChanged(EcompPDP pdp);
42
43         }
44         
45         public void addItemSetChangeListener(StdItemSetChangeListener listener) {
46                 if (this.listeners == null) {
47                         this.listeners = new LinkedList<StdItemSetChangeListener>();
48                 }
49                 this.listeners.add(listener);
50         }
51         
52         public void removeItemSetChangeListener(StdItemSetChangeListener listener) {
53                 if (this.listeners != null) {
54                         this.listeners.remove(listener);
55                 }
56         }
57
58         public void fireChanged() {
59                 if (this.listeners == null) {
60                         return;
61                 }
62                 for (StdItemSetChangeListener l : this.listeners) {
63                         l.changed();
64                 }               
65         }
66
67         public void firePDPGroupChanged(EcompPDPGroup group) {
68                 if (this.listeners == null) {
69                         return;
70                 }
71                 for (StdItemSetChangeListener l : this.listeners) {
72                         l.groupChanged(group);
73                 }
74         }
75
76         public void firePDPChanged(EcompPDP pdp) {
77                 if (this.listeners == null) {
78                         return;
79                 }
80                 for (StdItemSetChangeListener l : this.listeners) {
81                         l.pdpChanged(pdp);
82                 }
83         }
84 }