Refactor: Move formatter checks into getFormatter method

This makes the service method in XDocServlet leaner and easier to
read.

Change-Id: I5f92a6c205aa15de05acc12fbf65ac42c6906d49
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
index 2b981cb..70f9598 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
@@ -126,21 +126,8 @@
       MimeType mimeType = fileTypeRegistry.getMimeType(key.file, null);
       mimeType = new MimeType(FileContentUtil.resolveContentType(
           state, key.file, FileMode.FILE, mimeType.toString()));
-      FormatterProvider formatter = getFormatter(req, key);
-      if (isSafeImage(mimeType)) {
-        if (key.diffMode == DiffMode.NO_DIFF) {
-          // always return plain images when no diff is requested,
-          // use formatter on images only for diff mode
-          formatter = null;
-        }
-      } else {
-        if (formatter == null) {
-          throw new ResourceNotFoundException();
-        }
-      }
-      if (formatter == null && !isSafeImage(mimeType)) {
-        throw new ResourceNotFoundException();
-      }
+      FormatterProvider formatter = getFormatter(req, key, mimeType);
+
 
       validateDiffMode(key, formatter, mimeType);
 
@@ -262,13 +249,29 @@
     return state;
   }
 
-  private FormatterProvider getFormatter(HttpServletRequest req, ResourceKey key)
-      throws ResourceNotFoundException {
+  private FormatterProvider getFormatter(HttpServletRequest req,
+      ResourceKey key, MimeType mimeType) throws ResourceNotFoundException {
+    FormatterProvider formatter;
     if (req.getParameter("raw") != null) {
-      return formatters.getRawFormatter();
+      formatter = formatters.getRawFormatter();
     } else {
-      return formatters.get(getProject(key), key.file);
+      formatter = formatters.get(getProject(key), key.file);
     }
+    if (isSafeImage(mimeType)) {
+      if (key.diffMode == DiffMode.NO_DIFF) {
+        // always return plain images when no diff is requested,
+        // use formatter on images only for diff mode
+        formatter = null;
+      }
+    } else {
+      if (formatter == null) {
+        throw new ResourceNotFoundException();
+      }
+    }
+    if (formatter == null && !isSafeImage(mimeType)) {
+      throw new ResourceNotFoundException();
+    }
+    return formatter;
   }
 
   private boolean isSafeImage(MimeType mimeType) {