package org.dayatang.dsrouter.context.memory; import org.dayatang.dsrouter.context.GlobalLoginDataSourceContext; import java.util.HashMap; import java.util.Map; import java.util.Properties; public class InMemoryDataSourceContext extends GlobalLoginDataSourceContext { /** * */ private static final long serialVersionUID = 2074938459585490033L; private Map<String, String> urlMapping = new HashMap<String, String>(); private Map<String, String> schemaMapping = new HashMap<String, String>(); private Map<String, Properties> propertiesMapping = new HashMap<String, Properties>(); /* * getter and setter */ public Map<String, String> getUrlMapping() { return urlMapping; } public void setUrlMapping(Map<String, String> urlMapping) { this.urlMapping = urlMapping; } public Map<String, String> getSchemaMapping() { return schemaMapping; } public void setSchemaMapping(Map<String, String> schemaMapping) { this.schemaMapping = schemaMapping; } public Map<String, Properties> getPropertiesMapping() { return propertiesMapping; } public void setPropertiesMapping(Map<String, Properties> propertiesMapping) { this.propertiesMapping = propertiesMapping; } /* * method */ @Override public Properties getProperties() { return propertiesMapping.get(determineCurrentLookupKey()); } @Override public String getSchema() { return schemaMapping.get(determineCurrentLookupKey()); } @Override public String getUrl() { return urlMapping.get(determineCurrentLookupKey()); } protected Object determineCurrentLookupKey() { return ContextHolder.getContextType(); } }