package gov.va.med.esr.service.external.person;

import org.apache.commons.lang.builder.ToStringBuilder;

import gov.va.med.esr.service.external.ExternalComponent;
import gov.va.med.esr.service.external.person.collections.CategoryCollection;

public abstract class AbstractEntityFinder extends ExternalComponent {


	private String accountName;
	private String requestName;
	private String survivingVpid;
	private String deprecatedVpid;
	private String toVpid;
	private String fromVpid;
	private String stationName;
	private String dfn;
	private String notificationType;
	private Integer incomeYear;
	private String ivmActionCode;
	private String btFinancialInd;
	private String transactionId;


	private DeliveryPreferenceInfo deliveryPreferenceInfo = null;
    private CategoryCollection categories = null;
    private SendIVMInfo sendIVMInfo = null;
    private IVMLetterInfo ivmLetterInfo = null;


    public String getIvmActionCode() {
		return ivmActionCode;
	}

	public void setIvmActionCode(String ivmActionCode) {
		this.ivmActionCode = ivmActionCode;
	}

	public SendIVMInfo getSendIVMInfo() {
		return sendIVMInfo;
	}

	public void setSendIVMInfo(SendIVMInfo sendIVMInfo) {
		this.sendIVMInfo = sendIVMInfo;
	}

	public IVMLetterInfo getIVMLetterInfo() {
		return ivmLetterInfo;
	}

	public void setIVMLetterInfo(IVMLetterInfo ivmLetterInfo) {
		this.ivmLetterInfo = ivmLetterInfo;
	}

	public AbstractEntityFinder(String accountName, String  requestName) {
        this.accountName = accountName;
        this.requestName = requestName;
    }

	public AbstractEntityFinder(String accountName, String  requestName,CategoryCollection categories) {
		this.accountName = accountName;
		this.requestName = requestName;
        this.categories = categories;
	}

	
	public AbstractEntityFinder(String accountName, String notificationType,String survivingVpid,String deprecatedVpid,String dfn,String stationName,String fromVpid, String toVpid) {
		this.accountName = accountName;
		this.requestName = null;
        this.notificationType = notificationType;
        this.survivingVpid = survivingVpid;
        this.deprecatedVpid = deprecatedVpid;
        this.dfn = dfn;
        this.stationName = stationName;
        this.toVpid = toVpid;
        this.fromVpid = fromVpid;

	}
	public AbstractEntityFinder(String accountName, String  requestName,DeliveryPreferenceInfo deliveryPreferenceInfo) {
		this.accountName = accountName;
		this.requestName = requestName;
        this.deliveryPreferenceInfo = deliveryPreferenceInfo;
	}

	public AbstractEntityFinder(String accountName, String  requestName,Integer incomeYear, SendIVMInfo sendIVMInfo,
			IVMLetterInfo ivmLetterInfo) {
		this.accountName = accountName;
		this.requestName = requestName;
        this.sendIVMInfo = sendIVMInfo;
        this.incomeYear = incomeYear;
        this.ivmLetterInfo = ivmLetterInfo;
	}


	public String getAccountName() {
		return accountName;
	}
	public void setAccountName(String accountName) {
		this.accountName = accountName;
	}
	public String getRequestName() {
		return requestName;
	}
	public void setRequestName(String requestName) {
		this.requestName = requestName;
	}

    public CategoryCollection getCategories() {
        return categories;
    }

    public void setCategories(CategoryCollection categories) {
        this.categories = categories;
    }

	public String getDeprecatedVpid() {
		return deprecatedVpid;
	}

	public void setDeprecatedVpid(String deprecatedVpid) {
		this.deprecatedVpid = deprecatedVpid;
	}

	public String getDfn() {
		return dfn;
	}

	public void setDfn(String dfn) {
		this.dfn = dfn;
	}

	public String getFromVpid() {
		return fromVpid;
	}

	public void setFromVpid(String fromVpid) {
		this.fromVpid = fromVpid;
	}

	public String getStationName() {
		return stationName;
	}

	public void setStationName(String stationName) {
		stationName = stationName;
	}

	public String getSurvivingVpid() {
		return survivingVpid;
	}

	public void setSurvivingVpid(String survivingVpid) {
		this.survivingVpid = survivingVpid;
	}

	public String getToVpid() {
		return toVpid;
	}

	public void setToVpid(String toVpid) {
		this.toVpid = toVpid;
	}

	public String getNotificationType() {
		return notificationType;
	}

	public void setNotificationType(String notificationType) {
		this.notificationType = notificationType;
	}

	public DeliveryPreferenceInfo getDeliveryPreferenceInfo() {
		return deliveryPreferenceInfo;
	}

	public void setDeliveryPreferenceInfo(
			DeliveryPreferenceInfo deliveryPreferenceInfo) {
		this.deliveryPreferenceInfo = deliveryPreferenceInfo;
	}

	public Integer getIncomeYear() {
		return incomeYear;
	}

	public void setIncomeYear(Integer incomeYear) {
		this.incomeYear = incomeYear;
	}

	public String getBtFinancialInd() {
		return btFinancialInd;
	}

	public void setBtFinancialInd(String btFinancialInd) {
		this.btFinancialInd = btFinancialInd;
	}

	public String toString(){
		return ToStringBuilder.reflectionToString(this);
	}

	public void setTransactionId(String transactionId)	{
		this.transactionId = transactionId;
	}

	public String getTransactionId()	{
		return transactionId;
	}
}
