6182b7d47f508426c4a86257678f2d30425e26eb
[sdc/sdc-distribution-client.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * sdc-distribution-client
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.sdc.impl;
22
23 import org.onap.sdc.api.IDistributionStatusMessageJsonBuilder;
24 import org.onap.sdc.api.consumer.IComponentDoneStatusMessage;
25 import org.onap.sdc.api.consumer.IDistributionStatusMessage;
26 import org.onap.sdc.api.consumer.IFinalDistrStatusMessage;
27 import org.onap.sdc.utils.DistributionStatusEnum;
28
29 import com.google.gson.Gson;
30 import com.google.gson.GsonBuilder;
31
32 public class DistributionStatusMessageJsonBuilderFactory {
33     private static Gson gson = new GsonBuilder().setPrettyPrinting().create();
34
35     private DistributionStatusMessageJsonBuilderFactory() {
36     }
37
38     public static IDistributionStatusMessageJsonBuilder getSimpleBuilder(IDistributionStatusMessage statusMessage) {
39         DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage);
40
41         return prepareBuilderFromImpl(message);
42     }
43
44     public static IDistributionStatusMessageJsonBuilder getSimpleBuilder(IComponentDoneStatusMessage statusMessage) {
45         DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage);
46
47         return prepareBuilderFromImpl(message);
48     }
49
50     public static IDistributionStatusMessageJsonBuilder getSimpleBuilder(IFinalDistrStatusMessage statusMessage) {
51         DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage);
52
53         return prepareBuilderFromImpl(message);
54     }
55
56     public static IDistributionStatusMessageJsonBuilder getErrorReasonBuilder(IDistributionStatusMessage statusMessage, String errorReason) {
57         DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage);
58         message.setErrorReason(errorReason);
59
60         return prepareBuilderFromImpl(message);
61     }
62
63     public static IDistributionStatusMessageJsonBuilder getErrorReasonBuilder(IComponentDoneStatusMessage statusMessage,
64                                                                               String errorReason) {
65         DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage);
66         message.setErrorReason(errorReason);
67         return prepareBuilderFromImpl(message);
68     }
69
70     public static IDistributionStatusMessageJsonBuilder getErrorReasonBuilder(IFinalDistrStatusMessage statusMessage,
71                                                                               String errorReason) {
72         DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage);
73         message.setErrorReason(errorReason);
74         return prepareBuilderFromImpl(message);
75     }
76
77     static IDistributionStatusMessageJsonBuilder prepareBuilderForNotificationStatus(String consumerId,
78                                                                                      long currentTimeMillis,
79                                                                                      String distributionId,
80                                                                                      String artifactUrl,
81                                                                                      DistributionStatusEnum distributionStatus) {
82         final String jsonRequest = buildDistributionStatusJson(consumerId, currentTimeMillis, distributionId, artifactUrl, distributionStatus);
83
84         return () -> jsonRequest;
85     }
86
87     private static String buildDistributionStatusJson(String consumerId,
88                                                       long currentTimeMillis, String distributionId,
89                                                       String artifactUrl,
90                                                       DistributionStatusEnum fakeStatusToBeReplaced) {
91         IDistributionStatusMessage statusMessage = new IDistributionStatusMessage() {
92             @Override
93             public long getTimestamp() {
94                 return currentTimeMillis;
95             }
96
97             @Override
98             public DistributionStatusEnum getStatus() {
99
100                 return fakeStatusToBeReplaced;
101             }
102
103             @Override
104             public String getDistributionID() {
105                 return distributionId;
106             }
107
108             @Override
109             public String getConsumerID() {
110                 return consumerId;
111             }
112
113             @Override
114             public String getArtifactURL() {
115                 return artifactUrl;
116             }
117         };
118
119         DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage);
120         return gson.toJson(message);
121     }
122
123     private static IDistributionStatusMessageJsonBuilder prepareBuilderFromImpl(DistributionStatusMessageImpl message) {
124         return () -> gson.toJson(message);
125     }
126 }