2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 @import org.opendaylight.mdsal.binding.javav2.generator.util.Types.getOuterClassName
10 @import org.opendaylight.mdsal.binding.javav2.java.api.generator.util.TextTemplateUtil.fieldName
11 @import org.opendaylight.mdsal.binding.javav2.java.api.generator.util.TextTemplateUtil.asArguments
12 @import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedType
13 @import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedProperty
15 @(baseType: GeneratedType, importedNames: Map[String, String], finalProperties: List[GeneratedProperty],
16 parentProperties: List[GeneratedProperty], properties: List[GeneratedProperty], propertyList: String)
17 @for(property <- parentProperties) {
18 public @{baseType.getName}(@{importedNames.get(property.getName)} @{fieldName(property)}) {
19 super(@{fieldName(property)});
23 @for(property <- finalProperties) {
24 @*TO DO parentProperties + #[property] as argument to method below see unionTemplate 84 *@
25 public @{baseType.getName}(@{importedNames.get(property.getName)} @{fieldName(property)}) {
27 this.@{fieldName(property)} = @{fieldName(property)};
28 @for(otherProperty <- finalProperties) {
29 @if(property != otherProperty && !"value".equals(otherProperty.getName)) {
30 this.@{fieldName(otherProperty)} = null;
36 @for(property <- properties) {
37 @if("char[]".equals(property.getReturnType.getName)) {
39 * Constructor provided only for using in JMX. Don't use it for
40 * construction new object of this union type.
42 @@@{importedNames.get("constructorProperties")}("@{property.getName}")
43 public @{baseType.getName}(@{importedNames.get(property.getName)} @{fieldName(property)}) {
44 @{importedNames.get("string")} defVal = new @{importedNames.get("string")}(@{fieldName(property)});
45 @{baseType.getName} defInst = @{typeBuilder}.getDefaultInstance(defVal);
46 @for(otherProperty <- finalProperties) {
47 this.@{fieldName(otherProperty)} = defInst.@{fieldName(otherProperty)};
50 this.@{fieldName(property)} = @{fieldName(property)} == null ? null : @{fieldName(property)}.clone();
56 * Creates a copy from Source Object.
58 * @@param source Source object
60 public @{baseType.getName}(@{baseType.getName} source) {
61 @if(!parentProperties.isEmpty()) {
68 @if(properties.isEmpty && !parentProperties.isEmpty) {
70 * Creates a new instance from @{importedNames.get("superType")}
72 * @@param source Source object
74 public @{baseType.getName}(@{importedNames.get("superType")} source) {
80 @if(getOuterClassName(baseType) != null) {
81 @{getOuterClassName(baseType)}@{baseType.getName}Builder
83 @{baseType.getName}Builder