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;
}