package pl.edu.icm.saos.common.chart.formatter;
import org.springframework.beans.factory.annotation.Value;
import pl.edu.icm.saos.common.chart.value.MonthPeriod;
import com.google.common.base.Preconditions;
/**
*
* {@link PointValueFormatter} implementation handling {@link MonthPeriod} class
*
*
* @author Ćukasz Dumiszewski
*/
public class PointMonthPeriodValueFormatter extends AbstractPointValueFormatter {
//------------------------ LOGIC --------------------------
@Override
public String format(Object value) {
if (value == null) {
return null;
}
MonthPeriod monthPeriod = (MonthPeriod)value;
if (monthPeriod.isOneMonthPeriod()) {
return format(monthPeriod.getStartYear(), monthPeriod.getEndMonthOfYear());
}
return format(monthPeriod.getStartYear(), monthPeriod.getStartMonthOfYear()) + "-" + format(monthPeriod.getEndYear(), monthPeriod.getEndMonthOfYear());
}
@Override
public boolean handles(Class<?> valueClass) {
Preconditions.checkNotNull(valueClass);
return MonthPeriod.class.equals(valueClass);
}
//------------------------ PRIVATE --------------------------
private String format(int year, int month) {
return month + "/" + year;
}
//------------------------ SETTERS --------------------------
@Value("1")
@Override
public void setOrder(int order) {
super.setOrder(order);
}
}