'''\r
\r
\r
- def private generateBuilderConstructor(Type implementedIfc) '''\r
+ def private generateBuilderConstructor(Type type) '''\r
public «type.name»«BUILDER»() {\r
}\r
-\r
- «IF (implementedIfc instanceof GeneratedType && !(implementedIfc instanceof GeneratedTransferObject))»\r
- «val ifc = implementedIfc as GeneratedType»\r
+ «IF (type instanceof GeneratedType && !(type instanceof GeneratedTransferObject))»\r
+ «val ifc = type as GeneratedType»\r
«FOR impl : ifc.implements»\r
- «IF (impl instanceof GeneratedType) && !((impl as GeneratedType).methodDefinitions.empty)»\r
- public «type.name»«BUILDER»(«impl.fullyQualifiedName» arg) {\r
- «printBuilderConstructorProperties(impl)»\r
- }\r
- «ENDIF»\r
+ «generateSingleBuilderConstructor(impl)»\r
+ «ENDFOR»\r
+ «ENDIF»\r
+ '''\r
+\r
+ def private generateSingleBuilderConstructor(Type impl) '''\r
+ «IF (impl instanceof GeneratedType) && !((impl as GeneratedType).methodDefinitions.empty)»\r
+ \r
+ «val implType = impl as GeneratedType»\r
+ public «type.name»«BUILDER»(«implType.fullyQualifiedName» arg) {\r
+ «printBuilderConstructorProperties(implType)»\r
+ }\r
+ «FOR implTypeImplement : implType.implements»\r
+ «generateSingleBuilderConstructor(implTypeImplement)»\r
«ENDFOR»\r
«ENDIF»\r
'''\r
loader);
Class<?> fooGr1Class = Class.forName(BASE_PKG + ".urn.opendaylight.foo.rev131008.FooGr1", true, loader);
Class<?> barGr2Class = Class.forName(BASE_PKG + ".urn.opendaylight.bar.rev131008.BarGr2", true, loader);
+ Class<?> barGr1Class = Class.forName(BASE_PKG + ".urn.opendaylight.bar.rev131008.BarGr1", true, loader);
+ Class<?> bazGr1Class = Class.forName(BASE_PKG + ".urn.opendaylight.baz.rev131008.BazGr1", true, loader);
// test generated interface from 'container nodes'
testImplementsIfc(nodesClass, fooGr1Class);
// test generated builder for 'container nodes'
assertFalse(nodesBuilderClass.isInterface());
Constructor<?>[] nodesBuilderConstructors = nodesBuilderClass.getConstructors();
- assertEquals(3, nodesBuilderConstructors.length);
+ assertEquals(5, nodesBuilderConstructors.length);
// test generation of builder constructors from uses in 'container nodes'
Constructor<?> defaultConstructor = null;
Constructor<?> usesFooGr1 = null;
Constructor<?> usesBarGr2 = null;
+ Constructor<?> usesBarGr1 = null;
+ Constructor<?> usesBazGr1 = null;
for (Constructor<?> c : nodesBuilderConstructors) {
Class<?>[] params = c.getParameterTypes();
if (params.length == 0) {
usesFooGr1 = c;
} else if (params[0].equals(barGr2Class)) {
usesBarGr2 = c;
+ } else if (params[0].equals(barGr1Class)) {
+ usesBarGr1 = c;
+ } else if (params[0].equals(bazGr1Class)) {
+ usesBazGr1 = c;
}
}
}
assertNotNull(defaultConstructor);
assertNotNull(usesFooGr1);
assertNotNull(usesBarGr2);
+ assertNotNull(usesBarGr1);
+ assertNotNull(usesBazGr1);
cleanUp(sourcesOutputDir, compiledOutputDir);
}