collector.accept(cssStylesheet);
String name = toImplement.getName();
// TODO: Annotation for override
CssDef def = collector.getSubstitutions().get(name);
if (def == null) {
logger.log(TreeLogger.ERROR, "No @def rule for name " + name);
throw new UnableToCompleteException();
}
// TODO: Allow returning an array of values
if (def.getValues().size() != 1) {
logger.log(TreeLogger.ERROR, "@def rule " + name
+ " must define exactly one value");
throw new UnableToCompleteException();
}
NumberValue numberValue = def.getValues().get(0).isNumberValue();
String returnExpr = "";
JClassType classReturnType = toImplement.getReturnType().isClass();
if (classReturnType != null
&& "java.lang.String".equals(classReturnType.getQualifiedSourceName())) {
returnExpr = "\"" + Generator.escape(def.getValues().get(0).toString())
+ "\"";
} else {
JPrimitiveType returnType = toImplement.getReturnType().isPrimitive();
if (returnType == null) {
logger.log(TreeLogger.ERROR, toImplement.getName()