Merge "BUG-865: get rid of InstanceIdentifier-related warnings"
[yangtools.git] / code-generator / binding-generator-util / src / main / java / org / opendaylight / yangtools / binding / generator / util / generated / type / builder / EnumerationBuilderImpl.java
index c25868406537d5a39d4c55b299160e84f9a3bffd..be8d905e6baafa1a4690bd6d40d3aa6246cce785 100644 (file)
@@ -7,18 +7,23 @@
  */
 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.Constant;
 import org.opendaylight.yangtools.sal.binding.model.api.Enumeration;
+import org.opendaylight.yangtools.sal.binding.model.api.GeneratedProperty;
+import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType;
+import org.opendaylight.yangtools.sal.binding.model.api.MethodSignature;
 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.binding.BindingMapping;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair;
 
@@ -27,6 +32,10 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
     private final String name;
     private final List<Enumeration.Pair> values;
     private final List<AnnotationTypeBuilder> annotationBuilders = new ArrayList<>();
+    private String description;
+    private String reference;
+    private String moduleName;
+    private Iterable<QName> schemaPath;
 
     public EnumerationBuilderImpl(final String packageName, final String name) {
         super(packageName, name);
@@ -35,6 +44,24 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
         values = new ArrayList<>();
     }
 
+    public void setReference(final String reference) {
+        this.reference = reference;
+    }
+
+    public void setModuleName(final String moduleName) {
+        this.moduleName = moduleName;
+    }
+
+    public void setSchemaPath(final Iterable<QName> schemaPath) {
+        this.schemaPath = schemaPath;
+    }
+
+    @Override
+    public void setDescription(String description) {
+        this.description = description;
+
+    }
+
     @Override
     public AnnotationTypeBuilder addAnnotation(final String packageName, final String name) {
         if (packageName != null && name != null) {
@@ -47,18 +74,43 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
     }
 
     @Override
-    public void addValue(final String name, final Integer value) {
-        values.add(new EnumPairImpl(name, value));
+    public void addValue(final String name, final Integer value, final String description) {
+        values.add(new EnumPairImpl(name, value, description));
     }
 
     @Override
     public Enumeration toInstance(final Type definingType) {
-        return new EnumerationImpl(definingType, annotationBuilders, packageName, name, values);
+        return new EnumerationImpl(definingType, annotationBuilders, packageName, name, values,
+                description, reference, moduleName, schemaPath);
+    }
+
+    @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 = BindingMapping.getClassName(enumPair.getName());
+                    Integer enumPairValue = enumPair.getValue();
+
+                    if (enumPairValue == null) {
+                        enumPairValue = listIndex;
+                    }
+                    else {
+                        listIndex = enumPairValue;
+                    }
+
+                    this.addValue(enumPairName, enumPairValue, enumPair.getDescription());
+                    listIndex++;
+                }
+            }
+        }
     }
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.lang.Object#hashCode()
      */
     @Override
@@ -72,7 +124,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.lang.Object#equals(java.lang.Object)
      */
     @Override
@@ -106,7 +158,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.lang.Object#toString()
      */
     @Override
@@ -122,36 +174,17 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
         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;
+        private final String description;
 
-        public EnumPairImpl(String name, Integer value) {
+        public EnumPairImpl(String name, Integer value, String description) {
             super();
             this.name = name;
             this.value = value;
+            this.description = description;
         }
 
         @Override
@@ -166,7 +199,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
         /*
          * (non-Javadoc)
-         * 
+         *
          * @see java.lang.Object#hashCode()
          */
         @Override
@@ -180,7 +213,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
         /*
          * (non-Javadoc)
-         * 
+         *
          * @see java.lang.Object#equals(java.lang.Object)
          */
         @Override
@@ -214,7 +247,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
         /*
          * (non-Javadoc)
-         * 
+         *
          * @see java.lang.Object#toString()
          */
         @Override
@@ -227,6 +260,23 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
             builder.append("]");
             return builder.toString();
         }
+
+        @Override
+        public String getDescription() {
+            return description;
+        }
+
+        @Override
+        public String getReference() {
+            return null;
+        }
+
+        @Override
+        public Status getStatus() {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
     }
 
     private static final class EnumerationImpl implements Enumeration {
@@ -234,11 +284,16 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
         private final Type definingType;
         private final String packageName;
         private final String name;
+        private final String description;
+        private final String reference;
+        private final String moduleName;
+        private final Iterable<QName> schemaPath;
         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) {
+                final String packageName, final String name, final List<Pair> values, final String description,
+                final String reference, final String moduleName, final Iterable<QName> schemaPath) {
             super();
             this.definingType = definingType;
             for (final AnnotationTypeBuilder builder : annotationBuilders) {
@@ -248,10 +303,14 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
             this.packageName = packageName;
             this.name = name;
             this.values = Collections.unmodifiableList(values);
+            this.description = description;
+            this.reference = reference;
+            this.moduleName = moduleName;
+            this.schemaPath = schemaPath;
         }
 
         @Override
-        public Type getDefiningType() {
+        public Type getParentType() {
             return definingType;
         }
 
@@ -310,7 +369,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
         /*
          * (non-Javadoc)
-         * 
+         *
          * @see java.lang.Object#hashCode()
          */
         @Override
@@ -326,7 +385,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
         /*
          * (non-Javadoc)
-         * 
+         *
          * @see java.lang.Object#equals(java.lang.Object)
          */
         @Override
@@ -367,7 +426,7 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
 
         /*
          * (non-Javadoc)
-         * 
+         *
          * @see java.lang.Object#toString()
          */
         @Override
@@ -390,5 +449,66 @@ public final class EnumerationBuilderImpl extends AbstractBaseType implements En
             builder.append("]");
             return builder.toString();
         }
+
+        @Override
+        public String getComment() {
+            return null;
+        }
+
+        @Override
+        public boolean isAbstract() {
+            return false;
+        }
+
+        @Override
+        public List<Type> getImplements() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public List<GeneratedType> getEnclosedTypes() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public List<Enumeration> getEnumerations() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public List<Constant> getConstantDefinitions() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public List<MethodSignature> getMethodDefinitions() {
+            // TODO Auto-generated method stub
+            return Collections.emptyList();
+        }
+
+        @Override
+        public List<GeneratedProperty> getProperties() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public String getDescription() {
+            return description;
+        }
+
+        @Override
+        public String getReference() {
+            return reference;
+        }
+
+        @Override
+        public Iterable<QName> getSchemaPath() {
+            return schemaPath;
+        }
+
+        @Override
+        public String getModuleName() {
+            return moduleName;
+        }
     }
 }