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    }