package frame.role; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import frame.config.Loader; import frame.expression.GlobalVariant; import frame.expression.IVariantRequestListener; import frame.expression.VariantExistsException; import frame.expression.VariantRequestParams; public class UserVariantProvider extends Loader implements IVariantRequestListener { private static UserVariantProvider instance; private List variantNames; public UserVariantProvider() { variantNames = new ArrayList(); initVariantNames(); } public static synchronized UserVariantProvider getInstance() throws VariantExistsException { if (instance == null) { instance = new UserVariantProvider(); } return instance; } @Override public String getStringValue(String name, VariantRequestParams params) { HttpServletRequest request = params.getRequest(); if (request == null) { return null; } HttpSession session = request.getSession(); OnlineUser onlineUser = (OnlineUser) session.getAttribute(OnlineUser.class.getSimpleName()); if ("user.id".equals(name)) { return onlineUser.getId(); } else if ("userid".equals(name)) { return onlineUser.getId(); } else if ("username".equals(name)) { return onlineUser.getName(); } else if ("user.name".equals(name)) { return onlineUser.getName(); } else if ("user.emp_name".equals(name)) { return onlineUser.getEmp_name(); } return null; } @Override public List getVariantNames() { return variantNames; } public void initVariantNames() { variantNames.add("user.id"); variantNames.add("userid"); variantNames.add("user.emp_name"); } @Override public void load() throws Exception { GlobalVariant.regist(instance); } }