package com.hubspot.baragon.agent.handlebars;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import com.github.jknack.handlebars.Helper;
import com.github.jknack.handlebars.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class FormatTimestampHelper implements Helper<Number> {
private static final Logger LOG = LoggerFactory.getLogger(FormatTimestampHelper.class);
public static final String NAME = "formatTimestamp";
private final String defaultFormatString;
public FormatTimestampHelper(String defaultFormatString) {
this.defaultFormatString = defaultFormatString;
}
public String getDefaultFormatString() {
return defaultFormatString;
}
@Override
public CharSequence apply(Number context, Options options) throws IOException {
String dateFormatString;
try {
dateFormatString = options.param(0, defaultFormatString);
} catch (ClassCastException cce) { // phorce.
LOG.warn(String.format("Date format %s isn't subclass of String, using default: %s", options.param(0), defaultFormatString));
dateFormatString = defaultFormatString;
}
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatString);
final Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(context.longValue());
return simpleDateFormat.format(cal.getTime());
}
}