Updated binding model
[yangtools.git] / code-generator / binding-generator-util / src / main / java / org / opendaylight / yangtools / binding / generator / util / generated / type / builder / AbstractGeneratedType.java
index 1c0c52ed7f54f9cdd31cb895f75875ffe4918093..8a2d5a35969c704935d28c964ac72930bcc2a7c3 100644 (file)
-/*
- * 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.yangtools.binding.generator.util.generated.type.builder;
-
-import org.opendaylight.yangtools.binding.generator.util.AbstractBaseType;
-import org.opendaylight.yangtools.sal.binding.model.api.*;
-import org.opendaylight.yangtools.sal.binding.model.api.type.builder.*;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-abstract class AbstractGeneratedType extends AbstractBaseType implements GeneratedType {
-
-    private final Type parent;
-    private final String comment;
-    private final List<AnnotationType> annotations;
-    private final List<Type> implementsTypes;
-    private final List<Enumeration> enumerations;
-    private final List<Constant> constants;
-    private final List<MethodSignature> methodSignatures;
-    private final List<GeneratedType> enclosedTypes;
-    private final boolean isAbstract;
-
-    public AbstractGeneratedType(final Type parent, final String packageName, final String name, final String 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) {
-        super(packageName, name);
-        this.parent = parent;
-        this.comment = comment;
-        this.annotations = toUnmodifiableAnnotations(annotationBuilders);
-        this.implementsTypes = Collections.unmodifiableList(implementsTypes);
-        this.constants = Collections.unmodifiableList(constants);
-        this.enumerations = toUnmodifiableEnumerations(enumBuilders);
-        this.methodSignatures = toUnmodifiableMethods(methodBuilders);
-        this.enclosedTypes = toUnmodifiableEnclosedTypes(enclosedGenTypeBuilders, enclosedGenTOBuilders);
-        this.isAbstract = isAbstract;
-    }
-
-    private List<GeneratedType> toUnmodifiableEnclosedTypes(final List<GeneratedTypeBuilder> enclosedGenTypeBuilders,
-            final List<GeneratedTOBuilder> enclosedGenTOBuilders) {
-        final List<GeneratedType> enclosedTypes = new ArrayList<>();
-        for (final GeneratedTypeBuilder builder : enclosedGenTypeBuilders) {
-            if (builder != null) {
-                enclosedTypes.add(builder.toInstance());
-            }
-        }
-
-        for (final GeneratedTOBuilder builder : enclosedGenTOBuilders) {
-            if (builder != null) {
-                enclosedTypes.add(builder.toInstance());
-            }
-        }
-        return enclosedTypes;
-    }
-
-    protected List<AnnotationType> toUnmodifiableAnnotations(final List<AnnotationTypeBuilder> annotationBuilders) {
-        final List<AnnotationType> annotations = new ArrayList<>();
-        for (final AnnotationTypeBuilder builder : annotationBuilders) {
-            annotations.add(builder.toInstance());
-        }
-        return Collections.unmodifiableList(annotations);
-    }
-
-    protected List<MethodSignature> toUnmodifiableMethods(List<MethodSignatureBuilder> methodBuilders) {
-        final List<MethodSignature> methods = new ArrayList<>();
-        for (final MethodSignatureBuilder methodBuilder : methodBuilders) {
-            methods.add(methodBuilder.toInstance(this));
-        }
-        return Collections.unmodifiableList(methods);
-    }
-
-    protected List<Enumeration> toUnmodifiableEnumerations(List<EnumBuilder> enumBuilders) {
-        final List<Enumeration> enums = new ArrayList<>();
-        for (final EnumBuilder enumBuilder : enumBuilders) {
-            enums.add(enumBuilder.toInstance(this));
-        }
-        return Collections.unmodifiableList(enums);
-    }
-
-    @Override
-    public Type getParentType() {
-        return parent;
-    }
-
-    @Override
-    public String getComment() {
-        return comment;
-    }
-
-    @Override
-    public List<AnnotationType> getAnnotations() {
-        return annotations;
-    }
-
-    @Override
-    public boolean isAbstract() {
-        return isAbstract;
-    }
-
-    @Override
-    public List<Type> getImplements() {
-        return implementsTypes;
-    }
-
-    @Override
-    public List<GeneratedType> getEnclosedTypes() {
-        return enclosedTypes;
-    }
-
-    @Override
-    public List<Enumeration> getEnumerations() {
-        return enumerations;
-    }
-
-    @Override
-    public List<Constant> getConstantDefinitions() {
-        return constants;
-    }
-
-    @Override
-    public List<MethodSignature> getMethodDefinitions() {
-        return methodSignatures;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder builder = new StringBuilder();
-        builder.append("GeneratedType [packageName=");
-        builder.append(getPackageName());
-        builder.append(", name=");
-        builder.append(getName());
-        if (parent != null) {
-            builder.append(", parent=");
-            builder.append(parent.getFullyQualifiedName());
-        } else {
-            builder.append(", parent=null");
-        }
-        builder.append(", comment=");
-        builder.append(comment);
-        builder.append(", annotations=");
-        builder.append(annotations);
-        builder.append(", enclosedTypes=");
-        builder.append(enclosedTypes);
-        builder.append(", enumerations=");
-        builder.append(enumerations);
-        builder.append(", constants=");
-        builder.append(constants);
-        builder.append(", methodSignatures=");
-        builder.append(methodSignatures);
-        builder.append("]");
-        return builder.toString();
-    }
-}
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.yangtools.binding.generator.util.generated.type.builder;\r
+\r
+import org.opendaylight.yangtools.binding.generator.util.AbstractBaseType;\r
+import org.opendaylight.yangtools.sal.binding.model.api.*;\r
+import org.opendaylight.yangtools.sal.binding.model.api.type.builder.*;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.List;\r
+\r
+abstract class AbstractGeneratedType extends AbstractBaseType implements GeneratedType {\r
+\r
+    private final Type parent;\r
+    private final String comment;\r
+    private final List<AnnotationType> annotations;\r
+    private final List<Type> implementsTypes;\r
+    private final List<Enumeration> enumerations;\r
+    private final List<Constant> constants;\r
+    private final List<MethodSignature> methodSignatures;\r
+    private final List<GeneratedType> enclosedTypes;\r
+    private final List<GeneratedProperty> properties;\r
+    private final boolean isAbstract;\r
+\r
+    \r
+    public AbstractGeneratedType(AbstractGeneratedTypeBuilder builder) {\r
+        super(builder.getPackageName(),builder.getName());\r
+        this.parent = builder.getParent();\r
+        this.comment = builder.getComment();\r
+        this.annotations = toUnmodifiableAnnotations(builder.getAnnotations());\r
+        this.implementsTypes = Collections.unmodifiableList(builder.getImplementsTypes());\r
+        this.constants = Collections.unmodifiableList(builder.getConstants());\r
+        this.enumerations = toUnmodifiableEnumerations(builder.getEnumerations());\r
+        this.methodSignatures = toUnmodifiableMethods(builder.getMethodDefinitions());\r
+        this.enclosedTypes = toUnmodifiableEnclosedTypes(builder.getEnclosedTypes(), builder.getEnclosedTransferObjects());\r
+        this.properties = toUnmodifiableProperties(builder.getProperties());\r
+        this.isAbstract = builder.isAbstract();\r
+    }\r
+    \r
+    public AbstractGeneratedType(final Type parent, final String packageName, final String name, final String comment,\r
+            final List<AnnotationTypeBuilder> annotationBuilders, final boolean isAbstract,\r
+            final List<Type> implementsTypes, final List<GeneratedTypeBuilder> enclosedGenTypeBuilders,\r
+            final List<GeneratedTOBuilder> enclosedGenTOBuilders, final List<EnumBuilder> enumBuilders,\r
+            final List<Constant> constants, final List<MethodSignatureBuilder> methodBuilders,final List<GeneratedPropertyBuilder> propertyBuilders) {\r
+        super(packageName, name);\r
+        this.parent = parent;\r
+        this.comment = comment;\r
+        this.annotations = toUnmodifiableAnnotations(annotationBuilders);\r
+        this.implementsTypes = Collections.unmodifiableList(implementsTypes);\r
+        this.constants = Collections.unmodifiableList(constants);\r
+        this.enumerations = toUnmodifiableEnumerations(enumBuilders);\r
+        this.methodSignatures = toUnmodifiableMethods(methodBuilders);\r
+        this.enclosedTypes = toUnmodifiableEnclosedTypes(enclosedGenTypeBuilders, enclosedGenTOBuilders);\r
+        this.properties = toUnmodifiableProperties(propertyBuilders);\r
+        this.isAbstract = isAbstract;\r
+        \r
+    }\r
+\r
+    private List<GeneratedType> toUnmodifiableEnclosedTypes(final List<GeneratedTypeBuilder> enclosedGenTypeBuilders,\r
+            final List<GeneratedTOBuilder> enclosedGenTOBuilders) {\r
+        final List<GeneratedType> enclosedTypes = new ArrayList<>();\r
+        for (final GeneratedTypeBuilder builder : enclosedGenTypeBuilders) {\r
+            if (builder != null) {\r
+                enclosedTypes.add(builder.toInstance());\r
+            }\r
+        }\r
+\r
+        for (final GeneratedTOBuilder builder : enclosedGenTOBuilders) {\r
+            if (builder != null) {\r
+                enclosedTypes.add(builder.toInstance());\r
+            }\r
+        }\r
+        return enclosedTypes;\r
+    }\r
+\r
+    protected final List<AnnotationType> toUnmodifiableAnnotations(final List<AnnotationTypeBuilder> annotationBuilders) {\r
+        final List<AnnotationType> annotations = new ArrayList<>();\r
+        for (final AnnotationTypeBuilder builder : annotationBuilders) {\r
+            annotations.add(builder.toInstance());\r
+        }\r
+        return Collections.unmodifiableList(annotations);\r
+    }\r
+\r
+    protected final List<MethodSignature> toUnmodifiableMethods(List<MethodSignatureBuilder> methodBuilders) {\r
+        final List<MethodSignature> methods = new ArrayList<>();\r
+        for (final MethodSignatureBuilder methodBuilder : methodBuilders) {\r
+            methods.add(methodBuilder.toInstance(this));\r
+        }\r
+        return Collections.unmodifiableList(methods);\r
+    }\r
+\r
+    protected final List<Enumeration> toUnmodifiableEnumerations(List<EnumBuilder> enumBuilders) {\r
+        final List<Enumeration> enums = new ArrayList<>();\r
+        for (final EnumBuilder enumBuilder : enumBuilders) {\r
+            enums.add(enumBuilder.toInstance(this));\r
+        }\r
+        return Collections.unmodifiableList(enums);\r
+    }\r
+\r
+    protected final List<GeneratedProperty> toUnmodifiableProperties(List<GeneratedPropertyBuilder> methodBuilders) {\r
+        final List<GeneratedProperty> methods = new ArrayList<>();\r
+        for (final GeneratedPropertyBuilder methodBuilder : methodBuilders) {\r
+            methods.add(methodBuilder.toInstance(this));\r
+        }\r
+        return Collections.unmodifiableList(methods);\r
+    }\r
+    \r
+    \r
+    @Override\r
+    public final Type getParentType() {\r
+        return parent;\r
+    }\r
+\r
+    @Override\r
+    public final String getComment() {\r
+        return comment;\r
+    }\r
+\r
+    @Override\r
+    public final List<AnnotationType> getAnnotations() {\r
+        return annotations;\r
+    }\r
+\r
+    @Override\r
+    public final boolean isAbstract() {\r
+        return isAbstract;\r
+    }\r
+\r
+    @Override\r
+    public final List<Type> getImplements() {\r
+        return implementsTypes;\r
+    }\r
+\r
+    @Override\r
+    public final List<GeneratedType> getEnclosedTypes() {\r
+        return enclosedTypes;\r
+    }\r
+\r
+    @Override\r
+    public final List<Enumeration> getEnumerations() {\r
+        return enumerations;\r
+    }\r
+\r
+    @Override\r
+    public final List<Constant> getConstantDefinitions() {\r
+        return constants;\r
+    }\r
+\r
+    @Override\r
+    public final List<MethodSignature> getMethodDefinitions() {\r
+        return methodSignatures;\r
+    }\r
+    \r
+    public final List<GeneratedProperty> getProperties() {\r
+        return properties;\r
+    }\r
+    \r
+    \r
+\r
+    @Override\r
+    public String toString() {\r
+        StringBuilder builder = new StringBuilder();\r
+        builder.append("GeneratedType [packageName=");\r
+        builder.append(getPackageName());\r
+        builder.append(", name=");\r
+        builder.append(getName());\r
+        if (parent != null) {\r
+            builder.append(", parent=");\r
+            builder.append(parent.getFullyQualifiedName());\r
+        } else {\r
+            builder.append(", parent=null");\r
+        }\r
+        builder.append(", comment=");\r
+        builder.append(comment);\r
+        builder.append(", annotations=");\r
+        builder.append(annotations);\r
+        builder.append(", enclosedTypes=");\r
+        builder.append(enclosedTypes);\r
+        builder.append(", enumerations=");\r
+        builder.append(enumerations);\r
+        builder.append(", constants=");\r
+        builder.append(constants);\r
+        builder.append(", methodSignatures=");\r
+        builder.append(methodSignatures);\r
+        builder.append("]");\r
+        return builder.toString();\r
+    }\r
+}\r