docs: public Object put(Object arg0, Object arg1) {
          Object old = null;
          if (INSTALL_DIR.equals(arg0)) {
              if (arg1 instanceof File) {
                  old = installDir;
                  installDir = (File) arg1;
  
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (INSTALL_MONITOR.equals(arg0)) {
              if (arg1 instanceof List) {
                  if (monitor.extractedFiles != null) {
                      old = monitor.extractedFiles;
                  }
                  monitor.extractedFiles = (List) arg1;
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (DOWNLOAD_FILE_MONITOR.equals(arg0)) {
              if (arg1 instanceof List) {
                  if (monitor.downloadedFiles != null) {
                      old = monitor.downloadedFiles;
                  }
                  monitor.downloadedFiles = (List) arg1;
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (DOWNLOAD_MONITOR.equals(arg0)) {
              if (arg1 instanceof List) {
                  if (monitor.downloadSizeMonitor != null) {
                      old = monitor.downloadSizeMonitor;
                  }
                  monitor.downloadSizeMonitor = (List) arg1;
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (INSTALL_VERSION.equals(arg0)) {
              if (arg1 instanceof Integer) {
                  if (INSTALL_VERSION_ONE.equals(arg1)) {
                      old = arg1;
                  }
              } else if (arg1 instanceof List) {
                  Iterator it = ((List) arg1).iterator();
                  while (it.hasNext()) {
                      Object val = it.next();
                      if (INSTALL_VERSION_ONE.equals(val)) {
                          old = val;
                          break;
                      }
                  }
              }
          } else if (LICENSE_ACCEPT.equals(arg0)) {
              if (arg1 instanceof Boolean) {
                  licenseAccepted = (Boolean) arg1;
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (DOWNLOAD_DEPS.equals(arg0)) {
              if (arg1 instanceof Boolean) {
                  downloadDependencies = (Boolean) arg1;
                  extract.setDoExternalDepsDownload(downloadDependencies.booleanValue());
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (TARGET_USER_DIR.equals(arg0)) {
              if (arg1 instanceof File) {
                  extract.setUserDirOverride((File) arg1);
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (PRODUCT_INSTALL_TYPE.equals(arg0)) {
              if (arg1 instanceof String) {
                  extract.setProductInstallTypeOveride((String) arg1);
              } else {
                  throw new IllegalArgumentException();
              }
          } else if (ALLOW_NON_EMPTY_INSTALL_DIR.equals(arg0)) {
              if (arg1 instanceof Boolean) {
                  extract.allowNonEmptyInstallDirectory((Boolean) arg1);
              } else {
                  throw new IllegalArgumentException();
              }
          }
          return old;
      }