diff options
Diffstat (limited to 'common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java')
-rw-r--r-- | common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java | 92 |
1 files changed, 65 insertions, 27 deletions
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java index dcba5711d1..e14c98ee8f 100644 --- a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java +++ b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java @@ -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. @@ -20,39 +20,77 @@ 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; + } } |