package com.rbs.common.associate.data;

import java.util.Calendar;
import java.util.Collection;

import com.rbs.base.common.RBSData;
import com.rbs.base.common.RBSDataObject;
import com.rbs.base.common.RBSOID;

public class ContactData extends RBSDataObject {

    /*
    private String namePrefix;
    private String firstName;
    private String nickName;
    private String middleInitial;
    private String lastName;
    private String nameSuffix;
    private char corporateClientInd;
    private Calendar effectiveBeginDate;
    private Calendar effectiveEndDate;
    private boolean canReceiveNewsLetter;
    private boolean canViewProfile;
    private String loginName;
    private boolean isAgentForBA;  // ?
    private String jobTitle; // ?
    private boolean isPrimaryForBA; //
    private String invoiceCommunicationMode; // ?
    private String executionMethodInd;    // ?
    private Collection profileList;    // ?
     *
     *
     * contactId; field is not there
     *
    */

	private java.lang.Integer contactId;
	private java.lang.String corpClientInd;
	private java.util.Calendar effBeginDt;
	private java.util.Calendar effEndDt;
	private java.lang.String firstName;
	private java.lang.String lastName;
	private java.lang.String loginName;
	private java.lang.String middleInit;
	private java.lang.String namePrefix;
	private java.lang.String nameSuffix;
	private java.lang.String nickname;
	private java.lang.String recNewsLetterFlag;
	private java.util.Calendar updateDt;
	private java.lang.String updater;
	private java.lang.String viewProfileFlag;

    private ContactOID contactOID = null;

	public java.lang.Integer getContactId() {
		return contactId;
	}

	public java.lang.String getCorpClientInd() {
		return corpClientInd;
	}

	public java.util.Calendar getEffBeginDt() {
		return effBeginDt;
	}

	public java.util.Calendar getEffEndDt() {
		return effEndDt;
	}

	public java.lang.String getFirstName() {
		return firstName;
	}

	public java.lang.String getLastName() {
		return lastName;
	}

	public java.lang.String getLoginName() {
		return loginName;
	}

	public java.lang.String getMiddleInit() {
		return middleInit;
	}

	public java.lang.String getNamePrefix() {
		return namePrefix;
	}

	public java.lang.String getNameSuffix() {
		return nameSuffix;
	}

	public java.lang.String getNickname() {
		return nickname;
	}

	public java.lang.String getRecNewsLetterFlag() {
		return recNewsLetterFlag;
	}

	public java.util.Calendar getUpdateDt() {
		return updateDt;
	}

	public java.lang.String getUpdater() {
		return updater;
	}

	public java.lang.String getViewProfileFlag() {
		return viewProfileFlag;
	}

	public void setContactId(java.lang.Integer arg0) {
		contactId = arg0;
	}

	public void setCorpClientInd(java.lang.String arg0) {
		corpClientInd = arg0;
	}

	public void setEffBeginDt(java.util.Calendar arg0) {
		effBeginDt = arg0;
	}

	public void setEffEndDt(java.util.Calendar arg0) {
		effEndDt = arg0;
	}

	public void setFirstName(java.lang.String arg0) {
		firstName = arg0;
	}

	public void setLastName(java.lang.String arg0) {
		lastName = arg0;
	}

	public void setLoginName(java.lang.String arg0) {
		loginName = arg0;
	}

	public void setMiddleInit(java.lang.String arg0) {
		middleInit = arg0;
	}

	public void setNamePrefix(java.lang.String arg0) {
		namePrefix = arg0;
	}

	public void setNameSuffix(java.lang.String arg0) {
		nameSuffix = arg0;
	}

	public void setNickname(java.lang.String arg0) {
		nickname = arg0;
	}

	public void setRecNewsLetterFlag(java.lang.String arg0) {
		recNewsLetterFlag = arg0;
	}

	public void setUpdateDt(java.util.Calendar arg0) {
		updateDt = arg0;
	}

	public void setUpdater(java.lang.String arg0) {
		updater = arg0;
	}

	public void setViewProfileFlag(java.lang.String arg0) {
		viewProfileFlag = arg0;
	}

        public void setData( RBSData  theRBSData )
        {
            if (theRBSData  instanceof ContactData )
            {
                ContactData theContactData = (ContactData ) theRBSData ;

                this.setContactId(theContactData.getContactId());

                this.setCorpClientInd(theContactData.getCorpClientInd());

                this.setEffBeginDt(theContactData.getEffBeginDt());

                this.setEffEndDt(theContactData.getEffEndDt());

                this.setFirstName(theContactData.getFirstName());

                this.setLastName(theContactData.getLastName());

                this.setLoginName(theContactData.getLoginName());

                this.setMiddleInit(theContactData.getMiddleInit());

                this.setNamePrefix(theContactData.getNamePrefix());

                this.setNameSuffix(theContactData.getNameSuffix());

                this.setNickname(theContactData.getNickname());

                this.setRecNewsLetterFlag(theContactData.getRecNewsLetterFlag());

                this.setUpdateDt(theContactData.getUpdateDt());

                this.setUpdater(theContactData.getUpdater());

                this.setViewProfileFlag(theContactData.getViewProfileFlag());

            }

        }

        public RBSOID getOID()
        {
            //return new ContactOID(this.getContactId());
            if(this.contactOID == null)
            {
                this.contactOID = new ContactOID(this.getContactId());
            }
            else
            {
                this.contactOID.setContactId(this.getContactId());
            }
            return this.contactOID;
        }

        public boolean validate()
        {
            return true;
        }

}
