@import org.opendaylight.mdsal.binding.javav2.java.api.generator.rangeGenerators.LengthGenerator
@import org.opendaylight.mdsal.binding.javav2.model.api.ConcreteType
@import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedType
+@import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTypeForBuilder
@import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedTransferObject
@import org.opendaylight.mdsal.binding.javav2.model.api.GeneratedProperty
@import org.opendaylight.mdsal.binding.javav2.model.api.Type
@(genType: GeneratedType, properties: Set[GeneratedProperty], importedNames: Map[String, String],
ImportedNamesWithProperties: Map[GeneratedProperty, String], augmentField: GeneratedProperty, copyConstructorHelper: String,
-getterMethods: List[String], parentTypeForBuilderName: String)
+getterMethods: List[String], parentTypeForBuilderName: String, childTreeNode: Boolean, instantiable: Boolean)
@if(genType != null) {
@{wrapToDocumentation(formatDataForJavaDocBuilder(importedNames.get("genType")))}
public class @{genType.getName}Builder implements @{getSimpleNameForBuilder} <@{importedNames.get("genType")}> {
}
private static final class @{genType.getName}Impl implements @{genType.getName} {
-
+ @if(instantiable) {
@implementedInterfaceGetter()
+ }
@generateFields(true)
}
@generateMethodFieldsFrom() = {
- @if(genType.isInstanceOf[GeneratedType] && !genType.isInstanceOf[GeneratedTransferObject]) {
+ @if(genType.isInstanceOf[GeneratedType] && genType.isInstanceOf[GeneratedTypeForBuilder]
+ && !genType.isInstanceOf[GeneratedTransferObject]) {
@if(hasImplementsFromUses(genType.asInstanceOf[GeneratedType])) {
/**
- *Set fields from given grouping argument. Valid argument is instance of one of following types:
+ * Set fields from given grouping argument. Valid argument is instance of one of following types:
* <ul>
@for(impl <- getAllIfcs(genType.asInstanceOf[GeneratedType])) {
* <li>@{impl.getFullyQualifiedName}</li>
public void fieldsFrom(@{importedNames.get("treeNode")} arg) {
boolean isValidArg = false;
@for(impl <- getAllIfcs(genType.asInstanceOf[GeneratedType])) {
- @if(impl.isInstanceOf[GeneratedType] && !impl.asInstanceOf[GeneratedType].getMethodDefinitions.isEmpty) {
+ @if(impl.isInstanceOf[GeneratedType] && impl.isInstanceOf[GeneratedTypeForBuilder]
+ && !impl.asInstanceOf[GeneratedType].getMethodDefinitions.isEmpty) {
if (arg instanceof @{impl.asInstanceOf[GeneratedType].getFullyQualifiedName}) {
- @if(!impl.isInstanceOf[GeneratedTransferObject]) {
- @for(getter <- genType.asInstanceOf[GeneratedType].getMethodDefinitions) {
+ @if(impl.isInstanceOf[GeneratedType] && impl.isInstanceOf[GeneratedTypeForBuilder]
+ && !impl.isInstanceOf[GeneratedTransferObject]) {
+ @for(getter <- impl.asInstanceOf[GeneratedType].getMethodDefinitions) {
this._@{propertyNameFromGetter(getter)} = ((@{impl.asInstanceOf[GeneratedType].getFullyQualifiedName})arg).@{getter.getName}();
}
}
* Generate constructor with argument of given type.
*@
@generateConstructorFromIfc(impl: Type) = {
- @if(impl.isInstanceOf[GeneratedType]) {
+ @if(impl.isInstanceOf[GeneratedType] && impl.isInstanceOf[GeneratedTypeForBuilder]) {
@if(!impl.asInstanceOf[GeneratedType].getMethodDefinitions.isEmpty) {
public @{genType.getName}Builder(
@{impl.getFullyQualifiedName} arg) {
getRestrictions(field.getReturnType).getLengthConstraints)}
}
}
- public @{genType.getName}Builder set@{toFirstUpper(field.getName)}(final @{toFirstUpper(field.getReturnType.getName)} value) {
+
+ public @{genType.getName}Builder set@{toFirstUpper(field.getName)}(final @{field.getReturnType.getFullyQualifiedName} value) {
@if(!field.getReturnType.isInstanceOf[GeneratedType] && getRestrictions(field.getReturnType) != null) {
if (value != null) {
@if(getRestrictions(field.getReturnType).getRangeConstraints != null && !getRestrictions(field.getReturnType).getRangeConstraints.isEmpty) {
}
@generateImplementedMethods() = {
+ @if(childTreeNode) {
@@Override
public @{importedNames.get("item")}<@{parentTypeForBuilderName}> treeIdentifier() {
//TODO implement
return null;
}
+ }
+ @if(augmentField != null) {
@@Override
public @{importedNames.get("classInstMap")}<@{importedNames.get("augmentation")}<? super @{genType.getName}>>
augments() {
//TODO implement
return null;
}
+ }
}
@generateEquals() = {
if (!(obj instanceof @{importedNames.get("treeNode")})) {
return false;
}
+ @if(parentTypeForBuilderName != null) {
if (!(obj instanceof @{importedNames.get("instantiable")})) {
return false;
}
.implementedInterface())) {
return false;
}
+ }
@{importedNames.get("genType")} other = (@{importedNames.get("genType")})obj;
@for(property <- properties) {
@if(property.getReturnType.getName.contains("[")) {