/**
* TimeTemplate.java
*
* @author Created by Omnicore CodeGuide
*/
package edu.sc.seis.sod.status;
import java.util.TimeZone;
import org.w3c.dom.Element;
import edu.iris.Fissures.Time;
import edu.iris.Fissures.model.MicroSecondDate;
import edu.sc.seis.fissuresUtil.chooser.ClockUtil;
import edu.sc.seis.fissuresUtil.chooser.ThreadSafeSimpleDateFormat;
import edu.sc.seis.sod.SodUtil;
public class TimeTemplate implements GenericTemplate {
public TimeTemplate(Element config, boolean representTimeInFuture) {
sdf = createSDF(config);
this.representTimeInFuture = representTimeInFuture;
}
public TimeTemplate(Element config, Time time) {
this(config, true);
setTime(time);
}
public static ThreadSafeSimpleDateFormat createSDF(Element el) {
if(el != null) {
String nestedText = SodUtil.getNestedText(el);
if(nestedText != null) return new ThreadSafeSimpleDateFormat(nestedText, TimeZone.getTimeZone("GMT"));
}
return new ThreadSafeSimpleDateFormat("yyyy-MM-dd HH:mm:ss z", TimeZone.getTimeZone("GMT"));
}
public void setTime(Time t) {
time = new MicroSecondDate(t);
}
public String getResult(Time t) {
setTime(t);
return getResult();
}
public String getResult() {
if(!representTimeInFuture && time.after(ClockUtil.tomorrow())) return "-";
return sdf.format(time);
}
private ThreadSafeSimpleDateFormat sdf;
private MicroSecondDate time;
private boolean representTimeInFuture = true;
}