code: protected boolean propagateValue(String destPath, String value, boolean tryToCreate, boolean allowOverwrite) {
          boolean ret = false;
  
          if (tryToCreate) {
              int destPathLen = destPath.length();
              int pathLen = path.length();
  
              if (destPath.startsWith(path) &&
                  destPathLen > pathLen &&
                  destPath.charAt(pathLen) == '_') {
  
                  int nextDot = destPath.indexOf(".", pathLen);
                  if (nextDot == -1)
                      nextDot = destPathLen;
                  int number = Integer.parseInt(destPath.substring(pathLen + 1, nextDot));
  
                  if (number > elements.size()) {
                      String temppath = path.substring(0, path.lastIndexOf("."));
  
                      for (int i = elements.size(); i < number; i++) {
                          SyntaxElement child = createAndAppendNewElement(ref, temppath, i, document);
                          if (child != null)
                              child.setParent(this);
                      }
                  }
              }
          }
  
          for (ListIterator<SyntaxElement> i = elements.listIterator(); i.hasNext(); ) {
              SyntaxElement e = i.next();
              String ePath = e.getPath();
              if (destPath.equals(ePath) || destPath.startsWith(ePath + ".")) {
                  if (e.propagateValue(destPath, value, tryToCreate, allowOverwrite)) {
                      ret = true;
                      break;
                  }
              }
          }
  
          return ret;
      }
docs: siehe SyntaxElement::propagateValue()