Catalog alignment
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / util / ThreadLocalsHolder.java
index dcba571..e14c98e 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
 package org.openecomp.sdc.common.util;
 
+import org.openecomp.sdc.common.api.FilterDecisionEnum;
+import org.openecomp.sdc.common.datastructure.UserContext;
+
 public class ThreadLocalsHolder {
 
-    private static final ThreadLocal<String> UUID_THREAD_LOCAL = new ThreadLocal<>();
-    private static final ThreadLocal<Long> REQUEST_START_TIME_THREAD_LOCAL = new ThreadLocal<>();
-    private static final ThreadLocal<Boolean> IS_MDC_PROCESSED_THREAD_LOCAL = ThreadLocal.withInitial(() -> false);
+       private static final ThreadLocal<String> uuidThreadLocal = new ThreadLocal<>();
+       private static final ThreadLocal<Long> requestStartTimeThreadLocal = new ThreadLocal<>();
+       private static final ThreadLocal<FilterDecisionEnum> apiType = new ThreadLocal<>();
+       private static final ThreadLocal<Boolean> isMdcProcessedThreadLocal = new ThreadLocal<Boolean>() {
+               @Override
+               protected Boolean initialValue() {
+                       return false;
+               }
+       };
 
-    public static void setMdcProcessed(Boolean isMdcProcessed) {
-        IS_MDC_PROCESSED_THREAD_LOCAL.set(isMdcProcessed);
-    }
 
-    public static void setUuid(String uuid) {
-        UUID_THREAD_LOCAL.set(uuid);
-    }
+       private static final ThreadLocal<UserContext> userContextThreadLocal = new ThreadLocal<>();
 
-    public static void setRequestStartTime(Long requestStartTime) {
-        REQUEST_START_TIME_THREAD_LOCAL.set(requestStartTime);
-    }
+       public static final UserContext getUserContext() {return userContextThreadLocal.get();  }
 
-    public static String getUuid() {
-        return UUID_THREAD_LOCAL.get();
-    }
+       public static void setUserContext(UserContext userContext) {userContextThreadLocal.set(userContext);    }
 
-    public static Long getRequestStartTime() {
-        return REQUEST_START_TIME_THREAD_LOCAL.get();
-    }
+       public static void setMdcProcessed(Boolean isMdcProcessed) {
+               isMdcProcessedThreadLocal.set(isMdcProcessed);
+       }
 
-    public static Boolean isMdcProcessed() {
-        return IS_MDC_PROCESSED_THREAD_LOCAL.get();
-    }
+       public static void setUuid(String uuid) {
+               uuidThreadLocal.set(uuid);
+       }
+
+       public static void setRequestStartTime(Long requestStartTime) {
+               requestStartTimeThreadLocal.set(requestStartTime);
+       }
 
-    public static void cleanup() {
-        UUID_THREAD_LOCAL.remove();
-        REQUEST_START_TIME_THREAD_LOCAL.remove();
-        IS_MDC_PROCESSED_THREAD_LOCAL.remove();
+       public static String getUuid() {
+               return uuidThreadLocal.get();
+       }
+
+       public static Long getRequestStartTime() {
+               return requestStartTimeThreadLocal.get();
+       }
+
+       public static Boolean isMdcProcessed() {
+               return isMdcProcessedThreadLocal.get();
+       }
+
+       public static void cleanup() {
+               uuidThreadLocal.remove();
+               requestStartTimeThreadLocal.remove();
+               isMdcProcessedThreadLocal.remove();
+               userContextThreadLocal.remove();
+               apiType.remove();
+       }
+
+       public static FilterDecisionEnum getApiType() {
+               return apiType.get();
+       }
+       public static void setApiType(FilterDecisionEnum filterDecisionEnum) {
+               apiType.set(filterDecisionEnum);
+       }
+
+
+    public static boolean isInternalRequest() {
+               if (getApiType().equals(FilterDecisionEnum.INTERNAL)){
+                       return true;
+               } else return false;
     }
+
+       public static boolean isExternalRequest() {
+               if (getApiType().equals(FilterDecisionEnum.EXTERNAL)){
+                       return true;
+               } else return false;
+       }
 }