f28eb1a8bd422a7c27a2f310bff7b128f1714d8d
[ccsdk/sli.git] /
1 package org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input;
2 import org.opendaylight.yangtools.yang.binding.Augmentation;
3 import org.opendaylight.yangtools.yang.binding.AugmentationHolder;
4 import org.opendaylight.yangtools.yang.binding.DataObject;
5 import java.util.HashMap;
6 import org.opendaylight.yangtools.concepts.Builder;
7 import java.util.Objects;
8 import java.util.Collections;
9 import java.util.Map;
10
11 /**
12  * Class that builds {@link org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter} instances.
13  *
14  * @see org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter
15  *
16  */
17 public class SliParameterBuilder implements Builder<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter> {
18
19     private java.lang.Integer _intValue;
20     private SliParameterKey _key;
21     private java.lang.String _parameterName;
22     private java.lang.String _stringValue;
23     private java.lang.Boolean _booleanValue;
24
25     Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>>, Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> augmentation = Collections.emptyMap();
26
27     public SliParameterBuilder() {
28     }
29     public SliParameterBuilder(org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting arg) {
30         this._parameterName = arg.getParameterName();
31         this._intValue = arg.getIntValue();
32         this._stringValue = arg.getStringValue();
33         this._booleanValue = arg.isBooleanValue();
34     }
35
36     public SliParameterBuilder(SliParameter base) {
37         if (base.getKey() == null) {
38             this._key = new SliParameterKey(
39                 base.getParameterName()
40             );
41             this._parameterName = base.getParameterName();
42         } else {
43             this._key = base.getKey();
44             this._parameterName = _key.getParameterName();
45         }
46         this._intValue = base.getIntValue();
47         this._stringValue = base.getStringValue();
48         this._booleanValue = base.isBooleanValue();
49         if (base instanceof SliParameterImpl) {
50             SliParameterImpl impl = (SliParameterImpl) base;
51             if (!impl.augmentation.isEmpty()) {
52                 this.augmentation = new HashMap<>(impl.augmentation);
53             }
54         } else if (base instanceof AugmentationHolder) {
55             @SuppressWarnings("unchecked")
56             AugmentationHolder<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter> casted =(AugmentationHolder<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>) base;
57             if (!casted.augmentations().isEmpty()) {
58                 this.augmentation = new HashMap<>(casted.augmentations());
59             }
60         }
61     }
62
63     /**
64      *Set fields from given grouping argument. Valid argument is instance of one of following types:
65      * <ul>
66      * <li>org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting</li>
67      * </ul>
68      *
69      * @param arg grouping object
70      * @throws IllegalArgumentException if given argument is none of valid types
71     */
72     public void fieldsFrom(DataObject arg) {
73         boolean isValidArg = false;
74         if (arg instanceof org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting) {
75             this._parameterName = ((org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting)arg).getParameterName();
76             this._intValue = ((org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting)arg).getIntValue();
77             this._stringValue = ((org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting)arg).getStringValue();
78             this._booleanValue = ((org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting)arg).isBooleanValue();
79             isValidArg = true;
80         }
81         if (!isValidArg) {
82             throw new IllegalArgumentException(
83               "expected one of: [org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.ParameterSetting] \n" +
84               "but was: " + arg
85             );
86         }
87     }
88
89     public java.lang.Integer getIntValue() {
90         return _intValue;
91     }
92     
93     public SliParameterKey getKey() {
94         return _key;
95     }
96     
97     public java.lang.String getParameterName() {
98         return _parameterName;
99     }
100     
101     public java.lang.String getStringValue() {
102         return _stringValue;
103     }
104     
105     public java.lang.Boolean isBooleanValue() {
106         return _booleanValue;
107     }
108     
109     @SuppressWarnings("unchecked")
110     public <E extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> E getAugmentation(java.lang.Class<E> augmentationType) {
111         if (augmentationType == null) {
112             throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
113         }
114         return (E) augmentation.get(augmentationType);
115     }
116
117      
118     public SliParameterBuilder setIntValue(final java.lang.Integer value) {
119         this._intValue = value;
120         return this;
121     }
122     
123      
124     public SliParameterBuilder setKey(final SliParameterKey value) {
125         this._key = value;
126         return this;
127     }
128     
129      
130     public SliParameterBuilder setParameterName(final java.lang.String value) {
131         this._parameterName = value;
132         return this;
133     }
134     
135      
136     public SliParameterBuilder setStringValue(final java.lang.String value) {
137         this._stringValue = value;
138         return this;
139     }
140     
141      
142     public SliParameterBuilder setBooleanValue(final java.lang.Boolean value) {
143         this._booleanValue = value;
144         return this;
145     }
146     
147     public SliParameterBuilder addAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> augmentationType, Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter> augmentation) {
148         if (augmentation == null) {
149             return removeAugmentation(augmentationType);
150         }
151     
152         if (!(this.augmentation instanceof HashMap)) {
153             this.augmentation = new HashMap<>();
154         }
155     
156         this.augmentation.put(augmentationType, augmentation);
157         return this;
158     }
159     
160     public SliParameterBuilder removeAugmentation(java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> augmentationType) {
161         if (this.augmentation instanceof HashMap) {
162             this.augmentation.remove(augmentationType);
163         }
164         return this;
165     }
166
167     @Override
168     public SliParameter build() {
169         return new SliParameterImpl(this);
170     }
171
172     private static final class SliParameterImpl implements SliParameter {
173
174         @Override
175         public java.lang.Class<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter> getImplementedInterface() {
176             return org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter.class;
177         }
178
179         private final java.lang.Integer _intValue;
180         private final SliParameterKey _key;
181         private final java.lang.String _parameterName;
182         private final java.lang.String _stringValue;
183         private final java.lang.Boolean _booleanValue;
184
185         private Map<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>>, Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> augmentation = Collections.emptyMap();
186
187         private SliParameterImpl(SliParameterBuilder base) {
188             if (base.getKey() == null) {
189                 this._key = new SliParameterKey(
190                     base.getParameterName()
191                 );
192                 this._parameterName = base.getParameterName();
193             } else {
194                 this._key = base.getKey();
195                 this._parameterName = _key.getParameterName();
196             }
197             this._intValue = base.getIntValue();
198             this._stringValue = base.getStringValue();
199             this._booleanValue = base.isBooleanValue();
200             switch (base.augmentation.size()) {
201             case 0:
202                 this.augmentation = Collections.emptyMap();
203                 break;
204             case 1:
205                 final Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>>, Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> e = base.augmentation.entrySet().iterator().next();
206                 this.augmentation = Collections.<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>>, Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>>singletonMap(e.getKey(), e.getValue());
207                 break;
208             default :
209                 this.augmentation = new HashMap<>(base.augmentation);
210             }
211         }
212
213         @Override
214         public java.lang.Integer getIntValue() {
215             return _intValue;
216         }
217         
218         @Override
219         public SliParameterKey getKey() {
220             return _key;
221         }
222         
223         @Override
224         public java.lang.String getParameterName() {
225             return _parameterName;
226         }
227         
228         @Override
229         public java.lang.String getStringValue() {
230             return _stringValue;
231         }
232         
233         @Override
234         public java.lang.Boolean isBooleanValue() {
235             return _booleanValue;
236         }
237         
238         @SuppressWarnings("unchecked")
239         @Override
240         public <E extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> E getAugmentation(java.lang.Class<E> augmentationType) {
241             if (augmentationType == null) {
242                 throw new IllegalArgumentException("Augmentation Type reference cannot be NULL!");
243             }
244             return (E) augmentation.get(augmentationType);
245         }
246
247         private int hash = 0;
248         private volatile boolean hashValid = false;
249         
250         @Override
251         public int hashCode() {
252             if (hashValid) {
253                 return hash;
254             }
255         
256             final int prime = 31;
257             int result = 1;
258             result = prime * result + Objects.hashCode(_intValue);
259             result = prime * result + Objects.hashCode(_key);
260             result = prime * result + Objects.hashCode(_parameterName);
261             result = prime * result + Objects.hashCode(_stringValue);
262             result = prime * result + Objects.hashCode(_booleanValue);
263             result = prime * result + Objects.hashCode(augmentation);
264         
265             hash = result;
266             hashValid = true;
267             return result;
268         }
269
270         @Override
271         public boolean equals(java.lang.Object obj) {
272             if (this == obj) {
273                 return true;
274             }
275             if (!(obj instanceof DataObject)) {
276                 return false;
277             }
278             if (!org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter.class.equals(((DataObject)obj).getImplementedInterface())) {
279                 return false;
280             }
281             org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter other = (org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter)obj;
282             if (!Objects.equals(_intValue, other.getIntValue())) {
283                 return false;
284             }
285             if (!Objects.equals(_key, other.getKey())) {
286                 return false;
287             }
288             if (!Objects.equals(_parameterName, other.getParameterName())) {
289                 return false;
290             }
291             if (!Objects.equals(_stringValue, other.getStringValue())) {
292                 return false;
293             }
294             if (!Objects.equals(_booleanValue, other.isBooleanValue())) {
295                 return false;
296             }
297             if (getClass() == obj.getClass()) {
298                 // Simple case: we are comparing against self
299                 SliParameterImpl otherImpl = (SliParameterImpl) obj;
300                 if (!Objects.equals(augmentation, otherImpl.augmentation)) {
301                     return false;
302                 }
303             } else {
304                 // Hard case: compare our augments with presence there...
305                 for (Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>>, Augmentation<org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.core.sliapi.rev161110.execute.graph.input.SliParameter>> e : augmentation.entrySet()) {
306                     if (!e.getValue().equals(other.getAugmentation(e.getKey()))) {
307                         return false;
308                     }
309                 }
310                 // .. and give the other one the chance to do the same
311                 if (!obj.equals(this)) {
312                     return false;
313                 }
314             }
315             return true;
316         }
317
318         @Override
319         public java.lang.String toString() {
320             java.lang.String name = "SliParameter [";
321             java.lang.StringBuilder builder = new java.lang.StringBuilder (name);
322             if (_intValue != null) {
323                 builder.append("_intValue=");
324                 builder.append(_intValue);
325                 builder.append(", ");
326             }
327             if (_key != null) {
328                 builder.append("_key=");
329                 builder.append(_key);
330                 builder.append(", ");
331             }
332             if (_parameterName != null) {
333                 builder.append("_parameterName=");
334                 builder.append(_parameterName);
335                 builder.append(", ");
336             }
337             if (_stringValue != null) {
338                 builder.append("_stringValue=");
339                 builder.append(_stringValue);
340                 builder.append(", ");
341             }
342             if (_booleanValue != null) {
343                 builder.append("_booleanValue=");
344                 builder.append(_booleanValue);
345             }
346             final int builderLength = builder.length();
347             final int builderAdditionalLength = builder.substring(name.length(), builderLength).length();
348             if (builderAdditionalLength > 2 && !builder.substring(builderLength - 2, builderLength).equals(", ")) {
349                 builder.append(", ");
350             }
351             builder.append("augmentation=");
352             builder.append(augmentation.values());
353             return builder.append(']').toString();
354         }
355     }
356
357 }