gpt4 book ai didi

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

转载 作者:知者 更新时间:2024-03-14 12:33:31 24 4
gpt4 key购买 nike

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

YangNode.getChild介绍

[英]Returns the first child of node.
[中]返回节点的第一个子节点。

代码示例

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

/**
 * Checks if there is any rpc defined in the module or sub-module.
 *
 * @param rootNode root node of the data model
 * @return status of rpc's existence
 */
public static boolean isRpcChildNodePresent(YangNode rootNode) {
  YangNode childNode = rootNode.getChild();
  while (childNode != null) {
    if (childNode instanceof YangRpc) {
      return true;
    }
    childNode = childNode.getNextSibling();
  }
  return false;
}

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

/**
 * Returns the YANG uses node list.
 *
 * @param node parent node
 * @return YANG uses list
 */
private List<YangUses> getUsesNode(YangNode node) {
  YangNode curNode = node.getChild();
  List<YangUses> usesList = new LinkedList<>();
  while (curNode != null) {
    if (curNode instanceof YangUses) {
      usesList.add((YangUses) curNode);
    }
    curNode = curNode.getNextSibling();
  }
  return usesList;
}

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

/**
 * Searches for input in given RPC node.
 *
 * @param rpc YANG RPC node
 * @return input node
 */
public static YangNode findRpcInput(YangNode rpc) {
  YangNode child = rpc.getChild();
  while (child != null) {
    if (!(child instanceof YangInput)) {
      child = child.getNextSibling();
      continue;
    }
    return child;
  }
  return null;
}

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

/**
 * Searches for output in given RPC node.
 *
 * @param rpc YANG RPC node
 * @return output node
 */
public static YangNode findRpcOutput(YangNode rpc) {
  YangNode child = rpc.getChild();
  while (child != null) {
    if (!(child instanceof YangOutput)) {
      child = child.getNextSibling();
      continue;
    }
    return child;
  }
  return null;
}

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

/**
 * Returns list of augment nodes.
 *
 * @param node root node
 * @return list of augment nodes
 */
public List<YangAugment> getListOfYangAugment(YangNode node) {
  node = node.getChild();
  List<YangAugment> augments = new ArrayList<>();
  while (node != null) {
    if (node instanceof YangAugment) {
      augments.add((YangAugment) node);
    }
    node = node.getNextSibling();
  }
  return augments;
}

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

/**
 * Checks if there is any rpc/notification defined in the module or
 * sub-module.
 *
 * @param rootNode root node of the data model
 * @return status of rpc/notification existence
 */
public static boolean isRpcNotificationPresent(YangNode rootNode) {
  YangNode childNode = rootNode.getChild();
  while (childNode != null) {
    if (childNode instanceof YangRpc ||
        childNode instanceof YangNotification) {
      return true;
    }
    childNode = childNode.getNextSibling();
  }
  return false;
}

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

/**
 * Verifies for child nodes in sub module.
 *
 * @param node submodule node
 * @param name name of child node
 * @return true if child node found
 */
private boolean verifyChildNode(YangNode node, String name) {
  node = node.getChild();
  while (node != null) {
    if (node.getName().equals(name)) {
      return true;
    }
    node = node.getNextSibling();
  }
  return false;
}

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

/**
 * Add the unresolved data under the root leve grouping to be resolved, since it will be used in interfile uses.
 *
 * @param referenceResolver module / sub-module
 */
public static void resolveGroupingInDefinationScope(YangReferenceResolver referenceResolver) {
  YangNode potentialInterFileGrouping = ((YangNode) referenceResolver).getChild();
  while (potentialInterFileGrouping != null) {
    if (potentialInterFileGrouping instanceof YangGrouping) {
      addGroupingResolvableEntitiesToResolutionList((YangGrouping) potentialInterFileGrouping);
    }
    potentialInterFileGrouping = potentialInterFileGrouping.getNextSibling();
  }
}

代码示例来源: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-linker

private static void traverseAndBreak(YangNode rootNode,
                   Map<YangNode, List<YangNode>> map) {
  YangNode curNode = rootNode;
  TraversalType curTraversal = ROOT;
  while (curNode != null) {
    if (curTraversal != PARENT && curNode.getChild() != null) {
      curTraversal = CHILD;
      curNode = curNode.getChild();
    } else if (curNode.getNextSibling() != null) {
      curTraversal = SIBLING;
      curNode = curNode.getNextSibling();
    } else {
      curTraversal = PARENT;
      curNode = curNode.getParent();
      if (curNode != null) {
        processHierarchyChild(curNode, map);
      }
    }
  }
}

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

/**
 * Searches augment node in root node by name of the augment. For intra
 * file augment, target augment name without prefix is taken and checked.
 *
 * @param root    root node
 * @param augName current augment name
 * @return target augment node
 */
private YangNode searchAugmentNode(YangNode root, String augName) {
  YangNode node = root;
  node = node.getChild();
  while (node != null) {
    if (node instanceof YangAugment) {
      String name = ((YangAugment) node).getPrefixRemovedName();
      if (node.getName().equals(augName) || name.equals(augName)) {
        return node;
      }
    }
    node = node.getNextSibling();
  }
  return null;
}

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

