package com.cohomefinder.controller; import org.apache.log4j.Category; import org.json.simple.JSONObject; import com.jcorporate.expresso.core.controller.ControllerException; import com.jcorporate.expresso.core.controller.ControllerRequest; import com.jcorporate.expresso.core.controller.ControllerResponse; import com.jcorporate.expresso.core.controller.DBController; import com.jcorporate.expresso.core.controller.Output; import com.jcorporate.expresso.core.controller.State; import com.jcorporate.expresso.core.db.DBException; import com.jcorporate.expresso.core.logging.LogManager; import com.jcorporate.expresso.services.dbobj.Setup; /** *

Title: MortgageCalculator Controller

*

Description: Controller for various MTG calc functionals.

* * @author dmoore, Copyright Colorado HomeFinder * @created Jun 2006 */ public class MortgageCalculator extends DBController { private static Category log; private static final String THIRTY_YEAR_FIXED_RATE_KEY = "MTG_30_Year_Fixed_Rate"; private static final String FIVE_YEAR_ARM_RATE_KEY = "MTG_5_25_ARM_Rate"; private static final String DEFAULT_SCHEMA = "com.cohomefinder.CoHomeFinderSchema"; private static final String GET_RATES_AS_JSON = "getRatesAsJSON"; /** * Default constructor. */ public MortgageCalculator() { super(); LogManager.instantiate(); Category log = Category.getInstance("com.cohomefinder.controller.MortgageCalculator"); setSchema(DEFAULT_SCHEMA); // add internal states addState(new State(GET_RATES_AS_JSON, "Get two interest rates, output as JSON")); // set default initial state setInitialState(GET_RATES_AS_JSON); } /** * * @param request The controller request object * @param response The controller response object * @throws ControllerException */ protected void runGetRatesAsJSONState(ControllerRequest request, ControllerResponse response) throws ControllerException { String thirtyYearFixed = "6.25"; String fiveYearArm = "5.25"; try { thirtyYearFixed = String.valueOf(Setup.getValue("default", DEFAULT_SCHEMA, THIRTY_YEAR_FIXED_RATE_KEY)); } catch (NumberFormatException nfe) { log.error("error with thirty year float, key: "+THIRTY_YEAR_FIXED_RATE_KEY); } catch (DBException dbe) { log.error("error with thirty year float, key: "+THIRTY_YEAR_FIXED_RATE_KEY); log.error(dbe.toString()); } try { fiveYearArm = String.valueOf(Setup.getValue("default", DEFAULT_SCHEMA, FIVE_YEAR_ARM_RATE_KEY)); } catch (NumberFormatException nfe) { log.error("error with arm float, key: "+FIVE_YEAR_ARM_RATE_KEY); } catch (DBException dbe) { log.error("error with arm float, key: "+FIVE_YEAR_ARM_RATE_KEY); log.error(dbe.toString()); } JSONObject formatter = new JSONObject(); formatter.put("thirtyfixed",thirtyYearFixed); formatter.put("fivearm", fiveYearArm); response.add(new Output("JSON", formatter.toString())); } } // end of class