org.opendaylight.yangtools.yang.model.api.Module.getImports()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(12.8k)|赞(0)|评价(0)|浏览(97)

本文整理了Java中org.opendaylight.yangtools.yang.model.api.Module.getImports()方法的一些代码示例,展示了Module.getImports()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Module.getImports()方法的具体详情如下:
包路径:org.opendaylight.yangtools.yang.model.api.Module
类名称:Module
方法名:getImports

Module.getImports介绍

[英]Returns imports which represents YANG modules which are imported to this module via import statement.
[中]返回表示通过import语句导入到此模块的模块的导入。

代码示例

代码示例来源:origin: opendaylight/yangtools

private static Collection<ModuleImport> allImports(final Module mod) {
  if (mod.getSubmodules().isEmpty()) {
    return mod.getImports();
  }
  final Collection<ModuleImport> concat = new LinkedHashSet<>();
  concat.addAll(mod.getImports());
  for (Module sub : mod.getSubmodules()) {
    concat.addAll(sub.getImports());
  }
  return concat;
}

代码示例来源:origin: org.opendaylight.yangtools/yang-model-util

private static Collection<ModuleImport> allImports(final Module mod) {
  if (mod.getSubmodules().isEmpty()) {
    return mod.getImports();
  }
  final Collection<ModuleImport> concat = new LinkedHashSet<>();
  concat.addAll(mod.getImports());
  for (Module sub : mod.getSubmodules()) {
    concat.addAll(sub.getImports());
  }
  return concat;
}

代码示例来源:origin: org.opendaylight.yangtools/yang-data-impl

private static ModuleImport getModuleImport(final Module targetModule, final String prefix) {
    return targetModule.getImports().stream()
      .filter(imp -> prefix.equals(imp.getPrefix())).findFirst().orElse(null);
  }
}

代码示例来源:origin: org.opendaylight.controller/yang-jmx-generator

private static ModuleImport findModuleImport(final Module module, final String prefix) {
  for (ModuleImport moduleImport : module.getImports()) {
    if (moduleImport.getPrefix().equals(prefix)) {
      return moduleImport;
    }
  }
  throw new IllegalStateException(format("Import not found with prefix %s in %s", prefix, module));
}

代码示例来源:origin: org.opendaylight.yangtools/yang-model-export

private void emitLinkageNodes(final Module input) {
  for (final ModuleImport importNode : input.getImports()) {
    emitImport(importNode);
  }
  /*
   * FIXME: BUG-2444: Emit include statements
   */
}

代码示例来源:origin: opendaylight/yangtools

private static ModuleImport getModuleImport(final Module targetModule, final String prefix) {
    return targetModule.getImports().stream()
      .filter(imp -> prefix.equals(imp.getPrefix())).findFirst().orElse(null);
  }
}

代码示例来源:origin: org.opendaylight.controller/yang-jmx-generator

private static String getConfigModulePrefixFromImport(final Module currentModule) {
  for (ModuleImport currentImport : currentModule.getImports()) {
    if (currentImport.getModuleName().equals(ConfigConstants.CONFIG_MODULE)) {
      return currentImport.getPrefix();
    }
  }
  throw new IllegalArgumentException("Cannot find import " + ConfigConstants.CONFIG_MODULE + " in "
      + currentModule);
}

代码示例来源:origin: opendaylight/yangtools

private static Map<String, URI> prefixToNamespace(final SchemaContext ctx, final Module module) {
  final BiMap<String, URI> prefixMap = HashBiMap.create(module.getImports().size() + 1);
  prefixMap.put(module.getPrefix(), module.getNamespace());
  for (final ModuleImport imp : module.getImports()) {
    final String prefix = imp.getPrefix();
    final URI namespace = getModuleNamespace(ctx, imp.getModuleName());
    prefixMap.put(prefix, namespace);
  }
  return prefixMap;
}

代码示例来源:origin: org.opendaylight.yangtools/yang-model-export

private static Map<String, URI> prefixToNamespace(final SchemaContext ctx, final Module module) {
  final BiMap<String, URI> prefixMap = HashBiMap.create(module.getImports().size() + 1);
  prefixMap.put(module.getPrefix(), module.getNamespace());
  for (final ModuleImport imp : module.getImports()) {
    final String prefix = imp.getPrefix();
    final URI namespace = getModuleNamespace(ctx, imp.getModuleName());
    prefixMap.put(prefix, namespace);
  }
  return prefixMap;
}

代码示例来源:origin: opendaylight/yangtools

private QName createQName(final String prefix, final String localName) {
  final Module module = schemaContext.findModule(schemaNode.getQName().getModule()).get();
  if (prefix.isEmpty() || module.getPrefix().equals(prefix)) {
    return QName.create(module.getQNameModule(), localName);
  }
  for (final ModuleImport moduleImport : module.getImports()) {
    if (prefix.equals(moduleImport.getPrefix())) {
      final Module importedModule = schemaContext.findModule(moduleImport.getModuleName(),
          moduleImport.getRevision()).get();
      return QName.create(importedModule.getQNameModule(),localName);
    }
  }
  throw new IllegalArgumentException(String.format("Failed to lookup a module for prefix %s", prefix));
}

