knu project
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.
 
 
 
 
 
 

87 lines
2.1 KiB

package kr.co.kihyun.beans.entity;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import kr.co.kihyun.lang.MString;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class ExecutionCode {
private static final Logger LOG = LoggerFactory.getLogger(ExecutionCode.class);
private String deptName;
private Integer number;
private Date date;
public ExecutionCode() {
}
public ExecutionCode(String deptName, Integer number, Date date) {
this.setDeptName(deptName);
this.setNumber(number);
this.setDate(date);
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getDeptName() {
return deptName;
}
public final Integer getNumber() {
return number;
}
public final void setNumber(Integer number) {
this.number = number;
}
public final Date getDate() {
return date;
}
public final void setDate(Date date) {
this.date = date;
}
public static ExecutionCode valueOf(String codeString) throws IllegalArgumentException {
try {
String deptName = codeString.split("_")[0];
int number = Integer.parseInt(codeString.split("[_\\(]")[1]);
String dateStr = codeString.split("[\\(\\)]")[1];
Date date = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
date = sdf.parse(dateStr);
} catch (ParseException pe) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
date = sdf.parse(dateStr);
}
return new ExecutionCode(deptName, number, date);
} catch (Exception e) {
throw new IllegalArgumentException("\""+codeString+"\" is not a valid execution code.");
}
}
@Override
public String toString() {
String dateStr = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
try {
if (this.getDate() != null)
dateStr = sdf.format(this.getDate());
} catch (Exception e) {
LOG.error("Unable to format date for {}", this.getDate());
}
if(MString.isNull(this.getDeptName()) && this.getNumber() == null && this.getDate() == null)
return "";
return MString.checkNull(this.getDeptName())+"_"+MString.checkNull(String.valueOf(this.getNumber()))+"("+dateStr+")";
}
}