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
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+")"; |
|
} |
|
}
|
|
|