代码示例来源:origin: org.opendaylight.yangtools/yang-data-jaxen

private QName createQName(final String prefix, final String localName) {
  final Module module = schemaContext.findModule(schemaNode.getQName().getModule()).get();
  if (prefix.isEmpty() || module.getPrefix().equals(prefix)) {
    return QName.create(module.getQNameModule(), localName);
  }
  for (final ModuleImport moduleImport : module.getImports()) {
    if (prefix.equals(moduleImport.getPrefix())) {
      final Module importedModule = schemaContext.findModule(moduleImport.getModuleName(),
          moduleImport.getRevision()).get();
      return QName.create(importedModule.getQNameModule(),localName);
    }
  }
  throw new IllegalArgumentException(String.format("Failed to lookup a module for prefix %s", prefix));
}

代码示例来源:origin: org.opendaylight.yangtools/yang-model-util

final Set<ModuleImport> imports = module.getImports();
for (final ModuleImport mi : imports) {
  if (prefix.equals(mi.getPrefix())) {

代码示例来源:origin: org.opendaylight.yangtools/yang-model-util

private static Collection<Module> getImportedModules(final Map<ModuleId, Module> allModules,
    final Set<Module> baseModules, final TreeMultimap<String, Module> nameToModulesAll) {
  List<Module> relatedModules = Lists.newLinkedList();
  for (Module module : baseModules) {
    for (ModuleImport moduleImport : module.getImports()) {
      Optional<Revision> revisionDate = moduleImport.getRevision();
      if (!revisionDate.isPresent()) {
        revisionDate = nameToModulesAll.get(moduleImport.getModuleName()).first().getRevision();
      }
      ModuleId key = new ModuleId(moduleImport.getModuleName(), revisionDate);
      Module importedModule = allModules.get(key);
      Preconditions.checkArgument(importedModule != null,
          "Invalid schema, cannot find imported module: %s from module: %s, %s, modules:%s", key,
          module.getQNameModule(), module.getName(), allModules);
      relatedModules.add(importedModule);
      //calling imports recursive
      relatedModules.addAll(getImportedModules(allModules, Collections.singleton(importedModule),
            nameToModulesAll));
    }
  }
  return relatedModules;
}

代码示例来源:origin: org.opendaylight.mdsal/mdsal-binding2-dom-codec

private static Object qnameDomValueFromString(final Codec<Object, Object> codec, final DataSchemaNode schema,
    final String defaultValue, final SchemaContext schemaContext) {
  final int prefixEndIndex = defaultValue.indexOf(':');
  if (prefixEndIndex != -1) {
    final String defaultValuePrefix = defaultValue.substring(0, prefixEndIndex);
    final Module module = schemaContext.findModule(schema.getQName().getModule()).get();
    if (module.getPrefix().equals(defaultValuePrefix)) {
      return codec.deserialize(QName.create(module.getQNameModule(),
        defaultValue.substring(prefixEndIndex + 1)));
    }
    final Set<ModuleImport> imports = module.getImports();
    for (final ModuleImport moduleImport : imports) {
      if (moduleImport.getPrefix().equals(defaultValuePrefix)) {
        final Module importedModule = schemaContext.findModule(moduleImport.getModuleName(),
          moduleImport.getRevision()).get();
        return codec.deserialize(QName.create(importedModule.getQNameModule(),
          defaultValue.substring(prefixEndIndex + 1)));
      }
    }
    return null;
  }
  return codec.deserialize(QName.create(schema.getQName(), defaultValue));
}

代码示例来源:origin: org.opendaylight.mdsal/mdsal-binding-dom-codec

private static Object qnameDomValueFromString(final Codec<Object, Object> codec, final DataSchemaNode schema,
                       final String defaultValue, final SchemaContext schemaContext) {
  int prefixEndIndex = defaultValue.indexOf(':');
  QName qname;
  if (prefixEndIndex != -1) {
    String defaultValuePrefix = defaultValue.substring(0, prefixEndIndex);
    Module module = schemaContext.findModule(schema.getQName().getModule()).get();
    if (module.getPrefix().equals(defaultValuePrefix)) {
      qname = QName.create(module.getQNameModule(), defaultValue.substring(prefixEndIndex + 1));
      return codec.deserialize(qname);
    }
    Set<ModuleImport> imports = module.getImports();
    for (ModuleImport moduleImport : imports) {
      if (moduleImport.getPrefix().equals(defaultValuePrefix)) {
        Module importedModule = schemaContext.findModule(moduleImport.getModuleName(),
          moduleImport.getRevision()).get();
        qname = QName.create(importedModule.getQNameModule(), defaultValue.substring(prefixEndIndex + 1));
        return codec.deserialize(qname);
      }
    }
    return null;
  }
  qname = QName.create(schema.getQName(), defaultValue);
  return codec.deserialize(qname);
}

代码示例来源:origin: opendaylight/yangtools

private static Collection<Module> getImportedModules(final Map<ModuleId, Module> allModules,
    final Set<Module> baseModules, final TreeMultimap<String, Module> nameToModulesAll) {
  List<Module> relatedModules = Lists.newLinkedList();
  for (Module module : baseModules) {
    for (ModuleImport moduleImport : module.getImports()) {
      Optional<Revision> revisionDate = moduleImport.getRevision();
      if (!revisionDate.isPresent()) {
        revisionDate = nameToModulesAll.get(moduleImport.getModuleName()).first().getRevision();
      }
      ModuleId key = new ModuleId(moduleImport.getModuleName(), revisionDate);
      Module importedModule = allModules.get(key);
      Preconditions.checkArgument(importedModule != null,
          "Invalid schema, cannot find imported module: %s from module: %s, %s, modules:%s", key,
          module.getQNameModule(), module.getName(), allModules);
      relatedModules.add(importedModule);
      //calling imports recursive
      relatedModules.addAll(getImportedModules(allModules, Collections.singleton(importedModule),
            nameToModulesAll));
    }
  }
  return relatedModules;
}

代码示例来源:origin: org.opendaylight.yangtools/yang-data-api

/**
   * Create a prefix {@link Converter} for {@link XPathExpressionException} defined in a particular YANG
   * {@link Module} .Instantiation requires establishing how a module's imports are mapped to actual modules
   * and their namespaces. This information is cached and used for improved lookups.
   *
   * @param ctx A SchemaContext
   * @param module Module in which the XPath is defined
   * @return A new Converter
   */
  public static @Nonnull Converter<String, QNameModule> create(final SchemaContext ctx, final Module module) {
    // Always check for null ctx
    requireNonNull(ctx, "Schema context may not be null");

    // Use immutable map builder for detection of duplicates (which should never occur)
    final Builder<String, QNameModule> b = ImmutableBiMap.builder();
    b.put(module.getPrefix(), module.getQNameModule());

    for (ModuleImport i : module.getImports()) {
      final Optional<Module> mod = ctx.findModule(i.getModuleName(), i.getRevision());
      checkArgument(mod.isPresent(), "Unsatisfied import of %s by module %s", i, module);

      b.put(i.getPrefix(), mod.get().getQNameModule());
    }

    return Maps.asConverter(b.build());
  }
}

代码示例来源:origin: opendaylight/yangtools

/**
   * Create a prefix {@link Converter} for {@link XPathExpressionException} defined in a particular YANG
   * {@link Module} .Instantiation requires establishing how a module's imports are mapped to actual modules
   * and their namespaces. This information is cached and used for improved lookups.
   *
   * @param ctx A SchemaContext
   * @param module Module in which the XPath is defined
   * @return A new Converter
   */
  public static @Nonnull Converter<String, QNameModule> create(final SchemaContext ctx, final Module module) {
    // Always check for null ctx
    requireNonNull(ctx, "Schema context may not be null");

    // Use immutable map builder for detection of duplicates (which should never occur)
    final Builder<String, QNameModule> b = ImmutableBiMap.builder();
    b.put(module.getPrefix(), module.getQNameModule());

    for (ModuleImport i : module.getImports()) {
      final Optional<Module> mod = ctx.findModule(i.getModuleName(), i.getRevision());
      checkArgument(mod.isPresent(), "Unsatisfied import of %s by module %s", i, module);

      b.put(i.getPrefix(), mod.get().getQNameModule());
    }

    return Maps.asConverter(b.build());
  }
}

