yah it's working as a webapp, since im in testing i create dummy objects of my actual objects and put it in an xml and retrieves a copy via application context.
Code:
public class CycleForm extends BaseForm {
public CycleForm() {
// need a session to hold the formBackingObject
setSessionForm(true);
}
private FiscalMap loadMe(FiscalMap fiscalMap) {
fiscalMap = (FiscalMap) this.getApplicationContext().getBean(
"fiscalMap");
return fiscalMap;
}
private LeaseGroup loadMe2(LeaseGroup leaseGroup){
leaseGroup =(LeaseGroup) this.getApplicationContext().getBean("leaseGroup");
return leaseGroup;
}
private ArrayList loadPeriods(ArrayList billingPeriods, String fiscalYear, String billingType, FiscalMap fiscalMap, LeaseGroup leaseGroup){
FiscalCycle fiscalCycle = new FiscalCycle();
BillingCycle billingCycle = new BillingCycle();
try{
fiscalCycle = fiscalMap.getFiscalCycle(fiscalYear);}
catch(Exception e){System.out.println(":::Error in getting Fiscal Cycle" + e.getMessage()); }
try{
billingCycle = fiscalCycle.getBillingCycle(billingType);}
catch(Exception e){System.out.println(":::Error in getting Billing Cycle" + e.getMessage());}
try{
billingPeriods = billingCycle.getBillingPeriods();}
catch(Exception e){System.out.println(":::Error in getting Billing Periods" + e.getMessage());}
return billingPeriods;
}
protected Map referenceData(HttpServletRequest request)
throws ServletException {
Map refData = new HashMap();
String fiscalYear = request.getParameter("fiscalYear");
// if(fiscalYear == null)
// fiscalYear = (String) request.getSession().getAttribute("fiscalYear");
// else
// request.getSession().setAttribute("fiscalYear",fiscalYear);
String billingType = request.getParameter("billingType");
// if(billingType == null)
// billingType = (String) request.getSession().getAttribute("leaseGroup");
// else
// request.getSession().setAttribute("leaseGroup",billingType);
FiscalMap fiscalMap = new FiscalMap();
fiscalMap = loadMe(fiscalMap);
String[] fiscalYears = fiscalMap.getFiscalYears();
LeaseGroup leaseGroup = new LeaseGroup();
leaseGroup = loadMe2(leaseGroup);
refData.put("map", fiscalMap);
refData.put("leaseGroup", leaseGroup);
refData.put("selectedYear", fiscalYear);
refData.put("selectedType", billingType);
return refData;
}
protected Object formBackingObject(HttpServletRequest request)
throws ServletException {
HashMap refData = new HashMap();
ArrayList cycles = new ArrayList();
ArrayList billingPeriods = new ArrayList();
// System.out.println("=======================");
// System.out.println("chosen year:: "+ request.getParameter("fiscalYear"));
// System.out.println("chosen type:: "+ request.getParameter("billingType"));
String fiscalYear = request.getParameter("fiscalYear");
if(fiscalYear == null)
fiscalYear = (String) request.getSession().getAttribute("fiscalYear");
else
request.getSession().setAttribute("fiscalYear",fiscalYear);
String billingType = request.getParameter("billingType");
if(billingType == null)
billingType = (String) request.getSession().getAttribute("leaseGroup");
else
request.getSession().setAttribute("leaseGroup",billingType);
FiscalMap fiscalMap = new FiscalMap();
fiscalMap = loadMe(fiscalMap);
LeaseGroup leaseGroup = new LeaseGroup();
leaseGroup = loadMe2(leaseGroup);
if(fiscalYear != null && billingType != null){
billingPeriods = loadPeriods(billingPeriods,fiscalYear,billingType,fiscalMap,leaseGroup);
cycles = billingPeriods;
HashMap sales = new HashMap();
sales = (HashMap) this.getApplicationContext().getBean("sales");
SysParams sysParams = (SysParams) this.getApplicationContext().getBean("sysParams");
ArrayList paramDtls= (ArrayList) this.getApplicationContext().getBean("sysParamDtls");
ArrayList leases = new ArrayList();
leases = leaseGroup.getLeases(0);
for(int i=0; i<billingPeriods.size();i++){
for(int j=0; j<leases.size();j++){
BillingPeriod bp = new BillingPeriod();
bp = (BillingPeriod)billingPeriods.get(i);
Lease lease = (Lease)leases.get(j);
LeasableSpace lSpace = (LeasableSpace) lease.getLeasableSpace();
String stallNo = lSpace.getStallNo();
bp.setSales(sales);
ArrayList s = bp.getSales(stallNo);
ParamDtls pd = (ParamDtls)paramDtls.get(6);
int daysNum = Integer.parseInt(pd.getRate());
// determine sales status
if(s.size() != daysNum){
bp.setSalesStatus("Not Available");
break;
}
else{
bp.setSalesStatus("Done");
}
}
}
// determine utility status
for(int i=0; i<billingPeriods.size();i++){
for(int j=0; j<leases.size();j++){
BillingPeriod bp = new BillingPeriod();
bp = (BillingPeriod)billingPeriods.get(i);
Lease lease = (Lease)leases.get(j);
LeasableSpace lSpace = (LeasableSpace) lease.getLeasableSpace();
String stallNo = lSpace.getStallNo();
HashMap utilities = new HashMap();
utilities = (HashMap)this.getApplicationContext().getBean("utilityUsages");
bp.setUtilityUsages(utilities);
ArrayList utility = new ArrayList();
utility = lease.getUtility();
ArrayList utilityUsage = new ArrayList();
utilityUsage = bp.getUtilityUsages(stallNo);
if (utilityUsage.containsAll(utility)){
bp.setUtilitiesStatus("Done");
}
else{
bp.setUtilitiesStatus("Not Available");
}
}
}
//determine parameter status
for(int i=0; i<billingPeriods.size();i++){
BillingPeriod bp = new BillingPeriod();
bp = (BillingPeriod)billingPeriods.get(i);
if (bp.getSysParams() == null){
System.out.println("Im in 1");
bp.setParameterStatus("?");
System.out.println(bp.getParameterStatus());
}
else{
System.out.println("Im in 2");
bp.setParameterStatus("Done");
System.out.println(bp.getParameterStatus());
}
}
}
if ((fiscalYear!=null) && !fiscalYear.equals("")){
try{
FiscalCycle fiscalCycle = fiscalMap.getFiscalCycle(fiscalYear);
BillingPeriodHelper bph = new BillingPeriodHelper(fiscalCycle,billingType,leaseGroup,getApplicationContext());
BillingCycle cycle = bph.prepareCycle();
request.getSession().setAttribute("BillingCycle",cycle);
System.out.println("\n\n\t\t--->Just sessioned Cycle:"+cycle.toString());
}
catch(IOException e){throw new ServletException(e.getMessage());}
}
return cycles;
}
protected void onBind(HttpServletRequest request, Object command) {
String selected[];
selected = request.getParameterValues("selectedPeriod");
request.getSession().setAttribute("selectedPeriod", selected);
System.out.println("\n\n\t\t--->binding...");
}
/** Method inserts a new Pet */
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws ServletException {
System.out.println("\n\n\t\tRedirectView....");
FiscalMap fiscalMap = (FiscalMap)getApplicationContext().getBean("fiscalMap");
LeaseGroup lg = (LeaseGroup)getApplicationContext().getBean("leaseGroup");
//String fYear = request.getParameter("fiscalYear");
//String lGroup = request.getParameter("leaseGroup");
String fYear = (String) request.getSession().getAttribute("fiscalYear");
String lGroup = (String) request.getSession().getAttribute("leaseGroup");
ArrayList<BillingPeriod> incPeriods = new ArrayList<BillingPeriod>();
FiscalCycle fiscalCycle = null;
BillingCycle cycle = null;
String[] periodIds = request.getParameterValues("selectedPeriod");
BillingPeriodHelper bph = null;
System.out.println("\n\n\t\t--->period IDs:"+periodIds);
if (periodIds!=null){
try{
cycle = (BillingCycle)request.getSession().getAttribute("BillingCycle");
bph = new BillingPeriodHelper(cycle,getApplicationContext());
//fiscalCycle = fiscalMap.getFiscalCycle(fiscalMap.getFiscalYear(fYear));
//cycle = fiscalCycle.getBillingCycleById(lGroup);
cycle =bph.setComputationParameters();
int idx = cycle.getPeriodCount();
System.out.println("\n\n\t\t--->Cycle from session:"+cycle.toString()+"priod count:"+idx);
for(int x=0; x < periodIds.length; x++){
for (int y=0;y<idx;y++){
if (cycle.getBillingPeriod(y).getId().equals(periodIds[x])) {
incPeriods.add(cycle.getBillingPeriod(y));
break;
}
}
}
}
catch(IOException e){throw new ServletException(e.getMessage());}
HashMap<String, SOA[]> soas = new HashMap<String, SOA[]>();
for (BillingPeriod b:incPeriods){
b.generate();
soas.put(b.getId(),b.processBills());
}
request.getSession().setAttribute("SOA_Array",soas);
}else throw new ServletException("No Billing Period selected.");
System.out.println("\n\n\t\tRedirectView....");
return new ModelAndView(new RedirectView(getSuccessView()));
}
public ModelAndView call(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws ServletException {
return onSubmit(request,response,command,errors);
}
protected ModelAndView handleInvalidSubmit(HttpServletRequest request, HttpServletResponse response)
throws Exception {
return disallowDuplicateFormSubmission(request, response);
}
}
it's a bit crappy because i am testing/developing directly on the application server, it would be nice if i can test it inside eclipse i.e. via junit.
thx