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.
homework/ApprovalContext.java

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 + '\'' +
'}';
}
}
}