Modify ONAP PAP REST classes basic checkstyle
[policy/engine.git] / ONAP-PAP-REST / src / main / java / org / onap / policy / pap / xacml / rest / model / RemoveGroupPolicy.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP-PAP-REST
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
21 package org.onap.policy.pap.xacml.rest.model;
22
23 import java.util.Collection;
24 import java.util.HashSet;
25 import java.util.Set;
26
27 import org.onap.policy.rest.util.PDPPolicyContainer;
28 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
29 import org.onap.policy.xacml.std.pap.StdPDPGroup;
30
31 import com.att.research.xacml.api.pap.PDPPolicy;
32
33 public class RemoveGroupPolicy {
34
35
36     //Container from where we are fetching the policies
37     private static PDPPolicyContainer policyContainer;
38
39     private RemoveGroupPolicy self = this;
40     private StdPDPGroup updatedObject;
41     private final StdPDPGroup group;
42     private boolean isSaved = false;
43
44     public RemoveGroupPolicy(StdPDPGroup group) {
45
46         this.group = group;
47
48     }
49
50     public void prepareToRemove(PDPPolicy policy) {
51
52         if (this.group == null) {
53             return;
54         }
55         setRemoveGroupPolicy(new PDPPolicyContainer(group));
56
57         RemoveGroupPolicy.policyContainer.removeItem(policy);
58
59         self.doSave();
60
61         self.isSaved = true;
62
63     }
64
65     private static void setRemoveGroupPolicy(PDPPolicyContainer pdpPolicyContainer) {
66         RemoveGroupPolicy.policyContainer = pdpPolicyContainer;
67     }
68
69     @SuppressWarnings("unchecked")
70     protected void doSave() {
71         if (this.group == null) {
72             return;
73         }
74
75         StdPDPGroup updatedGroupObject = new StdPDPGroup(
76                 group.getId(),
77                 group.isDefaultGroup(),
78                 group.getName(),
79                 group.getDescription(),
80                 null);
81
82         // replace the original set of Policies with the set from the container (possibly modified by the user)
83         Set<PDPPolicy> changedPolicies = new HashSet<>();
84         changedPolicies.addAll((Collection<PDPPolicy>) RemoveGroupPolicy.policyContainer.getItemIds());
85         updatedGroupObject.setPolicies(changedPolicies);
86         updatedGroupObject.setOnapPdps(this.group.getOnapPdps());
87
88         // replace the original set of PIP Configs with the set from the container
89         updatedGroupObject.setPipConfigs(this.group.getPipConfigs());
90
91         // copy those things that the user cannot change from the original to the new object
92         updatedGroupObject.setStatus(this.group.getStatus());
93
94         this.updatedObject = updatedGroupObject;
95     }
96
97     public boolean isRemoved() {
98         return this.isSaved;
99     }
100
101     public OnapPDPGroup getUpdatedObject() {
102         return this.updatedObject;
103     }
104
105 }