ComputeChildCredit.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package durbodax.commands;

import durbodax.customers.Customer;
import durbodax.customers.Enums.Sex;
import durbodax.daos.CustomerDAO;
import durbodax.daos.DAOFactory;

/**
 *
 * @author SimmonsD
 */
public class ComputeChildCredit implements Command {


    private boolean suppressOutput = false;


    CustomerDAO customerDAO;

    public ComputeChildCredit()
    {
    	System.out.println("flow:143");
        customerDAO = DAOFactory.getDAOFactory().getCustomerDAO();
    }


    public Object execute(String[] params){
    	System.out.println("flow:144");
        Customer result = customerDAO.selectCustomer(Integer.parseInt(params[1]));
        if(result ==  null) {
        	System.out.println("flow:145");
            if(!suppressOutput) {
            	System.out.println("flow:146");
            	System.out.println("Invalid Customer");
            	}
            return -1;

        }

        Sex gender = result.getGenderEnum();
        switch(gender) {
            case Female:
            	System.out.println("flow:147");
                if(result.getAge() >=16){
                	System.out.println("flow:148");
                    int num = result.getNumChildrenInHouse();

                    if(num <= 5 || num == 7) {
                    	System.out.println("flow:149");
                        int val = (Math.max(num,4) * 100);
                        displayOutput(val);
                        return val;
                    }
                    if(num == 6) {
                    	System.out.println("flow:150");
                        displayOutput(550);
                        return 550;
                    }
                    if(num >= 8) {
                    	System.out.println("flow:151");
                        displayOutput(750);
                        return 750;
                    }
                } else {
                	System.out.println("flow:152");
                    displayOutput(0);
                    return 0;
                }

            default:
                displayOutput(0);
                return 0;
        }
    }

    private void displayOutput(Integer output) {

        if(!suppressOutput) {
        	System.out.println("flow:153");
            System.out.println("Child credit: " + output.toString());

        }

    }

    public void suppressOutput() {
    	System.out.println("flow:154");
        suppressOutput = true;
    }
}