diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java deleted file mode 100644 index a793bb4e83..0000000000 --- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/ConnectionProfile.java +++ /dev/null @@ -1,259 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2007 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.db.internal; - -import java.text.Collator; -import java.util.NoSuchElementException; - -import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener; - -/** - * ConnectionProfile wrapper base class. - */ -public abstract class ConnectionProfile extends DTPWrapper implements Comparable<ConnectionProfile> { - - private Connection connection; // Lazy initialized - private Database database; // Lazy initialized - private String catalogName; // Catalog used for this profile - - private ConnectionListener connectionListener; - - private ConnectionProfileRepository profileRepository; - - // ********** constructors ********** - - static ConnectionProfile createProfile( ConnectionProfileRepository profileRepository, org.eclipse.datatools.connectivity.IConnectionProfile dtpProfile) { - return ( dtpProfile == null) ? NullConnectionProfile.instance() : new DTPConnectionProfileWrapper( profileRepository, dtpProfile); - } - - ConnectionProfile( ConnectionProfileRepository profileRepository) { - super(); - this.profileRepository = profileRepository; - this.connectionListener = buildConnectionListener(); - this.catalogName = ""; - } - - // ********** behavior ********** - - public abstract void connect(); - - public abstract void disconnect(); - - protected abstract Connection buildConnection(); - - protected abstract Database buildDatabase(); - - abstract void databaseChanged( Database db, int eventType); - - abstract void catalogChanged( Catalog catalog, Database db, int eventType); - - abstract void schemaChanged( Schema schema, Database db, int eventType); - - abstract void tableChanged( Table table, Schema schema, Database db, int eventType); - - protected void refreshDatabase() { - this.disposeDatabase(); - this.database = null; - } - - @Override - protected void dispose() { - this.disengageConnectionListener(); - - this.disposeConnection(); - this.disposeDatabase(); - } - - private void disposeConnection() { - if( this.connection != null) { - this.getConnection().dispose(); - } - } - - private void disposeDatabase() { - if( this.database != null) { - this.getDatabase().dispose(); - } - } - - // ********** queries ********** - - public Connection getConnection() { - - if( this.connection == null) { - this.connection = this.buildConnection(); - this.engageConnectionListener(); - - } - return this.connection; - } - - public Database getDatabase() { - - if( this.database == null) { - this.database = this.buildDatabase(); - this.setDefaultCatalogName(); - } - return this.database; - } - - public abstract String getDatabaseName(); - - public abstract String getDatabaseProduct(); - - public abstract String getDatabaseVendor(); - - public abstract String getDatabaseVersion(); - - public abstract String getDriverClass(); - - public abstract String getUrl(); - - public abstract String getUserName(); - - public abstract String getUserPassword(); - - public abstract String getDefaultSchema(); - - public abstract String getInstanceId(); - - public abstract String getProviderId(); - - public abstract String getDriverDefinitionId(); - - public abstract String getDriverJarList(); - - public abstract boolean isConnected(); - - @Override - protected boolean connectionIsOnline() { - return this.isConnected(); - } - - abstract boolean wraps( org.eclipse.datatools.connectivity.IConnectionProfile dtpProfile); - - public boolean isNull() { - return true; - } - - ConnectionProfileRepository getProfileRepository() { - return this.profileRepository; - } - - public String getCatalogName() { - return this.catalogName; - } - - /** - * Set the default catalog name for this profile. - */ - public void setDefaultCatalogName() { - this.setCatalogName( this.database.getDefaultCatalogName()); - } - - /** - * Can only set the catalog to use for this profile, when the database supports catalogs. - */ - public void setCatalogName( String catalogName) { - if( this.catalogName == catalogName) { - return; - } - if( this.database.supportsCatalogs()) { - String name = ( catalogName != null) ? catalogName : this.database.getDefaultCatalogName(); - - Catalog catalog = this.database.catalogNamed( name); - if( catalog == null) { - throw new NoSuchElementException(); - } - this.catalogName = name; - this.database.refresh(); - this.catalogChanged( catalog, this.database, ICatalogObjectListener.EventTypeEnumeration.ELEMENT_REFRESH); - } - else { - this.catalogName = ""; - this.database.refresh(); - } - } - - // ********** listeners ********** - - abstract public void addProfileListener( ProfileListener listener); - - abstract public void removeProfileListener( ProfileListener listener); - - abstract public void addConnectionListener( ConnectionListener listener); - - abstract public void removeConnectionListener( ConnectionListener listener); - - private ConnectionListener buildConnectionListener() { - return new ConnectionListener() { - - public void aboutToClose(Connection c) { - // not interested to this event. - } - - public void closed(Connection c) { - ConnectionProfile.this.refreshDatabase(); - } - - public void modified(Connection c) { - // not interested to this event. - return; - } - - public boolean okToClose(Connection c) { - // not interested to this event. - return true; - } - - public void opened(Connection c) { - ConnectionProfile.this.refreshDatabase(); - } - - public void databaseChanged(Connection c, final Database db) { - // not interested to this event. - return; - } - - public void schemaChanged(Connection c, final Schema schema) { - // not interested to this event. - return; - } - - public void tableChanged(Connection c, final Table table) { - // not interested to this event. - return; - } - }; - } - - protected void disengageConnectionListener() { - this.removeConnectionListener(); - } - - protected void engageConnectionListener() { - this.addConnectionListener(); - } - - private void addConnectionListener() { - this.addConnectionListener( this.connectionListener); - } - - private void removeConnectionListener() { - this.removeConnectionListener( this.connectionListener); - } - - // ********** Comparable implementation ********** - - public int compareTo( ConnectionProfile connectionProfile) { - return Collator.getInstance().compare( this.getName(), connectionProfile.getName()); - } - -} |