@Override @Nullable public Invokable invoke(Invokation invokation, Object... parameters) { invokation.out(parameters[0].toString().length()); return null; } };
@Override void apply(Invokation invokation, CharSequence content, @Nullable Templates.Invokable original) { String collapsed = CharMatcher.whitespace().trimAndCollapseFrom(content, ' '); int estimatedLimitOnThisLine = LIMIT - invokation.consumer.getCurrentIndentation().length(); if (collapsed.length() < estimatedLimitOnThisLine) { invokation.out(collapsed); } else { if (original != null) { original.invoke(invokation); } else { invokation.out(content); } } } };
@Override void apply(Invokation invokation, CharSequence content, @Nullable Templates.Invokable original) { invokation.out(CharMatcher.whitespace().trimFrom(content)); } };
void _t1__generateMirror(org.immutables.generator.Templates.Invokation __) { __.dl();final org.immutables.mirror.processor.Mirrors.MirrorModel m = $cast(__.param(0)); __.ln(); __.out("package "); $(__, m.$$package); __.out(";").ln(); __.ln(); __.out("import javax.lang.model.element.*;").ln(); __.out("import javax.lang.model.type.*;").ln(); __.out("import javax.lang.model.util.*;").ln(); __.out("import "); {__.out("co"); $(__, "m.google.com"); __.out("mon"); __.out(".base.Verify;").ln(); __.out("import "); {__.out("co"); $(__, "m.google.com"); __.out("mon"); __.out(".base.Preconditions;").ln(); __.out("import "); {__.out("co"); $(__, "m.google.com"); __.out("mon"); __.out(".base.Optional;").ln(); __.out("import "); {__.out("co");
}};__.dl();__.ln(); __.ln(); __.out("private static class "); $(__, toUpper, a.name); __.out("Extractor extends SimpleAnnotationValueVisitor7<Void, Void> {").ln(); __.dl(); if ($if(a.isArray)) { __.dl();__.ln(); __.out(" "); $(__, targetType); $(__, brackets); __.out(" values;").ln(); __.out(" int position;").ln(); __.ln(); __.out(" @Override").ln(); __.out(" "); __.dl(); if ($if(a.kind.isType())) { __.dl();__.ln(); __.out(" public Void visitType(TypeMirror value, Void p) {").ln(); __.out(" this.values"); $(__, "["); __.out("position++"); $(__, "]"); __.out(" = value;").ln(); __.out(" "); } else if ($if(a.kind.isEnum())) { __.dl();__.ln(); __.out(" public Void visitEnumConstant(VariableElement value, Void p) {").ln();
if ($if(a.isArray)) { __.dl();__.ln(); __.out(" java.util.Arrays.equals("); $(__, getThis); __.out(", "); $(__, getOther); __.out(")").ln(); } else if ($if(a.isFloat())) { __.dl();__.ln(); __.out(" Float.floatToIntBits("); $(__, getThis); __.out(") == Float.floatToIntBits("); $(__, getOther); __.out(")").ln(); } else if ($if(a.isDouble())) { __.dl();__.ln(); __.out(" Double.doubleToLongBits("); $(__, getThis); __.out(") == Double.doubleToLongBits("); $(__, getOther); __.out(")").ln(); } else if ($if(a.kind.isPrimitive())) { __.dl();__.ln(); __.out(" "); $(__, getThis); __.out(" == "); $(__, getOther); __.ln();
@Override public void run(org.immutables.generator.Templates.Invokation __) { __.dl();__.ln(); __.out(" "); __.dl(); if ($if(a.kind.isType())) { __.dl();__.ln(); __.out(" TypeMirror").ln(); __.out(" "); } else if ($if(a.kind.isAnnotation())) { __.dl();__.ln(); __.out(" AnnotationMirror").ln(); __.out(" "); } else { __.dl();__.ln(); __.out(" "); $(__, a.type); __.ln(); __.out(" "); } __.dl();__.ln(); __.dl(); }}); __.dl();
void _t0__generate(org.immutables.generator.Templates.Invokation __) { __.dl();__.ln(); __.out(" "); {final org.immutables.generator.Templates.Iteration _it1 = new org.immutables.generator.Templates.Iteration(); for (final org.immutables.mirror.processor.Mirrors.MirrorModel model : $in(allMirrors())) { __.dl();__.ln(); $(__, output.java, model.$$package, $(model.name, "Mirror"), model.element, new org.immutables.generator.Templates.Fragment(0) { @Override public void run(org.immutables.generator.Templates.Invokation __) { __.dl();__.ln(); $(__, generateMirror, model); __.ln(); __.dl(); }}); __.ln(); __.out(" "); __.dl();_it1.index++; _it1.first = false; }} __.dl();__.ln(); __.dl(); };
@Override public @Nullable Invokable invoke(Invokation invokation, Object... parameters) { EncodedElement el = (EncodedElement) parameters[0]; @Nullable Map<Binding, String> overrideBindings = null; if (el.params().size() == 1 && parameters.length > 1) { overrideBindings = ImmutableMap.of( Binding.newTop(el.firstParam().name()), parameters[1].toString()); } Map<Binding, String> contextBindings = el.inBuilder() ? builderBindings : bindings; Code.Interpolator interpolator = new Code.Interpolator(rawName(), contextBindings, overrideBindings); if (isInlined(el)) { printWithIndentation(invokation, interpolator.apply(el.oneLiner())); } else { invokation.out(contextBindings.get(el.asBinding())).out("("); boolean notFirst = false; for (Param p : el.params()) { if (notFirst) { invokation.out(", "); } notFirst = true; Binding binding = Code.Binding.newTop(p.name()); invokation.out(interpolator.dereference(binding)); } invokation.out(")"); } return null; } };
public static void $(Invokation invokation, Object object) { invokation.out(object); }
public static <A, B> void $( Invokation invokation, A left, Binary<? super A, ? super B, ?> binary, B right) { invokation.out($(left, binary, right)); }
@Override void apply(Invokation invokation, CharSequence content, @Nullable Templates.Invokable original) { boolean hasNonWhitespace = !CharMatcher.whitespace().matchesAllOf(content); if (hasNonWhitespace) { if (original != null) { original.invoke(invokation); } else { invokation.out(content); } } } };
public static void $(Invokation invokation, String string) { invokation.out(string); }
public static <F> void $(Invokation invokation, Predicate<? super F> predicate, F value) { invokation.out($(predicate, value)); }
public Invokation out(Object... objects) { for (Object object : objects) { out(object); } return this; }