docs: public static Object[] parseVersionString(String versionString) {
          if (versionString == null) {
              return null;
          }
  
          // check for whitespace
          if (versionString.matches("\\s")) {
              return null;
          }
  
          // split on the dots
          String[] split = versionString.split("\\.");
          if (split.length == 0) {
              return null;
          }
  
          Object[] v = new Object[split.length];
          int i = 0;
          for (String s : split) {
              try {
                  v[i] = Integer.parseInt(s);
              } catch (NumberFormatException e) {
                  v[i] = s;
              }
              i++;
          }
  
          // check for a numeric beginning
          if (v[0] instanceof Integer) {
              return v;
          }
          else {
              return null;
          }
      }