X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-jmx-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyangjmxgenerator%2FServiceInterfaceEntry.java;h=ef40d9515b42c75ad3b6d6e56456ea83a1912688;hb=a354156b29088c308b0c13c1731f6237cae6d03c;hp=71cd0900eb6f985521257cc552faead563f8eba1;hpb=9fb64948564e252018f9b1e13e7cea2c92f991aa;p=controller.git diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java index 71cd0900eb..ef40d9515b 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java @@ -7,10 +7,7 @@ */ package org.opendaylight.controller.config.yangjmxgenerator; -import static com.google.common.base.Preconditions.checkNotNull; -import static java.lang.String.format; -import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants.SERVICE_TYPE_Q_NAME; - +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -18,15 +15,15 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; - import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -import com.google.common.base.Optional; +import static com.google.common.base.Preconditions.checkNotNull; +import static java.lang.String.format; +import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants.SERVICE_TYPE_Q_NAME; /** * Represents identity derived from {@link ConfigConstants#SERVICE_TYPE_Q_NAME}. @@ -57,13 +54,14 @@ public class ServiceInterfaceEntry extends AbstractEntry { private final String exportedOsgiClassName; private final QName qName; private final String nullableDescription, packageName, typeName; + private final QName yangModuleQName; - private ServiceInterfaceEntry(IdentitySchemaNode id, String packageName) { - this(Optional. absent(), id, packageName); + private ServiceInterfaceEntry(IdentitySchemaNode id, String packageName, QName yangModuleQName) { + this(Optional. absent(), id, packageName, yangModuleQName); } private ServiceInterfaceEntry(Optional base, - IdentitySchemaNode id, String packageName) { + IdentitySchemaNode id, String packageName, QName yangModuleQName) { checkNotNull(base); this.maybeBaseCache = base; List unknownSchemaNodes = id.getUnknownSchemaNodes(); @@ -93,6 +91,7 @@ public class ServiceInterfaceEntry extends AbstractEntry { nullableDescription = id.getDescription(); typeName = getSimpleName(exportedOsgiClassName) + CLASS_NAME_SUFFIX; this.packageName = packageName; + this.yangModuleQName = yangModuleQName; } private static final String getSimpleName(String fullyQualifiedName) { @@ -120,14 +119,14 @@ public class ServiceInterfaceEntry extends AbstractEntry { * @return Map of QNames as keys and ServiceInterfaceEntry instances as * values */ - public static Map create(Module module, - String packageName) { + public static Map create(Module currentModule, + String packageName,Map definedSEItracker) { logger.debug("Generating ServiceInterfaces from {} to package {}", - module.getNamespace(), packageName); + currentModule.getNamespace(), packageName); Map identitiesToSIs = new HashMap<>(); Set notVisited = new HashSet<>( - module.getIdentities()); + currentModule.getIdentities()); int lastSize = notVisited.size() + 1; while (notVisited.size() > 0) { if (notVisited.size() == lastSize) { @@ -148,22 +147,25 @@ public class ServiceInterfaceEntry extends AbstractEntry { } else if (identity.getBaseIdentity().getQName() .equals(SERVICE_TYPE_Q_NAME)) { // this is a base type - created = new ServiceInterfaceEntry(identity, packageName); + created = new ServiceInterfaceEntry(identity, packageName, ModuleUtil.getQName(currentModule)); } else { - ServiceInterfaceEntry foundBase = identitiesToSIs + ServiceInterfaceEntry foundBase = definedSEItracker .get(identity.getBaseIdentity()); // derived type, did we convert the parent? if (foundBase != null) { created = new ServiceInterfaceEntry( - Optional.of(foundBase), identity, packageName); + Optional.of(foundBase), identity, packageName, ModuleUtil.getQName(currentModule)); } } + + if (created != null) { - created.setYangModuleName(module.getName()); + created.setYangModuleName(currentModule.getName()); // TODO how to get local name created.setYangModuleLocalname(identity.getQName() .getLocalName()); identitiesToSIs.put(identity, created); + definedSEItracker.put(identity, created); iterator.remove(); } } @@ -190,6 +192,10 @@ public class ServiceInterfaceEntry extends AbstractEntry { return typeName; } + public QName getYangModuleQName() { + return yangModuleQName; + } + @Override public boolean equals(Object o) { if (this == o)