gpt4 book ai didi

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

转载 作者:知者 更新时间:2024-03-16 18:15:31 26 4
gpt4 key购买 nike

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

YangBase.getReferredIdentity介绍

[英]Returns the parent identity node.
[中]返回父标识节点。

代码示例

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

/**
 * Adds to the extend list for all the parent nodes with its complete tree.
 */
public void addToExtendList() {
  while (!stack.empty()) {
    YangIdentity baseId = stack.peek();
    List<YangIdentity> exList = baseId.getExtendList();
    if (exList != null && !exList.isEmpty()) {
      for (YangIdentity id : exList) {
        if (!id.isAddedToAllParent()) {
          stack.push(id);
        }
      }
    }
    YangIdentity resolvingId = stack.pop();
    addToAllParent(resolvingId, resolvingId.getBaseNode().getReferredIdentity());
  }
}

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

/**
   * Adds an identity to all the parent nodes.
   *
   * @param referredId referred identity
   * @param baseId     base identity
   */
  private void addToAllParent(YangIdentity referredId, YangIdentity baseId) {
    YangIdentity baseIdentity = baseId;
    while (baseIdentity != null) {
      List<YangIdentity> list = baseIdentity.getExtendList();
      if (!list.contains(referredId)) {
        baseIdentity.addToExtendList(referredId);
      }

      YangBase base = baseIdentity.getBaseNode();
      baseIdentity = null;
      if (base != null) {
        baseIdentity = base.getReferredIdentity();
      }
    }
    referredId.setAddedToAllParent(true);
  }
}

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

/**
 * Returns referred typedef/grouping node.
 *
 * @return referred typedef/grouping node
 * @throws DataModelException a violation in data model rule
 */
private T getRefNode() throws DataModelException {
  T entity = getCurEntityToResolveFromStack();
  if (entity instanceof YangType) {
    YangDerivedInfo<?> derivedInfo = (YangDerivedInfo<?>)
        ((YangType<?>) entity).getDataTypeExtendedInfo();
    return (T) derivedInfo.getReferredTypeDef();
  }
  if (entity instanceof YangUses) {
    return (T) ((YangUses) entity).getRefGroup();
  }
  if (entity instanceof YangIfFeature) {
    return (T) ((YangIfFeature) entity).getReferredFeatureHolder();
  }
  if (entity instanceof YangLeafRef) {
    return (T) ((YangLeafRef) entity).getReferredLeafOrLeafList();
  }
  if (entity instanceof YangBase) {
    return (T) ((YangBase) entity).getReferredIdentity();
  }
  if (entity instanceof YangIdentityRef) {
    return (T) ((YangIdentityRef) entity).getReferredIdentity();
  }
  throw new DataModelException(LINKER_ERROR);
}

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

@Override
public Object resolve()
    throws DataModelException {
  // Check if the derived info is present.
  YangIdentity identity = getReferredIdentity();
  if (identity == null) {
    throw new DataModelException("Linker Error: Identity information is missing. " +
        getName() + " in " +
        getLineNumber() + " at " +
        getCharPosition() +
        " in " + getFileName() + "\"");
  }
  while (identity.getBaseNode() != null) {
    if (identity.getBaseNode().getResolvableStatus() != RESOLVED) {
      setResolvableStatus(INTRA_FILE_RESOLVED);
      return null;
    }
    identity = identity.getBaseNode().getReferredIdentity();
  }
  return null;
}

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