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%2FModuleMXBeanEntryBuilder.java;fp=opendaylight%2Fconfig%2Fyang-jmx-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2FModuleMXBeanEntryBuilder.java;h=955e9b5f41949269f24d75da8434afaa3b10b64c;hp=04d37416e3f3cd5b96dbc998ba1b93604e28c4ab;hb=563e0a7d5589c4993ad05c2cf9bea98cbb647d92;hpb=713762ab12bb2d37a44679c1d6a93b08750a50a6 diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java index 04d37416e3..955e9b5f41 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java @@ -11,6 +11,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; import static java.lang.String.format; import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants.createConfigQName; + import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.base.Optional; @@ -58,6 +59,8 @@ import org.slf4j.LoggerFactory; final class ModuleMXBeanEntryBuilder { + private static final String TYPE = "type"; + private Module currentModule; private Map qNamesToSIEs; private SchemaContext schemaContext; @@ -463,26 +466,31 @@ final class ModuleMXBeanEntryBuilder { if (isDependencyContainer(dataNodeContainer)) { // reference UsesNode usesNode = dataNodeContainer.getUses().iterator().next(); - checkState(usesNode.getRefines().size() == 1, "Unexpected 'refine' child node size of " + dataNodeContainer); - LeafSchemaNode refine = (LeafSchemaNode) usesNode.getRefines().values().iterator().next(); - checkState(refine.getUnknownSchemaNodes().size() == 1, "Unexpected unknown schema node size of " + refine); - UnknownSchemaNode requiredIdentity = refine.getUnknownSchemaNodes().iterator().next(); - checkState(ConfigConstants.REQUIRED_IDENTITY_EXTENSION_QNAME.equals(requiredIdentity.getNodeType()), - "Unexpected language extension " + requiredIdentity); - String prefixAndIdentityLocalName = requiredIdentity.getNodeParameter(); - // import should point to a module - ServiceInterfaceEntry serviceInterfaceEntry = findSIE(prefixAndIdentityLocalName, currentModule, - qNamesToSIEs, schemaContext); - boolean mandatory = refine.getConstraints().isMandatory(); - AbstractDependencyAttribute reference; - if (dataNodeContainer instanceof ContainerSchemaNode) { - reference = new DependencyAttribute(attrNode, serviceInterfaceEntry, mandatory, - attrNode.getDescription()); - } else { - reference = new ListDependenciesAttribute(attrNode, serviceInterfaceEntry, mandatory, - attrNode.getDescription()); + for (SchemaNode refineNode : usesNode.getRefines().values()) { + // this will ignore name nodes, since they are not needed here + if (TYPE.equals(refineNode.getQName().getLocalName())){ + checkState(refineNode.getUnknownSchemaNodes().size() == 1, "Unexpected unknown schema node size of " + refineNode); + UnknownSchemaNode requiredIdentity = refineNode.getUnknownSchemaNodes().iterator().next(); + checkState(ConfigConstants.REQUIRED_IDENTITY_EXTENSION_QNAME.equals(requiredIdentity.getNodeType()), + "Unexpected language extension " + requiredIdentity); + String prefixAndIdentityLocalName = requiredIdentity.getNodeParameter(); + // import should point to a module + ServiceInterfaceEntry serviceInterfaceEntry = findSIE(prefixAndIdentityLocalName, currentModule, + qNamesToSIEs, schemaContext); + LeafSchemaNode refine = (LeafSchemaNode) usesNode.getRefines().values().iterator().next(); + + boolean mandatory = refine.getConstraints().isMandatory(); + AbstractDependencyAttribute reference; + if (dataNodeContainer instanceof ContainerSchemaNode) { + reference = new DependencyAttribute(attrNode, serviceInterfaceEntry, mandatory, + attrNode.getDescription()); + } else { + reference = new ListDependenciesAttribute(attrNode, serviceInterfaceEntry, mandatory, + attrNode.getDescription()); + } + return Optional.of(reference); + } } - return Optional.of(reference); } return Optional.absent(); }