X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fyang-store-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fyang%2Fstore%2Fimpl%2FMbeParser.java;h=d54996dbb77fcd38799e9a705bcc26a77a28b763;hp=fc895eb51dcb25ba4e381ef3cac7d7b7d49d0479;hb=d3deb89355633bf40cc495be07c551a444e4de75;hpb=9fb64948564e252018f9b1e13e7cea2c92f991aa diff --git a/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/MbeParser.java b/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/MbeParser.java index fc895eb51d..d54996dbb7 100644 --- a/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/MbeParser.java +++ b/opendaylight/config/yang-store-impl/src/main/java/org/opendaylight/controller/config/yang/store/impl/MbeParser.java @@ -7,58 +7,38 @@ */ package org.opendaylight.controller.config.yang.store.impl; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import org.apache.commons.io.IOUtils; import org.opendaylight.controller.config.yang.store.api.YangStoreException; -import org.opendaylight.controller.config.yang.store.api.YangStoreSnapshot; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.PackageTranslator; import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; import org.opendaylight.controller.config.yangjmxgenerator.TypeProviderWrapper; import org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl; 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.SchemaContext; import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; +import java.io.IOException; +import java.io.InputStream; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; public class MbeParser { - public YangStoreSnapshot parseYangFiles( + public YangStoreSnapshotImpl parseYangFiles( Collection allInput) throws YangStoreException { - YangParserImpl parser = new YangParserImpl(); + YangParserImpl parser = YangParserWrapper.getYangParserInstance(); - List bufferedInputStreams = new ArrayList<>(); - for (InputStream is : allInput) { - String content; - try { - content = IOUtils.toString(is); - } catch (IOException e) { - throw new YangStoreException("Can not get yang as String from " - + is, e); - } - InputStream buf = new ByteArrayInputStream(content.getBytes()); - bufferedInputStreams.add(buf); - } - - Map allYangModules = parser - .parseYangModelsFromStreamsMapped(bufferedInputStreams); + Map allYangModules = YangParserWrapper.parseYangFiles(parser, allInput); - SchemaContext resolveSchemaContext = parser.resolveSchemaContext(Sets - .newHashSet(allYangModules.values())); + SchemaContext resolveSchemaContext = YangParserWrapper.getSchemaContextFromModules(parser, allYangModules); // JMX generator @@ -68,11 +48,12 @@ public class MbeParser { Map qNamesToSIEs = new HashMap<>(); + Map knownSEITracker = new HashMap<>(); // create SIE structure qNamesToSIEs for (Module module : resolveSchemaContext.getModules()) { String packageName = packageTranslator.getPackageName(module); Map namesToSIEntries = ServiceInterfaceEntry - .create(module, packageName); + .create(module, packageName,knownSEITracker); for (Entry sieEntry : namesToSIEntries .entrySet()) { @@ -117,7 +98,7 @@ public class MbeParser { public Map parseYangFilesToString( Collection allYangs) { - YangParserImpl parser = new YangParserImpl(); + YangParserImpl parser = YangParserWrapper.getYangParserInstance(); Map allYangModules = parser .parseYangModelsFromStreamsMapped(Lists.newArrayList(allYangs));