From cec9b3deab76cc7f69ef03fc7fb538f386581f4b Mon Sep 17 00:00:00 2001 From: kurczews Date: Mon, 25 Mar 2019 09:36:25 +0100 Subject: Support for BBS logical link Issue-ID: DCAEGEN2-1362 Change-Id: I9dbe7c941d9b48e0cac16be9d3410855c51ef4b0 Signed-off-by: kurczews --- .../services/prh/model/bbs/LogicalLink.java | 40 ++++++++++++++++++++++ .../services/prh/model/bbs/Relationship.java | 32 +++++++++++++++++ .../prh/model/bbs/RelationshipWrapper.java | 32 +++++++++++++++++ .../services/prh/model/utils/GsonSerializer.java | 37 ++++++++++++++++++++ 4 files changed, 141 insertions(+) create mode 100644 prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/LogicalLink.java create mode 100644 prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/Relationship.java create mode 100644 prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/RelationshipWrapper.java create mode 100644 prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/utils/GsonSerializer.java (limited to 'prh-commons') diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/LogicalLink.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/LogicalLink.java new file mode 100644 index 00000000..23f0e9bb --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/LogicalLink.java @@ -0,0 +1,40 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2019 NOKIA 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.dcaegen2.services.prh.model.bbs; + +import com.google.gson.annotations.SerializedName; +import java.util.List; +import org.immutables.gson.Gson; +import org.immutables.value.Value; +import org.onap.dcaegen2.services.sdk.rest.services.model.ClientModel; + +@Value.Immutable +@Gson.TypeAdapters(fieldNamingStrategy = true) +public interface LogicalLink extends ClientModel { + + @SerializedName(value = "link-name") + String getLinkName(); + + @SerializedName(value = "link-type") + String getLinkType(); + + @SerializedName(value = "relationship-list") + List getRelationshipList(); +} diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/Relationship.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/Relationship.java new file mode 100644 index 00000000..17eb600a --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/Relationship.java @@ -0,0 +1,32 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2019 NOKIA 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.dcaegen2.services.prh.model.bbs; + +import com.google.gson.annotations.SerializedName; +import org.immutables.gson.Gson; +import org.immutables.value.Value; + +@Value.Immutable +@Gson.TypeAdapters(fieldNamingStrategy = true) +public interface Relationship { + + @SerializedName(value = "related-link") + String getRelatedLink(); +} diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/RelationshipWrapper.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/RelationshipWrapper.java new file mode 100644 index 00000000..b6e1bad5 --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/bbs/RelationshipWrapper.java @@ -0,0 +1,32 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2019 NOKIA 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.dcaegen2.services.prh.model.bbs; + +import com.google.gson.annotations.SerializedName; +import org.immutables.gson.Gson; +import org.immutables.value.Value; + +@Value.Immutable +@Gson.TypeAdapters(fieldNamingStrategy = true) +public interface RelationshipWrapper { + + @SerializedName(value = "relationship") + Relationship getRelationship(); +} diff --git a/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/utils/GsonSerializer.java b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/utils/GsonSerializer.java new file mode 100644 index 00000000..9b6a7e60 --- /dev/null +++ b/prh-commons/src/main/java/org/onap/dcaegen2/services/prh/model/utils/GsonSerializer.java @@ -0,0 +1,37 @@ +/* + * ============LICENSE_START======================================================= + * PNF-REGISTRATION-HANDLER + * ================================================================================ + * Copyright (C) 2019 NOKIA 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.dcaegen2.services.prh.model.utils; + +import com.google.gson.GsonBuilder; +import com.google.gson.TypeAdapterFactory; +import java.util.ServiceLoader; + +public class GsonSerializer { + + private GsonSerializer() { + } + + public static String createJsonBody(T type) { + GsonBuilder gsonBuilder = new GsonBuilder(); + ServiceLoader.load(TypeAdapterFactory.class).forEach(gsonBuilder::registerTypeAdapterFactory); + return gsonBuilder.create().toJson(type); + } +} \ No newline at end of file -- cgit 1.2.3-korg