package clear.transaction.identity; import java.util.HashMap; import java.util.Map; public class IdentityRack { private static ThreadLocal<Map<String, Object>> s_tlsEntityMap = new ThreadLocal<Map<String, Object>>() { protected synchronized Map<String, Object> initialValue() { return new HashMap<String, Object>(); } }; public static Object getIdentity( String domain, String property, Object oldValue) { Map<String, Object> map = s_tlsEntityMap.get(); String key = domain + "_" + property + "_" + oldValue; Object newValue = map.get(key); return (newValue == null) ? oldValue : newValue; } public static void setIdentity( String domain, String property, Object oldValue, Object newValue) { String key = domain + "_" + property + "_" + oldValue; Map<String, Object> map = s_tlsEntityMap.get(); map.put(key, newValue); } }