package com.rhc.mortgage.application; import java.util.Collection; import com.rhc.drools.reference.DroolsQueryInfo; import com.rhc.mortgage.domain.Application; import com.rhc.mortgage.domain.Mortgage; /** * Holds all objects that tell us the result of our Mortgage Applications. * * * We don't want this class to reference Drools or rules. This class is simply a container for the domain objects needed * to solve the business problem at hand, which this case is applying for a mortgage. We don't need to introduce * Drools/Rules naming as this an implementation detail, and this class should be reusable for alternate implentations * that do not use Drools. * */ public class MortgageApplicationResponse { @DroolsQueryInfo(queryName = "Get All Approved Applications", binding = "$application") private Collection<Application> approvedApplications; @DroolsQueryInfo(queryName = "Get All Denied Applications", binding = "$application") private Collection<Application> deniedApplications; @DroolsQueryInfo(queryName = "Get All New Mortgages", binding = "$mortgage") private Collection<Mortgage> newMortgagesCreated; public void setApprovedApplications( Collection<Application> approvedApplications ) { this.approvedApplications = approvedApplications; } public Collection<Application> getApprovedApplications() { return approvedApplications; } public void setDeniedApplications( Collection<Application> deniedApplications ) { this.deniedApplications = deniedApplications; } public Collection<Application> getDeniedApplications() { return deniedApplications; } public Collection<Mortgage> getNewMortgagesCreated() { return newMortgagesCreated; } public void setNewMortgagesCreated( Collection<Mortgage> newMortgagesCreated ) { this.newMortgagesCreated = newMortgagesCreated; } }