static Imports collectImports(CharSequence content) { try { ImportsBuilder importsBuilder = new ImportsBuilder(); rewrite(content, importsBuilder, ScanAtMost.IMPORTS); return Imports.of(importsBuilder.imports, importsBuilder.originalImports); } catch (UnsupportedEncodingException ex) { return Imports.empty(); } }
@Override public Naming requireNonConstant(Preference preference) { switch (preference) { case SUFFIX: return new PrefixSuffixNaming("", Usage.CAPITALIZED.apply(name)); case PREFIX: default: return new PrefixSuffixNaming(name, ""); } }
@Override public final void run(Invokation invokation) { Object param = invokation.param(0); Invokable original = param instanceof Templates.Invokable ? (Templates.Invokable) param : null; apply(invokation, toCharSequence(param), original); }
@Override public Invokable invoke(Invokation invokation, Object... parameters) { String packageName = parameters[0].toString(); String simpleName = parameters[1].toString(); Element originatingElement = (Element) parameters[2]; Invokable body = (Invokable) parameters[3]; ResourceKey key = new ResourceKey(packageName, simpleName, Delegates.unwrap(originatingElement)); SourceFile javaFile = getFiles().sourceFiles.get(key); body.invoke(new Invokation(javaFile.consumer)); javaFile.complete(); return null; } };
@Generator.Template @Generator.Import({ TypeElement.class, PackageElement.class }) public class Doer extends AbstractTemplate { public Set<? extends Element> elements() { return round().getElementsAnnotatedWith(Doit.class); } public List<Integer> range() { return ImmutableList.of(1, 2, 3, 4, 5); } }
@Override public Invokable invoke(Invokation invokation, Object... parameters) { String interfaceName = parameters[0].toString(); Invokable body = (Invokable) parameters[1]; ResourceKey key = new ResourceKey("", META_INF_SERVICES + interfaceName); AppendServiceFile servicesFile = getFiles().appendResourceFiles.get(key); body.invoke(new Invokation(servicesFile.consumer)); return null; } };
CharSequence toCharSequence() { if (arity == 0) { CharConsumer consumer = new CharConsumer(); invoke(new Invokation(consumer)); CharSequence cs = consumer.asCharSequence(); return cs; } return super.toString(); }
static CharSequence rewrite(CharSequence content) { try { return rewrite(content, new ImportsBuilder(), ScanAtMost.ALL); } catch (UnsupportedEncodingException ex) { return content; } }
@Metainf.Service @Generator.SupportedAnnotations(Mirror.Annotation.class) public class Processor extends AbstractGenerator { @Override protected void process() { invoke(new Generator_Mirrors().generate()); } }
private static OrderingProvider createProvider() { if (Compiler.ECJ.isPresent()) { return new EclipseCompilerOrderingProvider(); } return DEFAULT_PROVIDER; }
static Invokation initial() { return new Invokation(new CharConsumer(), ""); }
public static CharSequence toCharSequence(AnnotationMirror value) { PrintVisitor printer = new PrintVisitor(); printer.visitAnnotation(value, null); return printer.builder; }
@Override public Void visitLong(long l, Void p) { appendLiteral(l); return null; }
@SuppressWarnings("unchecked") public static <T> T unwrap(T object) { return object instanceof Delegated ? (T) ((Delegated) object).delegate() : object; } }
static CharSequence collectHeader(CharSequence content) { try { return rewrite(content, new ImportsBuilder(), ScanAtMost.HEADER); } catch (UnsupportedEncodingException ex) { return ""; } }
@Override public Void visitShort(short s, Void p) { appendLiteral(s); return null; }