@@ -1,111 +1,94 @@ |
package m.cfa; |
|
import cfa.guiDC_Model; |
-import csip.AbstractModelService; |
-import java.util.Map; |
-import java.util.concurrent.Callable; |
+import csip.ModelDataService; |
import javax.ws.rs.Path; |
import oms3.annotations.Description; |
import oms3.annotations.Name; |
import oms3.annotations.VersionInfo; |
-import org.codehaus.jettison.json.*; |
-import csip.utils.JSONUtils; |
-import csip.utils.Services; |
import java.io.File; |
|
@Name("durationcurve") |
@Description("durationcurve") |
@VersionInfo("1.0") |
@Path("m/cfa/durationcurve/1.0") |
-public class DurationCurve_V1_0 extends AbstractModelService { |
+public class DurationCurve_V1_0 extends ModelDataService { |
|
guiDC_Model model = new guiDC_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.setWaterQualityTest(getStringParam("wq_test")); |
+ model.setWaterQualityTarget(getDoubleParam("wq_target")); |
+ model.setBeginDate(getStringParam("begin_date")); |
+ model.setEndDate(getStringParam("end_date")); |
+ model.setSeasonBegin(getStringParam("season_begin")); |
+ model.setSeasonEnd(getStringParam("season_end")); |
+ model.setSeasonalAnalysisOnlyTF(getBooleanParam("seasonal_only")); |
+ model.setPeriod1Begin(getStringParam("period1_begin")); |
+ model.setPeriod1End(getStringParam("period1_end")); |
+ model.setPeriod2Begin(getStringParam("period2_begin")); |
+ model.setPeriod2End(getStringParam("period2_end")); |
+ model.setPeriod3Begin(getStringParam("period3_begin")); |
+ model.setPeriod3End(getStringParam("period3_end")); |
+ model.setHighPercentile(getDoubleParam("highPercentile")); |
+ model.setLowPercentile(getDoubleParam("lowPercentile")); |
+ model.setShowMonthlyStatsTF(getBooleanParam("showMonthlyStatsTF")); |
+ model.setCalcFlowStatisticsFileTF(getBooleanParam("calcFlowStatisticsFileTF")); |
+ model.setMQNperiod(getStringParam("mqn_period")); |
+ 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.setWaterQualityTest(m.get("wq_test").getString(VALUE)); |
- model.setWaterQualityTarget(m.get("wq_target").getDouble(VALUE)); |
- model.setBeginDate(m.get("begin_date").getString(VALUE)); |
- model.setEndDate(m.get("end_date").getString(VALUE)); |
- model.setSeasonBegin(m.get("season_begin").getString(VALUE)); |
- model.setSeasonEnd(m.get("season_end").getString(VALUE)); |
- model.setSeasonalAnalysisOnlyTF(m.get("seasonal_only").getBoolean(VALUE)); |
- model.setPeriod1Begin(m.get("period1_begin").getString(VALUE)); |
- model.setPeriod1End(m.get("period1_end").getString(VALUE)); |
- model.setPeriod2Begin(m.get("period2_begin").getString(VALUE)); |
- model.setPeriod2End(m.get("period2_end").getString(VALUE)); |
- model.setPeriod3Begin(m.get("period3_begin").getString(VALUE)); |
- model.setPeriod3End(m.get("period3_end").getString(VALUE)); |
- model.setHighPercentile(m.get("highPercentile").getDouble(VALUE)); |
- model.setLowPercentile(m.get("lowPercentile").getDouble(VALUE)); |
- model.setShowMonthlyStatsTF(m.get("showMonthlyStatsTF").getBoolean(VALUE)); |
- model.setCalcFlowStatisticsFileTF(m.get("calcFlowStatisticsFileTF").getBoolean(VALUE)); |
- model.setMQNperiod(m.get("mqn_period").getString(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 { |
+ protected void postProcess() throws Exception { |
+ // files |
if(model.getCalcFlowStatisticsFileTF()){ |
- return Services.toFiles(model.getGraph(), |
- model.getDurationCurve_results().getName(), |
- model.getFlowStatistics_summary().getName(), |
- //Below are the result graph files for use by JHighCharts on eRAMS for duplicating the above graphs |
- model.getDCgraphOutput().getName()); |
+ putResult(new File(model.getGraph()), |
+ model.getDurationCurve_results(), |
+ model.getFlowStatistics_summary(), |
+ //Below are the result graph files for use by JHighCharts on eRAMS for duplicating the above graphs |
+ model.getDCgraphOutput()); |
}else{ |
- return Services.toFiles(model.getGraph(), |
- model.getDurationCurve_results().getName(), |
- //Below are the result graph files for use by JHighCharts on eRAMS for duplicating the above graphs |
- model.getDCgraphOutput().getName()); |
+ putResult(new File(model.getGraph()), |
+ model.getDurationCurve_results(), |
+ //Below are the result graph files for use by JHighCharts on eRAMS for duplicating the above graphs |
+ model.getDCgraphOutput()); |
} |
- |
- } |
|
- @Override |
- protected JSONArray createResults() throws Exception { |
- JSONArray result = new JSONArray(); |
- result.put(JSONUtils.data("flow_len", model.getFlowLen())); |
- result.put(JSONUtils.data("flow_median", model.getMedian())); |
- result.put(JSONUtils.data("flow_mean", model.getMean())); |
- result.put(JSONUtils.data("flow_len_period1", model.getFlowLen_period1())); |
- result.put(JSONUtils.data("flow_len_period2", model.getFlowLen_period2())); |
- result.put(JSONUtils.data("flow_len_period3", model.getFlowLen_period3())); |
- result.put(JSONUtils.data("wq_len", model.getWQLen())); |
- result.put(JSONUtils.data("wq_units", model.getWQUnits())); |
- result.put(JSONUtils.data("start", model.getStart())); |
- result.put(JSONUtils.data("end", model.getEnd())); |
- result.put(JSONUtils.data("duration_curve_summary", model.getSummaryParagraph())); |
- result.put(JSONUtils.data("duration_curve_table", model.getSummaryTable())); |
- result.put(JSONUtils.data("data_source", model.getDataSource())); |
- result.put(JSONUtils.data("mqn_val", model.getMQNval())); |
- result.put(JSONUtils.data("low_flow_error_message", model.getLowFlowErrorMessage())); |
- result.put(JSONUtils.data("graph", model.getGraph())); |
- result.put(JSONUtils.data("result_file", model.getDurationCurve_results().getName())); |
- result.put(JSONUtils.data("flow_statistics_summary",model.getFlowStatistics_summary().getName())); |
+ // values |
+ putResult("flow_len", model.getFlowLen()); |
+ putResult("flow_median", model.getMedian()); |
+ putResult("flow_mean", model.getMean()); |
+ putResult("flow_len_period1", model.getFlowLen_period1()); |
+ putResult("flow_len_period2", model.getFlowLen_period2()); |
+ putResult("flow_len_period3", model.getFlowLen_period3()); |
+ putResult("wq_len", model.getWQLen()); |
+ putResult("wq_units", model.getWQUnits()); |
+ putResult("start", model.getStart()); |
+ putResult("end", model.getEnd()); |
+ putResult("duration_curve_summary", model.getSummaryParagraph()); |
+ putResult("duration_curve_table", model.getSummaryTable()); |
+ putResult("data_source", model.getDataSource()); |
+ putResult("mqn_val", model.getMQNval()); |
+ putResult("low_flow_error_message", model.getLowFlowErrorMessage()); |
+ putResult("graph", model.getGraph()); |
+ putResult("result_file", model.getDurationCurve_results().getName()); |
+ putResult("flow_statistics_summary",model.getFlowStatistics_summary().getName()); |
|
//Get result files for JSHighCharts |
String graphDataFiles = model.getDCgraphOutput().getName(); |
- result.put(JSONUtils.data("graph_data_files", graphDataFiles)); |
- return result; |
+ putResult("graph_data_files", graphDataFiles); |
} |
- |
} |