/sitebricks/src/main/java/com/google/sitebricks/rendering/control/TextWidget.java
http://github.com/dhanji/sitebricks · Java · 43 lines · 28 code · 10 blank · 5 comment · 1 complexity · 335f480401e76bd9e98508d686275f4e MD5 · raw file
- package com.google.sitebricks.rendering.control;
- import com.google.sitebricks.Renderable;
- import com.google.sitebricks.Respond;
- import com.google.sitebricks.compiler.EvaluatorCompiler;
- import com.google.sitebricks.compiler.ExpressionCompileException;
- import com.google.sitebricks.compiler.Token;
- import com.google.sitebricks.rendering.SelfRendering;
- import net.jcip.annotations.ThreadSafe;
- import java.util.Collections;
- import java.util.List;
- import java.util.Set;
- /**
- * @author Dhanji R. Prasanna (dhanji@gmail.com)
- */
- @ThreadSafe @SelfRendering
- class TextWidget implements Renderable {
- private final List<Token> tokenizedTemplate; //TODO store some metrics to allocate buffers later
- TextWidget(String template, EvaluatorCompiler compiler) throws ExpressionCompileException {
- //compile token stream
- tokenizedTemplate = compiler.tokenizeAndCompile(template);
- }
- public void render(Object bound, Respond respond) {
- //render template from tokens
- StringBuilder builder = new StringBuilder();
- for (Token token : tokenizedTemplate) {
- builder.append(token.render(bound));
- }
- respond.write(builder.toString());
- }
- public <T extends Renderable> Set<T> collect(Class<T> clazz) {
- return Collections.emptySet();
- }
- }