fd325ec8524e608fe1147928ecbc8d69d15bd87e
[epayment/food_payapi.git] /
1 package com.supwisdom.multitenant.impl;
2
3 import com.supwisdom.multitenant.TenantContext;
4 import com.supwisdom.multitenant.TenantContextHolderStrategy;
5
6 public class ThreadLocalTenantContextHolderStrategy implements TenantContextHolderStrategy {
7   private static final ThreadLocal<TenantContext> contextHolder = new ThreadLocal<>();
8
9   @Override
10   public TenantContext getContext() {
11     TenantContext context = contextHolder.get();
12     if (context == null) {
13       context = createEmptyContext();
14       contextHolder.set(context);
15     }
16     return context;
17   }
18
19   @Override
20   public void setContext(TenantContext tenant) {
21     contextHolder.set(tenant);
22   }
23
24   @Override
25   public void clearContext() {
26     contextHolder.remove();
27   }
28
29   @Override
30   public TenantContext createEmptyContext() {
31     return new TenantContextImpl();
32   }
33 }