Advise against using Renderer directly
Except for streaming callers, servlets should be using the BaseServlet
render methods to ensure common Soy data entries like "breadcrumbs"
get populated correctly.
Change-Id: I0e78e46b5ff83cf60efbf540a080073aac617841
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java b/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java
index 8733d01..6965b81 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/Renderer.java
@@ -36,7 +36,12 @@
import javax.servlet.http.HttpServletResponse;
-/** Renderer for Soy templates used by Gitiles. */
+/**
+ * Renderer for Soy templates used by Gitiles.
+ * <p>
+ * Most callers should not use the methods in this class directly, and instead
+ * use one of the HTML methods in {@link BaseServlet}.
+ */
public abstract class Renderer {
// Must match .streamingPlaceholder.
private static final String PLACEHOLDER = "id=\"STREAMED_OUTPUT_BLOCK\"";
@@ -99,11 +104,7 @@
this.globals = ImmutableMap.copyOf(allGlobals);
}
- public void render(HttpServletResponse res, String templateName) throws IOException {
- render(res, templateName, ImmutableMap.<String, Object> of());
- }
-
- public void render(HttpServletResponse res, String templateName, Map<String, ?> soyData)
+ void render(HttpServletResponse res, String templateName, Map<String, ?> soyData)
throws IOException {
res.setContentType("text/html");
res.setCharacterEncoding("UTF-8");
@@ -112,8 +113,8 @@
res.getOutputStream().write(data);
}
- public OutputStream renderStreaming(HttpServletResponse res, String templateName,
- Map<String, ?> soyData) throws IOException {
+ OutputStream renderStreaming(HttpServletResponse res, String templateName, Map<String, ?> soyData)
+ throws IOException {
final String html = newRenderer(templateName)
.setData(soyData)
.render();