diff options
author | Yuli Shlosberg <ys9693@att.com> | 2018-03-07 16:29:57 +0200 |
---|---|---|
committer | Yuli Shlosberg <ys9693@att.com> | 2018-03-08 14:23:18 +0200 |
commit | e8d8a37da95c6fea435e0b3e93a477b5aa45b9b1 (patch) | |
tree | 415c9e5643f051e792ee414d887f8fe996a2b372 /sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java | |
parent | 2f2d71255620b40e6021a54fe514783ebc2d5260 (diff) |
update distribution-client package namesv1.3.02.0.0-ONAPbeijing2.0.0-ONAP
Change-Id: Ic6f81bc8fdd3b021033c7c68e44f876a6ee1d21a
Issue-ID: SDC-952
Signed-off-by: Yuli Shlosberg <ys9693@att.com>
Diffstat (limited to 'sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java')
-rw-r--r-- | sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java new file mode 100644 index 0000000..d8c722d --- /dev/null +++ b/sdc-distribution-client/src/main/java/org/onap/sdc/impl/DistributionStatusMessageJsonBuilderFactory.java @@ -0,0 +1,148 @@ +/*- + * ============LICENSE_START======================================================= + * sdc-distribution-client + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.sdc.impl; + +import org.onap.sdc.api.IDistributionStatusMessageJsonBuilder; +import org.onap.sdc.api.consumer.IComponentDoneStatusMessage; +import org.onap.sdc.api.consumer.IDistributionStatusMessage; +import org.onap.sdc.api.consumer.IFinalDistrStatusMessage; +import org.onap.sdc.utils.DistributionStatusEnum; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class DistributionStatusMessageJsonBuilderFactory { + static Gson gson = new GsonBuilder().setPrettyPrinting().create(); + + public static IDistributionStatusMessageJsonBuilder getSimpleBuilder(IDistributionStatusMessage statusMessage){ + DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); + + return prepareBuilderFromImpl(message); + } + + public static IDistributionStatusMessageJsonBuilder getSimpleBuilder(IComponentDoneStatusMessage statusMessage){ + DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); + + return prepareBuilderFromImpl(message); + } + + public static IDistributionStatusMessageJsonBuilder getSimpleBuilder(IFinalDistrStatusMessage statusMessage){ + DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); + + return prepareBuilderFromImpl(message); + } + + public static IDistributionStatusMessageJsonBuilder getErrorReasonBuilder(IDistributionStatusMessage statusMessage, String errorReason){ + DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); + message.setErrorReason(errorReason); + + return prepareBuilderFromImpl(message); + } + + public static IDistributionStatusMessageJsonBuilder getErrorReasonBuilder(IComponentDoneStatusMessage statusMessage, + String errorReason) { + DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); + message.setErrorReason(errorReason); + return prepareBuilderFromImpl(message); + } + + public static IDistributionStatusMessageJsonBuilder getErrorReasonBuilder(IFinalDistrStatusMessage statusMessage, + String errorReason) { + DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); + message.setErrorReason(errorReason); + return prepareBuilderFromImpl(message); + } + + static IDistributionStatusMessageJsonBuilder prepareBuilderForNotificationStatus(final String consumerId, final long currentTimeMillis, final String distributionId, + final ArtifactInfoImpl artifactInfo, boolean isNotified){ + + final DistributionStatusEnum fakeStatusToReplace = DistributionStatusEnum.DOWNLOAD_OK; + final String jsonRequest = buildDistributionStatusJson(consumerId, currentTimeMillis, distributionId, artifactInfo, fakeStatusToReplace); + + DistributionStatusNotificationEnum notificationStatus = isNotified ? DistributionStatusNotificationEnum.NOTIFIED : DistributionStatusNotificationEnum.NOT_NOTIFIED; + final String changedRequest = jsonRequest.replace(fakeStatusToReplace.name(), notificationStatus.name()); + IDistributionStatusMessageJsonBuilder builder = new IDistributionStatusMessageJsonBuilder() { + @Override + public String build() { + return changedRequest; + } + }; + return builder; + + } + + private static String buildDistributionStatusJson(final String consumerId, + final long currentTimeMillis, final String distributionId, + final ArtifactInfoImpl artifactInfo, + final DistributionStatusEnum fakeStatusToBeReplaced) { + IDistributionStatusMessage statusMessage = new IDistributionStatusMessage() { + @Override + public long getTimestamp() { + return currentTimeMillis; + } + + @Override + public DistributionStatusEnum getStatus() { + + return fakeStatusToBeReplaced; + } + + @Override + public String getDistributionID() { + return distributionId; + } + + @Override + public String getConsumerID() { + return consumerId; + } + + @Override + public String getArtifactURL() { + return artifactInfo.getArtifactURL(); + } + }; + + DistributionStatusMessageImpl message = new DistributionStatusMessageImpl(statusMessage); + final String jsonRequest = gson.toJson(message); + return jsonRequest; + } + + private static IDistributionStatusMessageJsonBuilder prepareBuilderFromImpl( DistributionStatusMessageImpl message) { + final String jsonRequest = gson.toJson(message); + IDistributionStatusMessageJsonBuilder builder = new IDistributionStatusMessageJsonBuilder() { + @Override + public String build() { + return jsonRequest; + } + }; + return builder; + } + + private enum DistributionStatusNotificationEnum { + NOTIFIED, NOT_NOTIFIED + } + + + + + +} |