package com.github.jsdossier.soy;
import static com.google.common.base.CaseFormat.LOWER_CAMEL;
import static com.google.common.base.CaseFormat.UPPER_CAMEL;
import static com.google.common.base.Preconditions.checkState;
import com.google.common.collect.ImmutableSet;
import com.google.template.soy.jssrc.restricted.JsExpr;
import com.google.template.soy.jssrc.restricted.SoyJsSrcFunction;
import java.util.List;
import java.util.Set;
import javax.inject.Inject;
import javax.inject.Singleton;
/**
* Function for sanitize a relative URL.
*/
@Singleton
final class SanitizeHtmlFunction implements SoyJsSrcFunction {
@Inject
SanitizeHtmlFunction() {}
@Override
public final String getName() {
String name = getClass().getSimpleName();
checkState(name.endsWith("Function"), "%s must end with 'Function'", name);
name = name.substring(0, name.length() - "Function".length());
name = UPPER_CAMEL.to(LOWER_CAMEL, name);
return name;
}
@Override
public JsExpr computeForJsSrc(List<JsExpr> args) {
JsExpr arg0 = args.get(0);
return new JsExpr(
"dossier.soyplugins.sanitizeHtml(" + arg0.getText() + ")", Integer.MAX_VALUE);
}
@Override
public Set<Integer> getValidArgsSizes() {
return ImmutableSet.of(1);
}
}