Displaying differences for changeset
 
display as  

src/java/m/cfa/Baseflow_V1_0.java

@@ -1,100 +1,87 @@
 package m.cfa;
 
 import cfa.guiBaseflow_Model;
-import csip.AbstractModelService;
-import java.util.Map;
-import java.util.concurrent.Callable;
+import csip.ModelDataService;
+import java.io.File;
 import javax.ws.rs.Path;
 import oms3.annotations.Description;
 import oms3.annotations.Name;
 import oms3.annotations.VersionInfo;
 import org.apache.commons.io.FileUtils;
-import org.codehaus.jettison.json.*;
-import csip.utils.JSONUtils;
-import csip.utils.Services;
-import java.io.File;
 
 @Name("baseflow")
 @Description("baseflow")
 @VersionInfo("1.0")
 @Path("m/cfa/baseflow/1.0")
-public class Baseflow_V1_0 extends AbstractModelService {
+public class Baseflow_V1_0 extends ModelDataService {
 
     guiBaseflow_Model model = new guiBaseflow_Model();
 
+
     @Override
-    protected Callable<String> createCallable() throws Exception {
-        return new Callable<String>() {
-            @Override
-            public String call() throws Exception {
-                Map<String, JSONObject> m = getParamMap();
+    protected String process() throws Exception {
+        model.setMainFolder(getWorkspaceDir().toString());
+        model.setDatabase(getStringParam("database"));
+        model.setOrganizationName(getStringParam("org"));
+        model.setStationID(getStringParam("station_id"));
+        model.setStationName(getStringParam("station_name"));
+        model.setDrainageArea(getDoubleParam("drainage_area"));
+        model.setModelType(getStringParam("model_type"));
+        model.setBeginDate(getStringParam("begin_date"));
+        model.setEndDate(getStringParam("end_date"));
+        model.setNDMIN(getIntParam("ndmin"));
+        model.setNDMAX(getIntParam("ndmax"));
+        model.setUseSTORETretrieval(getBooleanParam("useSTORETretrieval"));
+        model.setSTORETdata(getStringParam("STORETdata"));
+        model.setMergeDatasets(getBooleanParam("merge_datasets"));
+        model.setMergeMethod(getStringParam("merge_method"));
+        model.setUserData(getStringParam("user_data"));
 
-                model.setMainFolder(getWorkspaceDir().toString());
-                model.setDatabase(m.get("database").getString(VALUE));
-                model.setOrganizationName(m.get("org").getString(VALUE));
-                model.setStationID(m.get("station_id").getString(VALUE));
-                model.setStationName(m.get("station_name").getString(VALUE));
-                model.setDrainageArea(m.get("drainage_area").getDouble(VALUE));
-                model.setModelType(m.get("model_type").getString(VALUE));
-                model.setBeginDate(m.get("begin_date").getString(VALUE));
-                model.setEndDate(m.get("end_date").getString(VALUE));
-                model.setNDMIN(m.get("ndmin").getInt(VALUE));
-                model.setNDMAX(m.get("ndmax").getInt(VALUE));
-                model.setUseSTORETretrieval(m.get("useSTORETretrieval").getBoolean(VALUE));
-                model.setSTORETdata(m.get("STORETdata").getString(VALUE));
-                model.setMergeDatasets(m.get("merge_datasets").getBoolean(VALUE));
-                model.setMergeMethod(m.get("merge_method").getString(VALUE));
-                model.setUserData(m.get("user_data").getString(VALUE));
-                
-                model.run();
-                return EXEC_OK;
-            }
-        };
+        model.run();
+        return EXEC_OK;
     }
-    
+
+
     @Override
-    public File[] postprocess() throws Exception {
-        return Services.toFiles(model.getGraph(),
-                                model.getBaseflow_out().getName(),
-                                //Below are the result graph files for use by JHighCharts on eRAMS for duplicating the above graphs
-                                model.getTimeseriesOutput().getName());
-    }
-    
-    @Override
-    protected JSONArray createResults() throws Exception {
+    protected void postProcess() throws Exception {
+        // files
+        putResult(new File(model.getGraph()), 
+                  model.getBaseflow_out(), 
+                  model.getTimeseriesOutput());
+
+        // values
+        putResult("len", model.getLen());
+        putResult("start", model.getStart());
+        putResult("end", model.getEnd());
+        putResult("data_source", model.getDataSource());
+
         String baseflowSummary = FileUtils.readFileToString(model.getBaseflow_dat());
-        JSONArray result = new JSONArray();
-        result.put(JSONUtils.data("len", model.getLen()));
-        result.put(JSONUtils.data("start", model.getStart()));
-        result.put(JSONUtils.data("end", model.getEnd()));
-        result.put(JSONUtils.data("data_source", model.getDataSource()));
-        result.put(JSONUtils.data("baseflow_summary", baseflowSummary));
-        result.put(JSONUtils.data("baseflow_results", model.getBaseflow_out().getName()));
-        result.put(JSONUtils.data("graph", model.getGraph()));
+        putResult("baseflow_summary", baseflowSummary);
+        putResult("baseflow_results", model.getBaseflow_out().getName());
+        putResult("graph", model.getGraph());
         //Get BFLOW stream flow stats
-        result.put(JSONUtils.data("streamflow_max", model.getBFLOWstream_Max()));
-        result.put(JSONUtils.data("streamflow_min", model.getBFLOWstream_Min()));
-        result.put(JSONUtils.data("streamflow_median", model.getBFLOWstream_Median()));
-        result.put(JSONUtils.data("streamflow_mean", model.getBFLOWstream_Mean()));
+        putResult("streamflow_max", model.getBFLOWstream_Max());
+        putResult("streamflow_min", model.getBFLOWstream_Min());
+        putResult("streamflow_median", model.getBFLOWstream_Median());
+        putResult("streamflow_mean", model.getBFLOWstream_Mean());
         //Get BFLOW pass 1 stats
-        result.put(JSONUtils.data("bflowPass1_max", model.getBFLOWpass1_Max()));
-        result.put(JSONUtils.data("bflowPass1_min", model.getBFLOWpass1_Min()));
-        result.put(JSONUtils.data("bflowPass1_median", model.getBFLOWpass1_Median()));
-        result.put(JSONUtils.data("bflowPass1_mean", model.getBFLOWpass1_Mean()));
+        putResult("bflowPass1_max", model.getBFLOWpass1_Max());
+        putResult("bflowPass1_min", model.getBFLOWpass1_Min());
+        putResult("bflowPass1_median", model.getBFLOWpass1_Median());
+        putResult("bflowPass1_mean", model.getBFLOWpass1_Mean());
         //Get BFLOW pass 2 stats
-        result.put(JSONUtils.data("bflowPass2_max", model.getBFLOWpass2_Max()));
-        result.put(JSONUtils.data("bflowPass2_min", model.getBFLOWpass2_Min()));
-        result.put(JSONUtils.data("bflowPass2_median", model.getBFLOWpass2_Median()));
-        result.put(JSONUtils.data("bflowPass2_mean", model.getBFLOWpass2_Mean()));
+        putResult("bflowPass2_max", model.getBFLOWpass2_Max());
+        putResult("bflowPass2_min", model.getBFLOWpass2_Min());
+        putResult("bflowPass2_median", model.getBFLOWpass2_Median());
+        putResult("bflowPass2_mean", model.getBFLOWpass2_Mean());
         //Get BFLOW pass 3 stats
-        result.put(JSONUtils.data("bflowPass3_max", model.getBFLOWpass3_Max()));
-        result.put(JSONUtils.data("bflowPass3_min", model.getBFLOWpass3_Min()));
-        result.put(JSONUtils.data("bflowPass3_median", model.getBFLOWpass3_Median()));
-        result.put(JSONUtils.data("bflowPass3_mean", model.getBFLOWpass3_Mean()));
-        
+        putResult("bflowPass3_max", model.getBFLOWpass3_Max());
+        putResult("bflowPass3_min", model.getBFLOWpass3_Min());
+        putResult("bflowPass3_median", model.getBFLOWpass3_Median());
+        putResult("bflowPass3_mean", model.getBFLOWpass3_Mean());
+
         //Get result files for JSHighCharts
         String graphDataFiles = model.getTimeseriesOutput().getName();
-        result.put(JSONUtils.data("graph_data_files", graphDataFiles));
-        return result;
+        putResult("graph_data_files", graphDataFiles);
     }
 }