package com.google.sitebricks.headless; import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.Singleton; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * A renderer for pages that have no corresponding template, i.e. for headless * web services using the Reply.with() API. */ @Singleton public class ReplyBasedHeadlessRenderer implements HeadlessRenderer { private final Injector injector; @Inject public ReplyBasedHeadlessRenderer(Injector injector) { this.injector = injector; } public void render(HttpServletResponse response, Object o) throws IOException { if (null == o) { throw new RuntimeException("Sitebricks received a null reply from the resource."); } // Guaranteed by Sitebrick's page validator. assert o instanceof Reply : o.getClass(); Reply<?> reply = (Reply<?>)o; reply.populate(injector, response); } }