1 package org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.guami;
2 import com.google.common.base.MoreObjects;
3 import com.google.common.collect.ImmutableMap;
4 import java.lang.Class;
5 import java.lang.Object;
6 import java.lang.Override;
7 import java.lang.String;
8 import java.lang.SuppressWarnings;
9 import java.util.Collections;
10 import java.util.HashMap;
12 import java.util.Objects;
13 import org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.TAMFPointer;
14 import org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.TAMFRegionId;
15 import org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.TAMFSetId;
16 import org.opendaylight.yangtools.concepts.Builder;
17 import org.opendaylight.yangtools.yang.binding.Augmentation;
18 import org.opendaylight.yangtools.yang.binding.AugmentationHolder;
19 import org.opendaylight.yangtools.yang.binding.CodeHelpers;
20 import org.opendaylight.yangtools.yang.binding.DataObject;
23 * Class that builds {@link AmfIdBuilder} instances.
28 public class AmfIdBuilder implements Builder<AmfId> {
30 private TAMFPointer _aMFPointer;
31 private TAMFRegionId _aMFRegionId;
32 private TAMFSetId _aMFSetId;
35 Map<Class<? extends Augmentation<AmfId>>, Augmentation<AmfId>> augmentation = Collections.emptyMap();
37 public AmfIdBuilder() {
39 public AmfIdBuilder(org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.AMFIdentifier arg) {
40 this._aMFRegionId = arg.getAMFRegionId();
41 this._aMFSetId = arg.getAMFSetId();
42 this._aMFPointer = arg.getAMFPointer();
45 public AmfIdBuilder(AmfId base) {
46 this._aMFPointer = base.getAMFPointer();
47 this._aMFRegionId = base.getAMFRegionId();
48 this._aMFSetId = base.getAMFSetId();
49 if (base instanceof AmfIdImpl) {
50 AmfIdImpl impl = (AmfIdImpl) base;
51 if (!impl.augmentation.isEmpty()) {
52 this.augmentation = new HashMap<>(impl.augmentation);
54 } else if (base instanceof AugmentationHolder) {
55 @SuppressWarnings("unchecked")
56 Map<Class<? extends Augmentation<AmfId>>, Augmentation<AmfId>> aug =((AugmentationHolder<AmfId>) base).augmentations();
58 this.augmentation = new HashMap<>(aug);
64 * Set fields from given grouping argument. Valid argument is instance of one of following types:
66 * <li>org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.AMFIdentifier</li>
69 * @param arg grouping object
70 * @throws IllegalArgumentException if given argument is none of valid types
72 public void fieldsFrom(DataObject arg) {
73 boolean isValidArg = false;
74 if (arg instanceof org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.AMFIdentifier) {
75 this._aMFRegionId = ((org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.AMFIdentifier)arg).getAMFRegionId();
76 this._aMFSetId = ((org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.AMFIdentifier)arg).getAMFSetId();
77 this._aMFPointer = ((org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.AMFIdentifier)arg).getAMFPointer();
80 CodeHelpers.validValue(isValidArg, arg, "[org.opendaylight.yang.gen.v1.urn._3gpp.tsg.sa5.nrm.types.rev180731.AMFIdentifier]");
83 public TAMFPointer getAMFPointer() {
87 public TAMFRegionId getAMFRegionId() {
91 public TAMFSetId getAMFSetId() {
95 @SuppressWarnings({ "unchecked", "checkstyle:methodTypeParameterName"})
96 public <E$$ extends Augmentation<AmfId>> E$$ augmentation(Class<E$$> augmentationType) {
97 return (E$$) augmentation.get(CodeHelpers.nonNullValue(augmentationType, "augmentationType"));
101 public AmfIdBuilder setAMFPointer(final TAMFPointer value) {
102 this._aMFPointer = value;
106 public AmfIdBuilder setAMFRegionId(final TAMFRegionId value) {
107 this._aMFRegionId = value;
111 public AmfIdBuilder setAMFSetId(final TAMFSetId value) {
112 this._aMFSetId = value;
116 public AmfIdBuilder addAugmentation(Class<? extends Augmentation<AmfId>> augmentationType, Augmentation<AmfId> augmentationValue) {
117 if (augmentationValue == null) {
118 return removeAugmentation(augmentationType);
121 if (!(this.augmentation instanceof HashMap)) {
122 this.augmentation = new HashMap<>();
125 this.augmentation.put(augmentationType, augmentationValue);
129 public AmfIdBuilder removeAugmentation(Class<? extends Augmentation<AmfId>> augmentationType) {
130 if (this.augmentation instanceof HashMap) {
131 this.augmentation.remove(augmentationType);
137 public AmfId build() {
138 return new AmfIdImpl(this);
141 private static final class AmfIdImpl implements AmfId {
143 private final TAMFPointer _aMFPointer;
144 private final TAMFRegionId _aMFRegionId;
145 private final TAMFSetId _aMFSetId;
147 private Map<Class<? extends Augmentation<AmfId>>, Augmentation<AmfId>> augmentation = Collections.emptyMap();
149 AmfIdImpl(AmfIdBuilder base) {
150 this._aMFPointer = base.getAMFPointer();
151 this._aMFRegionId = base.getAMFRegionId();
152 this._aMFSetId = base.getAMFSetId();
153 this.augmentation = ImmutableMap.copyOf(base.augmentation);
157 public Class<AmfId> getImplementedInterface() {
162 public TAMFPointer getAMFPointer() {
167 public TAMFRegionId getAMFRegionId() {
172 public TAMFSetId getAMFSetId() {
176 @SuppressWarnings({ "unchecked", "checkstyle:methodTypeParameterName"})
178 public <E$$ extends Augmentation<AmfId>> E$$ augmentation(Class<E$$> augmentationType) {
179 return (E$$) augmentation.get(CodeHelpers.nonNullValue(augmentationType, "augmentationType"));
182 private int hash = 0;
183 private volatile boolean hashValid = false;
186 public int hashCode() {
191 final int prime = 31;
193 result = prime * result + Objects.hashCode(_aMFPointer);
194 result = prime * result + Objects.hashCode(_aMFRegionId);
195 result = prime * result + Objects.hashCode(_aMFSetId);
196 result = prime * result + Objects.hashCode(augmentation);
204 public boolean equals(Object obj) {
208 if (!(obj instanceof DataObject)) {
211 if (!AmfId.class.equals(((DataObject)obj).getImplementedInterface())) {
214 AmfId other = (AmfId)obj;
215 if (!Objects.equals(_aMFPointer, other.getAMFPointer())) {
218 if (!Objects.equals(_aMFRegionId, other.getAMFRegionId())) {
221 if (!Objects.equals(_aMFSetId, other.getAMFSetId())) {
224 if (getClass() == obj.getClass()) {
225 // Simple case: we are comparing against self
226 AmfIdImpl otherImpl = (AmfIdImpl) obj;
227 if (!Objects.equals(augmentation, otherImpl.augmentation)) {
231 // Hard case: compare our augments with presence there...
232 for (Map.Entry<Class<? extends Augmentation<AmfId>>, Augmentation<AmfId>> e : augmentation.entrySet()) {
233 if (!e.getValue().equals(other.augmentation(e.getKey()))) {
237 // .. and give the other one the chance to do the same
238 if (!obj.equals(this)) {
246 public String toString() {
247 final MoreObjects.ToStringHelper helper = MoreObjects.toStringHelper("AmfId");
248 CodeHelpers.appendValue(helper, "_aMFPointer", _aMFPointer);
249 CodeHelpers.appendValue(helper, "_aMFRegionId", _aMFRegionId);
250 CodeHelpers.appendValue(helper, "_aMFSetId", _aMFSetId);
251 CodeHelpers.appendValue(helper, "augmentation", augmentation.values());
252 return helper.toString();