-/*\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
+/*
+ * 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 List<GeneratedProperty> properties;
+ private final boolean isAbstract;
+
+ public AbstractGeneratedType(AbstractGeneratedTypeBuilder builder) {
+ super(builder.getPackageName(), builder.getName());
+ this.parent = builder.getParent();
+ this.comment = builder.getComment();
+ this.annotations = toUnmodifiableAnnotations(builder.getAnnotations());
+ this.implementsTypes = Collections.unmodifiableList(builder.getImplementsTypes());
+ this.constants = Collections.unmodifiableList(builder.getConstants());
+ this.enumerations = toUnmodifiableEnumerations(builder.getEnumerations());
+ this.methodSignatures = toUnmodifiableMethods(builder.getMethodDefinitions());
+ this.enclosedTypes = toUnmodifiableEnclosedTypes(builder.getEnclosedTypes(),
+ builder.getEnclosedTransferObjects());
+ this.properties = toUnmodifiableProperties(builder.getProperties());
+ this.isAbstract = builder.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,
+ final List<GeneratedPropertyBuilder> propertyBuilders) {
+ 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.properties = toUnmodifiableProperties(propertyBuilders);
+ this.isAbstract = isAbstract;
+
+ }
+
+ private List<GeneratedType> toUnmodifiableEnclosedTypes(final List<GeneratedTypeBuilder> enclosedGenTypeBuilders,
+ final List<GeneratedTOBuilder> enclosedGenTOBuilders) {
+ final List<GeneratedType> enclosedTypesList = new ArrayList<>();
+ for (final GeneratedTypeBuilder builder : enclosedGenTypeBuilders) {
+ if (builder != null) {
+ enclosedTypesList.add(builder.toInstance());
+ }
+ }
+
+ for (final GeneratedTOBuilder builder : enclosedGenTOBuilders) {
+ if (builder != null) {
+ enclosedTypesList.add(builder.toInstance());
+ }
+ }
+ return enclosedTypesList;
+ }
+
+ protected final List<AnnotationType> toUnmodifiableAnnotations(final List<AnnotationTypeBuilder> annotationBuilders) {
+ final List<AnnotationType> annotationList = new ArrayList<>();
+ for (final AnnotationTypeBuilder builder : annotationBuilders) {
+ annotationList.add(builder.toInstance());
+ }
+ return Collections.unmodifiableList(annotationList);
+ }
+
+ protected final 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 final 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);
+ }
+
+ protected final List<GeneratedProperty> toUnmodifiableProperties(List<GeneratedPropertyBuilder> methodBuilders) {
+ final List<GeneratedProperty> methods = new ArrayList<>();
+ for (final GeneratedPropertyBuilder methodBuilder : methodBuilders) {
+ methods.add(methodBuilder.toInstance(this));
+ }
+ return Collections.unmodifiableList(methods);
+ }
+
+ @Override
+ public final Type getParentType() {
+ return parent;
+ }
+
+ @Override
+ public final String getComment() {
+ return comment;
+ }
+
+ @Override
+ public final List<AnnotationType> getAnnotations() {
+ return annotations;
+ }
+
+ @Override
+ public final boolean isAbstract() {
+ return isAbstract;
+ }
+
+ @Override
+ public final List<Type> getImplements() {
+ return implementsTypes;
+ }
+
+ @Override
+ public final List<GeneratedType> getEnclosedTypes() {
+ return enclosedTypes;
+ }
+
+ @Override
+ public final List<Enumeration> getEnumerations() {
+ return enumerations;
+ }
+
+ @Override
+ public final List<Constant> getConstantDefinitions() {
+ return constants;
+ }
+
+ @Override
+ public final List<MethodSignature> getMethodDefinitions() {
+ return methodSignatures;
+ }
+
+ public final List<GeneratedProperty> getProperties() {
+ return properties;
+ }
+
+ @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();
+ }
+}