gpt4 book ai didi

org.onosproject.yang.compiler.datamodel.YangAtomicPath.getNodeIdentifier()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-17 07:31:31 27 4
gpt4 key购买 nike

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

YangAtomicPath.getNodeIdentifier介绍

[英]Returns the node identifier.
[中]返回节点标识符。

代码示例

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Returns target node when leaf-ref has only one absolute path in list.
 *
 * @param paths absolute paths
 * @return target node
 */
private YangNode getTargetNodeWhenPathSizeIsOne(List<YangAtomicPath> paths) {
  if (paths.get(0).getNodeIdentifier().getPrefix() != null &&
      !paths.get(0).getNodeIdentifier().getPrefix().equals(
          getRootsPrefix(rootNode))) {
    return getImportedNode(rootNode, paths.get(0).getNodeIdentifier());
  }
  return rootNode;
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Searches for the augment node in imported module when prefix has changed from
 * inter file to inter file.
 *
 * @param nodeId node id
 * @param index  index
 * @return true if found
 */
private boolean searchForAugmentInImportedNode(YangNodeIdentifier nodeId,
                        int index) {
  if (index == absPaths.size()) {
    return false;
  }
  YangNodeIdentifier tempNodeId = absPaths.get(index).getNodeIdentifier();
  return nodeId.getName().equals(tempNodeId.getName());
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-parser

/**
 * Returns the augment name, after removing the prefix, in each atomic
 * content, which is equal to the root prefix.
 *
 * @param atomics atomic content list
 * @param root    root node
 * @return prefix removed augment name
 */
public static String getPrefixRemovedName(List<YangAtomicPath> atomics,
                     YangNode root) {
  String rootPrefix = getRootPrefix(root);
  StringBuilder builder = new StringBuilder();
  for (YangAtomicPath atomic : atomics) {
    String id;
    String prefix = atomic.getNodeIdentifier().getPrefix();
    String name = atomic.getNodeIdentifier().getName();
    if (rootPrefix.equals(prefix) || prefix == null) {
      id = SLASH_FOR_STRING + name;
    } else {
      id = SLASH_FOR_STRING + prefix + COLON + name;
    }
    builder.append(id);
  }
  return builder.toString();
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Process linking using for node identifier for inter/intra file.
 *
 * @param root root node
 * @return linked target node
 */
private YangNode parseData(YangNode root) {
  String rootPrefix = getRootsPrefix(root);
  constructsParentsPrefix = rootPrefix;
  Iterator<YangAtomicPath> pathIterator = absPaths.iterator();
  YangAtomicPath path = pathIterator.next();
  if (path.getNodeIdentifier().getPrefix() != null
      && !path.getNodeIdentifier().getPrefix().equals(rootPrefix)) {
    return parsePath(getImportedNode(root, path.getNodeIdentifier()));
  } else {
    return parsePath(root);
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

if (curPrefix != tempPath.getNodeIdentifier().getPrefix()) {
  root = getIncludedNode(rootNode, tempPath.getNodeIdentifier().getName());
  if (root == null) {
    root = getIncludedNode(rootNode, getAugmentNodeIdentifier(
        tempPath.getNodeIdentifier(), absPaths, rootNode));
    if (root == null) {
      root = rootNode;
    root = getImportedNode(root, tempPath.getNodeIdentifier());
curPrefix = tempPath.getNodeIdentifier().getPrefix();
tempAugment = getAugment(tempPath.getNodeIdentifier(), root, absPaths);
if (tempAugment == null) {
  tempAugment = getAugment(tempPath.getNodeIdentifier(), rootNode,
               absPaths);

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Resolves inter file augment linking.
 *
 * @param tempPath temporary absolute path
 * @param root     root node
 * @param size     node size
 * @return linked target node
 */
private YangNode resolveInterFileAugment(YangAtomicPath tempPath,
                     YangNode root, int size) {
  YangNode tempAugment = getAugment(tempPath.getNodeIdentifier(), root, absPaths);
  if (tempAugment == null) {
    return resolveInterToInterFileAugment(root, size);
  }
  return tempAugment;
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Removes deviation target node from cloned data model.
 *
 * @param target     deviation target node
 * @param targetPath deviation target's last node
 */
private void resolveDeviationNotSupported(YangSchemaNode target,
                     YangAtomicPath targetPath) {
  if (target.getName().equals(targetPath.getNodeIdentifier().getName())) {
    deleteUnsupportedNodeFromTree((YangNode) target);
  } else {
    deleteUnsupportedLeafOrLeafList((YangLeavesHolder) target,
                    targetPath.getNodeIdentifier().getName());
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-datamodel

/**
 * Returns the last node under the unique path.
 *
 * @param path   atomic path list
 * @param holder root node
 * @return last node in the list
 * @throws DataModelException a violation of data model rules
 */
private static YangNode getRefNode(List<YangAtomicPath> path, YangNode holder)
    throws DataModelException {
  Iterator<YangAtomicPath> nodes = path.listIterator();
  YangNode potRefNode = null;
  while (nodes.hasNext()) {
    potRefNode = holder.getChild();
    YangAtomicPath node = nodes.next();
    potRefNode = getNode(node.getNodeIdentifier(), potRefNode);
    if (potRefNode == null) {
      throw new DataModelException(E_TARGET_NODE);
    }
  }
  return potRefNode;
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-datamodel

/**
 * Converts the prefixes in all the nodes of the leafref with respect to the uses node.
 *
 * @param leafrefForCloning leafref that is to be cloned
 * @param yangUses          instance of YANG uses where cloning is done
 * @throws DataModelException data model error
 */
private static void convertThePrefixesDuringChange(YangLeafRef leafrefForCloning, YangUses yangUses)
    throws DataModelException {
  List<YangAtomicPath> atomicPathList = leafrefForCloning.getAtomicPath();
  if (atomicPathList != null && !atomicPathList.isEmpty()) {
    Iterator<YangAtomicPath> atomicPathIterator = atomicPathList.listIterator();
    while (atomicPathIterator.hasNext()) {
      YangAtomicPath atomicPath = atomicPathIterator.next();
      Map<String, String> prefixesAndItsImportNameNode = leafrefForCloning.getPrefixAndNode();
      String prefixInPath = atomicPath.getNodeIdentifier().getPrefix();
      String importedNodeName = prefixesAndItsImportNameNode.get(prefixInPath);
      assignCurrentLeafedWithNewPrefixes(importedNodeName, atomicPath, yangUses);
    }
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

if (!searchForAugmentInImportedNode(path.getNodeIdentifier(),
                  index)) {
  paths.clear();

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

return getTarget(pathTgt.getNodeIdentifier(), node, leafRef);
  node = getNode(node.getChild(), atomicPath.getNodeIdentifier());
  if (node == null) {
    throw getDataModelExc(INVALID_PATH_PRE, leafRef);
return getTarget(pathTgt.getNodeIdentifier(), node, leafRef);

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Parses uses-augment data to finding the augmented node.
 *
 * @param node YANG uses parent
 * @return augmented node
 */
private YangNode parseUsesAugData(YangNode node) {
  YangNode temp = node;
  YangNode tgt;
  Iterator<YangAtomicPath> it = absPaths.iterator();
  YangAtomicPath path;
  YangNodeIdentifier id;
  StringBuilder builder = new StringBuilder();
  while (it.hasNext()) {
    path = it.next();
    id = path.getNodeIdentifier();
    tgt = searchTargetNode(temp, id);
    if (tgt == null) {
      temp = getAugmentNode(temp, builder.toString());
      if (temp != null) {
        tgt = searchTargetNode(temp, id);
      }
    }
    temp = tgt;
    builder.append(id.getName());
    builder.append("/");
  }
  return temp;
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-datamodel

/**
 * Returns the leaf from leaves holder.
 *
 * @param holder root node from where it starts searching
 * @param pLeaf  yang atomic path
 * @return yang leaf from leaves holder
 */
private static YangLeaf getLeaf(YangNode holder, YangAtomicPath pLeaf) {
  YangLeavesHolder leavesHolder = (YangLeavesHolder) holder;
  List<YangLeaf> leaves = leavesHolder.getListOfLeaf();
  if (leaves != null && !leaves.isEmpty()) {
    for (YangLeaf leaf : leaves) {
      if (pLeaf.getNodeIdentifier().getName()
          .equals(leaf.getName())) {
        return leaf;
      }
    }
  }
  return null;
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Validates temp path nodes for augment linking.
 *
 * @param node temp path node
 */
private void validateTempPathNode(YangNode node) {
  if (linkingType != AUGMENT_LINKING) {
    return;
  }
  if (node instanceof YangGrouping) {
    LinkerException ex = new LinkerException(
        ERROR_MSG_FOR_AUGMENT_LINKING +
            getAugmentNodeIdentifier(
                absPaths.get(absPaths.size() - 1).getNodeIdentifier(),
                absPaths,
                rootNode));
    ex.setFileName(rootNode.getFileName());
    throw ex;
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Adds deviate add sub-statements to deviation target node.
 *
 * @param deviateAddList list of deviate add
 * @param target         deviation target node
 * @param targetPath     deviation target's last node
 * @throws DataModelException if there is a data model error
 */
private void resolveDeviateAdd(List<YangDeviateAdd> deviateAddList,
                YangSchemaNode target,
                YangAtomicPath targetPath)
    throws DataModelException {
  for (YangDeviateAdd deviate : deviateAddList) {
    if (target.getName().equals(targetPath.getNodeIdentifier().getName())) {
      updateDeviateAddToTargetNode(target, deviate);
    } else {
      YangSchemaNode leaf = findLeafNode((YangLeavesHolder) target, targetPath
          .getNodeIdentifier().getName());
      updateDeviateAddToTargetNode(leaf, deviate);
    }
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Removes deviate delete sub-statements from deviation target node.
 *
 * @param deviateDeleteList list of deviate delete
 * @param target            deviation target node
 * @param targetPath        deviation target's last node
 * @throws DataModelException if there is a data model error
 */
private void resolveDeviateDelete(List<YangDeviateDelete>
                     deviateDeleteList,
                 YangSchemaNode target,
                 YangAtomicPath targetPath)
    throws DataModelException {
  for (YangDeviateDelete deviate : deviateDeleteList) {
    if (target.getName().equals(targetPath.getNodeIdentifier().getName())) {
      updateDeviateDeleteToTargetNode(target, deviate);
    } else {
      YangSchemaNode leaf = findLeafNode((YangLeavesHolder) target, targetPath
          .getNodeIdentifier().getName());
      updateDeviateDeleteToTargetNode(leaf, deviate);
    }
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-linker

/**
 * Replaces deviate replace sub-statements from deviation target node.
 *
 * @param deviateReplaceList list of deviate replace
 * @param target             deviation target node
 * @param targetPath         deviation target's last node
 * @throws DataModelException if there is a data model error
 */
private void resolveDeviateReplace(List<YangDeviateReplace>
                      deviateReplaceList,
                  YangSchemaNode target,
                  YangAtomicPath targetPath)
    throws DataModelException {
  for (YangDeviateReplace deviate : deviateReplaceList) {
    if (target.getName().equals(targetPath.getNodeIdentifier().getName())) {
      updateDeviateReplaceToTargetNode(target, deviate);
    } else {
      YangSchemaNode leaf = findLeafNode((YangLeavesHolder) target, targetPath
          .getNodeIdentifier().getName());
      updateDeviateReplaceToTargetNode(leaf, deviate);
    }
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-datamodel

/**
 * Assigns leafref with new prefixes while cloning.
 *
 * @param importedNodeName imported node name from grouping
 * @param atomicPath       atomic path in leafref
 * @param node             instance of YANG uses where cloning is done
 * @throws DataModelException data model error
 */
private static void assignCurrentLeafedWithNewPrefixes(String importedNodeName, YangAtomicPath atomicPath,
                            YangNode node)
    throws DataModelException {
  while (!(node instanceof YangReferenceResolver)) {
    node = node.getParent();
    if (node == null) {
      throw new DataModelException("Internal datamodel error: Datamodel tree is not correct");
    }
  }
  if (node instanceof YangModule) {
    List<YangImport> importInUsesList = ((YangModule) node).getImportList();
    if (importInUsesList != null && !importInUsesList.isEmpty()) {
      Iterator<YangImport> importInUsesListIterator = importInUsesList.listIterator();
      while (importInUsesListIterator.hasNext()) {
        YangImport importInUsesNode = importInUsesListIterator.next();
        if (importInUsesNode.getModuleName().equals(importedNodeName)) {
          atomicPath.getNodeIdentifier().setPrefix(importInUsesNode.getPrefixId());
        }
      }
    }
  }
}

代码示例来源:origin: org.onosproject/onos-yang-compiler-datamodel

.getEntityToResolveInfo().getEntityToResolve();
YangAtomicPath atomic = firstDeviation.getTargetNode().get(0);
prefix = atomic.getNodeIdentifier().getPrefix();
List<YangAtomicPath> targetNode = deviation.getTargetNode();
YangAtomicPath atomicPath = targetNode.get(0);
if (!atomicPath.getNodeIdentifier().getPrefix().equals(prefix)) {
  throw new DataModelException("YANG FILE ERROR : Deviations " +
                     "of multiple module is" +

代码示例来源:origin: org.onosproject/onos-yang-compiler-parser

/**
 * Validates the prefix of the YANG file where leaf-ref is present and
 * puts it in the map of node and prefix in leaf-ref.
 *
 * @param atomicList atomic content list in leaf-ref
 * @param leafRef    YANG leaf-ref
 */
private static void valPrefix(List<YangAtomicPath> atomicList,
               YangLeafRef leafRef) {
  for (YangAtomicPath atomicPath : atomicList) {
    String prefix = atomicPath.getNodeIdentifier().getPrefix();
    YangNode parent = leafRef.getParentNode();
    YangNode rootNode = getRootNode(parent);
    List<YangImport> imports;
    if (rootNode instanceof YangModule) {
      imports = ((YangModule) rootNode).getImportList();
    } else {
      imports = ((YangSubModule) rootNode).getImportList();
    }
    updatePrefixWithNode(rootNode, imports, prefix, leafRef);
  }
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com