/*
* Copyright 2012 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.examples.carinsurance.domain.request;
import java.util.ArrayList;
import java.util.List;
import org.drools.examples.carinsurance.domain.Car;
import org.drools.examples.carinsurance.domain.Driver;
public class PolicyRequest {
private Driver owner;
private Car car;
private List<CoverageRequest> coverageRequestList = new ArrayList<CoverageRequest>();
private boolean automaticallyRejected = false;
private List<String> rejectedMessageList = new ArrayList<String>();
private List<String> flaggedMessageList = new ArrayList<String>();
private boolean requiresManualApproval = false;
private boolean manuallyApproved = false;
public PolicyRequest() {
}
public PolicyRequest(Driver owner, Car car) {
this.car = car;
this.owner = owner;
}
public Driver getOwner() {
return owner;
}
public void setOwner(Driver owner) {
this.owner = owner;
}
public Car getCar() {
return car;
}
public void setCar(Car car) {
this.car = car;
}
public List<CoverageRequest> getCoverageRequestList() {
return coverageRequestList;
}
public boolean isAutomaticallyRejected() {
return automaticallyRejected;
}
public void setAutomaticallyRejected(boolean automaticallyRejected) {
this.automaticallyRejected = automaticallyRejected;
}
public List<String> getRejectedMessageList() {
return rejectedMessageList;
}
public boolean isRequiresManualApproval() {
return requiresManualApproval;
}
public void setRequiresManualApproval(boolean requiresManualApproval) {
this.requiresManualApproval = requiresManualApproval;
}
public boolean isManuallyApproved() {
return manuallyApproved;
}
public void setManuallyApproved(boolean manuallyApproved) {
this.manuallyApproved = manuallyApproved;
}
public List<String> getFlaggedMessageList() {
return flaggedMessageList;
}
// ############################################################################
// Non getters and setters
// ############################################################################
public void addCoverageRequest(CoverageRequest coverageRequest) {
coverageRequest.setPolicyRequest(this);
coverageRequestList.add(coverageRequest);
}
public void addRejectedMessage(String rejectedMessage) {
rejectedMessageList.add(rejectedMessage);
}
public void addFlaggedMessage(String flaggedMessage) {
flaggedMessageList.add(flaggedMessage);
}
public boolean isApproved() {
return !automaticallyRejected && (!requiresManualApproval || manuallyApproved);
}
}