Use Enum of change indexes instead of literals

Avoid the use of index name literals and rely on
Enum values.

Change-Id: I690755853a0fbf4eff2d2bc8e2765ace35e6162f
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
index a5a945c..7a378a5 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/AbstractIndexRestApiServlet.java
@@ -35,7 +35,7 @@
   private static final long serialVersionUID = -1L;
   private static final Logger logger = LoggerFactory.getLogger(AbstractIndexRestApiServlet.class);
 
-  private final String type;
+  private final IndexName indexName;
   private final boolean allowDelete;
   private final Striped<Lock> idLocks;
 
@@ -49,18 +49,29 @@
     }
   }
 
+  public enum IndexName {
+    CHANGE,
+    ACCOUNT,
+    GROUP;
+
+    @Override
+    public String toString() {
+      return name().toLowerCase();
+    }
+  }
+
   abstract T parse(String id);
 
   abstract void index(T id, Operation operation) throws IOException, OrmException;
 
-  AbstractIndexRestApiServlet(String type, boolean allowDelete) {
-    this.type = type;
+  AbstractIndexRestApiServlet(IndexName indexName, boolean allowDelete) {
+    this.indexName = indexName;
     this.allowDelete = allowDelete;
     this.idLocks = Striped.lock(10);
   }
 
-  AbstractIndexRestApiServlet(String type) {
-    this(type, false);
+  AbstractIndexRestApiServlet(IndexName indexName) {
+    this(indexName, false);
   }
 
   @Override
@@ -71,7 +82,8 @@
   @Override
   protected void doDelete(HttpServletRequest req, HttpServletResponse rsp) {
     if (!allowDelete) {
-      sendError(rsp, SC_METHOD_NOT_ALLOWED, String.format("cannot delete %s from index", type));
+      sendError(
+          rsp, SC_METHOD_NOT_ALLOWED, String.format("cannot delete %s from index", indexName));
     } else {
       process(req, rsp, Operation.DELETE);
     }
@@ -82,7 +94,7 @@
     rsp.setCharacterEncoding(UTF_8.name());
     String path = req.getPathInfo();
     T id = parse(path.substring(path.lastIndexOf('/') + 1));
-    logger.debug("{} {} {}", operation, type, id);
+    logger.debug("{} {} {}", operation, indexName, id);
     try {
       Context.setForwardedEvent(true);
       Lock idLock = idLocks.get(id);
@@ -95,9 +107,9 @@
       rsp.setStatus(SC_NO_CONTENT);
     } catch (IOException e) {
       sendError(rsp, SC_CONFLICT, e.getMessage());
-      logger.error("Unable to update {} index", type, e);
+      logger.error("Unable to update {} index", indexName, e);
     } catch (OrmException e) {
-      String msg = String.format("Error trying to find %s \n", type);
+      String msg = String.format("Error trying to find %s \n", indexName);
       sendError(rsp, SC_NOT_FOUND, msg);
       logger.debug(msg, e);
     } finally {
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java
index 94c9a4f..65ddcb2 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexAccountRestApiServlet.java
@@ -31,7 +31,7 @@
 
   @Inject
   IndexAccountRestApiServlet(AccountIndexer indexer) {
-    super("account");
+    super(IndexName.ACCOUNT);
     this.indexer = indexer;
   }
 
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java
index ec13d83..77baf15 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexChangeRestApiServlet.java
@@ -36,7 +36,7 @@
 
   @Inject
   IndexChangeRestApiServlet(ChangeIndexer indexer, SchemaFactory<ReviewDb> schemaFactory) {
-    super("change", true);
+    super(IndexName.CHANGE, true);
     this.indexer = indexer;
     this.schemaFactory = schemaFactory;
   }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java
index 0fcb0ca..0f92b8a 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/IndexGroupRestApiServlet.java
@@ -31,7 +31,7 @@
 
   @Inject
   IndexGroupRestApiServlet(GroupIndexer indexer) {
-    super("group");
+    super(IndexName.GROUP);
     this.indexer = indexer;
   }