Example #1
0
  protected void processFormattedData(String src) {
    Vector baseName = new Vector();
    Vector names = new Vector();
    Vector values = new Vector();

    int ptr = 0;
    int begin = 0;
    int nestLevel = 0;
    boolean whitespace = false;
    boolean foundEquals = false;
    String lastToken = null;
    String lastBaseName = null;
    String paramName = null;
    char c;

    if (src == null) return;

    while (ptr < src.length()) {
      foundEquals = false;
      whitespace = true;

      do {
        c = src.charAt(ptr);

        whitespace = false;

        if (Character.isSpace(c)) whitespace = true;
        else if (c == '=') {
          whitespace = true;
          foundEquals = true;
        } else if (c == '{') {
          if (lastBaseName != null) {
            baseName.addElement(lastBaseName);
            lastBaseName = null;
          }
          whitespace = true;
        } else if (c == '}') {
          if (baseName.size() > 0) {
            baseName.removeElementAt(baseName.size() - 1);
          }
          whitespace = true;
        }
      } while (whitespace && ++ptr < src.length());

      begin = ptr;
      if (foundEquals && paramName == null) paramName = lastToken;

      if (ptr < src.length()) {
        do {
          c = src.charAt(ptr);

          whitespace = false;

          if (Character.isSpace(c)) whitespace = true;
          else if (c == '=') whitespace = true;
          else if (c == '{') whitespace = true;
          else if (c == '}') whitespace = true;
        } while (!whitespace && ++ptr < src.length());

        lastToken = src.substring(begin, ptr);
        lastBaseName = lastToken;

        if (paramName != null) {
          int l = baseName.size();
          String temp = "";
          if (baseName.size() > 0) {
            for (int i = 0; i < l; i++) {
              temp += (String) (baseName.elementAt(i));
              temp += ".";
            }
          }
          temp += paramName;

          names.addElement(temp);
          values.addElement(lastToken);
          paramName = null;
        }
      }
    }

    argNames = new String[names.size()];
    args = new String[values.size()];

    for (int i = 0; i < names.size(); i++) {
      argNames[i] = (String) (names.elementAt(i));
      args[i] = (String) (values.elementAt(i));
    }
  }