/**请假类型 */
public enum LeaveType implements CodedEnum {
/** 未知. */
UNKNOWN(0, "Unknown") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setOtherLeave(leaveStats.getOtherLeave() + hours);
}
},
/** 带薪假. */
PAIDLEAVE(1, "PaidLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setPaidLeave(leaveStats.getPaidLeave() + hours);
}
},
/** 婚假. */
WEDDINGLEAVE(2, "WeddingLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setWeddingLeave(leaveStats.getWeddingLeave() + hours);
}
},
/** 产假. */
MATERNITYLEAVE(3, "MaternityLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setMaternityLeave(leaveStats.getMaternityLeave() + hours);
}
},
/** 产检假. */
PREGNENCYCHECKLEAVE(4, "PregnencyCheckLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setPregnencyCheckLeave(leaveStats.getPregnencyCheckLeave() + hours);
}
},
/** 哺乳假. */
LACTATIONLEAVE(5, "LactationLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setLactationLeave(leaveStats.getLactationLeave() + hours);
}
},
/** 陪产假. */
PATERNITYLEAVE(6, "PaternityLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setPaternityLeave(leaveStats.getPaternityLeave() + hours);
}
},
/** 丧假. */
FUNERALLEAVE(7, "FuneralLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setFuneralLeave(leaveStats.getFuneralLeave() + hours);
}
},
/** 流产假. */
ABORTIONLEAVE(8, "AbortionLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setAbortionLeave(leaveStats.getAbortionLeave() + hours);
}
},
/** 工伤假. */
WORKINJURYLEAVE(9, "WorkInjuryLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setWorkInjuryLeave(leaveStats.getWorkInjuryLeave() + hours);
}
},
/** 调休. */
EXCHANGELEAVE(10, "ExchangeLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setExchangeLeave(leaveStats.getExchangeLeave() + hours);
}
},
/** 事假. */
AFFAIRSLEAVE(11, "AffairsLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setAffairsLeave(leaveStats.getAffairsLeave() + hours);
}
},
/** 病假. */
SICKLEAVE(12, "SickLeave") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setSickLeave(leaveStats.getSickLeave() + hours);
}
},
/** 工休. */
WORKBREAK(13, "WorkBreak") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setWorkBreak(leaveStats.getWorkBreak() + hours);
}
},
/** 旷工. */
ABSENSE(14, "Absense") {
@Override
public void setHours(LeaveStats leaveStats, float hours) {
leaveStats.setAbsence(leaveStats.getAbsence() + hours);
}
};
/** The code. */
private final int code;
/** The resource id. */
private final String resourceId;
public abstract void setHours(LeaveStats leaveStats, float hours);
/**
* Value of.
*
* @param code
* the code
* @return the leave type
*/
public static LeaveType valueOf(final int code) {
for (final LeaveType leaveType : LeaveType.values()) {
if (leaveType.getCode() == code) {
return leaveType;
}
}
throw new IllegalStateException("Never expected here");
}
/**
* Instantiates a new leave type.
*
* @param code
* the code
* @param resourceId
* the resource id
*/
private LeaveType(final int code, final String resourceId) {
this.code = code;
this.resourceId = resourceId;
}
/*
* (non-Javadoc)
*
* @see com.microstar.constants.Localizable#getResourceId()
*/
@Override
public String getResourceId() {
return this.resourceId;
}
/*
* (non-Javadoc)
*
* @see com.microstar.constants.CodedEnum#getCode()
*/
@Override
public int getCode() {
return this.code;
}
}