blob: 877303664079a7859f0b7a2d59b11fcb7d40d8c5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/*******************************************************************************
* Copyright (c) 2007, 2011 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.jpa.db.internal;
import java.util.List;
import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
import org.eclipse.jpt.jpa.db.Catalog;
/**
* Wrap a DTP Catalog
*/
final class DTPCatalogWrapper
extends DTPSchemaContainerWrapper<DTPDatabaseWrapper>
implements Catalog
{
/** the wrapped DTP catalog */
private final org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog;
// ********** constructor **********
DTPCatalogWrapper(DTPDatabaseWrapper database, org.eclipse.datatools.modelbase.sql.schema.Catalog dtpCatalog) {
super(database);
this.dtpCatalog = dtpCatalog;
}
// ********** DTPDatabaseObjectWrapper implementation **********
@Override
ICatalogObject getCatalogObject() {
return (ICatalogObject) this.dtpCatalog;
}
@Override
synchronized void catalogObjectChanged() {
super.catalogObjectChanged();
this.getConnectionProfile().catalogChanged(this);
}
// ********** DTPSchemaContainerWrapper implementation **********
@Override
@SuppressWarnings("unchecked")
List<org.eclipse.datatools.modelbase.sql.schema.Schema> getDTPSchemas() {
return this.dtpCatalog.getSchemas();
}
@Override
DTPSchemaWrapper getSchema(org.eclipse.datatools.modelbase.sql.schema.Schema dtpSchema) {
// try to short-circuit the search
return this.wraps(dtpSchema.getCatalog()) ?
this.getSchema_(dtpSchema) :
this.getDatabase().getSchemaFromCatalogs(dtpSchema);
}
@Override
DTPTableWrapper getTable(org.eclipse.datatools.modelbase.sql.tables.Table dtpTable) {
// try to short-circuit the search
return this.wraps(dtpTable.getSchema().getCatalog()) ?
this.getTable_(dtpTable) :
this.getDatabase().getTableFromCatalogs(dtpTable);
}
@Override
DTPColumnWrapper getColumn(org.eclipse.datatools.modelbase.sql.tables.Column dtpColumn) {
// try to short-circuit the search
return this.wraps(dtpColumn.getTable().getSchema().getCatalog()) ?
this.getColumn_(dtpColumn) :
this.getDatabase().getColumnFromCatalogs(dtpColumn);
}
// ********** DatabaseObject implementation **********
public String getName() {
return this.dtpCatalog.getName();
}
// ********** internal methods **********
boolean wraps(org.eclipse.datatools.modelbase.sql.schema.Catalog catalog) {
return this.dtpCatalog == catalog;
}
}
|