/**
 * Checks for the augment name name collision. If there are augments with
 * the same name present, then the new augment will be set with a logical
 * node.
 *
 * @param root augment parent node
 * @param aug  YANG augment node
 */
public static void checkAugNameCollision(YangNode root, YangAugment aug) {
  YangNode child = root.getChild();
  while (child != null) {
    if (child instanceof YangAugment) {
      if (child.getName().equals(aug.getName())) {
        aug.setLogicalNode((YangAugment) child);
      }
    }
    child = child.getNextSibling();
  }
}

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

private static void processHierarchyChild(YangNode node,
                     Map<YangNode, List<YangNode>> map) {
  YangNode child = node.getChild();
  if (child != null) {
    List<YangNode> nodes = new ArrayList<>();
    while (child != null) {
      nodes.add(child);
      child.setParent(null);
      child = child.getNextSibling();
      if (child != null) {
        child.getPreviousSibling().setNextSibling(null);
        child.setPreviousSibling(null);
      }
    }
    map.put(node, nodes);
  }
  node.setChild(null);
}

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

/**
 * Finds the referred grouping node at the root level of imported/included node.
 *
 * @param refNode module/sub-module node
 * @return referred grouping
 */
private YangNode findRefGrouping(YangNode refNode) {
  YangNode tmpNode = refNode.getChild();
  while (tmpNode != null) {
    if (tmpNode instanceof YangGrouping) {
      if (tmpNode.getName()
          .equals(((YangUses) getCurEntityToResolveFromStack())
                  .getName())) {
        return tmpNode;
      }
    }
    tmpNode = tmpNode.getNextSibling();
  }
  return null;
}

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

/**
 * Detects colliding of uses and grouping only with uses and grouping respectively.
 *
 * @param identifierName name for which collision detection is to be checked
 * @param dataType       type of YANG node asking for detecting collision
 * @param node           node instance of calling node
 * @throws DataModelException a violation of data model rules
 */
private static void detectCollidingForUsesGrouping(String identifierName, YangConstructType dataType, YangNode node)
    throws DataModelException {
  node = node.getChild();
  while (node != null) {
    Parsable parsable = (Parsable) node;
    if (node instanceof CollisionDetector
        && parsable.getYangConstructType() == dataType) {
      ((CollisionDetector) node).detectSelfCollision(identifierName, dataType);
    }
    node = node.getNextSibling();
  }
}

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

/**
 * Finds the referred typedef node at the root level of imported/included node.
 *
 * @param refNode module/sub-module node
 * @return referred typedef
 */
private YangNode findRefTypedef(YangNode refNode) {
  YangNode tmpNode = refNode.getChild();
  while (tmpNode != null) {
    if (tmpNode instanceof YangTypeDef) {
      if (tmpNode.getName()
          .equals(((YangType) getCurEntityToResolveFromStack())
                  .getDataTypeName())) {
        return tmpNode;
      }
    }
    tmpNode = tmpNode.getNextSibling();
  }
  return null;
}

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

/**
 * Finds the referred identity node at the root level of imported/included node.
 *
 * @param refNode module/sub-module node
 * @return referred identity
 */
private YangNode findRefIdentity(YangNode refNode) {
  YangNode tmpNode = refNode.getChild();
  while (tmpNode != null) {
    if (tmpNode instanceof YangIdentity) {
      if (tmpNode.getName()
          .equals(((YangBase) getCurEntityToResolveFromStack())
                  .getBaseIdentifier().getName())) {
        return tmpNode;
      }
    }
    tmpNode = tmpNode.getNextSibling();
  }
  return null;
}

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

/**
 * Finds the referred identity node at the root level of imported/included node.
 *
 * @param refNode module/sub-module node
 * @return referred identity
 */
private YangNode findRefIdentityRef(YangNode refNode) {
  YangNode tmpNode = refNode.getChild();
  while (tmpNode != null) {
    if (tmpNode instanceof YangIdentity) {
      if (tmpNode.getName()
          .equals(((YangIdentityRef) getCurEntityToResolveFromStack())
                  .getBaseIdentity().getName())) {
        return tmpNode;
      }
    }
    tmpNode = tmpNode.getNextSibling();
  }
  return null;
}

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

if (curTraversal != PARENT && curNode.getChild() != null) {
  curTraversal = CHILD;
  curNode = curNode.getChild();
} else if (curNode.getNextSibling() != null) {
  curTraversal = SIBLING;

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

/**
 * Removes node from data model tree.
 *
 * @param node YANG data model node
 */
public static void deleteUnsupportedNodeFromTree(YangNode node) {
  // unlink from parent
  YangNode parentNode = node.getParent();
  if (parentNode.getChild().equals(node)) {
    parentNode.setChild(node.getNextSibling());
  }
  //unlink from siblings
  YangNode previousSibling = node.getPreviousSibling();
  YangNode nextSibling = node.getNextSibling();
  if (nextSibling != null && previousSibling != null) {
    previousSibling.setNextSibling(nextSibling);
    nextSibling.setPreviousSibling(previousSibling);
  } else if (nextSibling != null) {
    nextSibling.setPreviousSibling(null);
  } else if (previousSibling != null) {
    previousSibling.setNextSibling(null);
  }
  node.setParent(null);
  node.setPreviousSibling(null);
  node.setNextSibling(null);
  node.setChild(null);
}

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