private void render(Object obj, StringBuilder result) { render(obj, result, false); }
public String render(Object o) { StringBuilder result = new StringBuilder(template.length()); render(o, result); return result.toString(); }
String blockingQueueClassFile = blockingTemplate.render(model);
private void render(Object obj, StringBuilder result, boolean last) { index = 0; while(scanNextTag()) { copyPrefixTo(result); index += 2; if (isLoopTag()) { index++; String tagName = readTagName(); Template body = extractLoopBody(tagName); List<?> values = (List<?>) readTagValue(tagName, obj, last); int lastIndex = values.size() - 1; for (int i = 0; i < values.size(); i++) { body.render(values.get(i), result, i == lastIndex); } } else { String tagName = readTagName(); result.append(readTagValue(tagName, obj, false)); } } copySuffixTo(result); }
public <I> I newFlyweight(Class<I> implementationParent, String templateFileName, Template template, Object... args) { Class<?>[] constructorParameterTypes = getTypes(args); ClassViewModel model = new ClassViewModel(implementationParent, constructorParameterTypes, structInterface, inspector); String source = template.render(model); debugLogSource(source); CompilationResult result = compiler.compile(model.className(), source); checkCompileFailures(templateFileName, result); return instantiateImplementation(constructorParameterTypes, model.className(), result, args); }