Fix minor code smells
[aai/search-data-service.git] / src / main / java / org / onap / aai / sa / rest / ApiUtils.java
index bbbc02b..f240561 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/**
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
  */
 package org.onap.aai.sa.rest;
 
+import com.google.common.base.Strings;
 import java.util.UUID;
 import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.Response.Status.Family;
 import org.onap.aai.cl.mdc.MdcContext;
 import org.onap.aai.sa.searchdbabstraction.util.SearchDbConstants;
 import org.slf4j.MDC;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 
-// Spring Imports
-
+/**
+ * Spring Imports.
+ *
+ */
 public class ApiUtils {
 
-    public static final String SEARCH_AUTH_POLICY_NAME = "search";
     public static final String URL_PREFIX = "services/search-data-service/v1/search";
+    public static final String SEARCH_AUTH_POLICY_NAME = "search";
+
+    private static final String URI_SEGMENT_INDEXES = "indexes";
+    private static final String URI_SEGMENT_DOCUMENTS = "documents";
 
     public enum Action {
         POST,
         GET,
         PUT,
         DELETE
-    };
+    }
 
     /**
      * This method uses the contents of the supplied HTTP headers and request structures to populate the MDC Context
@@ -50,18 +57,15 @@ public class ApiUtils {
      * @param headers - HTTP headers
      */
     protected static void initMdcContext(HttpServletRequest httpReq, HttpHeaders headers) {
-
         // Auto generate a transaction if we were not provided one.
         String transId = null;
         if (headers != null) {
             transId = headers.getFirst("X-TransactionId");
-
-            if ((transId == null) || (transId.equals(""))) {
+            if (Strings.isNullOrEmpty(transId)) {
                 transId = UUID.randomUUID().toString();
             }
         }
 
-
         String fromIp = (httpReq != null) ? httpReq.getRemoteHost() : "";
         String fromApp = (headers != null) ? headers.getFirst("X-FromAppId") : "";
 
@@ -73,57 +77,41 @@ public class ApiUtils {
     }
 
     public static String buildIndexUri(String index) {
-
         return (URL_PREFIX + "/indexes/") + index;
     }
 
     public static String buildDocumentUri(String index, String documentId) {
-
         return buildIndexUri(index) + "/documents/" + documentId;
     }
 
     public static boolean validateIndexUri(String uri) {
-
-        // If the URI starts with a leading '/' character, remove it.
         uri = uri.startsWith("/") ? uri.substring(1) : uri;
-
-        // Now, tokenize the URI string.
         String[] tokens = uri.split("/");
-
-        return (tokens.length == 6) && (tokens[4].equals("indexes"));
-
+        return (tokens.length == 6) && (tokens[4].equals(URI_SEGMENT_INDEXES));
     }
 
     public static boolean validateDocumentUri(String uri, boolean requireId) {
-
-        // If the URI starts with a leading '/' character, remove it.
         uri = uri.startsWith("/") ? uri.substring(1) : uri;
-
-        // Now, tokenize the URI string.
         String[] tokens = uri.split("/");
 
         if (requireId) {
-            return (tokens.length == 8) && (tokens[4].equals("indexes") && (tokens[6].equals("documents")));
+            return (tokens.length == 8)
+                    && (tokens[4].equals(URI_SEGMENT_INDEXES) && (tokens[6].equals(URI_SEGMENT_DOCUMENTS)));
         } else {
             return ((tokens.length == 8) || (tokens.length == 7))
-                    && (tokens[4].equals("indexes") && (tokens[6].equals("documents")));
+                    && (tokens[4].equals(URI_SEGMENT_INDEXES) && (tokens[6].equals(URI_SEGMENT_DOCUMENTS)));
         }
     }
 
     public static String extractIndexFromUri(String uri) {
-
-        // If the URI starts with a leading '/' character, remove it.
         uri = uri.startsWith("/") ? uri.substring(1) : uri;
 
-        // Now, tokenize the URI string.
         String[] tokens = uri.split("/");
 
         int i = 0;
         for (String token : tokens) {
-            if (token.equals("indexes")) {
-                if (i + 1 < tokens.length) {
-                    return tokens[i + 1];
-                }
+            if (token.equals(URI_SEGMENT_INDEXES) && i + 1 < tokens.length) {
+                return tokens[i + 1];
             }
             i++;
         }
@@ -132,19 +120,14 @@ public class ApiUtils {
     }
 
     public static String extractIdFromUri(String uri) {
-
-        // If the URI starts with a leading '/' character, remove it.
         uri = uri.startsWith("/") ? uri.substring(1) : uri;
 
-        // Now, tokenize the URI string.
         String[] tokens = uri.split("/");
 
         int i = 0;
         for (String token : tokens) {
-            if (token.equals("documents")) {
-                if (i + 1 < tokens.length) {
-                    return tokens[i + 1];
-                }
+            if (token.equals(URI_SEGMENT_DOCUMENTS) && i + 1 < tokens.length) {
+                return tokens[i + 1];
             }
             i++;
         }
@@ -153,29 +136,18 @@ public class ApiUtils {
     }
 
     public static String getHttpStatusString(int httpStatusCode) {
-        // Some of the status codes we use are still in draft state in the standards, and are not
-        // recognized in the javax library. We need to manually translate these to human-readable
-        // strings.
-        String statusString = "Unknown";
-        HttpStatus status = null;
-
         try {
-            status = HttpStatus.valueOf(httpStatusCode);
+            return HttpStatus.valueOf(httpStatusCode).getReasonPhrase();
         } catch (IllegalArgumentException e) {
-        }
-
-
-        if (status == null) {
-            switch (httpStatusCode) {
-                case 207:
-                    statusString = "Multi Status";
-                    break;
-                default:
+            if (207 == httpStatusCode) {
+                return "Multi-Status";
+            } else {
+                return "Unknown";
             }
-        } else {
-            statusString = status.getReasonPhrase();
         }
+    }
 
-        return statusString;
+    public static boolean isSuccessStatusCode(int statusCode) {
+        return Family.familyOf(statusCode).equals(Family.SUCCESSFUL);
     }
 }