package com.google.sitebricks.rendering.control; import com.google.inject.ImplementedBy; import com.google.sitebricks.Renderable; import com.google.sitebricks.compiler.EvaluatorCompiler; import com.google.sitebricks.compiler.ExpressionCompileException; import com.google.sitebricks.compiler.RepeatToken; import java.util.Map; /** * @author Dhanji R. Prasanna (dhanji@gmail com) */ @ImplementedBy(DefaultWidgetRegistry.class) public interface WidgetRegistry { void add(String key, Class<? extends Renderable> widget); boolean isSelfRendering(String widget); RepeatToken parseRepeat(String expression); XmlWidget xmlWidget(WidgetChain childsChildren, String elementName, Map<String, String> attribs, EvaluatorCompiler compiler) throws ExpressionCompileException; Renderable newWidget(String key, String expression, WidgetChain widgetChain, EvaluatorCompiler compiler) throws ExpressionCompileException; Renderable requireWidget(XmlWidget widget) throws ExpressionCompileException; Renderable textWidget(String template, EvaluatorCompiler compiler) throws ExpressionCompileException; Renderable rawTextWidget(String template, EvaluatorCompiler compiler) throws ExpressionCompileException; Renderable xmlDirectiveWidget(String wholeDeclaration, EvaluatorCompiler evaluatorCompiler) throws ExpressionCompileException; void addEmbed(String embedAs); void addArgument(String callWith); Renderable headWidget(WidgetChain childsChildren, Map<String, String> attribs, EvaluatorCompiler evaluatorCompiler) throws ExpressionCompileException; }