GitilesUrls: Replace Function with regular method

Change-Id: I139079bb3c51247384da14d79508051eec186195
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesUrls.java b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesUrls.java
index 2d07c49..27d4a4b 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesUrls.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesUrls.java
@@ -16,7 +16,6 @@
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import com.google.common.base.Function;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import javax.servlet.http.HttpServletRequest;
@@ -32,22 +31,18 @@
    * character that should not be encoded, while almost any other non-alpha, non-numeric character
    * will be encoded using URL style encoding.
    */
-  Function<String, String> NAME_ESCAPER =
-      new Function<String, String>() {
-        @Override
-        public String apply(String s) {
-          try {
-            return URLEncoder.encode(s, UTF_8.name())
-                .replace("%2F", "/")
-                .replace("%2f", "/")
-                .replace("+", "%20")
-                .replace("%2B", "+")
-                .replace("%2b", "+");
-          } catch (UnsupportedEncodingException e) {
-            throw new IllegalStateException(e);
-          }
-        }
-      };
+  static String escapeName(String name) {
+    try {
+      return URLEncoder.encode(name, UTF_8.name())
+          .replace("%2F", "/")
+          .replace("%2f", "/")
+          .replace("+", "%20")
+          .replace("%2B", "+")
+          .replace("%2b", "+");
+    } catch (UnsupportedEncodingException e) {
+      throw new IllegalStateException(e);
+    }
+  }
 
   /**
    * Return the name of the host from the request.
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java
index c792634..3468303 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/GitilesView.java
@@ -19,7 +19,7 @@
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
-import static com.google.gitiles.GitilesUrls.NAME_ESCAPER;
+import static com.google.gitiles.GitilesUrls.escapeName;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -714,13 +714,13 @@
       default:
         throw new IllegalStateException("Unknown view type: " + type);
     }
-    String baseUrl = NAME_ESCAPER.apply(url.toString());
+    String baseUrl = escapeName(url.toString());
     url = new StringBuilder();
     if (!params.isEmpty()) {
       url.append('?').append(paramsToString(params));
     }
     if (!Strings.isNullOrEmpty(anchor)) {
-      url.append('#').append(NAME_ESCAPER.apply(anchor));
+      url.append('#').append(escapeName(anchor));
     }
     return baseUrl + url;
   }
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java
index 4b107c3..d10060b 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/HostIndexServlet.java
@@ -187,7 +187,7 @@
           writer.write(ref);
           writer.write(' ');
         }
-        writer.write(GitilesUrls.NAME_ESCAPER.apply(stripPrefix(prefix, repo.name)));
+        writer.write(GitilesUrls.escapeName(stripPrefix(prefix, repo.name)));
         writer.write('\n');
       }
     }
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/GitilesUrlsTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/GitilesUrlsTest.java
index 4f85bc2..c8c6cfc 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/GitilesUrlsTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/GitilesUrlsTest.java
@@ -15,7 +15,7 @@
 package com.google.gitiles;
 
 import static com.google.common.truth.Truth.assertThat;
-import static com.google.gitiles.GitilesUrls.NAME_ESCAPER;
+import static com.google.gitiles.GitilesUrls.escapeName;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -26,31 +26,31 @@
 public class GitilesUrlsTest {
   @Test
   public void nameEscaperEscapesAppropriateSpecialCharacters() throws Exception {
-    assertThat(NAME_ESCAPER.apply("foo_bar")).isEqualTo("foo_bar");
-    assertThat(NAME_ESCAPER.apply("foo-bar")).isEqualTo("foo-bar");
-    assertThat(NAME_ESCAPER.apply("foo%bar")).isEqualTo("foo%25bar");
-    assertThat(NAME_ESCAPER.apply("foo&bar")).isEqualTo("foo%26bar");
-    assertThat(NAME_ESCAPER.apply("foo(bar")).isEqualTo("foo%28bar");
-    assertThat(NAME_ESCAPER.apply("foo)bar")).isEqualTo("foo%29bar");
-    assertThat(NAME_ESCAPER.apply("foo:bar")).isEqualTo("foo%3Abar");
-    assertThat(NAME_ESCAPER.apply("foo;bar")).isEqualTo("foo%3Bbar");
-    assertThat(NAME_ESCAPER.apply("foo=bar")).isEqualTo("foo%3Dbar");
-    assertThat(NAME_ESCAPER.apply("foo?bar")).isEqualTo("foo%3Fbar");
-    assertThat(NAME_ESCAPER.apply("foo[bar")).isEqualTo("foo%5Bbar");
-    assertThat(NAME_ESCAPER.apply("foo]bar")).isEqualTo("foo%5Dbar");
-    assertThat(NAME_ESCAPER.apply("foo{bar")).isEqualTo("foo%7Bbar");
-    assertThat(NAME_ESCAPER.apply("foo}bar")).isEqualTo("foo%7Dbar");
+    assertThat(escapeName("foo_bar")).isEqualTo("foo_bar");
+    assertThat(escapeName("foo-bar")).isEqualTo("foo-bar");
+    assertThat(escapeName("foo%bar")).isEqualTo("foo%25bar");
+    assertThat(escapeName("foo&bar")).isEqualTo("foo%26bar");
+    assertThat(escapeName("foo(bar")).isEqualTo("foo%28bar");
+    assertThat(escapeName("foo)bar")).isEqualTo("foo%29bar");
+    assertThat(escapeName("foo:bar")).isEqualTo("foo%3Abar");
+    assertThat(escapeName("foo;bar")).isEqualTo("foo%3Bbar");
+    assertThat(escapeName("foo=bar")).isEqualTo("foo%3Dbar");
+    assertThat(escapeName("foo?bar")).isEqualTo("foo%3Fbar");
+    assertThat(escapeName("foo[bar")).isEqualTo("foo%5Bbar");
+    assertThat(escapeName("foo]bar")).isEqualTo("foo%5Dbar");
+    assertThat(escapeName("foo{bar")).isEqualTo("foo%7Bbar");
+    assertThat(escapeName("foo}bar")).isEqualTo("foo%7Dbar");
   }
 
   @Test
   public void nameEscaperDoesNotEscapeSlashes() throws Exception {
-    assertThat(NAME_ESCAPER.apply("foo/bar")).isEqualTo("foo/bar");
+    assertThat(escapeName("foo/bar")).isEqualTo("foo/bar");
   }
 
   @Test
   public void nameEscaperEscapesSpacesWithPercentInsteadOfPlus() throws Exception {
-    assertThat(NAME_ESCAPER.apply("foo+bar")).isEqualTo("foo+bar");
-    assertThat(NAME_ESCAPER.apply("foo bar")).isEqualTo("foo%20bar");
-    assertThat(NAME_ESCAPER.apply("foo%20bar")).isEqualTo("foo%2520bar");
+    assertThat(escapeName("foo+bar")).isEqualTo("foo+bar");
+    assertThat(escapeName("foo bar")).isEqualTo("foo%20bar");
+    assertThat(escapeName("foo%20bar")).isEqualTo("foo%2520bar");
   }
 }