Remove parent type references 81/95681/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 6 Apr 2021 11:52:28 +0000 (13:52 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 6 Apr 2021 12:11:06 +0000 (14:11 +0200)
Requiring Constant, Enumeration, GeneratedType and TypeMember to
report its enclosing/parent type leads to circular dependencies, as
the parent type needs to report the objects as well. This leads to
the requirement to perform callouts from constructor -- utterly fusing
parents and children together.

As it turns out, though, these references are not used anywhere and
hence we can completely ditch them.

Change-Id: Ic9bfa6d0b69ffa3bdc1cd02c824405c9e22d0375
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
30 files changed:
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/Constant.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/Enumeration.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/GeneratedType.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/TypeMember.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/type/builder/ConstantBuilder.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/type/builder/EnumBuilder.java
binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/model/api/type/builder/GeneratedPropertyBuilder.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/AbstractTypeProvider.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractEnumerationBuilder.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedType.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractGeneratedTypeBuilder.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractTypeMember.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/CodegenEnumerationBuilder.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/CodegenGeneratedTOBuilder.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/ConstantImpl.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedPropertyBuilderImpl.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedPropertyImpl.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/MethodSignatureBuilderImpl.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/MethodSignatureImpl.java
binding/mdsal-binding-generator-util/src/main/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/RuntimeEnumerationBuilder.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/AbstractTypeMemberTest.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/ConstantImplTest.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/EnumerationBuilderImplTest.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedPropertyBuilderImplTest.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedPropertyImplTest.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedPropertyTest.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/GeneratedTypeBuilderTest.java
binding/mdsal-binding-generator-util/src/test/java/org/opendaylight/mdsal/binding/model/util/generated/type/builder/MethodSignatureImplTest.java
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderGeneratedProperty.java

index 9f1cf768b3699cccb25ba3c1197c71df13292823..165604acd7775cc61c39d104c29d5305727a18cc 100644 (file)
@@ -8,27 +8,15 @@
 package org.opendaylight.mdsal.binding.model.api;
 
 /**
- * Interface Contact is designed to hold and model java constant. In Java there
- * are no constant keywords instead of the constant is defined as static final
- * field with assigned value. For this purpose the Constant interface contains
- * methods {@link #getType()} to provide wrapped return Type of Constant,
- * {@link #getName()} the Name of constant and the {@link #getValue()} for
- * providing of value assigned to Constant. To determine of which type the
- * constant value is it is recommended firstly to retrieve Type from constant.
- * The Type interface holds base information like java package name and java
- * type name (e.g. fully qualified name). From this string user should be able
- * to determine to which type can be {@link #getValue()} type typecasted to
- * unbox and provide value assigned to constant.
+ * Interface Contact is designed to hold and model java constant. In Java there are no constant keywords instead of the
+ * constant is defined as static final field with assigned value. For this purpose the Constant interface contains
+ * methods {@link #getType()} to provide wrapped return Type of Constant, {@link #getName()} the Name of constant and
+ * the {@link #getValue()} for providing of value assigned to Constant. To determine of which type the constant value is
+ * it is recommended firstly to retrieve Type from constant. The Type interface holds base information like java package
+ * name and java type name (e.g. fully qualified name). From this string user should be able to determine to which type
+ * can be {@link #getValue()} type typecasted to unbox and provide value assigned to constant.
  */
 public interface Constant {
-
-    /**
-     * Returns the Type that declares constant.
-     *
-     * @return the Type that declares constant.
-     */
-    Type getDefiningType();
-
     /**
      * Returns the return Type (or just Type) of the Constant.
      *
index 270c146802cf1be880801bb7964e6410cad0caa9..746e55d2418a4d6244da1891a112854d344aa8a2 100644 (file)
@@ -14,17 +14,6 @@ import org.opendaylight.yangtools.yang.model.api.DocumentedNode;
  * Interface provide methods for reading data of enumeration class.
  */
 public interface Enumeration extends GeneratedType {
-    /**
-     * Returns list of annotation definitions associated with enumeration type.
-     *
-     * @return list of annotation definitions associated with enumeration type.
-     */
-    @Override
-    List<AnnotationType> getAnnotations();
-
-    @Override
-    Type getParentType();
-
     /**
      * Returns list of the couples - name and value.
      *
index bf74e5c61b5de6287d415e8a06a9321b6b8e7e6c..da38098e9cd962942aa82b816c9e7572de2baac1 100644 (file)
@@ -30,13 +30,6 @@ import java.util.Optional;
  * no need to specify the scope of visibility.
  */
 public interface GeneratedType extends Type, DocumentedType {
-    /**
-     * Returns the parent type if Generated Type is defined as enclosing type, otherwise returns <code>null</code>.
-     *
-     * @return the parent type if Generated Type is defined as enclosing type, otherwise returns <code>null</code>
-     */
-    Type getParentType();
-
     /**
      * Returns comment string associated with Generated Type.
      *
index 76b93a3ebc314362d7db0caf5260d18cf4ffa54a..dd312e483a8bcd7ed42c095f9d871f4802335668 100644 (file)
@@ -62,11 +62,4 @@ public interface TypeMember {
      * @return the name of member.
      */
     String getName();
-
-    /**
-     * Returns the Type that declares member.
-     *
-     * @return the Type that declares member.
-     */
-    Type getDefiningType();
 }
index 52af4456eb6ae93977fc51e14d4b7e6e6faeb8cb..9dd69984786075b33d6b11af2e2191e67d2e1367 100644 (file)
@@ -8,11 +8,10 @@
 package org.opendaylight.mdsal.binding.model.api.type.builder;
 
 import org.opendaylight.mdsal.binding.model.api.Constant;
-import org.opendaylight.mdsal.binding.model.api.Type;
 
 public interface ConstantBuilder {
 
     void assignValue(Object value);
 
-    Constant toInstance(Type definingType);
+    Constant toInstance();
 }
index 1815a0904612f7bfadf750cd15ab9a280bd33d2c..9f66e313db0c851e67e6a5324061b8cfa899377c 100644 (file)
@@ -20,7 +20,7 @@ public interface EnumBuilder extends Type, AnnotableTypeBuilder {
 
     void setDescription(String description);
 
-    Enumeration toInstance(Type definingType);
+    Enumeration toInstance();
 
     /**
      * Updates this builder with data from <code>enumTypeDef</code>. Specifically this data represents list
index 114e37b65157cb381075cc1a9529178509b12ec6..75d4a6ec7c1cbe16c3dc45e0f7163572d53339c5 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.mdsal.binding.model.api.type.builder;
 
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
-import org.opendaylight.mdsal.binding.model.api.Type;
 
 /**
  * Generated Property Builder is interface that contains methods to build and instantiate Generated Property definition.
@@ -35,8 +34,7 @@ public interface GeneratedPropertyBuilder extends TypeMemberBuilder<GeneratedPro
      * as <code>null</code> reference the method SHOULD thrown
      * {@link IllegalArgumentException}.
      *
-     * @param definingType Defining Type of Generated Property
      * @return <code>new</code> <i>immutable</i> instance of Generated Property.
      */
-    GeneratedProperty toInstance(Type definingType);
+    GeneratedProperty toInstance();
 }
index b37efac4127a0085ade665bebee74668f3400f18..cb50ded0b35fd6f60419763377eea9a4be74d3b9 100644 (file)
@@ -847,7 +847,7 @@ abstract class AbstractTypeGenerator {
         final EnumBuilder enumBuilder = typeBuilder.addEnumeration(BindingMapping.getClassName(enumName));
         typeProvider.addEnumDescription(enumBuilder, enumTypeDef);
         enumBuilder.updateEnumPairsFromEnumTypeDef(enumTypeDef);
-        final Enumeration ret = enumBuilder.toInstance(typeBuilder);
+        final Enumeration ret = enumBuilder.toInstance();
         context.addTypeToSchema(ret, enumTypeDef);
         context.addInnerTypedefType(enumTypeDef.getPath(), ret);
         return ret;
index ffac152c86d905a6cef70e65125f854a57e96c11..47667067a4a41c0130f2d59cde145e489b5e8aa0 100644 (file)
@@ -635,7 +635,7 @@ public abstract class AbstractTypeProvider implements TypeProvider {
         enumBuilder.setModuleName(module.getName());
         enumBuilder.setSchemaPath(enumTypeDef.getPath());
         enumBuilder.updateEnumPairsFromEnumTypeDef(enumTypeDef);
-        return enumBuilder.toInstance(null);
+        return enumBuilder.toInstance();
     }
 
     /**
@@ -669,7 +669,7 @@ public abstract class AbstractTypeProvider implements TypeProvider {
 
         addEnumDescription(enumBuilder, enumTypeDef);
         enumBuilder.updateEnumPairsFromEnumTypeDef(enumTypeDef);
-        return enumBuilder.toInstance(enumBuilder);
+        return enumBuilder.toInstance();
     }
 
     public abstract void addEnumDescription(EnumBuilder enumBuilder, EnumTypeDefinition enumTypeDef);
index 4dce6e448d8fae15d88f3016166e9ce8a346013f..476608c1b2d48d4d30b443f7b98240de6b60ce03 100644 (file)
@@ -162,14 +162,11 @@ public abstract class AbstractEnumerationBuilder extends AbstractBaseType implem
     }
 
     abstract static class AbstractEnumeration extends AbstractBaseType implements Enumeration {
-
-        private final Type definingType;
-        private final List<Pair> values;
         private final List<AnnotationType> annotations;
+        private final List<Pair> values;
 
-        AbstractEnumeration(final AbstractEnumerationBuilder builder, final Type definingType) {
+        AbstractEnumeration(final AbstractEnumerationBuilder builder) {
             super(builder.getIdentifier());
-            this.definingType = definingType;
             this.values = ImmutableList.copyOf(builder.values);
 
             final ArrayList<AnnotationType> a = new ArrayList<>();
@@ -179,11 +176,6 @@ public abstract class AbstractEnumerationBuilder extends AbstractBaseType implem
             this.annotations = ImmutableList.copyOf(a);
         }
 
-        @Override
-        public final Type getParentType() {
-            return this.definingType;
-        }
-
         @Override
         public final List<Pair> getValues() {
             return this.values;
@@ -226,14 +218,6 @@ public abstract class AbstractEnumerationBuilder extends AbstractBaseType implem
             final StringBuilder builder = new StringBuilder();
             builder.append("Enumeration [packageName=");
             builder.append(getPackageName());
-            if (this.definingType != null) {
-                builder.append(", definingType=");
-                builder.append(this.definingType.getPackageName());
-                builder.append(".");
-                builder.append(this.definingType.getName());
-            } else {
-                builder.append(", definingType= null");
-            }
             builder.append(", name=");
             builder.append(getName());
             builder.append(", values=");
index 19771709e0d01c9e904187834e4196dd96cef6b2..73a1b16bbe1e470ee47cb4aabcc0f53758c46710 100644 (file)
@@ -33,7 +33,6 @@ import org.opendaylight.mdsal.binding.model.api.type.builder.MethodSignatureBuil
 
 abstract class AbstractGeneratedType extends AbstractBaseType implements GeneratedType {
 
-    private final Type parent;
     private final TypeComment comment;
     private final List<AnnotationType> annotations;
     private final List<Type> implementsTypes;
@@ -47,7 +46,6 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat
 
     AbstractGeneratedType(final AbstractGeneratedTypeBuilder<?> builder) {
         super(builder.getIdentifier());
-        this.parent = builder.getParent();
         this.comment = builder.getComment();
         this.annotations = toUnmodifiableAnnotations(builder.getAnnotations());
         this.implementsTypes = makeUnmodifiable(builder.getImplementsTypes());
@@ -61,14 +59,13 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat
         this.definition = builder.getYangSourceDefinition().orElse(null);
     }
 
-    AbstractGeneratedType(final Type parent, final JavaTypeName identifier, final TypeComment comment,
+    AbstractGeneratedType(final JavaTypeName identifier, final TypeComment comment,
             final List<AnnotationTypeBuilder> annotationBuilders, final boolean isAbstract,
             final List<Type> implementsTypes, final List<GeneratedTypeBuilder> enclosedGenTypeBuilders,
             final List<GeneratedTOBuilder> enclosedGenTOBuilders, final List<EnumBuilder> enumBuilders,
             final List<Constant> constants, final List<MethodSignatureBuilder> methodBuilders,
             final List<GeneratedPropertyBuilder> propertyBuilders) {
         super(identifier);
-        this.parent = parent;
         this.comment = comment;
         this.annotations = toUnmodifiableAnnotations(annotationBuilders);
         this.implementsTypes = makeUnmodifiable(implementsTypes);
@@ -151,7 +148,7 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat
     protected final List<Enumeration> toUnmodifiableEnumerations(final List<EnumBuilder> enumBuilders) {
         final List<Enumeration> enums = new ArrayList<>(enumBuilders.size());
         for (final EnumBuilder enumBuilder : enumBuilders) {
-            enums.add(enumBuilder.toInstance(this));
+            enums.add(enumBuilder.toInstance());
         }
         return makeUnmodifiable(enums);
     }
@@ -160,16 +157,11 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat
             final List<GeneratedPropertyBuilder> methodBuilders) {
         final List<GeneratedProperty> methods = new ArrayList<>(methodBuilders.size());
         for (final GeneratedPropertyBuilder methodBuilder : methodBuilders) {
-            methods.add(methodBuilder.toInstance(this));
+            methods.add(methodBuilder.toInstance());
         }
         return makeUnmodifiable(methods);
     }
 
-    @Override
-    public final Type getParentType() {
-        return this.parent;
-    }
-
     @Override
     public final TypeComment getComment() {
         return this.comment;
@@ -227,12 +219,6 @@ abstract class AbstractGeneratedType extends AbstractBaseType implements Generat
         builder.append(getPackageName());
         builder.append(", name=");
         builder.append(getName());
-        if (this.parent != null) {
-            builder.append(", parent=");
-            builder.append(this.parent.getFullyQualifiedName());
-        } else {
-            builder.append(", parent=null");
-        }
         builder.append(", comment=");
         builder.append(this.comment);
         builder.append(", annotations=");
index 4d641a0e65b98b761a8f5497e9e0b51c469d004f..28ac9a3d1edbb2f76b3437c17a6f1c7b1d9f129a 100644 (file)
@@ -148,7 +148,7 @@ abstract class AbstractGeneratedTypeBuilder<T extends GeneratedTypeBuilderBase<T
         checkArgument(!containsConstant(name),
             "This generated type already contains a \"%s\" constant", name);
 
-        final Constant constant = new ConstantImpl(this, type, name, value);
+        final Constant constant = new ConstantImpl(type, name, value);
         this.constants = LazyCollections.lazyAdd(this.constants, constant);
         return constant;
     }
index b9c5aa1526c512643a365ef53c651d3bdbd683dd..e51bc65cf23faf2bf6b8f2715f4b2f689073a87e 100644 (file)
@@ -19,17 +19,15 @@ abstract class AbstractTypeMember implements TypeMember {
 
     private final String name;
     private final TypeMemberComment comment;
-    private final Type definingType;
     private final Type returnType;
     private final List<AnnotationType> annotations;
     private final boolean isFinal;
     private final boolean isStatic;
     private final AccessModifier accessModifier;
 
-    protected AbstractTypeMember(final Type definingType, final String name,  final List<AnnotationType> annotations,
+    protected AbstractTypeMember(final String name,  final List<AnnotationType> annotations,
             final TypeMemberComment comment, final AccessModifier accessModifier, final Type returnType,
             final boolean isFinal, final boolean isStatic) {
-        this.definingType = definingType;
         this.name = name;
         this.annotations = annotations;
         this.comment = comment;
@@ -54,11 +52,6 @@ abstract class AbstractTypeMember implements TypeMember {
         return comment;
     }
 
-    @Override
-    public Type getDefiningType() {
-        return this.definingType;
-    }
-
     @Override
     public AccessModifier getAccessModifier() {
         return this.accessModifier;
@@ -98,17 +91,12 @@ abstract class AbstractTypeMember implements TypeMember {
 
     @Override
     public String toString() {
-        final StringBuilder builder = new StringBuilder()
+        return new StringBuilder()
             .append("AbstractTypeMember [name=").append(getName())
             .append(", comment=").append(getComment())
-            .append(", definingType=");
-        if (getDefiningType() != null) {
-            builder.append(getDefiningType().getPackageName()).append('.').append(getDefiningType().getName());
-        } else {
-            builder.append(" null");
-        }
-        return builder.append(", returnType=").append(getReturnType())
+            .append(", returnType=").append(getReturnType())
             .append(", annotations=").append(getAnnotations())
-            .append(']').toString();
+            .append(']')
+            .toString();
     }
 }
index 92c5221e3c92393a3ef8d5f2fce2af2f3b888de3..f80e54274ad0078d1fe7513790817a4581ee3ba9 100644 (file)
@@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull;
 import java.util.Optional;
 import org.opendaylight.mdsal.binding.model.api.Enumeration;
 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
-import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.mdsal.binding.model.api.TypeComment;
 import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -51,8 +50,8 @@ public final class CodegenEnumerationBuilder extends AbstractEnumerationBuilder
     }
 
     @Override
-    public Enumeration toInstance(final Type definingType) {
-        return new EnumerationImpl(this, definingType);
+    public Enumeration toInstance() {
+        return new EnumerationImpl(this);
     }
 
     @Override
@@ -96,8 +95,8 @@ public final class CodegenEnumerationBuilder extends AbstractEnumerationBuilder
         private final String moduleName;
         private final SchemaPath schemaPath;
 
-        EnumerationImpl(final CodegenEnumerationBuilder builder, final Type definingType) {
-            super(builder, definingType);
+        EnumerationImpl(final CodegenEnumerationBuilder builder) {
+            super(builder);
             this.description = builder.description;
             this.moduleName = builder.moduleName;
             this.schemaPath = builder.schemaPath;
index 4a27bbe31ae4e453bb59a989592c4c61860c7999..b115bf5d2e76954028dd78ebc382990afc181efd 100644 (file)
@@ -87,7 +87,7 @@ public final class CodegenGeneratedTOBuilder extends AbstractGeneratedTOBuilder
             if (builder.suid == null) {
                 this.suid = null;
             } else {
-                this.suid = builder.suid.toInstance(GTO.this);
+                this.suid = builder.suid.toInstance();
             }
         }
 
index 7ad4fbb3c804894f21c77a14e135c48d4dc4fb95..a0437f3d28b3aea862a4577eb3895bb9a4703c26 100644 (file)
@@ -12,24 +12,16 @@ import org.opendaylight.mdsal.binding.model.api.Constant;
 import org.opendaylight.mdsal.binding.model.api.Type;
 
 final class ConstantImpl implements Constant {
-
-    private final Type definingType;
     private final Type type;
     private final String name;
     private final Object value;
 
-    ConstantImpl(final Type definingType, final Type type, final String name, final Object value) {
-        this.definingType = definingType;
+    ConstantImpl(final Type type, final String name, final Object value) {
         this.type = type;
         this.name = name;
         this.value = value;
     }
 
-    @Override
-    public Type getDefiningType() {
-        return this.definingType;
-    }
-
     @Override
     public Type getType() {
         return this.type;
@@ -81,14 +73,6 @@ final class ConstantImpl implements Constant {
         builder.append(this.name);
         builder.append(", value=");
         builder.append(this.value);
-        if (this.definingType != null) {
-            builder.append(", definingType=");
-            builder.append(this.definingType.getPackageName());
-            builder.append(".");
-            builder.append(this.definingType.getName());
-        } else {
-            builder.append(", definingType= null");
-        }
         builder.append("]");
         return builder.toString();
     }
index ca406eaddee38aa209d8fc0d16e02029c89ebef6..485ab354ab0655deb1d5abc81b8d6fee670bebd8 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.mdsal.binding.model.util.generated.type.builder;
 import java.util.List;
 import org.opendaylight.mdsal.binding.model.api.AnnotationType;
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
-import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder;
 
 public final class GeneratedPropertyBuilderImpl extends AbstractTypeMemberBuilder<GeneratedPropertyBuilder>
@@ -41,10 +40,10 @@ public final class GeneratedPropertyBuilderImpl extends AbstractTypeMemberBuilde
     }
 
     @Override
-    public GeneratedProperty toInstance(final Type definingType) {
+    public GeneratedProperty toInstance() {
         final List<AnnotationType> annotations = toAnnotationTypes();
-        return new GeneratedPropertyImpl(definingType, getName(), annotations, getComment(), getAccessModifier(),
-                getReturnType(), isFinal(), isStatic(), this.readOnly, this.value);
+        return new GeneratedPropertyImpl(getName(), annotations, getComment(), getAccessModifier(), getReturnType(),
+            isFinal(), isStatic(), this.readOnly, this.value);
     }
 
     @Override
index 166e89331227a5d1c52296fa3c1e3678426406e9..3df8ac463d42eeef4902c5e6b0c62fa31e3da51b 100644 (file)
@@ -18,10 +18,10 @@ final class GeneratedPropertyImpl extends AbstractTypeMember implements Generate
     private final String value;
     private final boolean readOnly;
 
-    GeneratedPropertyImpl(final Type definingType, final String name, final List<AnnotationType> annotations,
-            final TypeMemberComment comment, final AccessModifier accessModifier, final Type returnType,
-            final boolean isFinal, final boolean isStatic, final boolean isReadOnly, final String value) {
-        super(definingType, name, annotations, comment, accessModifier, returnType, isFinal, isStatic);
+    GeneratedPropertyImpl(final String name, final List<AnnotationType> annotations, final TypeMemberComment comment,
+            final AccessModifier accessModifier, final Type returnType, final boolean isFinal, final boolean isStatic,
+            final boolean isReadOnly, final String value) {
+        super(name, annotations, comment, accessModifier, returnType, isFinal, isStatic);
         this.value = value;
         this.readOnly = isReadOnly;
     }
@@ -38,20 +38,15 @@ final class GeneratedPropertyImpl extends AbstractTypeMember implements Generate
 
     @Override
     public String toString() {
-        final StringBuilder builder = new StringBuilder()
+        return new StringBuilder()
             .append("GeneratedPropertyImpl [name=").append(getName())
             .append(", annotations=").append(getAnnotations())
             .append(", comment=").append(getComment())
-            .append(", parent=");
-        if (getDefiningType() != null) {
-            builder.append(getDefiningType().getPackageName()).append(".").append(getDefiningType().getName());
-        } else {
-            builder.append("null");
-        }
-        return builder.append(", returnType=").append(getReturnType())
+            .append(", returnType=").append(getReturnType())
             .append(", isFinal=").append(isFinal())
             .append(", isReadOnly=").append(readOnly)
             .append(", modifier=").append(getAccessModifier())
-            .append(']').toString();
+            .append(']')
+            .toString();
     }
 }
index 7e1b9d16aeeaef1055ed3270faefb911070165ff..daaa4806c614b100330e0d3c763825b84c92c3af 100644 (file)
@@ -64,8 +64,8 @@ final class MethodSignatureBuilderImpl extends AbstractTypeMemberBuilder<MethodS
     @Override
     public MethodSignature toInstance(final Type definingType) {
         final List<AnnotationType> annotations = toAnnotationTypes();
-        return new MethodSignatureImpl(definingType, getName(), annotations, getComment(), getAccessModifier(),
-                getReturnType(), this.unmodifiableParams, isFinal(), this.isAbstract, isStatic(), isDefault, mechanics);
+        return new MethodSignatureImpl(getName(), annotations, getComment(), getAccessModifier(), getReturnType(),
+            unmodifiableParams, isFinal(), isAbstract, isStatic(), isDefault, mechanics);
     }
 
     @Override
index 305c2eb2eb242dc5c9cb004e666f3a5fc2ef186c..6a1409fd917576f0a8b1a52fbb3a9b5df4a259ef 100644 (file)
@@ -26,18 +26,18 @@ class MethodSignatureImpl extends AbstractTypeMember implements MethodSignature
     private final boolean isDefault;
 
     @VisibleForTesting
-    MethodSignatureImpl(final Type definingType, final String name, final List<AnnotationType> annotations,
-        final TypeMemberComment comment, final AccessModifier accessModifier, final Type returnType,
-        final List<Parameter> params, final boolean isFinal, final boolean isAbstract, final boolean isStatic) {
-        this(definingType, name, annotations, comment, accessModifier, returnType, params, isFinal, isAbstract,
-            isStatic, false, ValueMechanics.NORMAL);
+    MethodSignatureImpl(final String name, final List<AnnotationType> annotations,
+            final TypeMemberComment comment, final AccessModifier accessModifier, final Type returnType,
+            final List<Parameter> params, final boolean isFinal, final boolean isAbstract, final boolean isStatic) {
+        this(name, annotations, comment, accessModifier, returnType, params, isFinal, isAbstract, isStatic, false,
+            ValueMechanics.NORMAL);
     }
 
-    MethodSignatureImpl(final Type definingType, final String name, final List<AnnotationType> annotations,
+    MethodSignatureImpl(final String name, final List<AnnotationType> annotations,
             final TypeMemberComment comment, final AccessModifier accessModifier, final Type returnType,
             final List<Parameter> params, final boolean isFinal, final boolean isAbstract, final boolean isStatic,
             final boolean isDefault, final ValueMechanics mechanics) {
-        super(definingType, name, annotations, comment, accessModifier, returnType, isFinal, isStatic);
+        super(name, annotations, comment, accessModifier, returnType, isFinal, isStatic);
         this.params = params;
         this.isAbstract = isAbstract;
         this.isDefault = isDefault;
@@ -90,22 +90,13 @@ class MethodSignatureImpl extends AbstractTypeMember implements MethodSignature
 
     @Override
     public String toString() {
-        final StringBuilder builder = new StringBuilder()
+        return new StringBuilder()
             .append("MethodSignatureImpl [name=").append(getName())
             .append(", comment=").append(getComment())
-            .append(", definingType=");
-
-        final Type defType = getDefiningType();
-        if (defType != null) {
-            builder.append(defType.getPackageName()).append('.').append(defType.getName());
-        } else {
-            builder.append(" null");
-        }
-
-        return builder
             .append(", returnType=").append(getReturnType())
             .append(", params=").append(this.params)
             .append(", annotations=").append(getAnnotations())
-            .append(']').toString();
+            .append(']')
+            .toString();
     }
 }
index 8348aa6957a920d11b2aaa84b7d1f4b9a6d3d278..bedc81ec47c08d64886d9ba4ab09fd9d864ee626 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.mdsal.binding.model.util.generated.type.builder;
 import java.util.Optional;
 import org.opendaylight.mdsal.binding.model.api.Enumeration;
 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
-import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.mdsal.binding.model.api.TypeComment;
 import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -43,8 +42,8 @@ public final class RuntimeEnumerationBuilder extends AbstractEnumerationBuilder
     }
 
     @Override
-    public Enumeration toInstance(final Type definingType) {
-        return new EnumerationImpl(this, definingType);
+    public Enumeration toInstance() {
+        return new EnumerationImpl(this);
     }
 
     @Override
@@ -75,8 +74,8 @@ public final class RuntimeEnumerationBuilder extends AbstractEnumerationBuilder
     }
 
     private static final class EnumerationImpl extends AbstractEnumeration {
-        EnumerationImpl(final RuntimeEnumerationBuilder builder, final Type definingType) {
-            super(builder, definingType);
+        EnumerationImpl(final RuntimeEnumerationBuilder builder) {
+            super(builder);
         }
 
         @Override
index c512bb192fa7b93e891d2d539dda1cabc3361c6c..e7f2a827f465ae5982949db8bff32dfd6ac17bad 100644 (file)
@@ -36,7 +36,8 @@ public class AbstractTypeMemberTest {
         assertTrue(genProperty.isFinal());
         assertTrue(genProperty.isStatic());
         assertEquals(genProperty.hashCode(), genProperty2.hashCode());
-        assertTrue(genProperty.toString().contains("org.opendaylight.yangtools.test.TestType"));
+        assertEquals("MethodSignatureImpl [name=TestProperty, comment=TypeMemberComment{contract=test comment}, "
+            + "returnType=null, params=[], annotations=[]]", genProperty.toString());
         assertNotNull(genProperty.toString());
         assertTrue(genProperty.equals(genProperty2));
         assertFalse(genProperty.equals(null));
index 4f16e951b67bea22ac726f51bc6d74714b327625..da833f6351282090f9b3e764065f52f9f40214dd 100644 (file)
@@ -16,28 +16,23 @@ import org.junit.Test;
 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 
 public class ConstantImplTest {
-
     @Test
     public void testMethodsOfConstantImpl() {
-        final CodegenGeneratedTypeBuilder definingType = new CodegenGeneratedTypeBuilder(
-            JavaTypeName.create("org.opendaylight.yangtools.test", "DefiningType"));
         final CodegenGeneratedTypeBuilder type = new CodegenGeneratedTypeBuilder(
             JavaTypeName.create("org.opendaylight.yangtools.test.v1", "BaseType"));
-        final ConstantImpl constImpl = new ConstantImpl(definingType, type, "IpAddress", "127.0.0.1");
-        final ConstantImpl constImpl2 = new ConstantImpl(definingType, type, "IpAddress", "127.0.0.1");
-        final ConstantImpl constImpl3 = new ConstantImpl(definingType, type, "IpAddress", "127.0.0.0");
+        final ConstantImpl constImpl = new ConstantImpl(type, "IpAddress", "127.0.0.1");
+        final ConstantImpl constImpl2 = new ConstantImpl(type, "IpAddress", "127.0.0.1");
+        final ConstantImpl constImpl3 = new ConstantImpl(type, "IpAddress", "127.0.0.0");
         final ConstantImpl constImpl4 = constImpl;
-        final ConstantImpl constImpl5 = new ConstantImpl(definingType, type, null, "127.0.0.0");
-        final ConstantImpl constImpl6 = new ConstantImpl(definingType, type, "IpAddress", null);
+        final ConstantImpl constImpl5 = new ConstantImpl(type, null, "127.0.0.0");
+        final ConstantImpl constImpl6 = new ConstantImpl(type, "IpAddress", null);
 
-        assertEquals("DefiningType", constImpl.getDefiningType().getName());
         assertEquals("BaseType", constImpl.getType().getName());
         assertEquals("IpAddress", constImpl.getName());
         assertEquals("127.0.0.1", constImpl.getValue());
         assertTrue(constImpl.toFormattedString().contains("GeneratedTransferObject"));
         assertTrue(constImpl.toString().contains("GeneratedTransferObject"));
         assertEquals(constImpl.hashCode(), constImpl2.hashCode());
-        assertNotNull(constImpl.getDefiningType());
         assertNotNull(constImpl.getType());
         assertNotNull(constImpl.getName());
         assertNotNull(constImpl.getValue());
index 14a612b85fcdcca5ff4e346620d788835e0a15f8..8cb09ba2744c1c7f7868e22717959bdd9efab1de 100644 (file)
@@ -55,7 +55,7 @@ public class EnumerationBuilderImplTest {
         enumerationBuilderOtherName = new CodegenEnumerationBuilder(JavaTypeName.create(packageName, "SomeOtherName"));
         enumerationBuilderOtherPackage = new CodegenEnumerationBuilder(JavaTypeName.create("org.opendaylight.other",
             name));
-        enumeration = enumerationBuilder.toInstance(enumerationBuilder);
+        enumeration = enumerationBuilder.toInstance();
     }
 
     @Test(expected = NullPointerException.class)
@@ -92,7 +92,6 @@ public class EnumerationBuilderImplTest {
         assertEquals(name, enumeration.getName());
         assertEquals(packageName, enumeration.getPackageName());
         assertEquals(null, enumeration.getComment());
-        assertEquals(enumerationBuilder, enumeration.getParentType());
         assertEquals(DESCRIPTION, enumeration.getDescription());
         assertEquals(moduleName, enumeration.getModuleName());
         assertEquals(packageName + '.' + name, enumeration.getFullyQualifiedName());
@@ -112,20 +111,19 @@ public class EnumerationBuilderImplTest {
         assertEquals(enumeration, enumeration);
         assertNotEquals(enumeration, "string");
 
-        final Enumeration enumerationOtherPackage = enumerationBuilderOtherPackage
-                .toInstance(enumerationBuilderOtherPackage);
+        final Enumeration enumerationOtherPackage = enumerationBuilderOtherPackage.toInstance();
         assertNotEquals(enumeration, enumerationOtherPackage);
 
-        final Enumeration enumerationOtherName = enumerationBuilderOtherName.toInstance(enumerationBuilderOtherName);
+        final Enumeration enumerationOtherName = enumerationBuilderOtherName.toInstance();
         assertNotEquals(enumeration, enumerationOtherName);
 
         enumerationBuilderSame.addValue(valueName, valueName, value, Status.CURRENT, valueDescription, null);
-        final Enumeration enumerationSame = enumerationBuilderSame.toInstance(enumerationBuilderSame);
+        final Enumeration enumerationSame = enumerationBuilderSame.toInstance();
         assertEquals(enumeration, enumerationSame);
 
         final CodegenEnumerationBuilder enumerationBuilderSame1 = new CodegenEnumerationBuilder(
             JavaTypeName.create(packageName, name));
-        final Enumeration enumerationSame1 = enumerationBuilderSame1.toInstance(enumerationBuilderSame1);
+        final Enumeration enumerationSame1 = enumerationBuilderSame1.toInstance();
         enumerationBuilderSame1.addValue(valueName, valueName, 14, Status.CURRENT, valueDescription, null);
         // Enums are equal thanks to same package name and local name
         assertEquals(enumeration, enumerationSame1);
@@ -133,14 +131,11 @@ public class EnumerationBuilderImplTest {
 
     @Test
     public void testEnumerationToString() {
-        final String formattedString = "public enum " + name + " {\n"
-                + "\t TestValue " + "(12 );\n"
-                + "}";
-        final String s = "Enumeration [packageName=" + packageName + ", definingType=" + packageName + "." + name
-                + ", name=" + name + ", values=[EnumPair [name=TestValue, mappedName=TestValue, value=12]]]";
-
-        assertEquals(s, enumeration.toString());
-        assertEquals(formattedString, enumeration.toFormattedString());
+        assertEquals("Enumeration [packageName=" + packageName + ", name=" + name
+            + ", values=[EnumPair [name=TestValue, mappedName=TestValue, value=12]]]", enumeration.toString());
+        assertEquals("public enum " + name + " {\n"
+            + "\t TestValue " + "(12 );\n"
+            + "}", enumeration.toFormattedString());
 
         assertEquals("EnumerationBuilderImpl [packageName=org.opendaylight.test, name=TestName, "
                 + "values=[EnumPair [name=TestValue, mappedName=TestValue, value=12]]]",
index e60d763b5a7abb12b8a3798ec63d47f1eb1fded8..36e5ae6b1cd8026ff54f4fde5e281299533093ae 100644 (file)
@@ -35,7 +35,7 @@ public class GeneratedPropertyBuilderImplTest {
                 + "(java.lang.Boolean), isFinal=true, isReadOnly=false, modifier=PUBLIC]",
                 generatedPropertyBuilderImpl.toString());
 
-        GeneratedProperty instance = generatedPropertyBuilderImpl.toInstance(null);
+        GeneratedProperty instance = generatedPropertyBuilderImpl.toInstance();
 
         assertNotNull(instance);
 
index 3e05d8e78811754ed6928fb58f3e1c5a1fd1f74f..31ca9b26d304a55118956f79d495d20b85de25d6 100644 (file)
@@ -15,7 +15,6 @@ import static org.junit.Assert.assertTrue;
 import org.junit.Test;
 import org.opendaylight.mdsal.binding.model.api.AccessModifier;
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
-import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
 import org.opendaylight.mdsal.binding.model.api.TypeMemberComment;
 import org.opendaylight.mdsal.binding.model.util.Types;
 
@@ -32,8 +31,7 @@ public class GeneratedPropertyImplTest {
         generatedPropertyBuilderImpl.setAccessModifier(AccessModifier.PUBLIC);
         generatedPropertyBuilderImpl.setReturnType(Types.BOOLEAN);
 
-        GeneratedProperty instance = generatedPropertyBuilderImpl.toInstance(new CodegenGeneratedTypeBuilder(
-            JavaTypeName.create("my.package", "myTypeName")).build());
+        GeneratedProperty instance = generatedPropertyBuilderImpl.toInstance();
 
         assertNotNull(instance);
 
@@ -47,7 +45,7 @@ public class GeneratedPropertyImplTest {
 
         assertEquals("GeneratedPropertyImpl [name=myPropertyName, annotations=[], "
             + "comment=TypeMemberComment{contract=myComment}, "
-            + "parent=my.package.myTypeName, returnType=Type (java.lang.Boolean), isFinal=true, isReadOnly=false, "
+            + "returnType=Type (java.lang.Boolean), isFinal=true, isReadOnly=false, "
             + "modifier=PUBLIC]", instance.toString());
     }
 
@@ -65,10 +63,10 @@ public class GeneratedPropertyImplTest {
         generatedPropertyBuilderImpl3.setReturnType(Types.BOOLEAN);
         generatedPropertyBuilderImpl4.setReturnType(Types.STRING);
 
-        final GeneratedProperty property = generatedPropertyBuilderImpl.toInstance(null);
-        final GeneratedProperty property2 = generatedPropertyBuilderImpl2.toInstance(null);
-        final GeneratedProperty property3 = generatedPropertyBuilderImpl3.toInstance(null);
-        final GeneratedProperty property4 = generatedPropertyBuilderImpl4.toInstance(null);
+        final GeneratedProperty property = generatedPropertyBuilderImpl.toInstance();
+        final GeneratedProperty property2 = generatedPropertyBuilderImpl2.toInstance();
+        final GeneratedProperty property3 = generatedPropertyBuilderImpl3.toInstance();
+        final GeneratedProperty property4 = generatedPropertyBuilderImpl4.toInstance();
 
         assertNotNull(property);
         assertNotNull(property2);
index 00e3dc7d504350dad9a0cdc788eb91aac748df22..f2a9b9cb0b801d84e1b8ec5c33c137d63b264c1c 100644 (file)
@@ -25,7 +25,7 @@ public class GeneratedPropertyTest {
         propertyBuilderImpl.setValue("new value");
         propertyBuilderImpl.setReadOnly(true);
 
-        final GeneratedProperty genProperty = propertyBuilderImpl.toInstance(null);
+        final GeneratedProperty genProperty = propertyBuilderImpl.toInstance();
         assertNotNull(genProperty);
 
         assertNotNull(propertyBuilderImpl.toString());
@@ -33,7 +33,7 @@ public class GeneratedPropertyTest {
 
     @Test
     public void testMethodsForGeneratedPropertyImpl() {
-        final GeneratedPropertyImpl propertyImpl = new GeneratedPropertyImpl(null, "Test", null,
+        final GeneratedPropertyImpl propertyImpl = new GeneratedPropertyImpl("Test", null,
             TypeMemberComment.contractOf("test property"), AccessModifier.PRIVATE, null, true, true, true,
             "test value");
 
index f8d696f09237074ba1fea5dbe86a1f0bfe15e4c4..649f23f6062d808a6642be2a90e032548b36130a 100644 (file)
@@ -50,12 +50,9 @@ public class GeneratedTypeBuilderTest {
         Constant constant2 = generatedTypeBuilder.addConstant(
                 Types.typeForClass(int.class, BindingGeneratorUtil.getRestrictions(null)), "myIntConstant", 1);
 
-        Constant constant3 = new ConstantImpl(generatedTypeBuilder, Types.typeForClass(String.class), "myConstant",
-                "myConstantValue");
-        final Constant constant4 = new ConstantImpl(generatedTypeBuilder, Types.typeForClass(String.class),
-            "myConstant2", "myConstantValue");
-        final Constant constant5 = new ConstantImpl(generatedTypeBuilder, Types.typeForClass(String.class),
-            "myConstant", "myConstantValue2");
+        Constant constant3 = new ConstantImpl(Types.typeForClass(String.class), "myConstant", "myConstantValue");
+        final Constant constant4 = new ConstantImpl(Types.typeForClass(String.class), "myConstant2", "myConstantValue");
+        final Constant constant5 = new ConstantImpl(Types.typeForClass(String.class), "myConstant", "myConstantValue2");
 
         assertNotNull(constant);
         assertNotNull(constant2);
@@ -79,8 +76,8 @@ public class GeneratedTypeBuilderTest {
         assertFalse(constant.hashCode() == constant4.hashCode());
         assertTrue(constant.hashCode() == constant5.hashCode());
 
-        assertEquals("Constant [type=Type (java.lang.String), name=myConstant, value=myConstantValue, "
-                + "definingType=my.package.MyName]", constant.toString());
+        assertEquals("Constant [type=Type (java.lang.String), name=myConstant, value=myConstantValue]",
+            constant.toString());
 
         assertEquals("Type (java.lang.String) myConstant myConstantValue", constant.toFormattedString());
 
@@ -97,7 +94,6 @@ public class GeneratedTypeBuilderTest {
         assertEquals("myConstant", constant.getName());
         assertEquals("myConstantValue", constant.getValue());
         assertEquals(Types.typeForClass(String.class), constant.getType());
-        assertEquals(generatedTypeBuilder, constant.getDefiningType());
     }
 
     @Test(expected = IllegalArgumentException.class)
@@ -158,10 +154,10 @@ public class GeneratedTypeBuilderTest {
 
         assertEquals(2, properties.size());
 
-        assertTrue(properties.contains(propertyBuilder.toInstance(instance)));
-        assertTrue(properties.contains(propertyBuilder2.toInstance(instance)));
+        assertTrue(properties.contains(propertyBuilder.toInstance()));
+        assertTrue(properties.contains(propertyBuilder2.toInstance()));
         // assertTrue(properties.contains(propertyBuilderNull.toInstance(instance)));
-        assertFalse(properties.contains(new GeneratedPropertyBuilderImpl("myProperty3").toInstance(instance)));
+        assertFalse(properties.contains(new GeneratedPropertyBuilderImpl("myProperty3").toInstance()));
 
     }
 
@@ -217,11 +213,10 @@ public class GeneratedTypeBuilderTest {
 
         assertEquals(2, enumerations.size());
 
-        assertTrue(enumerations.contains(enumBuilder.toInstance(instance)));
-        assertTrue(enumerations.contains(enumBuilder2.toInstance(instance)));
+        assertTrue(enumerations.contains(enumBuilder.toInstance()));
+        assertTrue(enumerations.contains(enumBuilder2.toInstance()));
         assertFalse(enumerations.contains(new CodegenEnumerationBuilder(JavaTypeName.create("my.package",
-            "myEnumName3"))
-            .toInstance(instance)));
+            "myEnumName3")).toInstance()));
 
     }
 
index 0558438538ba8d4a8d505027a9cb073274bcf8f6..56981ac8dac9c4f4178155c5ebe199fa5111c2a5 100644 (file)
@@ -45,18 +45,18 @@ public class MethodSignatureImplTest {
         boolean isAbstract = false;
         boolean isStatic = false;
 
-        signature1 = new MethodSignatureImpl(type, name, annotations, comment,
+        signature1 = new MethodSignatureImpl(name, annotations, comment,
                 accessModifier, returnType, params, isFinal, isAbstract,
                 isStatic);
-        signature2 = new MethodSignatureImpl(type, name, annotations, comment,
+        signature2 = new MethodSignatureImpl(name, annotations, comment,
                 accessModifier, returnType, params, isFinal, isAbstract,
                 isStatic);
         returnType = null;
-        signature3 = new MethodSignatureImpl(type, name, annotations, comment,
+        signature3 = new MethodSignatureImpl(name, annotations, comment,
                 accessModifier, returnType, params, isFinal, isAbstract,
                 isStatic);
         name = null;
-        signature4 = new MethodSignatureImpl(type, name, annotations, comment,
+        signature4 = new MethodSignatureImpl(name, annotations, comment,
                 accessModifier, returnType, params, isFinal, isAbstract,
                 isStatic);
 
index 3f7510ea2dd4d573e493386fc495066da8941d16..a9abd4b05f145ad1d28eea68408d31b2efd0c1ff 100644 (file)
@@ -87,11 +87,6 @@ final class BuilderGeneratedProperty implements GeneratedProperty {
         throw uoe();
     }
 
-    @Override
-    public Type getDefiningType() {
-        throw uoe();
-    }
-
     @Override
     public String getValue() {
         throw uoe();