Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.google.sitebricks.rendering.control;
 

Author(s):
Dhanji R. Prasanna (dhanji@gmail.com)
class EmbedWidget implements Renderable {
  private final Map<StringStringbindExpressions;
  private final Map<StringArgumentWidgetarguments;
  private final Evaluator evaluator;
  private final PageBook pageBook;
  private final String targetPage;
  private Provider<Requestrequest;
  public EmbedWidget(Map<StringArgumentWidgetargumentsString expression,
                     Evaluator evaluatorPageBook pageBookString targetPage) {
    this. = arguments;
    this. = evaluator;
    this. = pageBook;
    this. = targetPage.toLowerCase();
    //parse expression list
    this. = Parsing.toBindMap(expression);
  }
  public void render(Object boundRespond respond) {
    //create an instance of the embedded page
    Object pageObject = page.instantiate();
    //bind parameters to it as necessary
    for (Map.Entry<StringStringentry : .entrySet()) {
      .write(entry.getKey(), pageObject.evaluate(entry.getValue(), bound));
    }
    //chain to embedded page (widget), with arguments
    EmbeddedRespond embed = .get();
    Request req = .get();
    try {
      page.doMethod(req.method(), pageObject""req);
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
    page.widget().render(pageObjectembed);
    //extract and write embedded response to enclosing page's respond
    respond.writeToHead(embed.toHeadString()); //TODO only write @Require tags
    respond.write(embed.toString());
    embed.clear();
  }
  public <T extends RenderableSet<T> collect(Class<T> clazz) {
    return Collections.emptySet();
  }
  public void init(EmbeddedRespondFactory factoryProvider<Requestrequest) {
    this. = factory;
    this. = request;
  }
New to GrepCode? Check out our FAQ X