code: private static boolean overridePropsInNodeBean(final NodeBean nodeBean, final String[] pathList,
        final int idx, final Props prop) {
      if (idx < pathList.length && nodeBean.getName().equals(pathList[idx])) {
        if (idx == pathList.length - 1) {
          if (prop.containsKey(Constants.NODE_TYPE)) {
            nodeBean.setType(prop.get(Constants.NODE_TYPE));
          }
          final Map<String, String> config = prop.getFlattened();
          config.remove(Constants.NODE_TYPE);
          nodeBean.setConfig(config);
          return true;
        }
        for (final NodeBean bean : nodeBean.getNodes()) {
          if (overridePropsInNodeBean(bean, pathList, idx + 1, prop)) {
            return true;
          }
        }
      }
      return false;
    }
docs: Helper method to recursively find the node to override props.
  
  @param nodeBean the node bean
  @param pathList the path list
  @param idx the idx
  @param prop the props to override
  @return the boolean