Refactor XDocServlet: Move image checks into helper methods

The code in XDocServlet grew over time. Due to this it became less
readable and by now the control flow is difficult to understand.

This is the first change in a series that refactors the XDocServlet to
make the code better readable again. The refactoring is split into
small steps so that reviewers can easier follow what is done.

Change-Id: I45f556ca57622038d08c1b41efd182eddaf9c9b9
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 f557bee..e281ef3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
@@ -130,9 +130,7 @@
       formatter = formatters.getRawFormatter();
     } else {
       formatter = formatters.get(state, key.file);
-      if (formatter == null
-          && !("image".equals(mimeType.getMediaType())
-              && fileTypeRegistry.isSafeInline(mimeType))) {
+      if (formatter == null && !isSafeImage(mimeType)) {
         Resource.NOT_FOUND.send(req, res);
         return;
       }
@@ -193,7 +191,7 @@
         Resource rsc;
         if (formatter != null) {
           rsc = docCache.get(formatter, key.project, key.file, revId);
-        } else if ("image".equals(mimeType.getMediaType())) {
+        } else if (isImage(mimeType)) {
           rsc = getImageResource(repo, revId, key.file);
         } else {
           rsc = Resource.NOT_FOUND;
@@ -236,8 +234,7 @@
         byte[] content = loader.getBytes(Integer.MAX_VALUE);
 
         MimeType mimeType = fileTypeRegistry.getMimeType(file, content);
-        if (!"image".equals(mimeType.getMediaType())
-            || !fileTypeRegistry.isSafeInline(mimeType)) {
+        if (!isSafeImage(mimeType)) {
           return Resource.NOT_FOUND;
         }
         return new SmallResource(content)
@@ -254,6 +251,14 @@
     }
   }
 
+  private boolean isSafeImage(MimeType mimeType) {
+    return isImage(mimeType) && fileTypeRegistry.isSafeInline(mimeType);
+  }
+
+  private static boolean isImage(MimeType mimeType) {
+    return "image".equals(mimeType.getMediaType());
+  }
+
   private static String computeETag(Project.NameKey project, ObjectId revId,
       String file) {
     return Hashing.md5().newHasher()