package org.jboss.windup.reporting.freemarker;
import java.util.List;
import org.jboss.windup.config.GraphRewrite;
import org.jboss.windup.reporting.service.EffortReportService;
import org.jboss.windup.reporting.service.EffortReportService.Verbosity;
import org.jboss.windup.util.ExecutionStatistics;
import freemarker.template.SimpleNumber;
import freemarker.template.TemplateModelException;
import freemarker.template.TemplateScalarModel;
/**
* Given a number of points, return a short textual description (eg, Trivial or Complex).
*
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*/
public class GetEffortDescriptionForPoints implements WindupFreeMarkerMethod
{
private static final String NAME = "getEffortDescriptionForPoints";
@Override
public String getDescription()
{
return "Given a number of points, return a short textual description (eg, Trivial or Complex).";
}
@Override
public Object exec(List arguments) throws TemplateModelException
{
ExecutionStatistics.get().begin(NAME);
if (arguments.size() < 1)
{
throw new TemplateModelException("Error, method expects one or two arguments (Integer, [verbosity:String])");
}
SimpleNumber simpleNumber = (SimpleNumber) arguments.get(0);
int effort = simpleNumber.getAsNumber().intValue();
Verbosity verbosity = Verbosity.SHORT;
if (arguments.size() > 1)
{
final TemplateScalarModel verbosityModel = (TemplateScalarModel) arguments.get(1);
String verbosityString = verbosityModel.getAsString();
verbosity = Verbosity.valueOf(verbosityString.toUpperCase());
}
String result = EffortReportService.getEffortLevelDescription(verbosity, effort);
ExecutionStatistics.get().end(NAME);
return result;
}
}