docs: protected void parseParameters(VoltXMLElement root) {
          VoltXMLElement paramsNode = null;
          for (VoltXMLElement node : root.children) {
              if (node.name.equalsIgnoreCase("parameters")) {
                  paramsNode = node;
                  break;
              }
          }
          if (paramsNode == null) {
              return;
          }
  
          for (VoltXMLElement node : paramsNode.children) {
              if (node.name.equalsIgnoreCase("parameter")) {
                  long id = Long.parseLong(node.attributes.get("id"));
                  String typeName = node.attributes.get("valuetype");
                  String isVectorParam = node.attributes.get("isvector");
  
                  // Get the index for this parameter in the EE's parameter vector
                  String indexAttr = node.attributes.get("index");
                  assert(indexAttr != null);
                  int index = Integer.parseInt(indexAttr);
  
                  VoltType type = VoltType.typeFromString(typeName);
                  ParameterValueExpression pve = new ParameterValueExpression();
                  pve.setParameterIndex(index);
                  pve.setValueType(type);
                  if (isVectorParam != null && isVectorParam.equalsIgnoreCase("true")) {
                      pve.setParamIsVector();
                  }
                  m_paramsById.put(id, pve);
                  getParamsByIndex().put(index, pve);
              }
          }
      }