package foundation.token; import java.util.HashSet; import java.util.Set; import foundation.variant.provider.DataEvent; import foundation.variant.provider.VariantProviderType; public class IOnlineUser extends IUser { protected static ThreadLocal localInstance; protected static AnymousOnlineUser anymousOnlineUser; public static String ProviderName = "OnlineUser"; public static Set VariantNames; static { localInstance = new ThreadLocal(); anymousOnlineUser = AnymousOnlineUser.getInstance(); VariantNames = new HashSet(); VariantNames.add("user.id"); VariantNames.add("user.code"); VariantNames.add("user.name"); } public static IOnlineUser getInstance() { IOnlineUser one = localInstance.get(); if (one == null) { one = anymousOnlineUser; } return one; } public boolean isAdmin() { return false; } public String getOnlineCode() { return anymousOnlineUser.getOnlineCode(); } public String getId() { return anymousOnlineUser.getId(); } public String getCode() { return anymousOnlineUser.getCode(); } public String getName() { return anymousOnlineUser.getName(); } public String getOrgId() { return anymousOnlineUser.getOrgId(); } public String getEmployeeId() { return null; } public String getEmployeeName() { return null; } public String getPositionId() throws Exception { return null; } public String getPositionCode() { return null; } public String getPositionField() throws Exception { return null; } public String getActorId() throws Exception { return null; } public String getActiveCapacityCode() { return null; } public String getAccountId() throws Exception { return null; } public String getCompanyId() throws Exception { return null; } public String getBUId() throws Exception { return null; } public static void setLocal(IOnlineUser user) { localInstance.set(user); } public boolean isOrgFrozen() { return false; } public boolean isAnymous() { return true; } public boolean isLimitActive() { return true; } @Override public String getProviderName() { return "User"; } @Override public VariantProviderType getProviderType() { return null; } @Override public Set getVariantNames() { return VariantNames; } @Override public boolean containsVariant(String name) { if (name == null) { return false; } name = name.toLowerCase(); return VariantNames.contains(name); } @Override public Object getVariantValue(DataEvent dataEvent, String variantName) { if ("user.id".equalsIgnoreCase(variantName)) { return "anymous"; } else if ("user.code".equalsIgnoreCase(variantName)) { return "anymous"; } else if ("user.name".equalsIgnoreCase(variantName)) { return "anymous"; } return null; } }