Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java299
1 files changed, 0 insertions, 299 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java b/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java
deleted file mode 100644
index 9ef2c7fb04..0000000000
--- a/jpa/plugins/org.eclipse.jpt.db/src/org/eclipse/jpt/db/internal/Schema.java
+++ /dev/null
@@ -1,299 +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.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-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.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
-
-/**
- * Wrap a DTP Schema
- */
-public final class Schema extends DTPWrapper implements Comparable<Schema> {
- final Database database;
- final org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema;
- private ICatalogObjectListener schemaListener;
-
- private Set<Table> tables; // lazy-initialized
- private Set<Sequence> sequences; // lazy-initialized
-
-
- // ********** constructors **********
-
- Schema( Database database, org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
- super();
- this.database = database;
- this.dtpSchema = dtpSchema;
- this.initialize();
- }
-
- // ********** behavior **********
-
- private void initialize() {
- if( this.connectionIsOnline()) {
- this.schemaListener = this.buildSchemaListener();
- this.addCatalogObjectListener(( ICatalogObject) this.dtpSchema, this.schemaListener);
- }
- }
-
- @Override
- protected boolean connectionIsOnline() {
- return this.database.connectionIsOnline();
- }
-
- private ICatalogObjectListener buildSchemaListener() {
- return new ICatalogObjectListener() {
- public void notifyChanged( final ICatalogObject schema, final int eventType) {
- if( schema == Schema.this.dtpSchema) {
- Schema.this.refresh();
- Schema.this.database.schemaChanged( Schema.this, eventType);
- }
- }
- };
- }
-
- void refresh() {
- this.disposeTables();
- this.disposeSequences();
-
- this.tables = null;
- this.sequences = null;
- }
-
- void tableChanged( Table table, int eventType) {
- this.database.tableChanged( table, this, eventType);
- }
-
- protected Table wrap( org.eclipse.datatools.modelbase.sql.tables.Table table) {
- return new Table( this, table);
- }
-
- protected Sequence wrap( org.eclipse.datatools.modelbase.sql.schema.Sequence sequence) {
- return new Sequence( this, sequence);
- }
-
- @Override
- protected void dispose() {
- this.removeCatalogObjectListener(( ICatalogObject) this.dtpSchema, this.schemaListener);
-
- this.disposeTables();
- this.disposeSequences();
- }
-
- private void disposeTables() {
- if( this.tables != null) {
- for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
- stream.next().dispose();
- }
- }
- }
-
- private void disposeSequences() {
- if( this.sequences != null) {
- for( Iterator<Sequence> stream = this.sequences(); stream.hasNext(); ) {
- stream.next().dispose();
- }
- }
- }
-
- // ********** queries **********
-
- @Override
- public String getName() {
- return this.dtpSchema.getName();
- }
-
- boolean isCaseSensitive() {
- return this.database.isCaseSensitive();
- }
-
- Column column( org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
- return this.database.column(dtpColumn);
- }
-
-
- // ********** tables **********
-
- private synchronized Collection<Table> getTables() {
- if( this.tables == null) {
- this.tables = this.buildTables();
- }
- return this.tables;
- }
-
- @SuppressWarnings("unchecked")
- private Collection<org.eclipse.datatools.modelbase.sql.tables.Table> dtpTables() {
- return this.dtpSchema.getTables();
- }
-
- private Set<Table> buildTables() {
- Collection<org.eclipse.datatools.modelbase.sql.tables.Table> dtpTables = this.dtpTables();
- Set<Table> result = new HashSet<Table>( dtpTables.size());
- for (org.eclipse.datatools.modelbase.sql.tables.Table dtpTable : dtpTables) {
- result.add( this.wrap(dtpTable));
- }
- return result;
- }
-
- public Iterator<Table> tables() {
- return this.getTables().iterator();
- }
-
- public int tablesSize() {
- return this.getTables().size();
- }
-
- public boolean tablesContains( Column column) {
- return this.getTables().contains( column);
- }
-
- public Iterator<String> tableNames() {
- return new TransformationIterator<Table, String>( this.tables()) {
- @Override
- protected String transform( Table table) {
- return table.getName();
- }
- };
- }
-
- public boolean containsTableNamed( String name) {
- return this.tableNamed( name) != null;
- }
-
- public Table tableNamed( String name) {
- return this.isCaseSensitive() ? this.tableNamedInternal( name) : this.tableNamedIgnoreCase( name);
- }
-
- private Table tableNamedInternal( String name) {
- for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
- Table table = stream.next();
- if( table.getName().equals( name)) {
- return table;
- }
- }
- return null;
- }
-
- private Table tableNamedIgnoreCase( String name) {
- for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
- Table table = stream.next();
- if( StringTools.stringsAreEqualIgnoreCase( table.getName(), name)) {
- return table;
- }
- }
- return null;
- }
-
- /**
- * return the table for the specified dtp table
- */
- Table table( org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
- if( dtpTable.getSchema() != this.dtpSchema) {
- return this.database.table( dtpTable);
- }
- for( Iterator<Table> stream = this.tables(); stream.hasNext(); ) {
- Table table = stream.next();
- if( table.wraps( dtpTable)) {
- return table;
- }
- }
- throw new IllegalArgumentException( "invalid DTP table: " + dtpTable);
- }
-
- // ***** sequences
-
- private synchronized Collection<Sequence> getSequences() {
- if( this.sequences == null) {
- this.sequences = this.buildSequences();
- }
- return this.sequences;
- }
-
- @SuppressWarnings("unchecked")
- private Collection<org.eclipse.datatools.modelbase.sql.schema.Sequence> dtpSequences() {
- return this.dtpSchema.getSequences();
- }
-
- private Set<Sequence> buildSequences() {
- Collection<org.eclipse.datatools.modelbase.sql.schema.Sequence> dtpSequences = this.dtpSequences();
- Set<Sequence> result = new HashSet<Sequence>( dtpSequences.size());
- for (org.eclipse.datatools.modelbase.sql.schema.Sequence dtpSequence : dtpSequences) {
- result.add( this.wrap(dtpSequence));
- }
- return result;
- }
-
- public Iterator<Sequence> sequences() {
- return this.getSequences().iterator();
- }
-
- public int sequencesSize() {
- return this.getSequences().size();
- }
-
- public boolean sequencesContains( Column column) {
- return this.getSequences().contains( column);
- }
-
- public Iterator<String> sequenceNames() {
- return new TransformationIterator<Sequence, String>(this.sequences()) {
- @Override
- protected String transform( Sequence sequence) {
- return sequence.getName();
- }
- };
- }
-
- public boolean containsSequenceNamed( String name) {
- return this.sequenceNamed( name) != null;
- }
-
- public Sequence sequenceNamed( String name) {
- return this.isCaseSensitive() ? this.sequenceNamedInternal( name) : this.sequenceNamedIgnoreCase( name);
- }
-
- private Sequence sequenceNamedInternal( String name) {
- for( Iterator<Sequence> stream = this.sequences(); stream.hasNext(); ) {
- Sequence sequence = stream.next();
- if( sequence.getName().equals( name)) {
- return sequence;
- }
- }
- return null;
- }
-
- private Sequence sequenceNamedIgnoreCase( String name) {
- for( Iterator<Sequence> stream = this.sequences(); stream.hasNext(); ) {
- Sequence sequence = stream.next();
- if( sequence.getName().equalsIgnoreCase( name)) {
- return sequence;
- }
- }
- return null;
- }
-
- boolean wraps( org.eclipse.datatools.modelbase.sql.schema.Schema schema) {
- return this.dtpSchema == schema;
- }
-
- // ********** Comparable implementation **********
-
- public int compareTo( Schema schema) {
- return Collator.getInstance().compare( this.getName(), schema.getName());
- }
-
-}

Back to the top