From 6a55d154259ad27c44340d96dd170ba0df696e56 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 3 Mar 2018 17:36:07 +0100 Subject: [PATCH] Refactor GeneratedTOBuilderImpl This builder is used at both runtime and codegen-time and it captures information irrelevant to runtime, leading to bloat. Refactor this class into three classes: - AbstractGeneratedTypeBuilder for common information - CodegenGeneratedTOBuilder common + codegen information - RuntimeGeneratedTOBuilder throwing UnsupportedOperationException for codegen information JIRA: MDSAL-315 Change-Id: Ie1d3d075590334cb5b8ce41c059ac2e10cf02d56 Signed-off-by: Robert Varga --- .../generator/impl/AbstractTypeGenerator.java | 22 ++- .../yang/types/AbstractTypeProvider.java | 39 ++-- .../yang/types/CodegenTypeProvider.java | 7 + .../yang/types/RuntimeTypeProvider.java | 7 + .../binding/yang/types/TypeProviderTest.java | 4 +- ...l.java => AbstractGeneratedTOBuilder.java} | 174 +++++------------- .../builder/AbstractGeneratedTypeBuilder.java | 2 +- .../builder/CodegenGeneratedTOBuilder.java | 117 ++++++++++++ .../builder/RuntimeGeneratedTOBuilder.java | 92 +++++++++ .../AbstractGeneratedTypeBuilderTest.java | 4 +- .../type/builder/AnnotationBuilderTest.java | 4 +- .../builder/GeneratedTOBuilderImplTest.java | 24 +-- .../type/builder/GeneratedTOBuilderTest.java | 8 +- .../builder/GeneratedTypeBuilderTest.java | 6 +- .../java/api/generator/BuilderTemplate.xtend | 6 +- .../test/ClassCodeGeneratorTest.java | 8 +- 16 files changed, 330 insertions(+), 194 deletions(-) rename binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/{GeneratedTOBuilderImpl.java => AbstractGeneratedTOBuilder.java} (61%) create mode 100644 binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/CodegenGeneratedTOBuilder.java create mode 100644 binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/RuntimeGeneratedTOBuilder.java diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java index 24717088cd..32a7687477 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java @@ -59,8 +59,8 @@ import org.opendaylight.mdsal.binding.model.util.BindingGeneratorUtil; import org.opendaylight.mdsal.binding.model.util.BindingTypes; import org.opendaylight.mdsal.binding.model.util.ReferencedTypeImpl; import org.opendaylight.mdsal.binding.model.util.Types; +import org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTOBuilder; import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedPropertyBuilderImpl; -import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedTOBuilderImpl; import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedTypeBuilderImpl; import org.opendaylight.mdsal.binding.yang.types.AbstractTypeProvider; import org.opendaylight.mdsal.binding.yang.types.GroupingDefinitionDependencySort; @@ -579,11 +579,11 @@ abstract class AbstractTypeGenerator { } final String packageName = packageNameForGeneratedType(basePackageName, identity.getPath()); final String genTypeName = BindingMapping.getClassName(identity.getQName()); - final GeneratedTOBuilderImpl newType = new GeneratedTOBuilderImpl(packageName, genTypeName); + final GeneratedTOBuilder newType = typeProvider.newGeneratedTOBuilder(packageName, genTypeName); final Set baseIdentities = identity.getBaseIdentities(); if (baseIdentities.isEmpty()) { - final GeneratedTOBuilderImpl gto = new GeneratedTOBuilderImpl(BaseIdentity.class.getPackage().getName(), - BaseIdentity.class.getSimpleName()); + final GeneratedTOBuilder gto = typeProvider.newGeneratedTOBuilder( + BaseIdentity.class.getPackage().getName(), BaseIdentity.class.getSimpleName()); newType.setExtendsType(gto.toInstance()); } else { final IdentitySchemaNode baseIdentity = baseIdentities.iterator().next(); @@ -591,7 +591,7 @@ abstract class AbstractTypeGenerator { final String returnTypePkgName = BindingMapping.getRootPackageName(baseIdentityParentModule .getQNameModule()); final String returnTypeName = BindingMapping.getClassName(baseIdentity.getQName()); - final GeneratedTransferObject gto = new GeneratedTOBuilderImpl(returnTypePkgName, returnTypeName) + final GeneratedTransferObject gto = new CodegenGeneratedTOBuilder(returnTypePkgName, returnTypeName) .toInstance(); newType.setExtendsType(gto); } @@ -1573,7 +1573,7 @@ abstract class AbstractTypeGenerator { private Type createReturnTypeForUnion(final GeneratedTOBuilder genTOBuilder, final TypeDefinition typeDef, final GeneratedTypeBuilder typeBuilder, final Module parentModule) { - final GeneratedTOBuilderImpl returnType = new GeneratedTOBuilderImpl(genTOBuilder.getPackageName(), + final GeneratedTOBuilder returnType = typeProvider.newGeneratedTOBuilder(genTOBuilder.getPackageName(), genTOBuilder.getName()); addCodegenInformation(returnType, parentModule, typeDef); @@ -1605,7 +1605,8 @@ abstract class AbstractTypeGenerator { return returnType.toInstance(); } - private static GeneratedTOBuilder createUnionBuilder(final GeneratedTOBuilder genTOBuilder, final GeneratedTypeBuilder typeBuilder) { + private GeneratedTOBuilder createUnionBuilder(final GeneratedTOBuilder genTOBuilder, + final GeneratedTypeBuilder typeBuilder) { final String outerCls = Types.getOuterClassName(genTOBuilder); final StringBuilder name; if (outerCls != null) { @@ -1615,7 +1616,8 @@ abstract class AbstractTypeGenerator { } name.append(genTOBuilder.getName()); name.append("Builder"); - final GeneratedTOBuilderImpl unionBuilder = new GeneratedTOBuilderImpl(typeBuilder.getPackageName(),name.toString()); + final GeneratedTOBuilder unionBuilder = typeProvider.newGeneratedTOBuilder(typeBuilder.getPackageName(), + name.toString()); unionBuilder.setIsUnionBuilder(true); return unionBuilder; } @@ -1896,12 +1898,12 @@ abstract class AbstractTypeGenerator { * list or null if list is null or list of * key definitions is null or empty. */ - private static GeneratedTOBuilder resolveListKeyTOBuilder(final String packageName, final ListSchemaNode list) { + private GeneratedTOBuilder resolveListKeyTOBuilder(final String packageName, final ListSchemaNode list) { GeneratedTOBuilder genTOBuilder = null; if (list.getKeyDefinition() != null && !list.getKeyDefinition().isEmpty()) { final String listName = list.getQName().getLocalName() + "Key"; final String genTOName = BindingMapping.getClassName(listName); - genTOBuilder = new GeneratedTOBuilderImpl(packageName, genTOName); + genTOBuilder = typeProvider.newGeneratedTOBuilder(packageName, genTOName); } return genTOBuilder; } diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java index 5df114b730..d80056ddd0 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java @@ -51,7 +51,6 @@ import org.opendaylight.mdsal.binding.model.util.TypeConstants; import org.opendaylight.mdsal.binding.model.util.Types; import org.opendaylight.mdsal.binding.model.util.generated.type.builder.EnumerationBuilderImpl; import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedPropertyBuilderImpl; -import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedTOBuilderImpl; import org.opendaylight.yangtools.yang.binding.BindingMapping; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; @@ -240,9 +239,8 @@ public abstract class AbstractTypeProvider implements TypeProvider { return returnType; } - private static GeneratedTransferObject shadedTOWithRestrictions(final GeneratedTransferObject gto, - final Restrictions r) { - final GeneratedTOBuilder gtob = new GeneratedTOBuilderImpl(gto.getPackageName(), gto.getName()); + private GeneratedTransferObject shadedTOWithRestrictions(final GeneratedTransferObject gto, final Restrictions r) { + final GeneratedTOBuilder gtob = newGeneratedTOBuilder(gto.getPackageName(), gto.getName()); final GeneratedTransferObject parent = gto.getSuperType(); if (parent != null) { gtob.setExtendsType(parent); @@ -703,6 +701,8 @@ public abstract class AbstractTypeProvider implements TypeProvider { public abstract void addEnumDescription(EnumBuilder enumBuilder, EnumTypeDefinition enumTypeDef); + public abstract GeneratedTOBuilder newGeneratedTOBuilder(String packageName, String name); + abstract void addCodegenInformation(GeneratedTypeBuilderBase genTOBuilder, TypeDefinition typeDef); /** @@ -796,7 +796,8 @@ public abstract class AbstractTypeProvider implements TypeProvider { * modulName or typedef or Q name of * typedef equals null */ - private Type typedefToGeneratedType(final String basePackageName, final Module module, final TypeDefinition typedef) { + private Type typedefToGeneratedType(final String basePackageName, final Module module, + final TypeDefinition typedef) { final String moduleName = module.getName(); final Optional moduleRevision = module.getRevision(); if (basePackageName != null && moduleName != null && typedef != null && typedef.getQName() != null) { @@ -807,17 +808,18 @@ public abstract class AbstractTypeProvider implements TypeProvider { && !(innerTypeDefinition instanceof IdentityrefTypeDefinition)) { Type returnType = null; if (innerTypeDefinition.getBaseType() != null) { - returnType = provideGeneratedTOFromExtendedType(typedef, innerTypeDefinition, basePackageName, module.getName()); + returnType = provideGeneratedTOFromExtendedType(typedef, innerTypeDefinition, basePackageName, + module.getName()); } else if (innerTypeDefinition instanceof UnionTypeDefinition) { final GeneratedTOBuilder genTOBuilder = provideGeneratedTOBuilderForUnionTypeDef(basePackageName, (UnionTypeDefinition) innerTypeDefinition, typedefName, typedef); genTOBuilder.setTypedef(true); genTOBuilder.setIsUnion(true); addUnitsToGenTO(genTOBuilder, typedef.getUnits().orElse(null)); - makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); + makeSerializable(genTOBuilder); returnType = genTOBuilder.toInstance(); // union builder - final GeneratedTOBuilder unionBuilder = new GeneratedTOBuilderImpl(genTOBuilder.getPackageName(), + final GeneratedTOBuilder unionBuilder = newGeneratedTOBuilder(genTOBuilder.getPackageName(), genTOBuilder.getName() + "Builder"); unionBuilder.setIsUnionBuilder(true); final MethodSignatureBuilder method = unionBuilder.addMethod("getDefaultInstance"); @@ -843,7 +845,7 @@ public abstract class AbstractTypeProvider implements TypeProvider { basePackageName, bitsTypeDefinition, typedefName, module.getName()); genTOBuilder.setTypedef(true); addUnitsToGenTO(genTOBuilder, typedef.getUnits().orElse(null)); - makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); + makeSerializable(genTOBuilder); returnType = genTOBuilder.toInstance(); } else { final Type javaType = javaTypeForSchemaDefinitionType(innerTypeDefinition, typedef); @@ -898,7 +900,7 @@ public abstract class AbstractTypeProvider implements TypeProvider { } addUnitsToGenTO(genTOBuilder, typedef.getUnits().orElse(null)); genTOBuilder.setTypedef(true); - makeSerializable((GeneratedTOBuilderImpl) genTOBuilder); + makeSerializable(genTOBuilder); return genTOBuilder.toInstance(); } @@ -959,10 +961,10 @@ public abstract class AbstractTypeProvider implements TypeProvider { final List> unionTypes = typedef.getTypes(); final Module module = findParentModule(schemaContext, parentNode); - final GeneratedTOBuilderImpl unionGenTOBuilder; + final GeneratedTOBuilder unionGenTOBuilder; if (typeDefName != null && !typeDefName.isEmpty()) { final String typeName = BindingMapping.getClassName(typeDefName); - unionGenTOBuilder = new GeneratedTOBuilderImpl(basePackageName, typeName); + unionGenTOBuilder = newGeneratedTOBuilder(basePackageName, typeName); unionGenTOBuilder.setSchemaPath(typedef.getPath().getPathFromRoot()); unionGenTOBuilder.setModuleName(module.getName()); addCodegenInformation(unionGenTOBuilder, typedef); @@ -1173,7 +1175,7 @@ public abstract class AbstractTypeProvider implements TypeProvider { * @return generated TO builder which contains data from * typedef and basePackageName */ - private GeneratedTOBuilderImpl typedefToTransferObject(final String basePackageName, + private GeneratedTOBuilder typedefToTransferObject(final String basePackageName, final TypeDefinition typedef, final String moduleName) { final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName, typedef.getPath()); @@ -1181,7 +1183,7 @@ public abstract class AbstractTypeProvider implements TypeProvider { if (packageName != null && typeDefTOName != null) { final String genTOName = BindingMapping.getClassName(typeDefTOName); - final GeneratedTOBuilderImpl newType = new GeneratedTOBuilderImpl(packageName, genTOName); + final GeneratedTOBuilder newType = newGeneratedTOBuilder(packageName, genTOName); newType.setSchemaPath(typedef.getPath().getPathFromRoot()); newType.setModuleName(moduleName); addCodegenInformation(newType, typedef); @@ -1220,7 +1222,7 @@ public abstract class AbstractTypeProvider implements TypeProvider { final BitsTypeDefinition bitsTypeDefinition = (BitsTypeDefinition) typeDef; final String typeName = BindingMapping.getClassName(typeDefName); - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl(basePackageName, typeName); + final GeneratedTOBuilder genTOBuilder = newGeneratedTOBuilder(basePackageName, typeName); genTOBuilder.setSchemaPath(typeDef.getPath().getPathFromRoot()); genTOBuilder.setModuleName(moduleName); genTOBuilder.setBaseType(typeDef); @@ -1290,14 +1292,15 @@ public abstract class AbstractTypeProvider implements TypeProvider { *
  • if typedefName equals null
  • * */ - private GeneratedTransferObject provideGeneratedTOFromExtendedType(final TypeDefinition typedef, final TypeDefinition innerExtendedType, final String basePackageName, final String moduleName) { + private GeneratedTransferObject provideGeneratedTOFromExtendedType(final TypeDefinition typedef, + final TypeDefinition innerExtendedType, final String basePackageName, final String moduleName) { Preconditions.checkArgument(innerExtendedType != null, "Extended type cannot be NULL!"); Preconditions.checkArgument(basePackageName != null, "String with base package name cannot be NULL!"); final String typedefName = typedef.getQName().getLocalName(); final String classTypedefName = BindingMapping.getClassName(typedefName); final String innerTypeDef = innerExtendedType.getQName().getLocalName(); - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl(basePackageName, classTypedefName); + final GeneratedTOBuilder genTOBuilder = newGeneratedTOBuilder(basePackageName, classTypedefName); genTOBuilder.setSchemaPath(typedef.getPath().getPathFromRoot()); genTOBuilder.setModuleName(moduleName); genTOBuilder.setTypedef(true); @@ -1340,7 +1343,7 @@ public abstract class AbstractTypeProvider implements TypeProvider { * @param gto * transfer object which needs to be serializable */ - private static void makeSerializable(final GeneratedTOBuilderImpl gto) { + private static void makeSerializable(final GeneratedTOBuilder gto) { gto.addImplementsType(Types.typeForClass(Serializable.class)); final GeneratedPropertyBuilder prop = new GeneratedPropertyBuilderImpl("serialVersionUID"); prop.setValue(Long.toString(BindingGeneratorUtil.computeDefaultSUID(gto))); diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/CodegenTypeProvider.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/CodegenTypeProvider.java index 3085ad07e9..c6f78d4d16 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/CodegenTypeProvider.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/CodegenTypeProvider.java @@ -16,7 +16,9 @@ import java.util.List; import java.util.Map; import java.util.Optional; import org.opendaylight.mdsal.binding.model.api.type.builder.EnumBuilder; +import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase; +import org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTOBuilder; import org.opendaylight.yangtools.yang.binding.BindingMapping; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; @@ -96,4 +98,9 @@ public class CodegenTypeProvider extends AbstractTypeProvider { return pattern; } } + + @Override + public GeneratedTOBuilder newGeneratedTOBuilder(final String packageName, final String name) { + return new CodegenGeneratedTOBuilder(packageName, name); + } } diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/RuntimeTypeProvider.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/RuntimeTypeProvider.java index 0ff5a009b3..52f6a4285e 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/RuntimeTypeProvider.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/RuntimeTypeProvider.java @@ -11,7 +11,9 @@ import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableMap; import java.util.Map; import org.opendaylight.mdsal.binding.model.api.type.builder.EnumBuilder; +import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilderBase; +import org.opendaylight.mdsal.binding.model.util.generated.type.builder.RuntimeGeneratedTOBuilder; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition; @@ -40,4 +42,9 @@ public final class RuntimeTypeProvider extends AbstractTypeProvider { Map resolveRegExpressionsFromTypedef(final TypeDefinition typedef) { return ImmutableMap.of(); } + + @Override + public GeneratedTOBuilder newGeneratedTOBuilder(final String packageName, final String name) { + return new RuntimeGeneratedTOBuilder(packageName, name); + } } diff --git a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java index a1a0b3a0ea..d6dc7fa896 100644 --- a/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java +++ b/binding/mdsal-binding-generator-impl/src/test/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderTest.java @@ -34,7 +34,7 @@ import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.mdsal.binding.model.util.BindingGeneratorUtil; import org.opendaylight.mdsal.binding.model.util.ReferencedTypeImpl; -import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedTOBuilderImpl; +import org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTOBuilder; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -708,7 +708,7 @@ public class TypeProviderTest { @Test public void addUnitsToGenTOTest() { - final GeneratedTOBuilder builder = new GeneratedTOBuilderImpl("test.package", "TestBuilder"); + final GeneratedTOBuilder builder = new CodegenGeneratedTOBuilder("test.package", "TestBuilder"); CodegenTypeProvider.addUnitsToGenTO(builder, null); GeneratedTransferObject genTO = builder.toInstance(); diff --git a/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderImpl.java b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTOBuilder.java similarity index 61% rename from binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderImpl.java rename to binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTOBuilder.java index 9ccdc4d3af..efefac8db6 100644 --- a/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderImpl.java +++ b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTOBuilder.java @@ -13,39 +13,33 @@ import java.util.List; import org.opendaylight.mdsal.binding.model.api.GeneratedProperty; import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject; import org.opendaylight.mdsal.binding.model.api.ParameterizedType; -import org.opendaylight.mdsal.binding.model.api.Restrictions; import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuilder; import org.opendaylight.yangtools.util.LazyCollections; -import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; -public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder implements GeneratedTOBuilder { +abstract class AbstractGeneratedTOBuilder extends AbstractGeneratedTypeBuilder + implements GeneratedTOBuilder { - private GeneratedTransferObject extendsType; + // FIXME are these three referenced anywhere at runtime? private List equalsProperties = Collections.emptyList(); private List hashProperties = Collections.emptyList(); private List toStringProperties = Collections.emptyList(); + private GeneratedTransferObject extendsType; private boolean isTypedef = false; private boolean isUnionType = false; private boolean isUnionTypeBuilder = false; private TypeDefinition baseType = null; - private Restrictions restrictions; - private GeneratedPropertyBuilder SUID; - private String reference; - private String description; - private String moduleName; - private Iterable schemaPath; - public GeneratedTOBuilderImpl(final String packageName, final String name) { + AbstractGeneratedTOBuilder(final String packageName, final String name) { super(packageName, name); setAbstract(false); } @Override - public GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj) { + public final GeneratedTOBuilder setExtendsType(final GeneratedTransferObject genTransObj) { Preconditions.checkArgument(genTransObj != null, "Generated Transfer Object cannot be null!"); this.extendsType = genTransObj; return this; @@ -66,52 +60,37 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuildernew instance of Method Signature Builder. */ @Override - public MethodSignatureBuilder addMethod(final String name) { + public final MethodSignatureBuilder addMethod(final String name) { final MethodSignatureBuilder builder = super.addMethod(name); builder.setAbstract(false); return builder; } @Override - public GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property) { + public final GeneratedTOBuilder addEqualsIdentity(final GeneratedPropertyBuilder property) { this.equalsProperties = LazyCollections.lazyAdd(this.equalsProperties, property); return this; } @Override - public GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property) { + public final GeneratedTOBuilder addHashIdentity(final GeneratedPropertyBuilder property) { this.hashProperties = LazyCollections.lazyAdd(this.hashProperties, property); return this; } @Override - public GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property) { + public final GeneratedTOBuilder addToStringProperty(final GeneratedPropertyBuilder property) { this.toStringProperties = LazyCollections.lazyAdd(this.toStringProperties, property); return this; } @Override - protected GeneratedTOBuilder thisInstance() { + protected final GeneratedTOBuilder thisInstance() { return this; } @Override - public void setRestrictions(final Restrictions restrictions) { - this.restrictions = restrictions; - } - - @Override - public void setSUID(final GeneratedPropertyBuilder suid) { - this.SUID = suid; - } - - @Override - public GeneratedTransferObject toInstance() { - return new GeneratedTransferObjectImpl(this); - } - - @Override - public String toString() { + public final String toString() { final StringBuilder builder = new StringBuilder(); builder.append("GeneratedTransferObject [packageName="); builder.append(getPackageName()); @@ -138,46 +117,26 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder typeDef) { + public final void setBaseType(final TypeDefinition typeDef) { this.baseType = typeDef; } @Override - public void setIsUnion(final boolean isUnion) { + public final void setIsUnion(final boolean isUnion) { this.isUnionType = isUnion; } @Override - public void setIsUnionBuilder(final boolean isUnionTypeBuilder) { + public final void setIsUnionBuilder(final boolean isUnionTypeBuilder) { this.isUnionTypeBuilder = isUnionTypeBuilder; } - @Override - public void setDescription(final String description) { - this.description = description; - } - - @Override - public void setModuleName(final String moduleName) { - this.moduleName = moduleName; - } - - @Override - public void setSchemaPath(final Iterable schemaPath) { - this.schemaPath = schemaPath; - } - - @Override - public void setReference(final String reference) { - this.reference = reference; - } - - private static final class GeneratedTransferObjectImpl extends AbstractGeneratedType implements + static abstract class AbstractGeneratedTransferObject extends AbstractGeneratedType implements GeneratedTransferObject { private final List equalsProperties; @@ -188,14 +147,8 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder baseType; private final boolean isUnionType; private final boolean isUnionTypeBuilder; - private final Restrictions restrictions; - private final GeneratedProperty SUID; - private final String reference; - private final String description; - private final String moduleName; - private final Iterable schemaPath; - public GeneratedTransferObjectImpl(final GeneratedTOBuilderImpl builder) { + AbstractGeneratedTransferObject(final AbstractGeneratedTOBuilder builder) { super(builder); this.extendsType = builder.extendsType; @@ -209,71 +162,50 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder getBaseType() { + public final TypeDefinition getBaseType() { return this.baseType; } @Override - public boolean isUnionType() { + public final boolean isUnionType() { return this.isUnionType; } @Override - public boolean isUnionTypeBuilder() { + public final boolean isUnionTypeBuilder() { return this.isUnionTypeBuilder; } @Override - public GeneratedTransferObject getSuperType() { + public final GeneratedTransferObject getSuperType() { return this.extendsType; } @Override - public List getEqualsIdentifiers() { + public final List getEqualsIdentifiers() { return this.equalsProperties; } @Override - public List getHashCodeIdentifiers() { + public final List getHashCodeIdentifiers() { return this.hashCodeProperties; } @Override - public List getToStringIdentifiers() { + public final List getToStringIdentifiers() { return this.stringProperties; } @Override - public Restrictions getRestrictions() { - return this.restrictions; - } - - @Override - public GeneratedProperty getSUID() { - return this.SUID; - } - - @Override - public String toString() { + public final String toString() { if (this.isTypedef) { return serializeTypedef(this); } @@ -310,46 +242,24 @@ public final class GeneratedTOBuilderImpl extends AbstractGeneratedTypeBuilder'); - return sb.toString(); - } else { + public final String serializeTypedef(final Type type) { + if (!(type instanceof ParameterizedType)) { return type.getFullyQualifiedName(); } - } - - @Override - public String getDescription() { - return this.description; - } - - @Override - public String getReference() { - return this.reference; - } - @Override - public Iterable getSchemaPath() { - return this.schemaPath; - } - - @Override - public String getModuleName() { - return this.moduleName; + final ParameterizedType parameterizedType = (ParameterizedType) type; + final StringBuilder sb = new StringBuilder(); + sb.append(parameterizedType.getRawType().getFullyQualifiedName()).append('<'); + boolean first = true; + for (final Type parameter : parameterizedType.getActualTypeArguments()) { + if (first) { + first = false; + } else { + sb.append(','); + } + sb.append(serializeTypedef(parameter)); + } + return sb.append('>').toString(); } } } diff --git a/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilder.java b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilder.java index a4eff6bd29..83fbd07913 100644 --- a/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilder.java +++ b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilder.java @@ -90,7 +90,7 @@ abstract class AbstractGeneratedTypeBuilder schemaPath; + + public CodegenGeneratedTOBuilder(final String packageName, final String name) { + super(packageName, name); + } + + @Override + public void setRestrictions(final Restrictions restrictions) { + this.restrictions = restrictions; + } + + @Override + public void setSUID(final GeneratedPropertyBuilder suid) { + this.SUID = suid; + } + + @Override + public GeneratedTransferObject toInstance() { + return new GTO(this); + } + + @Override + public void setDescription(final String description) { + this.description = description; + } + + @Override + public void setModuleName(final String moduleName) { + this.moduleName = moduleName; + } + + @Override + public void setSchemaPath(final Iterable schemaPath) { + this.schemaPath = schemaPath; + } + + @Override + public void setReference(final String reference) { + this.reference = reference; + } + + private static final class GTO extends AbstractGeneratedTransferObject { + private final Restrictions restrictions; + private final GeneratedProperty SUID; + private final String reference; + private final String description; + private final String moduleName; + private final Iterable schemaPath; + + public GTO(final CodegenGeneratedTOBuilder builder) { + super(builder); + this.restrictions = builder.restrictions; + this.reference = builder.reference; + this.description = builder.description; + this.moduleName = builder.moduleName; + this.schemaPath = builder.schemaPath; + + if (builder.SUID == null) { + this.SUID = null; + } else { + this.SUID = builder.SUID.toInstance(GTO.this); + } + } + + @Override + public Restrictions getRestrictions() { + return this.restrictions; + } + + @Override + public GeneratedProperty getSUID() { + return this.SUID; + } + + @Override + public String getDescription() { + return this.description; + } + + @Override + public String getReference() { + return this.reference; + } + + @Override + public Iterable getSchemaPath() { + return this.schemaPath; + } + + @Override + public String getModuleName() { + return this.moduleName; + } + } +} diff --git a/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/RuntimeGeneratedTOBuilder.java b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/RuntimeGeneratedTOBuilder.java new file mode 100644 index 0000000000..330c72b337 --- /dev/null +++ b/binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/RuntimeGeneratedTOBuilder.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.mdsal.binding.model.util.generated.type.builder; + +import org.opendaylight.mdsal.binding.model.api.GeneratedProperty; +import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject; +import org.opendaylight.mdsal.binding.model.api.Restrictions; +import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder; +import org.opendaylight.yangtools.yang.common.QName; + +public final class RuntimeGeneratedTOBuilder extends AbstractGeneratedTOBuilder { + + public RuntimeGeneratedTOBuilder(final String packageName, final String name) { + super(packageName, name); + } + + @Override + public void setRestrictions(final Restrictions restrictions) { + // No-op + } + + @Override + public void setSUID(final GeneratedPropertyBuilder suid) { + // No-op + } + + @Override + public void setDescription(final String description) { + // No-op + } + + @Override + public void setModuleName(final String moduleName) { + // No-op + } + + @Override + public void setSchemaPath(final Iterable schemaPath) { + // No-op + } + + @Override + public void setReference(final String reference) { + // No-op + } + + @Override + public GeneratedTransferObject toInstance() { + return new GTO(this); + } + + private static final class GTO extends AbstractGeneratedTransferObject { + GTO(final RuntimeGeneratedTOBuilder builder) { + super(builder); + } + + @Override + public Restrictions getRestrictions() { + throw new UnsupportedOperationException("Not available at runtime"); + } + + @Override + public GeneratedProperty getSUID() { + throw new UnsupportedOperationException("Not available at runtime"); + } + + @Override + public String getDescription() { + throw new UnsupportedOperationException("Not available at runtime"); + } + + @Override + public String getReference() { + throw new UnsupportedOperationException("Not available at runtime"); + } + + @Override + public Iterable getSchemaPath() { + throw new UnsupportedOperationException("Not available at runtime"); + } + + @Override + public String getModuleName() { + throw new UnsupportedOperationException("Not available at runtime"); + } + } +} diff --git a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilderTest.java b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilderTest.java index 354d072612..b59bdff570 100644 --- a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilderTest.java +++ b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilderTest.java @@ -33,8 +33,8 @@ public class AbstractGeneratedTypeBuilderTest { public void addEnclosingTransferObjectArgumentTest() { GeneratedTypeBuilderImpl generatedTypeBuilder = new GeneratedTypeBuilderImpl("my.package", "MyName"); - generatedTypeBuilder.addEnclosingTransferObject(new GeneratedTOBuilderImpl("my.package", "myName")); - generatedTypeBuilder.addEnclosingTransferObject(new GeneratedTOBuilderImpl("my.package", "myName")); + generatedTypeBuilder.addEnclosingTransferObject(new CodegenGeneratedTOBuilder("my.package", "myName")); + generatedTypeBuilder.addEnclosingTransferObject(new CodegenGeneratedTOBuilder("my.package", "myName")); } @Test(expected = IllegalArgumentException.class) diff --git a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AnnotationBuilderTest.java b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AnnotationBuilderTest.java index 2b4711b035..c0899886ee 100644 --- a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AnnotationBuilderTest.java +++ b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AnnotationBuilderTest.java @@ -129,7 +129,7 @@ public class AnnotationBuilderTest { @Test public void generatedPropertyAnnotationTest() { - final GeneratedTOBuilder genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.controller", + final GeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.controller", "AnnotInterface"); final GeneratedPropertyBuilder propertyBuilder = genTOBuilder.addProperty("simpleProperty"); @@ -191,7 +191,7 @@ public class AnnotationBuilderTest { @Test public void generatedTransfeObjectAnnotationTest() { - final GeneratedTOBuilder genTypeBuilder = new GeneratedTOBuilderImpl("org.opendaylight.controller", + final GeneratedTOBuilder genTypeBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.controller", "AnnotClassCache"); genTypeBuilder.addAnnotation("javax.management", "MBean"); diff --git a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderImplTest.java b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderImplTest.java index 70bd4cdbd5..986c784f40 100644 --- a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderImplTest.java +++ b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderImplTest.java @@ -26,14 +26,14 @@ public class GeneratedTOBuilderImplTest { @Test public void testCreateNewInstance() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); assertNotNull(genTOBuilder); } @Test public void testSetExtendsType() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); - final GeneratedTOBuilderImpl extendedTypeBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "ExtendedType"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder extendedTypeBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "ExtendedType"); final GeneratedTransferObject extendedType = extendedTypeBuilder.toInstance(); genTOBuilder.setExtendsType(extendedType); final GeneratedTransferObject genTO = genTOBuilder.toInstance(); @@ -43,7 +43,7 @@ public class GeneratedTOBuilderImplTest { @Test public void testAddMethod() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); final MethodSignatureBuilder methodSignatureBuilder = genTOBuilder.addMethod("testMethod"); assertEquals(methodSignatureBuilder, genTOBuilder.getMethodDefinitions().get(0)); assertEquals("testMethod", genTOBuilder.getMethodDefinitions().get(0).getName()); @@ -51,7 +51,7 @@ public class GeneratedTOBuilderImplTest { @Test public void testAddEqualsIdentity() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty"); genTOBuilder.addEqualsIdentity(propertyBuilder); @@ -62,7 +62,7 @@ public class GeneratedTOBuilderImplTest { @Test public void testAddHashIdentity() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty"); genTOBuilder.addHashIdentity(propertyBuilder); @@ -73,7 +73,7 @@ public class GeneratedTOBuilderImplTest { @Test public void testAddToStringProperty() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty"); genTOBuilder.addToStringProperty(propertyBuilder); @@ -84,7 +84,7 @@ public class GeneratedTOBuilderImplTest { @Test public void testSetRestrictions() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); final Restrictions restrictions = new Restrictions() { @Override @@ -115,7 +115,7 @@ public class GeneratedTOBuilderImplTest { @Test public void testSetSUID() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); final GeneratedPropertyBuilderImpl propertyBuilder = new GeneratedPropertyBuilderImpl("testProperty"); genTOBuilder.setSUID(propertyBuilder); @@ -125,13 +125,13 @@ public class GeneratedTOBuilderImplTest { @Test public void testToStringMethod() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); assertNotNull(genTOBuilder.toString()); } @Test public void testSetterMethods() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); genTOBuilder.setTypedef(true); genTOBuilder.setIsUnion(true); genTOBuilder.setIsUnionBuilder(true); @@ -153,7 +153,7 @@ public class GeneratedTOBuilderImplTest { @Test public void testMethodsOfGeneratedTransferObjectImpl() { - final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl("org.opendaylight.yangtools.test", "Test"); + final CodegenGeneratedTOBuilder genTOBuilder = new CodegenGeneratedTOBuilder("org.opendaylight.yangtools.test", "Test"); final GeneratedTransferObject genTO = genTOBuilder.toInstance(); assertNotNull(genTO.toString()); diff --git a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderTest.java b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderTest.java index 56c6d66956..9aa88d63fd 100644 --- a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderTest.java +++ b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTOBuilderTest.java @@ -20,7 +20,7 @@ public class GeneratedTOBuilderTest { @Test public void testBuilder() { - final GeneratedTOBuilder genTypeBuilder = new GeneratedTOBuilderImpl( + final GeneratedTOBuilder genTypeBuilder = new CodegenGeneratedTOBuilder( "org.opendaylight.controller", "AnnotClassCache"); genTypeBuilder.setSUID(genTypeBuilder.addProperty("SUID")); @@ -43,7 +43,7 @@ public class GeneratedTOBuilderTest { @Test public void testToString() { - final GeneratedTOBuilder genTypeBuilder = new GeneratedTOBuilderImpl( + final GeneratedTOBuilder genTypeBuilder = new CodegenGeneratedTOBuilder( "org.opendaylight.controller", "AnnotClassCache"); String toString = genTypeBuilder.toString(); assertTrue(toString.contains("GeneratedTransferObject")); @@ -51,7 +51,7 @@ public class GeneratedTOBuilderTest { @Test public void testTransferBuilderToString() { - final GeneratedTOBuilder genTypeBuilder1 = new GeneratedTOBuilderImpl( + final GeneratedTOBuilder genTypeBuilder1 = new CodegenGeneratedTOBuilder( "org.opendaylight.controller", "AnnotClassCache"); genTypeBuilder1.setTypedef(true); @@ -59,7 +59,7 @@ public class GeneratedTOBuilderTest { String toString = genTO.toString(); assertFalse(toString.contains("GeneratedTransferObject")); - final GeneratedTOBuilder genTypeBuilder2 = new GeneratedTOBuilderImpl( + final GeneratedTOBuilder genTypeBuilder2 = new CodegenGeneratedTOBuilder( "org.opendaylight.controller", "AnnotClassCache"); genTypeBuilder2.setTypedef(false); diff --git a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTypeBuilderTest.java b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTypeBuilderTest.java index e12819c5fe..0bd589d75b 100644 --- a/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTypeBuilderTest.java +++ b/binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTypeBuilderTest.java @@ -264,7 +264,7 @@ public class GeneratedTypeBuilderTest { GeneratedTOBuilder enclosingTransferObject = generatedTypeBuilder.addEnclosingTransferObject("myTOName"); GeneratedTOBuilder enclosingTransferObject2 = generatedTypeBuilder.addEnclosingTransferObject("myTOName2"); - assertEquals(generatedTypeBuilder, generatedTypeBuilder.addEnclosingTransferObject(new GeneratedTOBuilderImpl( + assertEquals(generatedTypeBuilder, generatedTypeBuilder.addEnclosingTransferObject(new CodegenGeneratedTOBuilder( generatedTypeBuilder.getFullyQualifiedName(), "myTOName3"))); assertNotNull(enclosingTransferObject); @@ -277,9 +277,9 @@ public class GeneratedTypeBuilderTest { assertTrue(enclosedTypes.contains(enclosingTransferObject.toInstance())); assertTrue(enclosedTypes.contains(enclosingTransferObject2.toInstance())); - assertTrue(enclosedTypes.contains(new GeneratedTOBuilderImpl(generatedTypeBuilder.getFullyQualifiedName(), + assertTrue(enclosedTypes.contains(new CodegenGeneratedTOBuilder(generatedTypeBuilder.getFullyQualifiedName(), "myTOName3").toInstance())); - assertFalse(enclosedTypes.contains(new GeneratedTOBuilderImpl(generatedTypeBuilder.getFullyQualifiedName(), + assertFalse(enclosedTypes.contains(new CodegenGeneratedTOBuilder(generatedTypeBuilder.getFullyQualifiedName(), "myTOName4").toInstance())); } diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend index 0e231a0945..02d2f45132 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend @@ -29,7 +29,7 @@ import org.opendaylight.mdsal.binding.model.api.MethodSignature import org.opendaylight.mdsal.binding.model.api.Type import org.opendaylight.mdsal.binding.model.util.ReferencedTypeImpl import org.opendaylight.mdsal.binding.model.util.Types -import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedTOBuilderImpl +import org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTOBuilder import org.opendaylight.yangtools.concepts.Builder import org.opendaylight.yangtools.yang.binding.Augmentable import org.opendaylight.yangtools.yang.binding.AugmentationHolder @@ -122,7 +122,7 @@ class BuilderTemplate extends BaseTemplate { val fullyQualifiedName = m.returnType.name val pkg = fullyQualifiedName.package val name = fullyQualifiedName.name - val tmpGenTO = new GeneratedTOBuilderImpl(pkg, name) + val tmpGenTO = new CodegenGeneratedTOBuilder(pkg, name) val refType = new ReferencedTypeImpl(pkg, name) val generic = new ReferencedTypeImpl(type.packageName, type.name) val parametrizedReturnType = Types.parameterizedTypeFor(refType, generic) @@ -207,7 +207,7 @@ class BuilderTemplate extends BaseTemplate { } if (method.name.startsWith(prefix)) { val fieldName = method.getName().substring(prefix.length()).toFirstLower - val tmpGenTO = new GeneratedTOBuilderImpl("foo", "foo") + val tmpGenTO = new CodegenGeneratedTOBuilder("foo", "foo") tmpGenTO.addProperty(fieldName).setReturnType(method.returnType) return tmpGenTO.toInstance.properties.first } diff --git a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/ClassCodeGeneratorTest.java b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/ClassCodeGeneratorTest.java index 2bdb36cd93..0baeafe54b 100644 --- a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/ClassCodeGeneratorTest.java +++ b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/ClassCodeGeneratorTest.java @@ -24,7 +24,7 @@ import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder; import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder; import org.opendaylight.mdsal.binding.model.util.Types; -import org.opendaylight.mdsal.binding.model.util.generated.type.builder.GeneratedTOBuilderImpl; +import org.opendaylight.mdsal.binding.model.util.generated.type.builder.CodegenGeneratedTOBuilder; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; @@ -91,8 +91,7 @@ public class ClassCodeGeneratorTest { */ @Test public void defaultConstructorNotPresentInValueTypeTest() { - final GeneratedTOBuilder toBuilder = new GeneratedTOBuilderImpl( - "simple.pack", "DefCtor"); + final GeneratedTOBuilder toBuilder = new CodegenGeneratedTOBuilder("simple.pack", "DefCtor"); GeneratedPropertyBuilder propBuilder = toBuilder.addProperty("foo"); propBuilder.setReturnType(Types.typeForClass(String.class)); @@ -113,8 +112,7 @@ public class ClassCodeGeneratorTest { @Test public void toStringTest() { - final GeneratedTOBuilder toBuilder = new GeneratedTOBuilderImpl( - "simple.pack", "DefCtor"); + final GeneratedTOBuilder toBuilder = new CodegenGeneratedTOBuilder("simple.pack", "DefCtor"); GeneratedPropertyBuilder propBuilder = toBuilder.addProperty("foo"); propBuilder.setReturnType(Types.typeForClass(String.class)); -- 2.36.6