docs: private void recordSWData(Map expData, DssatCommonOutput output) {
          String id;
          HashMap<String, Map> swData;
          try {
              if (output instanceof DssatSoilOutput) {
                  Map soilTmp = getObjectOr(expData, "soil", new HashMap());
                  if (soilTmp.isEmpty()) {
                      id = getObjectOr(expData, "soil_id", "");
                  } else {
                      id = soilHelper.getSoilID(soilTmp);
                  }
  //                id = id.substring(0, 2);
                  swData = soilData;
                  expData.put("soil_id", id);
              } else {
                  //            id = getObjectOr(expData, "wst_id", "");
                  //            id = getWthFileName(getObjectOr(expData, "weather", new HashMap()));
                  Map wthTmp = getObjectOr(expData, "weather", new HashMap());
                  if (wthTmp.isEmpty()) {
                      id = getObjectOr(expData, "wst_id", "");
                  } else {
                      id = wthHelper.createWthFileName(wthTmp);
                  }
                  swData = wthData;
                  expData.put("wst_id", id);
              }
              if (!id.equals("") && !swData.containsKey(id)) {
                  swData.put(id, expData);
  //                Future fut = executor.submit(new DssatTranslateRunner(output, expData, arg0));
  //                swfiles.put(id, fut);
  //                futFiles.add(fut);
              }
          } catch (Exception e) {
              LOG.error(getStackTrace(e));
          }
      }