Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java229
1 files changed, 0 insertions, 229 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java
deleted file mode 100644
index d8b1dadb9e..0000000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/DTPDatabaseWrapper.java
+++ /dev/null
@@ -1,229 +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.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
-import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObjectListener;
-import org.eclipse.emf.common.util.EList;
-
-/**
- * Wrap a DTP Database
- */
-public final class DTPDatabaseWrapper extends Database {
-
- final ConnectionProfile profile;
- final org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase;
- private ICatalogObjectListener databaseListener;
-
- private Set<Catalog> catalogs; // lazy-initialized
- private Set<Schema> schemata; // lazy-initialized
-
- DTPDatabaseWrapper( ConnectionProfile profile, org.eclipse.datatools.modelbase.sql.schema.Database dtpDatabase) {
- super();
- this.dtpDatabase = dtpDatabase;
- this.profile = profile;
- this.initialize();
- }
-
- // ********** behavior **********
-
- private void initialize() {
-
- if( this.connectionIsOnline()) {
- this.databaseListener = this.buildDatabaseListener();
- this.addCatalogObjectListener(( ICatalogObject) this.dtpDatabase, this.databaseListener);
- }
- }
-
- @Override
- protected boolean connectionIsOnline() {
- return this.profile.isConnected();
- }
-
- private ICatalogObjectListener buildDatabaseListener() {
- return new ICatalogObjectListener() {
- public void notifyChanged( final ICatalogObject database, final int eventType) {
- if( database == DTPDatabaseWrapper.this.dtpDatabase) {
- DTPDatabaseWrapper.this.refresh();
- DTPDatabaseWrapper.this.profile.databaseChanged( DTPDatabaseWrapper.this, eventType);
- }
- }
- };
- }
-
- @Override
- void refresh() {
- this.disposeSchemata();
- this.disposeCatalogs();
-
- this.schemata = null;
- this.catalogs = null;
- }
-
- @Override
- void catalogChanged( Catalog catalog, int eventType) {
- this.profile.catalogChanged( catalog, this, eventType);
- return;
- }
-
- @Override
- void schemaChanged( Schema schema, int eventType) {
- this.profile.schemaChanged( schema, this, eventType);
- return;
- }
-
- @Override
- void tableChanged( Table table, Schema schema, int eventType) {
- this.profile.tableChanged( table, schema, this, eventType);
- return;
- }
-
- @Override
- protected void dispose() {
- this.removeCatalogObjectListener(( ICatalogObject) this.dtpDatabase, this.databaseListener);
-
- this.disposeSchemata();
- this.disposeCatalogs();
- }
-
- private void disposeSchemata() {
- if( this.schemata != null) {
- for( Iterator<Schema> stream = this.schemata(); stream.hasNext(); ) {
- stream.next().dispose();
- }
- }
- }
-
- private void disposeCatalogs() {
- if( this.catalogs != null) {
- for( Iterator<Catalog> stream = this.catalogs(); stream.hasNext(); ) {
- stream.next().dispose();
- }
- }
- }
-
- // ********** queries **********
-
- @Override
- public String getName() {
-
- return this.dtpDatabase.getName();
- }
-
- @Override
- public String getVendor() {
-
- return this.dtpDatabase.getVendor();
- }
-
- @Override
- public String getVersion() {
-
- return this.dtpDatabase.getVersion();
- }
-
-
- // ***** schemata
-
- @Override
- synchronized Set<Schema> getSchemata() {
- if( this.schemata == null) {
- this.schemata = this.buildSchemata();
- }
- return this.schemata;
- }
-
- @SuppressWarnings("unchecked")
- private EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata() {
- return this.dtpDatabase.getSchemas();
- }
-
- private Set<Schema> buildSchemata() {
- Set<Schema> result;
- if( this.supportsCatalogs()) {
- result = this.getSchemataForCatalogNamed( this.profile.getCatalogName());
- }
- else {
- EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata = this.dtpSchemata();
- result = new HashSet<Schema>( dtpSchemata.size());
- for (org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema : dtpSchemata) {
- result.add( this.wrap(dtpSchema));
- }
- }
- return result;
- }
-
- // ***** catalogs
-
- @Override
- public boolean supportsCatalogs() {
- EList<org.eclipse.datatools.modelbase.sql.schema.Schema> dtpSchemata = this.dtpSchemata();
- return ( dtpSchemata == null || dtpSchemata.size() == 0);
- }
-
- @SuppressWarnings("unchecked")
- private EList<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs() {
- return this.dtpDatabase.getCatalogs();
- }
-
- @Override
- public String getDefaultCatalogName() {
-
- if( !this.supportsCatalogs()) { // this database doesn't support catalogs
- return "";
- }
- String userName = this.profile.getUserName();
- for (org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog : this.dtpCatalogs()) {
- if( dtpCatalog.getName().length() == 0) { // special catalog that contains all schemata
- return "";
- }
- else if( dtpCatalog.getName().equals( userName)) {
- return userName; // returns user name as default catalog
- }
- else if( dtpCatalog.getName().equals( this.getName())) {
- return this.getName(); // special catalog with same name as DB (PostgreSQL)
- }
- }
- throw new NoSuchElementException();
- }
-
- @Override
- synchronized Set<Catalog> getCatalogs() {
- if( this.catalogs == null) {
- this.catalogs = this.buildCatalogs();
- }
- return this.catalogs;
- }
-
- private Set<Catalog> buildCatalogs() {
-
- EList<org.eclipse.datatools.modelbase.sql.schema.Catalog> dtpCatalogs = this.dtpCatalogs();
- if( dtpCatalogs == null) {
- return Collections.emptySet();
- }
- Set<Catalog> result = new HashSet<Catalog>( dtpCatalogs.size());
- for (org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog : dtpCatalogs) {
- result.add( this.wrap(dtpCatalog));
- }
- return result;
- }
-
- private Set<Schema> getSchemataForCatalogNamed( String catalogName) {
-
- Catalog catalog = this.catalogNamed( catalogName);
- return ( catalog != null) ? catalog.buildSchemata() : Collections.<Schema>emptySet();
- }
-}

Back to the top