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));
        }
    }
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 ) ; } swData = soilData ; expData . put ( "soil_id" , id ) ; } else { 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 ) ; } } catch ( Exception e ) { LOG . error ( getStackTrace ( e ) ) ; } }
write soil/weather files

@param expData The holder for experiment data include soil/weather data
@param output The DSSAT Writer object