/** * @version $Id: AbstractClaimWorkData.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2011/08/16 16:31:25 * @author shingo-takahashi * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.io.model.abstraction; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.tida_okinawa.corona.io.dam.hibernate.ClaimWorkDataRecordList; import com.tida_okinawa.corona.io.exception.CoronaError; import com.tida_okinawa.corona.io.model.ClaimWorkDataType; import com.tida_okinawa.corona.io.model.CorrectionMistakesType; import com.tida_okinawa.corona.io.model.IClaimWorkData; import com.tida_okinawa.corona.io.model.table.ITextRecord; /** * @author shingo-takahashi */ public abstract class AbstractClaimWorkData extends CoronaObject implements IClaimWorkData, Comparable<IClaimWorkData> { protected int _claimId; protected int _fieldId; protected int _projectId; protected int _productId; protected Date lasted; // TODO 20131121 rev1592で変更されていた箇所を戻す。 protected ClaimWorkDataRecordList _records; protected boolean internal; protected boolean external; protected ClaimWorkDataType _workDataType = ClaimWorkDataType.NONE; protected CorrectionMistakesType _correctionMistakesType = CorrectionMistakesType.NONE; protected List<CoronaError> errors = new ArrayList<CoronaError>(); private String note = ""; /** * @param claimId * 問い合わせデータID * @param fieldId * フィールドID * @param workDataType * 種別 * @param projectId * 誤記補正の場合はプロダクト単位ではないので、0を設定する。 * @param productId * ターゲットID */ public AbstractClaimWorkData(int claimId, int fieldId, ClaimWorkDataType workDataType, int projectId, int productId) { super(); this._workDataType = workDataType; this._claimId = claimId; this._fieldId = fieldId; this._projectId = projectId; this._productId = productId; } @Override public ClaimWorkDataType getClaimWorkDataType() { return _workDataType; } @Override public boolean isExternalCorrectionMistakes() { return external; } @Override public boolean isInternalCorrectionMistakes() { return internal; } @Override public String getClaimWorkData(int recordId) { ITextRecord rec = _records.getRecord(recordId); if (rec == null) { return null; } return rec.getText(); } @Override public boolean addClaimWorkData(int recordId, String data) { // TODO:表示用IDを取得 // String dispId = getDispIdDam(this.getClaimId(), recordId); _records.add(recordId, data); return true; } @Override public int getFieldId() { return _fieldId; } /** * @return _claimId */ @Override public int getClaimId() { return _claimId; } @Override public List<ITextRecord> getClaimWorkDatas() { return _records; } @Override public Date getLasted() { if (lasted != null) { return (Date) lasted.clone(); } return null; } /** * @param date */ protected void setLasted(Date date) { if (date != null) { lasted = (Date) date.clone(); } else { lasted = null; } } @Override public boolean equals(Object obj) { if (super.equals(obj)) { return true; } if (!(obj instanceof IClaimWorkData)) { return false; } IClaimWorkData item = (IClaimWorkData) obj; if (this.getClaimId() == item.getClaimId() && this.getFieldId() == item.getFieldId() && this.getClaimWorkDataType() == item.getClaimWorkDataType()) { return true; } return false; } @Override public int compareTo(IClaimWorkData o) { if (o == null) return -1; if (this.getClaimId() != o.getClaimId()) { return this.getClaimId() - o.getClaimId(); } if (this.getFieldId() != o.getFieldId()) { return this.getFieldId() - o.getFieldId(); } return this.getClaimWorkDataType().compareTo(o.getClaimWorkDataType()); } @Override public String toString() { return "[" + this.getClaimId() + "-" + this.getFieldId() + "-" + this.getClaimWorkDataType().getName() + "(" + this._projectId + "-" + this._productId + "):" + this.getLasted() + "]"; } /** * @return _projectId */ @Override public int getProjectId() { return _projectId; } /** * @param _projectId * セットする _projectId */ public void setProjectId(int _projectId) { this._projectId = _projectId; } /** * @return _productId */ @Override public int getProductId() { return _productId; } /** * @param _productId * セットする _productId */ public void setProductId(int _productId) { this._productId = _productId; } @Override public List<CoronaError> getErrors() { return errors; } /** * @param claimId * 問い合わせデータID * @param recId * レコードID * @return may be null if system error occurred */ abstract protected String getDispIdDam(int claimId, int recId); @Override public void setNote(String str) { note = str; } @Override public String getNote() { return note; } }