package kcg.faics.susa.vo;

import java.util.Date;

/**
 * 외사수사 Value ObJect.
 * 
 * @author kimnomin
 *
 */
public class SusaVO {
	/**
	 * 일련번호.
	 */
	private int idx;
	/**
	 * 부서.
	 */
	private String place1;
	/**
	 * 부서 명칭.
	 */
	private String place1Str;
	/**
	 * 경찰청 코드.
	 */
	private String agency;
	/**
	 * 외사수사 분류. (in-내사수사, pr-공작추진)
	 */
	private String type;
	/**
	 * 착수일.
	 */
	private String sdate;
	/**
	 * 종료일.
	 */
	private String edate;
	/**
	 * 담당자.
	 */
	private String chargeNm;
	/**
	 * 사건명 .
	 */
	private String title;
	/**
	 * 협의내용.
	 */
	private String contents;
	/**
	 * 내사결과.
	 */
	private String result;
	/**
	 * 내사결과 플래그
	 * O : 있다, - : 없다.
	 */
	private String resultFlag = "-";
	/**
	 * 등록일.
	 */
	private Date regdate;
	/**
	 * 등록자.
	 */
	private String writer;
	/**
	 * 등록된 첨부파일 개수.
	 */
	private int fileCnt = 0;
	
	/**
	 * 일련번호를 반환한다.
	 * 
	 * @return 일련번호
	 */
	public final int getIdx() {
		return idx;
	}

	/**
	 * 일련번호를 설정한다.
	 * 
	 * @param idx
	 *            일련번호
	 */
	public final void setIdx(final int idx) {
		this.idx = idx;
	}

	/**
	 * 부서를 반환한다.
	 * 
	 * @return 부서
	 */
	public final String getPlace1() {
		return place1;
	}

	/**
	 * 부서를 설정한다.
	 * 
	 * @param place1
	 *            부서
	 */
	public final void setPlace1(final String place1) {
		this.place1 = place1;
	}
	
	/**
	 * 부서명을 반환한다.
	 * 
	 * @return 부서명
	 */
	public final String getPlace1Str() {
		return place1Str;
	}

	/**
	 * 부서명을 설정한다.
	 * 
	 * @param place1Str
	 *            부서명
	 */
	public final void setPlace1Str(final String place1Str) {
		this.place1Str = place1Str;
	}

	/**
	 * 경찰청 코드를 반환한다.
	 * 
	 * @return 경찰철 코드
	 */
	public final String getAgency() {
		return agency;
	}

	/**
	 * 경찰청 코드를 설정한다.
	 * 
	 * @param agency
	 *            경찰청 코드
	 */
	public final void setAgency(final String agency) {
		this.agency = agency;
	}

	/**
	 * 외사수사 분류를 반환한다.
	 * 
	 * @return 외사수사 분류
	 */
	public final String getType() {
		return type;
	}

	/**
	 * 외사수사 분류를 설정한다.
	 * 
	 * @param type
	 *            외사수사 분류
	 */
	public final void setType(final String type) {
		this.type = type;
	}

	/**
	 * 착수일을 반환한다.
	 * 
	 * @return 착수일
	 */
	public final String getSdate() {
		return sdate;
	}

	/**
	 * 착수일을 설정한다.
	 * 
	 * @param sdate
	 *            착수일
	 */
	public final void setSdate(final String sdate) {
		if (sdate != null) {
			this.sdate = sdate.trim().replace("-", "");
		} else {
			this.sdate = sdate;
		}
	}

	/**
	 * 종료일을 반환한다.
	 * 
	 * @return 종료일
	 */
	public final String getEdate() {
		return edate;
	}

	/**
	 * 종료일을 설정한다.
	 * 
	 * @param edate
	 *            종료일
	 */
	public final void setEdate(final String edate) {
		if (edate != null) {
			this.edate = edate.trim().replace("-", "");
		} else {
			this.edate = edate;
		}
	}

	/**
	 * 담당자를 반환한다.
	 * 
	 * @return 담당자
	 */
	public final String getChargeNm() {
		return chargeNm;
	}

	/**
	 * 담당자를 설정한다.
	 * 
	 * @param chargeNm
	 *            담당자
	 */
	public final void setChargeNm(final String chargeNm) {
		this.chargeNm = chargeNm;
	}

	/**
	 * 사건명을 반환한다.
	 * 
	 * @return 사건명
	 */
	public final String getTitle() {
		return title;
	}

	/**
	 * 사건명을 설정한다.
	 * 
	 * @param title
	 *            사건명
	 */
	public final void setTitle(final String title) {
		this.title = title;
	}

	/**
	 * 협의내용을 반환한다.
	 * 
	 * @return 협의내용
	 */
	public final String getContents() {
		return contents;
	}

	/**
	 * 협의내용을 설정한다.
	 * 
	 * @param contents
	 *            협의내용
	 */
	public final void setContents(final String contents) {
		this.contents = contents;
	}

	/**
	 * 내사결과를 반환한다.
	 * 
	 * @return 내사결과
	 */
	public final String getResult() {
		return result;
	}

	/**
	 * 내사결과를 설정한다.
	 * 
	 * @param result
	 *            내사결과
	 */
	public final void setResult(final String result) {
		if (result != null && result.length() > 2) {
			setResultFlag("O");
		}
		this.result = result;
	}

	/**
	 * 내사결과 플래그를 반환한다.
	 * 
	 * @return 내사결과 플래그
	 */
	public final String getResultFlag() {
		return resultFlag;
	}

	/**
	 * 내사결과 플래그를 설정한다.
	 * 
	 * @param resultFlag 내사결과 플래그
	 */
	public final void setResultFlag(final String resultFlag) {
		this.resultFlag = resultFlag;
	}

	/**
	 * 등록일을 반환한다.
	 * 
	 * @return 등록일
	 */
	public final Date getRegdate() {
		return regdate;
	}

	/**
	 * 등록일을 설정한다.
	 * 
	 * @param regdate
	 *            등록일
	 */
	public final void setRegdate(final Date regdate) {
		this.regdate = regdate;
	}

	/**
	 * 등록자를 반환한다.
	 * 
	 * @return 등록자
	 */
	public final String getWriter() {
		return writer;
	}

	/**
	 * 등록자를 설정한다.
	 * 
	 * @param writer
	 *            등록자
	 */
	public final void setWriter(final String writer) {
		this.writer = writer;
	}

	/**
	 * 등록된 첨부파일 개수를 반환한다.
	 * 
	 * @return 등록된 첨부파일 개수
	 */
	public final int getFileCnt() {
		return fileCnt;
	}

	/**
	 * 등록된 첨부파일 개수를 설정한다.
	 * 
	 * @param fileCnt 등록된 첨부파일 개수
	 */
	public final void setFileCnt(final int fileCnt) {
		this.fileCnt = fileCnt;
	}
	
	
}
