1 package org.opendaylight.yangtools.sal.java.api.generator
\r
3 import java.util.List
\r
5 import org.opendaylight.yangtools.binding.generator.util.TypeConstants
\r
6 import org.opendaylight.yangtools.sal.binding.model.api.Constant
\r
7 import org.opendaylight.yangtools.sal.binding.model.api.Enumeration
\r
8 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty
\r
9 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedTransferObject
\r
10 import org.opendaylight.yangtools.sal.binding.model.api.Type
\r
11 import org.opendaylight.yangtools.binding.generator.util.Types
\r
12 import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType
\r
16 * Template for generating JAVA class.
\r
18 class UnionTemplate extends ClassTemplate {
\r
23 * Creates instance of this class with concrete <code>genType</code>.
\r
25 * @param genType generated transfer object which will be transformed to JAVA class source code
\r
27 new(GeneratedTransferObject genType) {
\r
34 override constructors() '''
\r
36 «IF !allProperties.empty»
\r
39 «IF properties.empty && !parentProperties.empty »
\r
45 def unionConstructors() '''
\r
46 «FOR property : finalProperties SEPARATOR "\n"»
\r
47 «val propertyAndTopParentProperties = parentProperties + #[property]»
\r
48 public «type.name»(«propertyAndTopParentProperties.asArgumentsDeclaration») {
\r
49 super(«parentProperties.asArguments»);
\r
50 this.«property.fieldName» = «property.fieldName»;
\r
51 «FOR other : finalProperties»
\r
52 «IF property != other»this.«other.fieldName» = null;«ENDIF»
\r