package fitnesse.wikitext.parser;
import fitnesse.wiki.PageData;
import fitnesse.wiki.WikiPageProperties;
import util.SystemTimeKeeper;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class LastModified extends SymbolType implements Translation {
public LastModified() {
super("LastModified");
wikiMatcher(new Matcher().string("!lastmodified"));
htmlTranslation(this);
}
public String toTarget(Translator translator, Symbol symbol) {
String user = translator.getPage().getProperty(PageData.LAST_MODIFYING_USER);
String date = translator.getPage().getProperty(PageData.PropertyLAST_MODIFIED);
return translator.formatMessage(
"Last modified " +
(user.length() > 0 ? "by " + user : "anonymously") +
" on " + formatDate(date));
}
private String formatDate(String dateString) {
Date date;
if (dateString.length() == 0) date = SystemTimeKeeper.now();
else {
try {
date = WikiPageProperties.getTimeFormat().parse(dateString);
}
catch (ParseException e) {
return dateString;
}
}
return new SimpleDateFormat("MMM dd, yyyy").format(date) + " at " + new SimpleDateFormat("hh:mm:ss a").format(date);
}
}