代码示例来源:origin: opendaylight/yangtools

private boolean checkModuleDependency(final Module module, final Collection<ModuleId> rootModules) {
  for (ModuleId rootModule : rootModules) {
    if (rootModule.equals(new ModuleId(module.getName(), module.getRevision()))) {
      return true;
    }
    //handling/checking imports regarding root modules
    for (ModuleImport moduleImport : module.getImports()) {
      if (moduleImport.getModuleName().equals(rootModule.getName())) {
        return !moduleImport.getRevision().isPresent()
            || moduleImport.getRevision().equals(rootModule.getRev());
      }
    }
    //submodules handling
    for (Module moduleSub : module.getSubmodules()) {
      return checkModuleDependency(moduleSub, rootModules);
    }
  }
  return false;
}

代码示例来源:origin: org.opendaylight.yangtools/yang-model-util

private boolean checkModuleDependency(final Module module, final Collection<ModuleId> rootModules) {
  for (ModuleId rootModule : rootModules) {
    if (rootModule.equals(new ModuleId(module.getName(), module.getRevision()))) {
      return true;
    }
    //handling/checking imports regarding root modules
    for (ModuleImport moduleImport : module.getImports()) {
      if (moduleImport.getModuleName().equals(rootModule.getName())) {
        return !moduleImport.getRevision().isPresent()
            || moduleImport.getRevision().equals(rootModule.getRev());
      }
    }
    //submodules handling
    for (Module moduleSub : module.getSubmodules()) {
      return checkModuleDependency(moduleSub, rootModules);
    }
  }
  return false;
}

相关文章