package com.github.sommeri.less4j.core.compiler.expressions; import java.util.List; import com.github.sommeri.less4j.core.ast.Expression; import com.github.sommeri.less4j.core.ast.NumberExpression; import com.github.sommeri.less4j.core.ast.NumberExpression.Dimension; abstract class AbstractFunction implements Function { @Override public boolean acceptsParameters(List<Expression> parameters) { //we assume that the function does not have a name clash with some filter return true; } static double scaled(NumberExpression n, int size) { if (n.getDimension() == Dimension.PERCENTAGE) { return n.getValueAsDouble() * size / 100; } else { return number(n); } } static double number(NumberExpression n) { if (n.getDimension() == Dimension.PERCENTAGE) { return n.getValueAsDouble() / 100; } else { return n.getValueAsDouble(); } } }