V1_0.java [src/java/m/cfa/stagedischarge] Revision:   Date:
package m.cfa.stagedischarge;

import csip.ModelDataService;
import csip.api.server.PayloadParameter;
import csip.api.server.PayloadResults;
import csip.annotations.Description;
import csip.annotations.Name;
import csip.annotations.VersionInfo;
import java.io.File;
import javax.ws.rs.Path;

@Name("stagedischarge")
@Description("Stage-Discharge Data Analysis")
@VersionInfo("1.0")
@Path("m/cfa/stagedischarge/1.0")
public class V1_0 extends ModelDataService {

    guiStageDischarge_Model model = new guiStageDischarge_Model();
    
    @Override
    protected void preProcess() throws Exception {
        model.setDirectory(workspace().getDir().toString());
        
        PayloadParameter inputPayload = parameter();
        model.setDatabase(inputPayload.getString("database"));
        model.setStationId(inputPayload.getString("station_id"));
        model.setStationName(inputPayload.getString("station_name"));
    }

    @Override
    protected void doProcess() throws Exception {
        model.run();
    }
    
    @Override
    protected void postProcess() throws Exception {
        PayloadResults resultPayload = results();
        // files
        File wd = workspace().getDir();
        resultPayload.put(new File(wd, model.getStageDischargeGraph()),
                  model.getStageDischargeOutput());

        // values
        resultPayload.put("data_source", model.getDataSource());
        resultPayload.put("stage_discharge_warning", model.getWarning());
        resultPayload.put("graph", model.getStageDischargeGraph());
        
        //Get result files for JSHighCharts
        String graphDataFiles = model.getStageDischargeOutput().getName();
        resultPayload.put("graph_data_files", graphDataFiles);
    }
}