-/*
- * 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