code: public void parse(String version_string) {
          _version = 0;
          _revision = 0;
          _subrevision = 0;
          _suffix = "";
          int pos = 0;
          int startpos = 0;
          int endpos = version_string.length();
          while ( (pos < endpos) && Character.isDigit(version_string.charAt(pos))) {
              pos++;
          }
          _version = Integer.parseInt(version_string.substring(startpos,pos));
          if ((pos < endpos) && version_string.charAt(pos)=='.') {
              startpos = ++pos;
              while ( (pos < endpos) && Character.isDigit(version_string.charAt(pos))) {
                  pos++;
              }
              _revision = Integer.parseInt(version_string.substring(startpos,pos));
          }
          if ((pos < endpos) && version_string.charAt(pos)=='.') {
              startpos = ++pos;
              while ( (pos < endpos) && Character.isDigit(version_string.charAt(pos))) {
                  pos++;
              }
              _subrevision = Integer.parseInt(version_string.substring(startpos,pos));
          }
          if (pos < endpos) {
              _suffix = version_string.substring(pos);
          }
      }
docs: parses version string in the form version[.revision[.subrevision[extension]]]
  into this instance.