[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-be / lib / openecomp-core-lib / openecomp-zusammen-lib / openecomp-zusammen-plugin / src / main / java / org / openecomp / core / zusammen / plugin / main / CassandraCollaborationStorePluginImpl.java
1 /*
2  * Copyright © 2016-2017 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.openecomp.core.zusammen.plugin.main;
18
19 import com.amdocs.zusammen.commons.health.data.HealthInfo;
20 import com.amdocs.zusammen.commons.health.data.HealthStatus;
21 import com.amdocs.zusammen.datatypes.Id;
22 import com.amdocs.zusammen.datatypes.Namespace;
23 import com.amdocs.zusammen.datatypes.SessionContext;
24 import com.amdocs.zusammen.datatypes.item.ElementContext;
25 import com.amdocs.zusammen.datatypes.item.Info;
26 import com.amdocs.zusammen.datatypes.item.ItemVersionData;
27 import com.amdocs.zusammen.datatypes.itemversion.ItemVersionHistory;
28 import com.amdocs.zusammen.datatypes.itemversion.Tag;
29 import com.amdocs.zusammen.datatypes.response.Response;
30 import com.amdocs.zusammen.datatypes.response.ZusammenException;
31 import com.amdocs.zusammen.sdk.collaboration.CollaborationStore;
32 import com.amdocs.zusammen.sdk.collaboration.types.CollaborationElement;
33 import com.amdocs.zusammen.sdk.collaboration.types.CollaborationMergeChange;
34 import com.amdocs.zusammen.sdk.collaboration.types.CollaborationMergeResult;
35 import com.amdocs.zusammen.sdk.collaboration.types.CollaborationPublishResult;
36 import org.openecomp.core.zusammen.plugin.collaboration.ElementCollaborationStore;
37 import org.openecomp.core.zusammen.plugin.collaboration.VersionCollaborationStore;
38
39 import java.util.Collection;
40
41 public class CassandraCollaborationStorePluginImpl implements CollaborationStore {
42
43   private VersionCollaborationStore versionCollaborationStore = new VersionCollaborationStore();
44   private ElementCollaborationStore elementCollaborationStore = new ElementCollaborationStore();
45
46   @Override
47   public Response<Void> createItem(SessionContext context, Id id, Info info) {
48     // done by state store
49     return new Response(Void.TYPE);
50   }
51
52   @Override
53   public Response<Void> deleteItem(SessionContext context, Id id) {
54     // done by state store
55     return new Response(Void.TYPE);
56   }
57
58   @Override
59   public Response<Void> createItemVersion(SessionContext context, Id itemId, Id versionId, Id id2,
60                                           ItemVersionData itemVersionData) {
61     // done by state store
62     return new Response(Void.TYPE);
63   }
64
65   @Override
66   public Response<Void> updateItemVersion(SessionContext context, Id itemId, Id versionId,
67                                           ItemVersionData itemVersionData) {
68     // done by state store
69     return new Response(Void.TYPE);
70   }
71
72   @Override
73   public Response<Void> deleteItemVersion(SessionContext context, Id itemId, Id versionId) {
74     // done by state store
75     return new Response(Void.TYPE);
76   }
77
78   @Override
79   public Response<Void> tagItemVersion(SessionContext context, Id itemId, Id versionId, Id changeId,
80                                        Tag tag) {
81     versionCollaborationStore.tagItemVersion(context, itemId, versionId, changeId, tag);
82     return new Response(Void.TYPE);
83   }
84
85   @Override
86   public Response<CollaborationPublishResult> publishItemVersion(SessionContext context,
87                                                                  Id itemId, Id versionId,
88                                                                  String s) {
89     throw new UnsupportedOperationException("publishItemVersion");
90   }
91
92   @Override
93   public Response<CollaborationMergeResult> syncItemVersion(SessionContext context, Id id,
94                                                             Id id1) {
95     throw new UnsupportedOperationException("syncItemVersion");
96   }
97
98   @Override
99   public Response<CollaborationMergeResult> mergeItemVersion(SessionContext context, Id id,
100                                                              Id id1, Id id2) {
101     throw new UnsupportedOperationException("mergeItemVersion");
102   }
103
104   @Override
105   public Response<ItemVersionHistory> listItemVersionHistory(SessionContext context, Id id,
106                                                              Id id1) {
107     throw new UnsupportedOperationException("listItemVersionHistory");
108   }
109
110   @Override
111   public Response<CollaborationMergeChange> resetItemVersionHistory(SessionContext context,
112                                                                     Id itemId, Id versionId,
113                                                                     String changeRef) {
114     return new Response<>(versionCollaborationStore.resetItemVersionHistory(context, itemId, versionId, changeRef));
115   }
116
117   @Override
118   public Response<Collection<CollaborationElement>> listElements(SessionContext context,
119                                                                  ElementContext elementContext,
120                                                                  Namespace namespace,
121                                                                  Id elementId) {
122     return new Response<>(
123         elementCollaborationStore.listElements(context, elementContext, elementId));
124   }
125
126   @Override
127   public Response<CollaborationElement> getElement(SessionContext context,
128                                                    ElementContext elementContext,
129                                                    Namespace namespace, Id elementId) {
130     return new Response<>(elementCollaborationStore.getElement(context, elementContext, elementId));
131   }
132
133   @Override
134   public Response<Void> createElement(SessionContext context, CollaborationElement element) {
135     elementCollaborationStore.createElement(context, element);
136     return new Response(Void.TYPE);
137   }
138
139   @Override
140   public Response<Void> updateElement(SessionContext context, CollaborationElement element) {
141     elementCollaborationStore.updateElement(context, element);
142     return new Response(Void.TYPE);
143   }
144
145   @Override
146   public Response<Void> deleteElement(SessionContext context, CollaborationElement element) {
147     elementCollaborationStore.deleteElement(context, element);
148     return new Response(Void.TYPE);
149   }
150
151   @Override
152   public Response<Void> commitElements(SessionContext context, Id itemId, Id versionId, String s) {
153     // not needed
154     return new Response(Void.TYPE);
155   }
156
157   @Override
158   public Response<HealthInfo> checkHealth(SessionContext sessionContext) throws ZusammenException {
159
160     boolean health = elementCollaborationStore.checkHealth(sessionContext);
161     HealthInfo healthInfo ;
162     if (health){
163       healthInfo = new HealthInfo("Collaboration", HealthStatus.UP,"");
164     } else {
165       healthInfo = new HealthInfo("Collaboration", HealthStatus.DOWN,"No Schema Available");
166     }
167     return new Response<HealthInfo>(healthInfo);
168
169   }
170 }