001 package org.kuali.common.jdbc.model.context;
002
003 import java.util.Properties;
004
005 import org.kuali.common.jdbc.model.Credentials;
006 import org.kuali.common.util.Assert;
007 import org.kuali.common.util.PropertyUtils;
008
009 public final class ConnectionContext {
010
011 private static final Properties DEFAULT_PROPERTIES = PropertyUtils.EMPTY;
012
013 public ConnectionContext(String url) {
014 this(url, Credentials.NO_USERNAME);
015 }
016
017 public ConnectionContext(String url, String username) {
018 this(url, username, Credentials.NO_PASSWORD);
019 }
020
021 public ConnectionContext(String url, String username, String password) {
022 this(url, new Credentials(username, password), DEFAULT_PROPERTIES);
023 }
024
025 public ConnectionContext(String url, Credentials credentials, Properties properties) {
026 Assert.noNulls(credentials, properties);
027 Assert.noBlanks(url);
028 this.url = url;
029 this.credentials = credentials;
030 this.properties = PropertyUtils.toImmutable(properties);
031 }
032
033 private final String url;
034 private final Credentials credentials;
035 private final Properties properties;
036
037 public String getUrl() {
038 return url;
039 }
040
041 public Credentials getCredentials() {
042 return credentials;
043 }
044
045 public Properties getProperties() {
046 return properties;
047 }
048 }