@Override protected void emitClass(TemplateProvider<?> provider, TemplateMetaModel template, Element[] elements, Writer writer) throws IOException { // Path.Absolute path = template.getPath(); // Template qualified class writer.append("package ").append(path.getDirs()).append(";\n"); writer.append("import ").append(TemplateDescriptor.class.getCanonicalName()).append(";\n"); writer.append("import ").append(TemplateService.class.getCanonicalName()).append(";\n"); writer.append("@").append(Generated.class.getName()).append("({})\n"); writer.append("public class ").append(path.getRawName()).append(" extends ").append(SimpleTag.class.getName()).append("\n"); writer.append("{\n"); writer.append("public static final long MD5 = 0x").append(Long.toHexString(template.templateModel.getMD5())).append("L;\n"); writer.append("public ").append(path.getRawName()).append("()\n"); writer.append("{\n"); writer.append("super(\""). append(path.getRawName()).append("\","). append("").append(provider.getTemplateStubType().getName()).append(".class"). append(");\n"); writer.append("}\n"); // Close class writer.append("}\n"); } }
@Override protected void emitClass(TemplateProvider<?> provider, TemplateMetaModel template, Element[] elements, Writer writer) throws IOException { // Path.Absolute path = template.getPath(); // Template qualified class writer.append("package ").append(path.getDirs()).append(";\n"); writer.append("import ").append(TemplateDescriptor.class.getCanonicalName()).append(";\n"); writer.append("import ").append(TemplateService.class.getCanonicalName()).append(";\n"); writer.append("@").append(Generated.class.getName()).append("({})\n"); writer.append("public class ").append(path.getRawName()).append(" extends ").append(SimpleTag.class.getName()).append("\n"); writer.append("{\n"); writer.append("public static final long MD5 = 0x").append(Long.toHexString(template.templateModel.getMD5())).append("L;\n"); writer.append("public ").append(path.getRawName()).append("()\n"); writer.append("{\n"); writer.append("super(\""). append(path.getRawName()).append("\","). append("").append(provider.getTemplateStubType().getName()).append(".class"). append(");\n"); writer.append("}\n"); // Close class writer.append("}\n"); } }
writer.append("import ").append(TemplateService.class.getCanonicalName()).append(";\n"); writer.append("@").append(Generated.class.getName()).append("({})\n"); writer.append("public class ").append(path.getRawName()).append(" extends ").append(juzu.template.Template.class.getName()).append("\n"); writer.append("{\n"); writer.append("@javax.inject.Inject\n"); writer.append("public ").append(path.getRawName()).append("("). append(TemplateService.class.getSimpleName()).append(" templatePlugin"). append(")\n");
writer.append("import ").append(TemplateService.class.getCanonicalName()).append(";\n"); writer.append("@").append(Generated.class.getName()).append("({})\n"); writer.append("public class ").append(path.getRawName()).append(" extends ").append(juzu.template.Template.class.getName()).append("\n"); writer.append("{\n"); writer.append("@javax.inject.Inject\n"); writer.append("public ").append(path.getRawName()).append("("). append(TemplateService.class.getSimpleName()).append(" templatePlugin"). append(")\n");
public static FileKey newName(Path.Absolute path) { return new FileKey(path.getDirs().toString(), path.getRawName(), path.getExt()); }
@Test public void testResolveDotInRawName() throws Exception { Name name = Name.parse("foo"); Path path = Path.parse("a.b.c"); Path.Absolute file = name.resolve(path); assertEquals("foo", file.getDirs().toString()); assertEquals("a.b.c", file.getSimpleName()); assertEquals("b.c", file.ext); assertEquals("a", file.getRawName()); assertEquals("foo.a", file.getName().toString()); }
@Test public void testResolveUp() throws Exception { Name name = Name.parse("foo.bar"); Path.Absolute file = name.resolve("../juu/daa.txt"); assertEquals("foo.juu", file.getDirs().toString()); assertEquals("daa.txt", file.getSimpleName()); assertEquals("txt", file.getExt()); assertEquals("daa", file.getRawName()); assertEquals("foo.juu.daa", file.getName().toString()); }
@Test public void testResolveUp() throws Exception { Name name = Name.parse("foo.bar"); Path.Absolute file = name.resolve("../juu/daa.txt"); assertEquals("foo.juu", file.getDirs().toString()); assertEquals("daa.txt", file.getSimpleName()); assertEquals("txt", file.getExt()); assertEquals("daa", file.getRawName()); assertEquals("foo.juu.daa", file.getName().toString()); }
@Override public final void emit(EmitContext context, TemplateModel<ASTNode.Template> templateModel) throws TemplateException, IOException { GroovyTemplateEmitter emitter = new GroovyTemplateEmitter(templateModel.getPath().getName()); EmitPhase tcc = new EmitPhase(context); tcc.emit(emitter, templateModel.getModel()); Path.Absolute path = templateModel.getPath(); path = path.as(path.getRawName() + "_", "groovy"); context.createResource(path, emitter.toString()); } }
@Test public void testResolveDotInRawName() throws Exception { Name name = Name.parse("foo"); Path path = Path.parse("a.b.c"); Path.Absolute file = name.resolve(path); assertEquals("foo", file.getDirs().toString()); assertEquals("a.b.c", file.getSimpleName()); assertEquals("b.c", file.ext); assertEquals("a", file.getRawName()); assertEquals("foo.a", file.getName().toString()); }
public static FileKey newName(Path.Absolute path) { return new FileKey(path.getDirs().toString(), path.getRawName(), path.getExt()); }
@Override public final void emit(EmitContext context, TemplateModel<ASTNode.Template> templateModel) throws TemplateException, IOException { GroovyTemplateEmitter emitter = new GroovyTemplateEmitter(templateModel.getPath().getName()); EmitPhase tcc = new EmitPhase(context); tcc.emit(emitter, templateModel.getModel()); Path.Absolute path = templateModel.getPath(); path = path.as(path.getRawName() + "_", "groovy"); context.createResource(path, emitter.toString()); } }