You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.2 KiB
72 lines
2.2 KiB
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
public class ApprovalContext {
|
|
private List<ApprovalRecord> approvalHistory = new ArrayList<>();
|
|
private ApprovalStatus currentStatus = ApprovalStatus.PENDING;
|
|
private String rejectionReason;
|
|
private ApprovalLevel currentRequiredLevel;
|
|
|
|
public void addApprovalRecord(Approver approver, boolean approved, String comment) {
|
|
ApprovalRecord record = new ApprovalRecord(
|
|
approver.getApproverName(),
|
|
new Date(),
|
|
approved,
|
|
comment
|
|
);
|
|
approvalHistory.add(record);
|
|
}
|
|
|
|
public List<ApprovalRecord> getApprovalHistory() {
|
|
return new ArrayList<>(approvalHistory);
|
|
}
|
|
|
|
public ApprovalStatus getCurrentStatus() {
|
|
return currentStatus;
|
|
}
|
|
|
|
public void setCurrentStatus(ApprovalStatus currentStatus) {
|
|
this.currentStatus = currentStatus;
|
|
}
|
|
|
|
public String getRejectionReason() {
|
|
return rejectionReason;
|
|
}
|
|
|
|
public void setRejectionReason(String rejectionReason) {
|
|
this.rejectionReason = rejectionReason;
|
|
}
|
|
|
|
public ApprovalLevel getCurrentRequiredLevel() {
|
|
return currentRequiredLevel;
|
|
}
|
|
|
|
public void setCurrentRequiredLevel(ApprovalLevel currentRequiredLevel) {
|
|
this.currentRequiredLevel = currentRequiredLevel;
|
|
}
|
|
|
|
public static class ApprovalRecord {
|
|
private String approverName;
|
|
private Date approvalTime;
|
|
private boolean approved;
|
|
private String comment;
|
|
|
|
public ApprovalRecord(String approverName, Date approvalTime, boolean approved, String comment) {
|
|
this.approverName = approverName;
|
|
this.approvalTime = approvalTime;
|
|
this.approved = approved;
|
|
this.comment = comment;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "ApprovalRecord{" +
|
|
"approverName='" + approverName + '\'' +
|
|
", time=" + approvalTime +
|
|
", approved=" + approved +
|
|
", comment='" + comment + '\'' +
|
|
'}';
|
|
}
|
|
}
|
|
} |