package net.techreadiness.plugin.action.reports;
import java.text.NumberFormat;
import java.util.Map;
import ar.com.fdvs.dj.domain.entities.conditionalStyle.ConditionStyleExpression;
public class ReportPdfHighlightCondition extends ConditionStyleExpression {
private static final long serialVersionUID = 1L;
private NumberFormat format = NumberFormat.getPercentInstance();
private double min, max;
public ReportPdfHighlightCondition(double min, double max) {
this.min = min;
this.max = max;
}
@Override
public Object evaluate(Map fields, Map variables, Map parameters) {
Object value = getCurrentValue();
if (value.toString().startsWith(">")) {
value = "100%";
}
// try parsing number
try {
Number num = format.parse(value.toString());
if (num.doubleValue() > 1.0) {
num = 1;
}
if (num.doubleValue() <= max && num.doubleValue() >= min) {
return true;
}
} catch (Exception e) {
try {
double num = Double.parseDouble(value.toString());
if (num <= max && num >= min) {
return true;
}
} catch (Exception e2) {
// Ignore error
}
}
return false;
}
@Override
public String getClassName() {
return Boolean.class.getName();
}
}