WepsModelRun.java [src/java/m/weps] Revision:   Date:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package m.weps;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author wlloyd
 */
public class WepsModelRun {

    // Fixed Values - these values are fixed in the weps.run, and typically do not change
    private final String runMode = "NRCS";
    private final String rotationCycle = "50";
    private final String simScale1 = "5.5";
    private final String simScale2 = "5.5";
    private final String avgSlope = "-1";           // value should come from soils file
    private final String shape = "rectangle";
    private final String timeSteps = "24";          // time steps per day
    private final String simCoord1 = "0.0";         // always should be 0
    private final String simCoord2 = "0.0";         // always should be 0
    private final String radius = "1.00";
    static final NumberFormat latlongFormat = new DecimalFormat("+0.00000;-0.00000");
    static final String UNSET_ELEVATION = "-9999.999";

    // Dynamic Values - changable by the service
    private String stateSite = "XX";
    private String countySite = "000";
    private String cliFile = "cli_gen.cli";        // could change if provided by the client
    private String cliStationLat = "0.0";
    private String cliStationLong = "0.0";
    private String cliStationStateFips = "0";
    private String cliStationc1 = "0000";
    private String cliStationName = "CLI_STA_NAME";
    private String cliStationEleM = "0";
    private String winFile = "thewind.win";       // could change if provided by the client
    private String winWindGenProgram = "windgen";
    private String winWindLat = "0.0";
    private String winWindLong = "0.0";
    private String winWindStation = "000000";
    private String winWindCountry = "00";
    private String winWindState = "00";
    private String winWindDescriptionString = "wind station description";
    private String winWindStationName = "WIN_STA_NAME";
    private String runCycle = "0";                  // default to zero to cause problems if not set properly
    private String lat = "???";
    private String longitude = "???";
    private String elevation = UNSET_ELEVATION;      // meters
    private String numYears = "0";                  // default to zero to cause problems if not set properly
    private String soilFile = "soil.ifc";
    private String simRegionAngle = "0.00000";
    private String simXLen = "0.00";            // meters
    private String simYLen = "0.00";            // meters
    private String numBarriers = "0";
    private List<Barrier> barriers = new LinkedList<Barrier>();
    private String waterErosionLoss = "0.0000";
    private String soilRockFragments = "-1";


    public WepsModelRun() {
        barriers.add(new Barrier());
    }


    public void setStateSite(String stateSite) {
        this.stateSite = stateSite;
    }


    public void setCountySite(String countySite) {
        this.countySite = countySite;
    }


    public void setCliFile(String clifile) {
        this.cliFile = clifile;
    }


    public void setCliStationLat(String cliStationLat) {
        this.cliStationLat = cliStationLat;
    }


    public void setCliStationLong(String cliStationLong) {
        this.cliStationLong = cliStationLong;
    }


    public void setCliStationStateFips(String cliStationStateFips) {
        this.cliStationStateFips = cliStationStateFips;
    }


    public void setCliStationC1(String cliStationC1) {
        this.cliStationc1 = cliStationC1;
    }


    public void setCliStationName(String cliStationName) {
        this.cliStationName = cliStationName;
    }


    public void setCliStationEleM(String cliStationEleM) {
        this.cliStationEleM = cliStationEleM;
    }


    public void setWinFile(String windfile) {
        this.winFile = windfile;
    }


    public void setWinWindGenProgram(String winWindGenProgram) {
        this.winWindGenProgram = winWindGenProgram;
    }


    public void setWinWindLat(String winWindLat) {
        this.winWindLat = winWindLat;
    }


    public void setWinWindLong(String winWindLong) {
        this.winWindLong = winWindLong;
    }


    public void setWinWindStation(String winWindStation) {
        this.winWindStation = winWindStation;
    }


    public void setWinWindCountry(String winWindCountry) {
        this.winWindCountry = winWindCountry;
    }


    public void setWinWindState(String winWindState) {
        this.winWindState = winWindState;
    }


    public void setWinWindStationName(String winWindStationName) {
        this.winWindStationName = winWindStationName;
    }


    public void setWinWindDescriptionString(String winWindDescriptionString) {
        this.winWindDescriptionString = winWindDescriptionString;
    }


    public void setRunCycle(String runcycle) {
        this.runCycle = runcycle;
    }


