Exemple #1
0
  public VarDefBase getUnDollarUnprefixNamedChild(
      SharedProgramInstanceData sharedProgramInstanceData, String csName, IntegerRef rnChildIndex) {
    String csUpperName = csName.toUpperCase();

    int nNbChildren = getNbChildren();
    for (int nIndex = 0; nIndex < nNbChildren; nIndex++) {
      VarDefBase varDefChild = getChild(nIndex);
      String csChildName = varDefChild.getUnprefixedName(sharedProgramInstanceData).toUpperCase();
      if (csChildName.equals(csUpperName)) {
        if (rnChildIndex != null) rnChildIndex.set(nIndex);
        return varDefChild;
      } else {
        int nDollarPos = csChildName.indexOf('$');
        if (nDollarPos >= 0) {
          String csUnDollarChildName = csChildName.substring(0, nDollarPos);
          if (csUnDollarChildName.equals(csUpperName)) {
            if (rnChildIndex != null) rnChildIndex.set(nIndex);
            return varDefChild;
          }
        }
      }
      varDefChild =
          varDefChild.getUnprefixNamedChild(sharedProgramInstanceData, csName, rnChildIndex);
      if (varDefChild != null) return varDefChild;
    }
    return null;
  }