@@ -1,119 +1,110 @@ |
package m.cfa; |
|
import cfa.guiLOADEST_Model; |
-import java.util.Map; |
-import java.util.concurrent.Callable; |
+import csip.Executable; |
import javax.ws.rs.Path; |
-import csip.AbstractModelService; |
+import csip.ModelDataService; |
+import csip.annotations.Resource; |
+import csip.annotations.Resources; |
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("loadest") |
@Description("loadest") |
@VersionInfo("1.0") |
@Path("m/cfa/loadest/1.0") |
-public class LOADEST_V1_0 extends AbstractModelService { |
+@Resources({ |
+ @Resource(file="/bin/win-x86/loadest.exe", wine=true, id="ld") |
+}) |
+public class LOADEST_V1_0 extends ModelDataService { |
|
guiLOADEST_Model model = new guiLOADEST_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.setWQtest(getStringParam("wq_test")); |
+ model.setPTOPT(getIntParam("ptopt")); |
+ model.setSEOPT(getIntParam("seopt")); |
+ model.setLDOPT(getIntParam("ldopt")); |
+ model.setmodelNumber(getIntParam("modelnumber")); |
+ model.setPBMON(getIntParam("pbmon")); |
+ model.setPEMON(getIntParam("pemon")); |
+ model.setULFLAG(getIntParam("ulflag")); |
+ model.setBeginDate(getStringParam("begin_date")); |
+ model.setEndDate(getStringParam("end_date")); |
+ 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.setStationName(m.get("station_name").getString(VALUE)); |
- model.setStationID(m.get("station_id").getString(VALUE)); |
- model.setWQtest(m.get("wq_test").getString(VALUE)); |
- model.setPTOPT(m.get("ptopt").getInt(VALUE)); |
- model.setSEOPT(m.get("seopt").getInt(VALUE)); |
- model.setLDOPT(m.get("ldopt").getInt(VALUE)); |
- model.setmodelNumber(m.get("modelnumber").getInt(VALUE)); |
- model.setPBMON(m.get("pbmon").getInt(VALUE)); |
- model.setPEMON(m.get("pemon").getInt(VALUE)); |
- model.setULFLAG(m.get("ulflag").getInt(VALUE)); |
- model.setBeginDate(m.get("begin_date").getString(VALUE)); |
- model.setEndDate(m.get("end_date").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; |
- } |
- }; |
- } |
- |
- @Override |
- public File[] postprocess() throws Exception { |
- return Services.toFiles(//Results files needed for JavaScript graphing with JHighCharts |
- model.getDailyTimeseries().getName(), |
- model.getDailyBoxplot().getName(), |
- model.getMonthlyTimeseries().getName(), |
- model.getMonthlyBoxplot().getName(), |
- model.getYearlyTimeseries().getName(), |
- model.getYearlyBoxplot().getName(), |
- //Graphs no longer handled with Java |
-// model.getDailyGraph(), |
-// model.getDailyBoxplotGraph(), |
-// model.getMonthlyGraph(), |
-// model.getMonthlyBoxplotGraph(), |
-// model.getYearlyGraph(), |
-// model.getYearlyBoxplotGraph(), |
- //Results files desired by the user as output of the model |
- model.getOutputResult1().getName(), |
- model.getOutputResult2().getName(), |
- model.getOutputResult3().getName()); |
+ Executable e = getResourceExe("ld"); // looking up the resource by id. |
+ model.run(e); |
+ return EXEC_OK; |
} |
|
@Override |
- protected JSONArray createResults() throws Exception { |
- |
- JSONArray result = new JSONArray(); |
- result.put(JSONUtils.data("flow_len", model.getFlowLen())); |
- 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("data_source", model.getDataSource())); |
+ protected void postProcess() throws Exception { |
+ // files |
+ putResult(model.getDailyTimeseries(), |
+ model.getDailyBoxplot(), |
+ model.getMonthlyTimeseries(), |
+ model.getMonthlyBoxplot(), |
+ model.getYearlyTimeseries(), |
+ model.getYearlyBoxplot(), |
+ //Graphs no longer handled with Java |
+// model.getDailyGraph(), |
+// model.getDailyBoxplotGraph(), |
+// model.getMonthlyGraph(), |
+// model.getMonthlyBoxplotGraph(), |
+// model.getYearlyGraph(), |
+// model.getYearlyBoxplotGraph(), |
+ //Results files desired by the user as output of the model |
+ model.getOutputResult1(), |
+ model.getOutputResult2(), |
+ model.getOutputResult3()); |
+ |
+ // values |
+ putResult("flow_len", model.getFlowLen()); |
+ putResult("wq_len", model.getWQLen()); |
+ putResult("wq_units", model.getWQUnits()); |
+ putResult("start", model.getStart()); |
+ putResult("end", model.getEnd()); |
+ putResult("data_source", model.getDataSource()); |
//Daily Data |
- result.put(JSONUtils.data("daily_max", model.getDailyMax())); |
- result.put(JSONUtils.data("daily_min", model.getDailyMin())); |
- result.put(JSONUtils.data("daily_upper_quartile", model.getDailyUpperQuartile())); |
- result.put(JSONUtils.data("daily_lower_quartile", model.getDailyLowerQuartile())); |
- result.put(JSONUtils.data("daily_median", model.getDailyMedian())); |
- result.put(JSONUtils.data("daily_mean", model.getDailyMean())); |
- result.put(JSONUtils.data("daily_standard_deviation", model.getDailyStandardDeviation())); |
+ putResult("daily_max", model.getDailyMax()); |
+ putResult("daily_min", model.getDailyMin()); |
+ putResult("daily_upper_quartile", model.getDailyUpperQuartile()); |
+ putResult("daily_lower_quartile", model.getDailyLowerQuartile()); |
+ putResult("daily_median", model.getDailyMedian()); |
+ putResult("daily_mean", model.getDailyMean()); |
+ putResult("daily_standard_deviation", model.getDailyStandardDeviation()); |
//Monthly Data |
- result.put(JSONUtils.data("monthly_max", model.getMonthlyMax())); |
- result.put(JSONUtils.data("monthly_min", model.getMonthlyMin())); |
- result.put(JSONUtils.data("monthly_upper_quartile", model.getMonthlyUpperQuartile())); |
- result.put(JSONUtils.data("monthly_lower_quartile", model.getMonthlyLowerQuartile())); |
- result.put(JSONUtils.data("monthly_median", model.getMonthlyMedian())); |
- result.put(JSONUtils.data("monthly_mean", model.getMonthlyMean())); |
- result.put(JSONUtils.data("monthly_standard_deviation", model.getMonthlyStandardDeviation())); |
+ putResult("monthly_max", model.getMonthlyMax()); |
+ putResult("monthly_min", model.getMonthlyMin()); |
+ putResult("monthly_upper_quartile", model.getMonthlyUpperQuartile()); |
+ putResult("monthly_lower_quartile", model.getMonthlyLowerQuartile()); |
+ putResult("monthly_median", model.getMonthlyMedian()); |
+ putResult("monthly_mean", model.getMonthlyMean()); |
+ putResult("monthly_standard_deviation", model.getMonthlyStandardDeviation()); |
//Yearly Data |
- result.put(JSONUtils.data("yearly_max", model.getYearlyMax())); |
- result.put(JSONUtils.data("yearly_min", model.getYearlyMin())); |
- result.put(JSONUtils.data("yearly_upper_quartile", model.getYearlyUpperQuartile())); |
- result.put(JSONUtils.data("yearly_lower_quartile", model.getYearlyLowerQuartile())); |
- result.put(JSONUtils.data("yearly_median", model.getYearlyMedian())); |
- result.put(JSONUtils.data("yearly_mean", model.getYearlyMean())); |
- result.put(JSONUtils.data("yearly_standard_deviation", model.getYearlyStandardDeviation())); |
+ putResult("yearly_max", model.getYearlyMax()); |
+ putResult("yearly_min", model.getYearlyMin()); |
+ putResult("yearly_upper_quartile", model.getYearlyUpperQuartile()); |
+ putResult("yearly_lower_quartile", model.getYearlyLowerQuartile()); |
+ putResult("yearly_median", model.getYearlyMedian()); |
+ putResult("yearly_mean", model.getYearlyMean()); |
+ putResult("yearly_standard_deviation", model.getYearlyStandardDeviation()); |
//Get other results |
- result.put(JSONUtils.data("user_resultFile1", model.getOutputResult1().getName())); |
- result.put(JSONUtils.data("user_resultFile2", model.getOutputResult2().getName())); |
- result.put(JSONUtils.data("user_resultFile3", model.getOutputResult3().getName())); |
+ putResult("user_resultFile1", model.getOutputResult1().getName()); |
+ putResult("user_resultFile2", model.getOutputResult2().getName()); |
+ putResult("user_resultFile3", model.getOutputResult3().getName()); |
|
//Get result files for JSHighCharts |
String graphDataFiles = model.getDailyTimeseries().getName() + "|" + |
@@ -122,8 +113,6 @@ |
model.getMonthlyBoxplot().getName() + "|" + |
model.getYearlyTimeseries().getName() + "|" + |
model.getYearlyBoxplot().getName(); |
- result.put(JSONUtils.data("graph_data_files", graphDataFiles)); |
- return result; |
+ putResult("graph_data_files", graphDataFiles); |
} |
- |
} |