X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-jmx-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2Fattribute%2FTOAttribute.java;h=6a540b50b21dab04433dcb349eb905a9a2cd303b;hp=96656338df130f30ef569fbb54537727ff9a0b3a;hb=eff404d4edd10fcde6d85c5821c80263339d9a4a;hpb=4f4df9918bc2d1447393edac6fbf3a2d4f9d9186 diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java index 96656338df..6a540b50b2 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java @@ -13,6 +13,8 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.TypeProviderWrapper; +import org.opendaylight.yangtools.binding.generator.util.ReferencedTypeImpl; +import org.opendaylight.yangtools.sal.binding.model.api.Type; import org.opendaylight.yangtools.yang.model.api.AugmentationTarget; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -29,11 +31,12 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; -public class TOAttribute extends AbstractAttribute { +public class TOAttribute extends AbstractAttribute implements TypedAttribute { private final String nullableDescription, nullableDefault; private final Map yangNameToAttributeMap; private final Map attributeNameMap; + private final String packageName; private static final Set> ALLOWED_CHILDREN = Sets .newHashSet(); @@ -45,7 +48,7 @@ public class TOAttribute extends AbstractAttribute { } public static TOAttribute create( - T containerSchemaNode, TypeProviderWrapper typeProviderWrapper) { + T containerSchemaNode, TypeProviderWrapper typeProviderWrapper, String packageName) { // Transfer Object: get the leaves Map map = new HashMap<>(); Map attributeNameMap = new HashMap<>(); @@ -55,18 +58,18 @@ public class TOAttribute extends AbstractAttribute { String yangName = dataSchemaNode.getQName().getLocalName(); map.put(yangName, createInnerAttribute(dataSchemaNode, - typeProviderWrapper)); + typeProviderWrapper, packageName)); } catch (IllegalArgumentException e) { throw new IllegalStateException("Unable to create TO", e); } } return new TOAttribute(containerSchemaNode, map, attributeNameMap, - containerSchemaNode.getDescription()); + containerSchemaNode.getDescription(), packageName); } private static AttributeIfc createInnerAttribute( DataSchemaNode dataSchemaNode, - TypeProviderWrapper typeProviderWrapper) { + TypeProviderWrapper typeProviderWrapper, String packageName) { Class type = isAllowedType(dataSchemaNode); if (type.equals(LeafSchemaNode.class)) @@ -74,13 +77,13 @@ public class TOAttribute extends AbstractAttribute { typeProviderWrapper); else if (type.equals(ListSchemaNode.class)) return ListAttribute.create((ListSchemaNode) dataSchemaNode, - typeProviderWrapper); + typeProviderWrapper, packageName); else if (type.equals(LeafListSchemaNode.class)) return ListAttribute.create((LeafListSchemaNode) dataSchemaNode, typeProviderWrapper); else if (type.equals(ContainerSchemaNode.class)) return TOAttribute.create((ContainerSchemaNode) dataSchemaNode, - typeProviderWrapper); + typeProviderWrapper, packageName); throw new IllegalStateException("This should never happen"); } @@ -98,12 +101,13 @@ public class TOAttribute extends AbstractAttribute { private TOAttribute(DataSchemaNode attrNode, Map transferObject, - Map attributeNameMap, String nullableDescription) { + Map attributeNameMap, String nullableDescription, String packageName) { super(attrNode); yangNameToAttributeMap = transferObject; this.attributeNameMap = attributeNameMap; this.nullableDescription = nullableDescription; nullableDefault = null; + this.packageName = packageName; } public Map getAttributeNameMap() { @@ -197,6 +201,12 @@ public class TOAttribute extends AbstractAttribute { + yangNameToAttributeMap + '}'; } + @Override + public Type getType() { + // TODO: ReferencedTypeImpl from Types + return new ReferencedTypeImpl(packageName, getUpperCaseCammelCase()); + } + @Override public CompositeType getOpenType() { String description = getNullableDescription() == null ? getAttributeYangName() @@ -222,6 +232,10 @@ public class TOAttribute extends AbstractAttribute { } } + public String getPackageName() { + return packageName; + } + private static final class FunctionImpl implements Function, OpenType> { private final String[] itemNames;