*/
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;
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);
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) {
}
@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
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
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
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#hashCode()
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
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 {
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) {
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;
}
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#hashCode()
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
/*
* (non-Javadoc)
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
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;
+ }
}
}