package org.trimou.spec;
import java.util.HashMap;
import java.util.Map;
import org.trimou.lambda.Lambda;
import org.trimou.lambda.SpecCompliantLambda;
public final class Lambdas {
/**
* Template name -> lambda
*/
public static final Map<String, Lambda> testMap = init();
private static Map<String, Lambda> init() {
Map<String, Lambda> lambdas = new HashMap<>();
lambdas.put("Interpolation", new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return "world";
}
});
lambdas.put("Interpolation - Expansion", new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return "{{planet}}";
}
});
lambdas.put("Interpolation - Multiple Calls",
new SpecCompliantLambda() {
private int calls = 0;
@Override
public String invoke(String text) {
calls++;
return "" + calls;
}
});
lambdas.put("Escaping", new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return ">";
}
});
lambdas.put("Interpolation - Alternate Delimiters",
new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return "|planet| => {{planet}}";
}
});
lambdas.put("Section", new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return text.equals("{{x}}") ? "yes" : "no";
}
});
lambdas.put("Section - Expansion", new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return text + "{{planet}}" + text;
}
});
lambdas.put("Section - Alternate Delimiters",
new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return text + "{{planet}} => |planet|" + text;
}
});
lambdas.put("Section - Multiple Calls", new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return "__" + text + "__";
}
});
lambdas.put("Inverted Section", new SpecCompliantLambda() {
@Override
public String invoke(String text) {
return "false";
}
});
return lambdas;
}
}