From 25245136c711cb4b1ed3c8e351a79e3572512434 Mon Sep 17 00:00:00 2001 From: Michal Kabaj Date: Fri, 19 Jul 2019 12:12:28 +0200 Subject: Pnf pojo improvements - added builder - immutable - improved json serialization Change-Id: If0c9128dfd27d1c04e2f8683bade16700789276e Issue-ID: VID-478 Signed-off-by: Michal Kabaj --- .../org/onap/vid/aai/model/AaiGetPnfs/Pnf.java | 131 ++++++++++++++------- 1 file changed, 86 insertions(+), 45 deletions(-) (limited to 'vid-app-common/src/main/java') diff --git a/vid-app-common/src/main/java/org/onap/vid/aai/model/AaiGetPnfs/Pnf.java b/vid-app-common/src/main/java/org/onap/vid/aai/model/AaiGetPnfs/Pnf.java index e9d8c6498..2d5456311 100644 --- a/vid-app-common/src/main/java/org/onap/vid/aai/model/AaiGetPnfs/Pnf.java +++ b/vid-app-common/src/main/java/org/onap/vid/aai/model/AaiGetPnfs/Pnf.java @@ -3,13 +3,14 @@ * VID * ================================================================================ * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019 Nokia. * ================================================================================ * 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. @@ -21,77 +22,117 @@ package org.onap.vid.aai.model.AaiGetPnfs; import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.onap.vid.aai.model.AaiRelationResponse; @JsonIgnoreProperties(ignoreUnknown = true) -public class Pnf extends AaiRelationResponse { +public final class Pnf extends AaiRelationResponse { + + private final String pnfId; + private final String pnfName; + private final String pnfName2; + private final String pnfName2Source; + private final String equipType; + private final String equipVendor; + private final String equipModel; + + @JsonCreator + public Pnf( + @JsonAlias("pnf-id") String pnfId, @JsonAlias("pnf-name") String pnfName, + @JsonAlias("pnf-name2") String pnfName2, @JsonAlias("pnf-name2-source") String pnfName2Source, + @JsonAlias("equip-type") String equipType, @JsonAlias("equip-vendor") String equipVendor, + @JsonAlias("equip-model") String equipModel) { - private String pnfName; - private String pnfName2; - private String pnfName2Source; - private String pnfId; - private String equipType; - private String equipVendor; - private String equipModel; - - public String getPnfName() { - return pnfName; - } - - @JsonAlias("pnf-name") - public void setPnfName(String pnfName) { + this.pnfId = pnfId; this.pnfName = pnfName; + this.pnfName2 = pnfName2; + this.pnfName2Source = pnfName2Source; + this.equipType = equipType; + this.equipVendor = equipVendor; + this.equipModel = equipModel; } - public String getEquipType() { - return equipType; - } - - @JsonAlias("equip-type") - public void setEquipType(String equipType) { - this.equipType = equipType; + public static Builder builder() { + return new Builder(); } - public String getEquipVendor() { - return equipVendor; + public String getPnfId() { + return pnfId; } - @JsonAlias("equip-vendor") - public void setEquipVendor(String equipVendor) { - this.equipVendor = equipVendor; + public String getPnfName() { + return pnfName; } public String getPnfName2() { return pnfName2; } - @JsonAlias("pnf-name2") - public void setPnfName2(String pnfName2) { - this.pnfName2 = pnfName2; + public String getPnfName2Source() { + return pnfName2Source; } - public String getPnfId() { - return pnfId; + public String getEquipType() { + return equipType; } - @JsonAlias("pnf-id") - public void setPnfId(String pnfId) { - this.pnfId = pnfId; + public String getEquipVendor() { + return equipVendor; } public String getEquipModel() { return equipModel; } - @JsonAlias("equip-model") - public void setEquipModel(String equipModel) { - this.equipModel = equipModel; + public static class Builder { + + private String pnfId; + private String pnfName; + private String pnfName2; + private String pnfName2Source; + private String equipType; + private String equipVendor; + private String equipModel; + + public Builder withPnfId(String pnfId) { + this.pnfId = pnfId; + return this; + } + + public Builder withPnfName(String pnfName) { + this.pnfName = pnfName; + return this; + } + + public Builder withPnfName2(String pnfName2) { + this.pnfName2 = pnfName2; + return this; + } + + public Builder withPnfName2Source(String pnfName2Source) { + this.pnfName2Source = pnfName2Source; + return this; + } + + public Builder withEquipType(String equipType) { + this.equipType = equipType; + return this; + } + + public Builder withEquipVendor(String equipVendor) { + this.equipVendor = equipVendor; + return this; + } + + public Builder withEquipModel(String equipModel) { + this.equipModel = equipModel; + return this; + } + + public Pnf build() { + return new Pnf(pnfId, pnfName, pnfName2, pnfName2Source, equipType, equipVendor, equipModel); + } } - - public String getPnfName2Source() { return pnfName2Source; } - - @JsonAlias("pnf-name2-source") - public void setPnfName2Source(String pnfName2Source) { this.pnfName2Source = pnfName2Source; } } -- cgit 1.2.3-korg