-/*
- * 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 static org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil.parseToClassName;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.opendaylight.yangtools.binding.generator.util.AbstractBaseType;
-import org.opendaylight.yangtools.sal.binding.model.api.AnnotationType;
-import org.opendaylight.yangtools.sal.binding.model.api.Enumeration;
-import org.opendaylight.yangtools.sal.binding.model.api.Type;
-import org.opendaylight.yangtools.sal.binding.model.api.type.builder.AnnotationTypeBuilder;
-import org.opendaylight.yangtools.sal.binding.model.api.type.builder.EnumBuilder;
-import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair;
-
-public final class EnumerationBuilderImpl extends AbstractBaseType implements EnumBuilder {
- private final String packageName;
- private final String name;
- private final List<Enumeration.Pair> values;
- private final List<AnnotationTypeBuilder> annotationBuilders = new ArrayList<>();
-
- public EnumerationBuilderImpl(final String packageName, final String name) {
- super(packageName, name);
- this.packageName = packageName;
- this.name = name;
- values = new ArrayList<>();
- }
-
- @Override
- public AnnotationTypeBuilder addAnnotation(final String packageName, final String name) {
- if (packageName != null && name != null) {
- final AnnotationTypeBuilder builder = new AnnotationTypeBuilderImpl(packageName, name);
- if (annotationBuilders.add(builder)) {
- return builder;
- }
- }
- return null;
- }
-
- @Override
- public void addValue(final String name, final Integer value) {
- values.add(new EnumPairImpl(name, value));
- }
-
- @Override
- public Enumeration toInstance(final Type definingType) {
- return new EnumerationImpl(definingType, annotationBuilders, packageName, name, values);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((packageName == null) ? 0 : packageName.hashCode());
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- EnumerationBuilderImpl other = (EnumerationBuilderImpl) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- if (packageName == null) {
- if (other.packageName != null) {
- return false;
- }
- } else if (!packageName.equals(other.packageName)) {
- return false;
- }
- return true;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("EnumerationBuilderImpl [packageName=");
- builder.append(packageName);
- builder.append(", name=");
- builder.append(name);
- builder.append(", values=");
- builder.append(values);
- builder.append("]");
- return builder.toString();
- }
-
- @Override
- public void updateEnumPairsFromEnumTypeDef(final EnumTypeDefinition enumTypeDef) {
- final List<EnumPair> enums = enumTypeDef.getValues();
- if (enums != null) {
- int listIndex = 0;
- for (final EnumPair enumPair : enums) {
- if (enumPair != null) {
- final String enumPairName = parseToClassName(enumPair.getName());
- Integer enumPairValue = enumPair.getValue();
-
- if (enumPairValue == null) {
- enumPairValue = listIndex;
- }
- this.addValue(enumPairName, enumPairValue);
- listIndex++;
- }
- }
- }
-
- }
-
- private static final class EnumPairImpl implements Enumeration.Pair {
-
- private final String name;
- private final Integer value;
-
- public EnumPairImpl(String name, Integer value) {
- super();
- this.name = name;
- this.value = value;
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public Integer getValue() {
- return value;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((value == null) ? 0 : value.hashCode());
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- EnumPairImpl other = (EnumPairImpl) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- if (value == null) {
- if (other.value != null) {
- return false;
- }
- } else if (!value.equals(other.value)) {
- return false;
- }
- return true;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("EnumPair [name=");
- builder.append(name);
- builder.append(", value=");
- builder.append(value);
- builder.append("]");
- return builder.toString();
- }
- }
-
- private static final class EnumerationImpl implements Enumeration {
-
- private final Type definingType;
- private final String packageName;
- private final String name;
- private final List<Pair> values;
- private List<AnnotationType> annotations = new ArrayList<>();
-
- public EnumerationImpl(final Type definingType, final List<AnnotationTypeBuilder> annotationBuilders,
- final String packageName, final String name, final List<Pair> values) {
- super();
- this.definingType = definingType;
- for (final AnnotationTypeBuilder builder : annotationBuilders) {
- annotations.add(builder.toInstance());
- }
- this.annotations = Collections.unmodifiableList(annotations);
- this.packageName = packageName;
- this.name = name;
- this.values = Collections.unmodifiableList(values);
- }
-
- @Override
- public Type getDefiningType() {
- return definingType;
- }
-
- @Override
- public String getPackageName() {
- return packageName;
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public String getFullyQualifiedName() {
- return packageName + "." + name;
- }
-
- @Override
- public List<Pair> getValues() {
- return values;
- }
-
- @Override
- public List<AnnotationType> getAnnotations() {
- return annotations;
- }
-
- @Override
- public String toFormattedString() {
- StringBuilder builder = new StringBuilder();
- builder.append("public enum");
- builder.append(" ");
- builder.append(name);
- builder.append(" {");
- builder.append("\n");
-
- int i = 0;
- for (final Enumeration.Pair valPair : values) {
- builder.append("\t");
- builder.append(" ");
- builder.append(valPair.getName());
- builder.append(" (");
- builder.append(valPair.getValue());
-
- if (i == (values.size() - 1)) {
- builder.append(" );");
- } else {
- builder.append(" ),");
- }
- ++i;
- }
- builder.append("\n}");
- return builder.toString();
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((packageName == null) ? 0 : packageName.hashCode());
- result = prime * result + ((values == null) ? 0 : values.hashCode());
-
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- EnumerationImpl other = (EnumerationImpl) obj;
- if (name == null) {
- if (other.name != null) {
- return false;
- }
- } else if (!name.equals(other.name)) {
- return false;
- }
- if (packageName == null) {
- if (other.packageName != null) {
- return false;
- }
- } else if (!packageName.equals(other.packageName)) {
- return false;
- }
- if (values == null) {
- if (other.values != null) {
- return false;
- }
- } else if (!values.equals(other.values)) {
- return false;
- }
- return true;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("Enumeration [packageName=");
- builder.append(packageName);
- if (definingType != null) {
- builder.append(", definingType=");
- builder.append(definingType.getPackageName());
- builder.append(".");
- builder.append(definingType.getName());
- } else {
- builder.append(", definingType= null");
- }
- builder.append(", name=");
- builder.append(name);
- builder.append(", values=");
- builder.append(values);
- 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 static org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil.parseToClassName;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collections;\r
+import java.util.List;\r
+\r
+import org.opendaylight.yangtools.binding.generator.util.AbstractBaseType;\r
+import org.opendaylight.yangtools.sal.binding.model.api.AnnotationType;\r
+import org.opendaylight.yangtools.sal.binding.model.api.Constant;\r
+import org.opendaylight.yangtools.sal.binding.model.api.Enumeration;\r
+import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;\r
+import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature;\r
+import org.opendaylight.yangtools.sal.binding.model.api.Type;\r
+import org.opendaylight.yangtools.sal.binding.model.api.type.builder.AnnotationTypeBuilder;\r
+import org.opendaylight.yangtools.sal.binding.model.api.type.builder.EnumBuilder;\r
+import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;\r
+import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair;\r
+\r
+public final class EnumerationBuilderImpl extends AbstractBaseType implements EnumBuilder {\r
+ private final String packageName;\r
+ private final String name;\r
+ private final List<Enumeration.Pair> values;\r
+ private final List<AnnotationTypeBuilder> annotationBuilders = new ArrayList<>();\r
+\r
+ public EnumerationBuilderImpl(final String packageName, final String name) {\r
+ super(packageName, name);\r
+ this.packageName = packageName;\r
+ this.name = name;\r
+ values = new ArrayList<>();\r
+ }\r
+\r
+ @Override\r
+ public AnnotationTypeBuilder addAnnotation(final String packageName, final String name) {\r
+ if (packageName != null && name != null) {\r
+ final AnnotationTypeBuilder builder = new AnnotationTypeBuilderImpl(packageName, name);\r
+ if (annotationBuilders.add(builder)) {\r
+ return builder;\r
+ }\r
+ }\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public void addValue(final String name, final Integer value) {\r
+ values.add(new EnumPairImpl(name, value));\r
+ }\r
+\r
+ @Override\r
+ public Enumeration toInstance(final Type definingType) {\r
+ return new EnumerationImpl(definingType, annotationBuilders, packageName, name, values);\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#hashCode()\r
+ */\r
+ @Override\r
+ public int hashCode() {\r
+ final int prime = 31;\r
+ int result = 1;\r
+ result = prime * result + ((name == null) ? 0 : name.hashCode());\r
+ result = prime * result + ((packageName == null) ? 0 : packageName.hashCode());\r
+ return result;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#equals(java.lang.Object)\r
+ */\r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if (this == obj) {\r
+ return true;\r
+ }\r
+ if (obj == null) {\r
+ return false;\r
+ }\r
+ if (getClass() != obj.getClass()) {\r
+ return false;\r
+ }\r
+ EnumerationBuilderImpl other = (EnumerationBuilderImpl) obj;\r
+ if (name == null) {\r
+ if (other.name != null) {\r
+ return false;\r
+ }\r
+ } else if (!name.equals(other.name)) {\r
+ return false;\r
+ }\r
+ if (packageName == null) {\r
+ if (other.packageName != null) {\r
+ return false;\r
+ }\r
+ } else if (!packageName.equals(other.packageName)) {\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#toString()\r
+ */\r
+ @Override\r
+ public String toString() {\r
+ StringBuilder builder = new StringBuilder();\r
+ builder.append("EnumerationBuilderImpl [packageName=");\r
+ builder.append(packageName);\r
+ builder.append(", name=");\r
+ builder.append(name);\r
+ builder.append(", values=");\r
+ builder.append(values);\r
+ builder.append("]");\r
+ return builder.toString();\r
+ }\r
+\r
+ @Override\r
+ public void updateEnumPairsFromEnumTypeDef(final EnumTypeDefinition enumTypeDef) {\r
+ final List<EnumPair> enums = enumTypeDef.getValues();\r
+ if (enums != null) {\r
+ int listIndex = 0;\r
+ for (final EnumPair enumPair : enums) {\r
+ if (enumPair != null) {\r
+ final String enumPairName = parseToClassName(enumPair.getName());\r
+ Integer enumPairValue = enumPair.getValue();\r
+\r
+ if (enumPairValue == null) {\r
+ enumPairValue = listIndex;\r
+ }\r
+ this.addValue(enumPairName, enumPairValue);\r
+ listIndex++;\r
+ }\r
+ }\r
+ }\r
+\r
+ }\r
+\r
+ private static final class EnumPairImpl implements Enumeration.Pair {\r
+\r
+ private final String name;\r
+ private final Integer value;\r
+\r
+ public EnumPairImpl(String name, Integer value) {\r
+ super();\r
+ this.name = name;\r
+ this.value = value;\r
+ }\r
+\r
+ @Override\r
+ public String getName() {\r
+ return name;\r
+ }\r
+\r
+ @Override\r
+ public Integer getValue() {\r
+ return value;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#hashCode()\r
+ */\r
+ @Override\r
+ public int hashCode() {\r
+ final int prime = 31;\r
+ int result = 1;\r
+ result = prime * result + ((name == null) ? 0 : name.hashCode());\r
+ result = prime * result + ((value == null) ? 0 : value.hashCode());\r
+ return result;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#equals(java.lang.Object)\r
+ */\r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if (this == obj) {\r
+ return true;\r
+ }\r
+ if (obj == null) {\r
+ return false;\r
+ }\r
+ if (getClass() != obj.getClass()) {\r
+ return false;\r
+ }\r
+ EnumPairImpl other = (EnumPairImpl) obj;\r
+ if (name == null) {\r
+ if (other.name != null) {\r
+ return false;\r
+ }\r
+ } else if (!name.equals(other.name)) {\r
+ return false;\r
+ }\r
+ if (value == null) {\r
+ if (other.value != null) {\r
+ return false;\r
+ }\r
+ } else if (!value.equals(other.value)) {\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#toString()\r
+ */\r
+ @Override\r
+ public String toString() {\r
+ StringBuilder builder = new StringBuilder();\r
+ builder.append("EnumPair [name=");\r
+ builder.append(name);\r
+ builder.append(", value=");\r
+ builder.append(value);\r
+ builder.append("]");\r
+ return builder.toString();\r
+ }\r
+ }\r
+\r
+ private static final class EnumerationImpl implements Enumeration {\r
+\r
+ private final Type definingType;\r
+ private final String packageName;\r
+ private final String name;\r
+ private final List<Pair> values;\r
+ private List<AnnotationType> annotations = new ArrayList<>();\r
+\r
+ public EnumerationImpl(final Type definingType, final List<AnnotationTypeBuilder> annotationBuilders,\r
+ final String packageName, final String name, final List<Pair> values) {\r
+ super();\r
+ this.definingType = definingType;\r
+ for (final AnnotationTypeBuilder builder : annotationBuilders) {\r
+ annotations.add(builder.toInstance());\r
+ }\r
+ this.annotations = Collections.unmodifiableList(annotations);\r
+ this.packageName = packageName;\r
+ this.name = name;\r
+ this.values = Collections.unmodifiableList(values);\r
+ }\r
+\r
+ @Override\r
+ public Type getParentType() {\r
+ return definingType;\r
+ }\r
+\r
+ @Override\r
+ public String getPackageName() {\r
+ return packageName;\r
+ }\r
+\r
+ @Override\r
+ public String getName() {\r
+ return name;\r
+ }\r
+\r
+ @Override\r
+ public String getFullyQualifiedName() {\r
+ return packageName + "." + name;\r
+ }\r
+\r
+ @Override\r
+ public List<Pair> getValues() {\r
+ return values;\r
+ }\r
+\r
+ @Override\r
+ public List<AnnotationType> getAnnotations() {\r
+ return annotations;\r
+ }\r
+\r
+ @Override\r
+ public String toFormattedString() {\r
+ StringBuilder builder = new StringBuilder();\r
+ builder.append("public enum");\r
+ builder.append(" ");\r
+ builder.append(name);\r
+ builder.append(" {");\r
+ builder.append("\n");\r
+\r
+ int i = 0;\r
+ for (final Enumeration.Pair valPair : values) {\r
+ builder.append("\t");\r
+ builder.append(" ");\r
+ builder.append(valPair.getName());\r
+ builder.append(" (");\r
+ builder.append(valPair.getValue());\r
+\r
+ if (i == (values.size() - 1)) {\r
+ builder.append(" );");\r
+ } else {\r
+ builder.append(" ),");\r
+ }\r
+ ++i;\r
+ }\r
+ builder.append("\n}");\r
+ return builder.toString();\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#hashCode()\r
+ */\r
+ @Override\r
+ public int hashCode() {\r
+ final int prime = 31;\r
+ int result = 1;\r
+ result = prime * result + ((name == null) ? 0 : name.hashCode());\r
+ result = prime * result + ((packageName == null) ? 0 : packageName.hashCode());\r
+ result = prime * result + ((values == null) ? 0 : values.hashCode());\r
+\r
+ return result;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#equals(java.lang.Object)\r
+ */\r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if (this == obj) {\r
+ return true;\r
+ }\r
+ if (obj == null) {\r
+ return false;\r
+ }\r
+ if (getClass() != obj.getClass()) {\r
+ return false;\r
+ }\r
+ EnumerationImpl other = (EnumerationImpl) obj;\r
+ if (name == null) {\r
+ if (other.name != null) {\r
+ return false;\r
+ }\r
+ } else if (!name.equals(other.name)) {\r
+ return false;\r
+ }\r
+ if (packageName == null) {\r
+ if (other.packageName != null) {\r
+ return false;\r
+ }\r
+ } else if (!packageName.equals(other.packageName)) {\r
+ return false;\r
+ }\r
+ if (values == null) {\r
+ if (other.values != null) {\r
+ return false;\r
+ }\r
+ } else if (!values.equals(other.values)) {\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*\r
+ * (non-Javadoc)\r
+ * \r
+ * @see java.lang.Object#toString()\r
+ */\r
+ @Override\r
+ public String toString() {\r
+ StringBuilder builder = new StringBuilder();\r
+ builder.append("Enumeration [packageName=");\r
+ builder.append(packageName);\r
+ if (definingType != null) {\r
+ builder.append(", definingType=");\r
+ builder.append(definingType.getPackageName());\r
+ builder.append(".");\r
+ builder.append(definingType.getName());\r
+ } else {\r
+ builder.append(", definingType= null");\r
+ }\r
+ builder.append(", name=");\r
+ builder.append(name);\r
+ builder.append(", values=");\r
+ builder.append(values);\r
+ builder.append("]");\r
+ return builder.toString();\r
+ }\r
+\r
+ @Override\r
+ public String getComment() {\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public boolean isAbstract() {\r
+ return false;\r
+ }\r
+\r
+ @Override\r
+ public List<Type> getImplements() {\r
+ return Collections.emptyList();\r
+ }\r
+\r
+ @Override\r
+ public List<GeneratedType> getEnclosedTypes() {\r
+ return Collections.emptyList();\r
+ }\r
+\r
+ @Override\r
+ public List<Enumeration> getEnumerations() {\r
+ return Collections.emptyList();\r
+ }\r
+\r
+ @Override\r
+ public List<Constant> getConstantDefinitions() {\r
+ return Collections.emptyList();\r
+ }\r
+\r
+ @Override\r
+ public List<MethodSignature> getMethodDefinitions() {\r
+ // TODO Auto-generated method stub\r
+ return Collections.emptyList();\r
+ }\r
+ }\r
+}\r