    public void setLat(String latitude) {
        this.lat = latitude;
    }


    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }


    public void setElevation(String ele) {
        this.elevation = ele;
    }


    public void setNumYears(String numYears) {
        this.numYears = numYears;
    }


    public void setSoilFile(String soilFile) {
        this.soilFile = soilFile;
    }


    public void setSimRegionAngle(String simRegionAngle) {
        this.simRegionAngle = simRegionAngle;
    }


    public void setSimXLen(String X) {
        this.simXLen = X;
    }


    public void setSimYLen(String Y) {
        this.simYLen = Y;
    }


    public void setNumBarriers(String numbarriers) {
        this.numBarriers = numbarriers;
    }


    public void setBarriers(List<Barrier> barriers) {
        this.barriers = barriers;
    }


    public void setWaterErosionLoss(String waterErosionLoss) {
        this.waterErosionLoss = waterErosionLoss;
    }


    public void setSoilRockFragments(String soilRockFragments) {
        this.soilRockFragments = soilRockFragments;
    }


    public String getRunMode() {
        return runMode;
    }


    public String getRunCycle() {
        return runCycle;
    }


    public String getRotationCycle() {
        return rotationCycle;
    }


    public String getStateSite() {
        return this.stateSite;
    }


    public String getCountySite() {
        return this.countySite;
    }


    public String getLat() {
        return latlongFormat.format(Double.parseDouble(lat));
    }


    public String getLongitude() {
        return latlongFormat.format(Double.parseDouble(longitude));
    }


    public String getElevation() {
        NumberFormat elevationFormat = new DecimalFormat("0.000");
        return elevationFormat.format(Double.parseDouble(elevation));
    }


    public String getNumYears() {
        return numYears;
    }


    public String getTimeSteps() {
        return timeSteps;
    }


    public String getCliFile() {
        return cliFile;
    }


    public String getCliStationLat() {
        return latlongFormat.format(Double.parseDouble(this.cliStationLat));
    }


    public String getCliStationLong() {
        return latlongFormat.format(Double.parseDouble(this.cliStationLong));
    }


    public String getCliStationStateFips() {
        return this.cliStationStateFips;
    }


    public String getCliStationC1() {
        return this.cliStationc1;
    }


    public String getCliStationName() {
        return this.cliStationName;
    }


    public String getCliStationEleM() {
        NumberFormat elevationFormat = new DecimalFormat("0.0");
        return elevationFormat.format(Double.parseDouble(this.cliStationEleM));
    }


    public String getWinFile() {
        return winFile;
    }


    public String getWinWindGenProgram() {
        return this.winWindGenProgram;
    }


    public String getWinWindLat() {
        return latlongFormat.format(Double.parseDouble(this.winWindLat));
    }


    public String getWinWindLong() {
        return latlongFormat.format(Double.parseDouble(this.winWindLong));
    }


    public String getWinWindStation() {
        return this.winWindStation;
    }


    public String getWinWindCountry() {
        return this.winWindCountry;
    }


    public String getWinWindState() {
        return this.winWindState;
    }


    public String getWinWindStationName() {
        return this.winWindStationName;
    }


    public String getWinWindDescriptionString() {
        return this.winWindDescriptionString;
    }


    public String getSoilFile() {
        return soilFile;
    }


    public String getSimRegionAngle() {
        NumberFormat simRegionAngleFormat = new DecimalFormat("0.00000");
        return simRegionAngleFormat.format(Double.parseDouble(simRegionAngle));
    }


    public String getSimCoord1() {
        return simCoord1;
    }


    public String getSimCoord2() {
        return simCoord2;
    }


    public String getSimXLen() {
        NumberFormat simXLenFormat = new DecimalFormat("0.0");
        return simXLenFormat.format(Double.parseDouble(simXLen));
    }


    public String getSimYLen() {
        NumberFormat simYLenFormat = new DecimalFormat("0.0");
        return simYLenFormat.format(Double.parseDouble(simYLen));
    }


    public String getSimScale1() {
        return simScale1;
    }


    public String getSimScale2() {
        return simScale2;
    }


    public String getAvgSlope() {
        return avgSlope;
    }


    public String getNumBarriers() {
        return numBarriers;
    }


    public List<Barrier> getBarriers() {
        return barriers;
    }


    public String getShape() {
        return shape;
    }


    public String getRadius() {
        return radius;
    }


    public String getWaterErosionLoss() {
        NumberFormat waterErosionLossFormat = new DecimalFormat("0.0000");
        return waterErosionLossFormat.format(Double.parseDouble(waterErosionLoss));
    }


    public String getSoilRockFragments() {
        return soilRockFragments;
    }

}