[416722] Create catalog loader for DB2 LUW
Rework the IBM enablement plugins to add a catalog loader for DB2 for
LUW. This includes creating two new plugins, o.e.d.enablement.ibm and
o.e.d.enablement.ibm.db2
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/META-INF/MANIFEST.MF
index 1d86e38..02b2f76 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/META-INF/MANIFEST.MF
@@ -2,9 +2,8 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition; singleton:=true
-Bundle-Version: 1.0.4.qualifier
+Bundle-Version: 1.0.5.qualifier
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Eclipse-LazyStart: true
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/build.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/build.properties
index 1c54597..e467b7a 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/build.properties
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/build.properties
@@ -9,16 +9,5 @@
# IBM Corporation - initial API and implementation
###############################################################################
bin.includes = plugin.xml,\
- runtime/,\
plugin.properties,\
- about.html,\
- META-INF/
-
-jars.extra.classpath =
-src.dir = src/
-plugin.version = 1.0.0.200706071
-javadoc.dir = doc/api/
-download.dir = ./download/
-javac.source = 1.4
-javac.target = 1.4
-src.includes = about.html
+ runtime/
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.properties
index 86eb223..075fe8b 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.properties
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.properties
@@ -10,17 +10,37 @@
###############################################################################
pluginName = Eclipse Data Tools Platform DB2 UDB Database Definition Plug-in
+nl1PluginName = Eclipse Data Tools Platform DB2 UDB Database Definition NL1 Fragment
providerName = Eclipse Data Tools Platform
+V81Description = IBM DB2 UDB for Linux, UNIX, and Windows Version 8.1
V81ProductString = DB2 for Linux, UNIX, and Windows
V81VersionString = V8.1
+V82Description = IBM DB2 UDB for Linux, UNIX, and Windows Version 8.2
V82ProductString = DB2 for Linux, UNIX, and Windows
V82VersionString = V8.2
+V91Description = IBM DB2 UDB for Linux, UNIX, and Windows Version 9.1
V91ProductString = DB2 for Linux, UNIX, and Windows
V91VersionString = V9.1
-V81Description = IBM DB2 UDB for Linux, UNIX, and Windows Version 8.1
-V82Description = IBM DB2 UDB for Linux, UNIX, and Windows Version 8.2
-V91Description = IBM DB2 UDB for Linux, UNIX, and Windows Version 9.1
+V95Description = IBM DB2 for Linux, UNIX, and Windows Version 9.5
+V95ProductString = DB2 for Linux, UNIX, and Windows
+V95VersionString = V9.5
+
+V97Description = IBM DB2 for Linux, UNIX, and Windows Version 9.7
+V97ProductString = DB2 for Linux, UNIX, and Windows
+V97VersionString = V9.7
+
+V98Description = IBM DB2 for Linux, UNIX, and Windows Version 9.8
+V98ProductString = DB2 for Linux, UNIX, and Windows
+V98VersionString = V9.8
+
+V101Description = IBM DB2 for Linux, UNIX, and Windows Version 10.1
+V101ProductString = DB2 for Linux, UNIX, and Windows
+V101VersionString = V10.1
+
+V105Description = IBM DB2 for Linux, UNIX, and Windows Version 10.5
+V105ProductString = DB2 for Linux, UNIX, and Windows
+V105VersionString = V10.5
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.xml b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.xml
index f12367f..f8d964a 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.xml
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/plugin.xml
@@ -28,6 +28,46 @@
versionDisplayString="%V91VersionString"
file="runtime/vendors/DB2 UDB_9.1/DB2 UDB_9.1.xmi">
</definition>
+ <definition
+ product="DB2 UDB"
+ productDisplayString="%V95ProductString"
+ description="%V95Description"
+ versionDisplayString="%V95VersionString"
+ version="V9.5"
+ file="runtime/vendors/DB2 UDB_9.5/DB2 UDB_9.5.xmi">
+ </definition>
+ <definition
+ description="%V97Description"
+ file="runtime/vendors/DB2 UDB_9.7/DB2 UDB_9.7.xmi"
+ product="DB2 UDB"
+ productDisplayString="%V97ProductString"
+ version="V9.7"
+ versionDisplayString="%V97VersionString">
+ </definition>
+ <definition
+ description="%V98Description"
+ file="runtime/vendors/DB2 UDB_9.8/DB2 UDB_9.8.xmi"
+ product="DB2 UDB"
+ productDisplayString="%V98ProductString"
+ version="V9.8"
+ versionDisplayString="%V98VersionString">
+ </definition>
+ <definition
+ description="%V101Description"
+ file="runtime/vendors/DB2 UDB_10.1/DB2 UDB_10.1.xmi"
+ product="DB2 UDB"
+ productDisplayString="%V101ProductString"
+ version="V10.1"
+ versionDisplayString="%V101VersionString">
+ </definition>
+ <definition
+ description="%V105Description"
+ file="runtime/vendors/DB2 UDB_10.5/DB2 UDB_10.5.xmi"
+ product="DB2 UDB"
+ productDisplayString="%V105ProductString"
+ version="V10.5"
+ versionDisplayString="%V105VersionString">
+ </definition>
</extension>
</plugin>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_10.1/DB2 UDB_10.1.xmi b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_10.1/DB2 UDB_10.1.xmi
new file mode 100644
index 0000000..d8ca8c6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_10.1/DB2 UDB_10.1.xmi
@@ -0,0 +1,1494 @@
+<?xml version="1.0" encoding="ASCII"?>
+<DBDefinition:DatabaseVendorDefinition xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:DBDefinition="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore" vendor="DB2 UDB" version="V10.1" maximumIdentifierLength="8" viewTriggerSupported="true" maximumCommentLength="64" sequenceSupported="true" mQTSupported="true" aliasSupported="true" userDefinedTypeSupported="true" SQLStatementSupported="true" nicknameSupported="true" xmlSupported="true" packageSupported="true" roleSupported="true" groupSupported="true" userSupported="true" roleAuthorizationSupported="true" constructedDataTypeSupported="true" adaptiveCompressionSupported="true" memberSupported="true" mQTIndexSupported="true">
+ <predefinedDataTypeDefinitions xmi:id="BIGINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="BIGINT" jdbcEnumType="-5" javaClassName="long">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BIGINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="BINARY_LARGE_OBJECT" jdbcEnumType="2004" javaClassName="java.sql.Blob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="127" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>GRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="16336" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_2" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR</name>
+ <name>CHARACTER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CLOB</name>
+ <name>CHARACTER LARGE OBJECT</name>
+ <name>CHAR LARGE OBJECT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="1073741823" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DBCLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR</name>
+ <name>CHARACTER VARYING</name>
+ <name>CHAR VARYING</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_2" primitiveType="CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATE_1" keyConstraintSupported="true" primitiveType="DATE" jdbcEnumType="91" javaClassName="java.sql.Date">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT DATE</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATE</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DECIMAL_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECIMAL</name>
+ <name>DEC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_2" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="34" primitiveType="FLOAT" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="34">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECFLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DOUBLE_PRECISION_1" keyConstraintSupported="true" primitiveType="DOUBLE_PRECISION" jdbcEnumType="8" javaClassName="double">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DOUBLE</name>
+ <name>DOUBLE PRECISION</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="53" primitiveType="FLOAT" jdbcEnumType="6" javaClassName="double" defaultPrecision="53" cutoffPrecision="25">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>FLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_1" keyConstraintSupported="true" identitySupported="true" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>INTEGER</name>
+ <name>INT</name>
+ <name>BINARY_INTEGER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATALINK_1" lengthSupported="true" maximumLength="200" primitiveType="DATALINK" jdbcEnumType="70" javaClassName="java.net.URL" defaultLength="200" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATALINK</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NUMERIC_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="NUMERIC" jdbcEnumType="2" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMERIC</name>
+ <name>NUM</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="REAL_1" keyConstraintSupported="true" primitiveType="REAL" jdbcEnumType="7" javaClassName="float">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>REAL</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="SMALLINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="SMALLINT" jdbcEnumType="5" javaClassName="short">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SMALLINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIME_1" keyConstraintSupported="true" primitiveType="TIME" jdbcEnumType="92" javaClassName="java.sql.Time">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIME</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIME</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="12" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp" defaultPrecision="6">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIMESTAMP</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIMESTAMP</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="1" displayName="CHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR FOR BIT DATA</name>
+ <name>CHARACTER FOR BIT DATA</name>
+ <name>CHAR () FOR BIT DATA</name>
+ <name>CHARACTER () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]" defaultLength="1" displayName="VARCHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR FOR BIT DATA</name>
+ <name>CHARACTER VARYING FOR BIT DATA</name>
+ <name>CHAR VARYING FOR BIT DATA</name>
+ <name>VARCHAR () FOR BIT DATA</name>
+ <name>CHARACTER VARYING () FOR BIT DATA</name>
+ <name>CHAR VARYING () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_2" primitiveType="BINARY_VARYING" jdbcEnumType="-4" javaClassName="byte[]">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_1" primitiveType="XML_TYPE" jdbcEnumType="1111" orderingSupported="false" groupingSupported="false">
+ <name>XML</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" defaultSupported="false" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMBER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions lengthSupported="true" keyConstraintSupported="true" defaultSupported="false" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="4096">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR2</name>
+ </predefinedDataTypeDefinitions>
+ <tableSpaceDefinition typeSupported="true" extentSizeSupported="true" prefetchSizeSupported="true" managedBySupported="true" pageSizeSupported="true" bufferPoolSupported="true" maximumIdentifierLength="18">
+ <tableSpaceType>REGULAR</tableSpaceType>
+ <tableSpaceType>TEMPORARY</tableSpaceType>
+ <tableSpaceType>LARGE</tableSpaceType>
+ </tableSpaceDefinition>
+ <storedProcedureDefinition nullInputActionSupported="true" determininsticSupported="true" returnedNullSupported="true" parameterStyleSupported="true" maximumIdentifierLength="128">
+ <predefinedDataTypeDefinitions xmi:id="BOOLEAN_1" primitiveType="BOOLEAN" jdbcEnumType="-7" javaClassName="boolean">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BOOLEAN</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_1" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_2" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>PLS_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_3" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BINARY_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_2" primitiveType="XML_TYPE" jdbcEnumType="1111" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>XMLTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_2" lengthSupported="true" maximumLength="32767" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="32767">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_3" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_2" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCLOB</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_2" lengthSupported="true" maximumLength="2000" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="127">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCHAR</name>
+ <name>NATIONAL CHARACTER</name>
+ <name>NATIONAL CHAR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_3" lengthSupported="true" maximumLength="4000" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="2048">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NVARCHAR2</name>
+ <name>NATIONAL CHARACTER VARYING</name>
+ <name>NATIONAL CHAR VARYING</name>
+ <name>NCHAR VARYING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_4" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NATURAL</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_2" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SYS_REFCURSOR</name>
+ <name>REFCURSOR</name>
+ <name>REF CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_3" lengthSupported="true" bitDataSupported="true" maximumLength="4000" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="1" displayName="STRING({0})" displayNameSupported="true" lengthSemanticSupported="true">
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>UID</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>STRING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_5" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>POSITIVE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_6" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SIGNTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <languageType>SQL</languageType>
+ <languageType>JAVA</languageType>
+ <languageType>C</languageType>
+ <languageType>COBOL</languageType>
+ <languageType>ASSEMBLY</languageType>
+ <languageType>PLI</languageType>
+ <functionLanguageType>SQL</functionLanguageType>
+ <functionLanguageType>JAVA</functionLanguageType>
+ <functionLanguageType>C</functionLanguageType>
+ <functionLanguageType>OLE</functionLanguageType>
+ <procedureType>PROCEDURE</procedureType>
+ <procedureType>FUNCTION</procedureType>
+ </storedProcedureDefinition>
+ <triggerDefinition granularitySupported="true" referencesClauseSupported="true" perColumnUpdateTriggerSupported="true" rowTriggerReferenceSupported="true" tableTriggerReferenceSupported="true" maximumIdentifierLength="128"/>
+ <columnDefinition identitySupported="true" identityStartValueSupported="true" identityIncrementSupported="true" identityMinimumSupported="true" identityMaximumSupported="true" identityCycleSupported="true" maximumIdentifierLength="128"/>
+ <constraintDefinition informationalConstraintSupported="true" clusteredPrimaryKeySupported="true" clusteredUniqueConstraintSupported="true" maximumPrimaryKeyIdentifierLength="128" maximumForeignKeyIdentifierLength="128" maximumCheckConstraintIdentifierLength="128">
+ <parentUpdateDRIRuleType>RESTRICT</parentUpdateDRIRuleType>
+ <parentUpdateDRIRuleType>NO_ACTION</parentUpdateDRIRuleType>
+ <parentDeleteDRIRuleType>RESTRICT</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>CASCADE</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>SET_NULL</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>NO_ACTION</parentDeleteDRIRuleType>
+ <checkOption>NONE</checkOption>
+ <checkOption>LOCAL</checkOption>
+ <checkOption>CASCADE</checkOption>
+ </constraintDefinition>
+ <indexDefinition clusteringSupported="true" includedColumnsSupported="true" maximumIdentifierLength="128"/>
+ <tableDefinition maximumIdentifierLength="128"/>
+ <sequenceDefinition predefinedDataTypeDefinitions="BIGINT_1 INTEGER_1 SMALLINT_1 DECIMAL_1" defaultDataTypeDefinition="INTEGER_1" typeEnumerationSupported="true" cacheSupported="true" orderSupported="true" noMaximumValueString="NO MAXVALUE" noMinimumValueString="NO MINVALUE" noCacheString="NO CACHE" cacheDefaultValue="20"/>
+ <udtDefinition distinctTypeSupported="true" structuredTypeSupported="true" maximumIdentifierLength="128"/>
+ <queryDefinition/>
+ <SQLSyntaxDefinition>
+ <keywords>ACCESS</keywords>
+ <keywords>ACCESSCTRL</keywords>
+ <keywords>ACCORDING</keywords>
+ <keywords>ACCTNG</keywords>
+ <keywords>ACTION</keywords>
+ <keywords>ACTIVATE</keywords>
+ <keywords>ACTIVATED</keywords>
+ <keywords>ACTIVE</keywords>
+ <keywords>ACTIVITIES</keywords>
+ <keywords>ACTIVITY</keywords>
+ <keywords>ACTIVITYMETRICS</keywords>
+ <keywords>ACTIVITYSTMT</keywords>
+ <keywords>ACTIVITYTOTALTIME</keywords>
+ <keywords>ACTIVITYVALS</keywords>
+ <keywords>ACTUALS</keywords>
+ <keywords>ADAPTIVE</keywords>
+ <keywords>ADD</keywords>
+ <keywords>ADDRESS</keywords>
+ <keywords>ADMIN</keywords>
+ <keywords>ADMINISTRATION</keywords>
+ <keywords>AFTER</keywords>
+ <keywords>AGE</keywords>
+ <keywords>AGENT</keywords>
+ <keywords>AGGREGATE</keywords>
+ <keywords>AGGSQLTEMPSPACE</keywords>
+ <keywords>ALIAS</keywords>
+ <keywords>ALL</keywords>
+ <keywords>ALLOCATE</keywords>
+ <keywords>ALLOW</keywords>
+ <keywords>ALTER</keywords>
+ <keywords>ALTERIN</keywords>
+ <keywords>ALWAYS</keywords>
+ <keywords>ANCHOR</keywords>
+ <keywords>AND</keywords>
+ <keywords>ANY</keywords>
+ <keywords>APPEND</keywords>
+ <keywords>APPLICATION</keywords>
+ <keywords>APPLNAME</keywords>
+ <keywords>APPL_ID</keywords>
+ <keywords>APPL_NAME</keywords>
+ <keywords>APREUSE</keywords>
+ <keywords>ARRAY</keywords>
+ <keywords>ARRAY_AGG</keywords>
+ <keywords>ARRAY_EXISTS</keywords>
+ <keywords>AS</keywords>
+ <keywords>ASC</keywords>
+ <keywords>ASCII</keywords>
+ <keywords>ASENSITIVE</keywords>
+ <keywords>ASSOCIATE</keywords>
+ <keywords>AST</keywords>
+ <keywords>ASUTIME</keywords>
+ <keywords>ASYNCHRONY</keywords>
+ <keywords>AT</keywords>
+ <keywords>ATOMIC</keywords>
+ <keywords>ATTACH</keywords>
+ <keywords>ATTRIBUTE</keywords>
+ <keywords>ATTRIBUTES</keywords>
+ <keywords>AUDIT</keywords>
+ <keywords>AUTHENTICATION</keywords>
+ <keywords>AUTHID</keywords>
+ <keywords>AUTHORIZATION</keywords>
+ <keywords>AUTHORIZATIONS</keywords>
+ <keywords>AUTHORIZED</keywords>
+ <keywords>AUTH_ID</keywords>
+ <keywords>AUTOMATIC</keywords>
+ <keywords>AUTONOMOUS</keywords>
+ <keywords>AUTONOMOUS_TRANSACTION</keywords>
+ <keywords>AUTORESIZE</keywords>
+ <keywords>AUTOSTART</keywords>
+ <keywords>B</keywords>
+ <keywords>BACKUP</keywords>
+ <keywords>BASE</keywords>
+ <keywords>BASE64</keywords>
+ <keywords>BASED</keywords>
+ <keywords>BEFORE</keywords>
+ <keywords>BEGIN</keywords>
+ <keywords>BERNOULLI</keywords>
+ <keywords>BETWEEN</keywords>
+ <keywords>BIGINT</keywords>
+ <keywords>BIN</keywords>
+ <keywords>BINARY</keywords>
+ <keywords>BINARY_INTEGER</keywords>
+ <keywords>BIND</keywords>
+ <keywords>BINDADD</keywords>
+ <keywords>BIT</keywords>
+ <keywords>BLOB</keywords>
+ <keywords>BLOCKED</keywords>
+ <keywords>BLOCKINSERT</keywords>
+ <keywords>BLOCKSIZE</keywords>
+ <keywords>BODY</keywords>
+ <keywords>BOOLEAN</keywords>
+ <keywords>BOTH</keywords>
+ <keywords>BUFFER</keywords>
+ <keywords>BUFFERPOOL</keywords>
+ <keywords>BUFFERPOOLS</keywords>
+ <keywords>BUFFERSIZE</keywords>
+ <keywords>BUILD</keywords>
+ <keywords>BULK</keywords>
+ <keywords>BUSINESS_TIME</keywords>
+ <keywords>BY</keywords>
+ <keywords>BYPASS</keywords>
+ <keywords>BYTE</keywords>
+ <keywords>C</keywords>
+ <keywords>CACHE</keywords>
+ <keywords>CACHING</keywords>
+ <keywords>CALL</keywords>
+ <keywords>CALLED</keywords>
+ <keywords>CALLER</keywords>
+ <keywords>CAPTURE</keywords>
+ <keywords>CARDINALITIES</keywords>
+ <keywords>CARDINALITY</keywords>
+ <keywords>CASCADE</keywords>
+ <keywords>CASCADED</keywords>
+ <keywords>CASE</keywords>
+ <keywords>CAST</keywords>
+ <keywords>CATEGORIES</keywords>
+ <keywords>CCSID</keywords>
+ <keywords>CFGALL</keywords>
+ <keywords>CHANGE</keywords>
+ <keywords>CHANGED</keywords>
+ <keywords>CHANGES</keywords>
+ <keywords>CHANGESUMMARY</keywords>
+ <keywords>CHAR</keywords>
+ <keywords>CHARACTER</keywords>
+ <keywords>CHECK</keywords>
+ <keywords>CHECKED</keywords>
+ <keywords>CHECKING</keywords>
+ <keywords>CLASS</keywords>
+ <keywords>CLIENT</keywords>
+ <keywords>CLIENT_ACCTNG</keywords>
+ <keywords>CLIENT_APPLNAME</keywords>
+ <keywords>CLIENT_USERID</keywords>
+ <keywords>CLIENT_WRKSTNNAME</keywords>
+ <keywords>CLOB</keywords>
+ <keywords>CLOSE</keywords>
+ <keywords>CLR</keywords>
+ <keywords>CLUSTER</keywords>
+ <keywords>COBOL</keywords>
+ <keywords>CODEUNITS16</keywords>
+ <keywords>CODEUNITS32</keywords>
+ <keywords>COLLECT</keywords>
+ <keywords>COLLID</keywords>
+ <keywords>COLUMN</keywords>
+ <keywords>COLUMNS</keywords>
+ <keywords>COMM</keywords>
+ <keywords>COMMENT</keywords>
+ <keywords>COMMIT</keywords>
+ <keywords>COMMITTED</keywords>
+ <keywords>COMPACT</keywords>
+ <keywords>COMPARE</keywords>
+ <keywords>COMPARISONS</keywords>
+ <keywords>COMPILATION</keywords>
+ <keywords>COMPILEDFUNCTION</keywords>
+ <keywords>COMPILEDTRIGGER</keywords>
+ <keywords>COMPONENT</keywords>
+ <keywords>COMPONENTS</keywords>
+ <keywords>COMPOUND</keywords>
+ <keywords>COMPRESS</keywords>
+ <keywords>COMPRESSION</keywords>
+ <keywords>CONCAT</keywords>
+ <keywords>CONCURRENTDBCOORDACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADOCCURRENCES</keywords>
+ <keywords>CONDITION</keywords>
+ <keywords>CONN</keywords>
+ <keywords>CONNECT</keywords>
+ <keywords>CONNECTION</keywords>
+ <keywords>CONNECTIONIDLETIME</keywords>
+ <keywords>CONNECTIONS</keywords>
+ <keywords>CONNECTOPT</keywords>
+ <keywords>CONNECT_BY_ROOT</keywords>
+ <keywords>CONNHEADER</keywords>
+ <keywords>CONNMEMUSE</keywords>
+ <keywords>CONSERVATIVE</keywords>
+ <keywords>CONSTANT</keywords>
+ <keywords>CONSTRAINT</keywords>
+ <keywords>CONSTRAINTS</keywords>
+ <keywords>CONSTRUCTOR</keywords>
+ <keywords>CONTAINERS</keywords>
+ <keywords>CONTAINS</keywords>
+ <keywords>CONTENT</keywords>
+ <keywords>CONTEXT</keywords>
+ <keywords>CONTINUE</keywords>
+ <keywords>CONTROL</keywords>
+ <keywords>CONVERT</keywords>
+ <keywords>COORDINATOR</keywords>
+ <keywords>COPY</keywords>
+ <keywords>CORRELATOR</keywords>
+ <keywords>COUNT</keywords>
+ <keywords>COUNT_BIG</keywords>
+ <keywords>CPU</keywords>
+ <keywords>CPUTIME</keywords>
+ <keywords>CPUTIMEINSC</keywords>
+ <keywords>CREATE</keywords>
+ <keywords>CREATEIN</keywords>
+ <keywords>CREATETAB</keywords>
+ <keywords>CREATE_EXTERNAL_ROUTINE</keywords>
+ <keywords>CREATE_NOT_FENCED</keywords>
+ <keywords>CREATE_NOT_FENCED_ROUTINE</keywords>
+ <keywords>CREATE_SECURE_OBJECT</keywords>
+ <keywords>CROSS</keywords>
+ <keywords>CS</keywords>
+ <keywords>CUBE</keywords>
+ <keywords>CURRENT</keywords>
+ <keywords>CURRENT_DATE</keywords>
+ <keywords>CURRENT_PATH</keywords>
+ <keywords>CURRENT_SCHEMA</keywords>
+ <keywords>CURRENT_SERVER</keywords>
+ <keywords>CURRENT_TIME</keywords>
+ <keywords>CURRENT_TIMESTAMP</keywords>
+ <keywords>CURRENT_TIMEZONE</keywords>
+ <keywords>CURRENT_USER</keywords>
+ <keywords>CURRVAL</keywords>
+ <keywords>CURSOR</keywords>
+ <keywords>CURSORS</keywords>
+ <keywords>CYCLE</keywords>
+ <keywords>DATA</keywords>
+ <keywords>DATAACCESS</keywords>
+ <keywords>DATABASE</keywords>
+ <keywords>DATATAGINSC</keywords>
+ <keywords>DATE</keywords>
+ <keywords>DAY</keywords>
+ <keywords>DAYS</keywords>
+ <keywords>DB</keywords>
+ <keywords>DB2DARI</keywords>
+ <keywords>DB2GENERAL</keywords>
+ <keywords>DB2GENRL</keywords>
+ <keywords>DB2LBACREADARRAY</keywords>
+ <keywords>DB2LBACREADSET</keywords>
+ <keywords>DB2LBACREADTREE</keywords>
+ <keywords>DB2LBACRULES</keywords>
+ <keywords>DB2LBACWRITEARRAY</keywords>
+ <keywords>DB2LBACWRITESET</keywords>
+ <keywords>DB2LBACWRITETREE</keywords>
+ <keywords>DB2SPL</keywords>
+ <keywords>DB2SQL</keywords>
+ <keywords>DB2VALIDATE</keywords>
+ <keywords>DB2_EXCEPTION_INIT</keywords>
+ <keywords>DB2_RETURN_STATUS</keywords>
+ <keywords>DB2_SQL_NESTING_LEVEL</keywords>
+ <keywords>DB2_TEMPORAL_TRIGGER_FROM_VALUE</keywords>
+ <keywords>DB2_TEMPORAL_TRIGGER_TO_VALUE</keywords>
+ <keywords>DB2_TOKEN_STRING</keywords>
+ <keywords>DBADM</keywords>
+ <keywords>DBCFG</keywords>
+ <keywords>DBCFGVALUES</keywords>
+ <keywords>DBCLOB</keywords>
+ <keywords>DBDBMCFG</keywords>
+ <keywords>DBINFO</keywords>
+ <keywords>DBMCFG</keywords>
+ <keywords>DBMCFGVALUES</keywords>
+ <keywords>DBMEMUSE</keywords>
+ <keywords>DBPARTITIONNUM</keywords>
+ <keywords>DBPARTITIONNUMS</keywords>
+ <keywords>DBPARTITIONS</keywords>
+ <keywords>DDL</keywords>
+ <keywords>DDLALL</keywords>
+ <keywords>DDLDATA</keywords>
+ <keywords>DDLFEDERATED</keywords>
+ <keywords>DDLMONITOR</keywords>
+ <keywords>DDLSECURITY</keywords>
+ <keywords>DDLSQL</keywords>
+ <keywords>DDLSTMTEXEC</keywords>
+ <keywords>DDLSTORAGE</keywords>
+ <keywords>DDLWLM</keywords>
+ <keywords>DDLXML</keywords>
+ <keywords>DEACTIVATE</keywords>
+ <keywords>DEADLOCK</keywords>
+ <keywords>DEADLOCKS</keywords>
+ <keywords>DEBUGINFO</keywords>
+ <keywords>DEC</keywords>
+ <keywords>DECFLOAT</keywords>
+ <keywords>DECIMAL</keywords>
+ <keywords>DECLARE</keywords>
+ <keywords>DECOMPOSITION</keywords>
+ <keywords>DEFAULT</keywords>
+ <keywords>DEFAULTS</keywords>
+ <keywords>DEFER</keywords>
+ <keywords>DEFERRED</keywords>
+ <keywords>DEFINE</keywords>
+ <keywords>DEFINER</keywords>
+ <keywords>DEFINITION</keywords>
+ <keywords>DEGREE</keywords>
+ <keywords>DELETE</keywords>
+ <keywords>DELETING</keywords>
+ <keywords>DEPENDENT</keywords>
+ <keywords>DESC</keywords>
+ <keywords>DESCRIPTOR</keywords>
+ <keywords>DETACH</keywords>
+ <keywords>DETAILED</keywords>
+ <keywords>DETAILS</keywords>
+ <keywords>DETERMINED</keywords>
+ <keywords>DETERMINISTIC</keywords>
+ <keywords>DEVICE</keywords>
+ <keywords>DIAGNOSTICS</keywords>
+ <keywords>DIMENSIONS</keywords>
+ <keywords>DIRTY</keywords>
+ <keywords>DISABLE</keywords>
+ <keywords>DISALLOW</keywords>
+ <keywords>DISPATCH</keywords>
+ <keywords>DISTINCT</keywords>
+ <keywords>DISTRIBUTE</keywords>
+ <keywords>DISTRIBUTED</keywords>
+ <keywords>DISTRIBUTION</keywords>
+ <keywords>DLCONN</keywords>
+ <keywords>DLLOCK</keywords>
+ <keywords>DML</keywords>
+ <keywords>DO</keywords>
+ <keywords>DOCUMENT</keywords>
+ <keywords>DOUBLE</keywords>
+ <keywords>DROP</keywords>
+ <keywords>DROPIN</keywords>
+ <keywords>DROPPED</keywords>
+ <keywords>DYNAMIC</keywords>
+ <keywords>EACH</keywords>
+ <keywords>ELEMENT</keywords>
+ <keywords>ELSE</keywords>
+ <keywords>ELSEIF</keywords>
+ <keywords>ELSIF</keywords>
+ <keywords>EMPTY</keywords>
+ <keywords>ENABLE</keywords>
+ <keywords>ENCRYPTION</keywords>
+ <keywords>END</keywords>
+ <keywords>ENDING</keywords>
+ <keywords>ENFORCED</keywords>
+ <keywords>ENFORCEMENT</keywords>
+ <keywords>ENVIRONMENT</keywords>
+ <keywords>ERASE</keywords>
+ <keywords>ERROR</keywords>
+ <keywords>ESCAPE</keywords>
+ <keywords>ESTIMATE</keywords>
+ <keywords>ESTIMATEDCOST</keywords>
+ <keywords>ESTIMATEDSQLCOST</keywords>
+ <keywords>EUR</keywords>
+ <keywords>EVALUATE</keywords>
+ <keywords>EVENT</keywords>
+ <keywords>EVERY</keywords>
+ <keywords>EVMONSTART</keywords>
+ <keywords>EXACT</keywords>
+ <keywords>EXCEEDED</keywords>
+ <keywords>EXCEPT</keywords>
+ <keywords>EXCEPTION</keywords>
+ <keywords>EXCEPTION_INIT</keywords>
+ <keywords>EXCLUDE</keywords>
+ <keywords>EXCLUDES</keywords>
+ <keywords>EXCLUDING</keywords>
+ <keywords>EXCLUSIVE</keywords>
+ <keywords>EXECNODE</keywords>
+ <keywords>EXECUTABLE</keywords>
+ <keywords>EXECUTE</keywords>
+ <keywords>EXECUTETIME</keywords>
+ <keywords>EXECUTION</keywords>
+ <keywords>EXEMPTION</keywords>
+ <keywords>EXISTS</keywords>
+ <keywords>EXIT</keywords>
+ <keywords>EXPAND</keywords>
+ <keywords>EXPLAIN</keywords>
+ <keywords>EXPRESSION</keywords>
+ <keywords>EXTEND</keywords>
+ <keywords>EXTENDED</keywords>
+ <keywords>EXTENSION</keywords>
+ <keywords>EXTENTSIZE</keywords>
+ <keywords>EXTERNAL</keywords>
+ <keywords>EXTRACT</keywords>
+ <keywords>FAILURE</keywords>
+ <keywords>FALSE</keywords>
+ <keywords>FEDERATED</keywords>
+ <keywords>FEDERATED_TOOL</keywords>
+ <keywords>FENCED</keywords>
+ <keywords>FETCH</keywords>
+ <keywords>FILE</keywords>
+ <keywords>FILEREAD</keywords>
+ <keywords>FILEWRITE</keywords>
+ <keywords>FILTER</keywords>
+ <keywords>FINAL</keywords>
+ <keywords>FIRST</keywords>
+ <keywords>FLOAT</keywords>
+ <keywords>FLUSH</keywords>
+ <keywords>FOLLOWING</keywords>
+ <keywords>FOLLOWS</keywords>
+ <keywords>FOR</keywords>
+ <keywords>FORALL</keywords>
+ <keywords>FORCE</keywords>
+ <keywords>FOREIGN</keywords>
+ <keywords>FOUND</keywords>
+ <keywords>FREE</keywords>
+ <keywords>FREEPAGE</keywords>
+ <keywords>FROM</keywords>
+ <keywords>FULL</keywords>
+ <keywords>FUNCTION</keywords>
+ <keywords>G</keywords>
+ <keywords>GBPCACHE</keywords>
+ <keywords>GENERAL</keywords>
+ <keywords>GENERATE</keywords>
+ <keywords>GENERATED</keywords>
+ <keywords>GENERIC</keywords>
+ <keywords>GET</keywords>
+ <keywords>GLOBAL</keywords>
+ <keywords>GOTO</keywords>
+ <keywords>GRANT</keywords>
+ <keywords>GRAPHIC</keywords>
+ <keywords>GROUP</keywords>
+ <keywords>GROUPING</keywords>
+ <keywords>HANDLER</keywords>
+ <keywords>HARD</keywords>
+ <keywords>HASH</keywords>
+ <keywords>HASHED</keywords>
+ <keywords>HASHING</keywords>
+ <keywords>HAVING</keywords>
+ <keywords>HEX</keywords>
+ <keywords>HIDDEN</keywords>
+ <keywords>HIERARCHY</keywords>
+ <keywords>HIGH</keywords>
+ <keywords>HISTOGRAM</keywords>
+ <keywords>HISTOGRAMBIN</keywords>
+ <keywords>HISTORY</keywords>
+ <keywords>HOLD</keywords>
+ <keywords>HOUR</keywords>
+ <keywords>HOURS</keywords>
+ <keywords>HPJ</keywords>
+ <keywords>ID</keywords>
+ <keywords>IDENTITY</keywords>
+ <keywords>IF</keywords>
+ <keywords>IGNORE</keywords>
+ <keywords>IMMEDIATE</keywords>
+ <keywords>IMPLICIT</keywords>
+ <keywords>IMPLICITLY</keywords>
+ <keywords>IMPLICIT_SCHEMA</keywords>
+ <keywords>IN</keywords>
+ <keywords>INACTIVE</keywords>
+ <keywords>INCLUDE</keywords>
+ <keywords>INCLUDES</keywords>
+ <keywords>INCLUDING</keywords>
+ <keywords>INCLUSIVE</keywords>
+ <keywords>INCREASESIZE</keywords>
+ <keywords>INCREMENT</keywords>
+ <keywords>INCREMENTAL</keywords>
+ <keywords>INDEX</keywords>
+ <keywords>INDEXES</keywords>
+ <keywords>INDICATOR</keywords>
+ <keywords>INDICES</keywords>
+ <keywords>INF</keywords>
+ <keywords>INFINITY</keywords>
+ <keywords>INFIX</keywords>
+ <keywords>INFO</keywords>
+ <keywords>INHERIT</keywords>
+ <keywords>INITIALLY</keywords>
+ <keywords>INITIALSIZE</keywords>
+ <keywords>INITIAL_INSTS</keywords>
+ <keywords>INITIAL_IOS</keywords>
+ <keywords>INLINE</keywords>
+ <keywords>INLINEFUNCTION</keywords>
+ <keywords>INLINETRIGGER</keywords>
+ <keywords>INNER</keywords>
+ <keywords>INOUT</keywords>
+ <keywords>INPUT</keywords>
+ <keywords>INSENSITIVE</keywords>
+ <keywords>INSERT</keywords>
+ <keywords>INSERTING</keywords>
+ <keywords>INSTANTIABLE</keywords>
+ <keywords>INSTEAD</keywords>
+ <keywords>INSTS_PER_ARGBYTE</keywords>
+ <keywords>INSTS_PER_INVOC</keywords>
+ <keywords>INT</keywords>
+ <keywords>INTEGER</keywords>
+ <keywords>INTEGRITY</keywords>
+ <keywords>INTERARRIVALTIME</keywords>
+ <keywords>INTERSECT</keywords>
+ <keywords>INTO</keywords>
+ <keywords>INVALID</keywords>
+ <keywords>INVALIDATION</keywords>
+ <keywords>IO</keywords>
+ <keywords>IOS_PER_ARGBYTE</keywords>
+ <keywords>IOS_PER_INVOC</keywords>
+ <keywords>IS</keywords>
+ <keywords>ISO</keywords>
+ <keywords>ISOLATION</keywords>
+ <keywords>ITERATE</keywords>
+ <keywords>JAVA</keywords>
+ <keywords>JIS</keywords>
+ <keywords>JOIN</keywords>
+ <keywords>K</keywords>
+ <keywords>KEEP</keywords>
+ <keywords>KEEPDYNAMIC</keywords>
+ <keywords>KEY</keywords>
+ <keywords>KEYS</keywords>
+ <keywords>L</keywords>
+ <keywords>LABEL</keywords>
+ <keywords>LANGUAGE</keywords>
+ <keywords>LARGE</keywords>
+ <keywords>LAST</keywords>
+ <keywords>LATERAL</keywords>
+ <keywords>LC_CTYPE</keywords>
+ <keywords>LC_MESSAGES</keywords>
+ <keywords>LC_TIME</keywords>
+ <keywords>LEADING</keywords>
+ <keywords>LEAVE</keywords>
+ <keywords>LEFT</keywords>
+ <keywords>LENGTH</keywords>
+ <keywords>LEVEL</keywords>
+ <keywords>LEVEL2</keywords>
+ <keywords>LIBRARY</keywords>
+ <keywords>LIBRARYADM</keywords>
+ <keywords>LIFETIME</keywords>
+ <keywords>LIKE</keywords>
+ <keywords>LIMIT</keywords>
+ <keywords>LIST</keywords>
+ <keywords>LOAD</keywords>
+ <keywords>LOCAL</keywords>
+ <keywords>LOCALE</keywords>
+ <keywords>LOCATION</keywords>
+ <keywords>LOCATOR</keywords>
+ <keywords>LOCATORS</keywords>
+ <keywords>LOCK</keywords>
+ <keywords>LOCKED</keywords>
+ <keywords>LOCKING</keywords>
+ <keywords>LOCKS</keywords>
+ <keywords>LOCKSIZE</keywords>
+ <keywords>LOCK_ACTIVITY_VALUES</keywords>
+ <keywords>LOCK_PARTICIPANTS</keywords>
+ <keywords>LOCK_PARTICIPANT_ACTIVITIES</keywords>
+ <keywords>LOG</keywords>
+ <keywords>LOGGED</keywords>
+ <keywords>LOGICAL</keywords>
+ <keywords>LONG</keywords>
+ <keywords>LONGVAR</keywords>
+ <keywords>LOOP</keywords>
+ <keywords>LOW</keywords>
+ <keywords>LOWER</keywords>
+ <keywords>M</keywords>
+ <keywords>MAIN</keywords>
+ <keywords>MAINTAINED</keywords>
+ <keywords>MANAGED</keywords>
+ <keywords>MANUALSTART</keywords>
+ <keywords>MAP</keywords>
+ <keywords>MAPPING</keywords>
+ <keywords>MARK</keywords>
+ <keywords>MASK</keywords>
+ <keywords>MATCHED</keywords>
+ <keywords>MATCHING</keywords>
+ <keywords>MATERIALIZED</keywords>
+ <keywords>MAX</keywords>
+ <keywords>MAXFILES</keywords>
+ <keywords>MAXFILESIZE</keywords>
+ <keywords>MAXIMUM</keywords>
+ <keywords>MAXSIZE</keywords>
+ <keywords>MAXVALUE</keywords>
+ <keywords>MDC</keywords>
+ <keywords>MEDIUM</keywords>
+ <keywords>MEMBER</keywords>
+ <keywords>MEMBERS</keywords>
+ <keywords>MERGE</keywords>
+ <keywords>MESSAGE_TEXT</keywords>
+ <keywords>METHOD</keywords>
+ <keywords>METHODS</keywords>
+ <keywords>METRICS</keywords>
+ <keywords>MICROSECOND</keywords>
+ <keywords>MICROSECONDS</keywords>
+ <keywords>MINPCTUSED</keywords>
+ <keywords>MINUS</keywords>
+ <keywords>MINUTE</keywords>
+ <keywords>MINUTES</keywords>
+ <keywords>MINVALUE</keywords>
+ <keywords>MISSING</keywords>
+ <keywords>MIXED</keywords>
+ <keywords>MODE</keywords>
+ <keywords>MODIFIES</keywords>
+ <keywords>MODULE</keywords>
+ <keywords>MONITOR</keywords>
+ <keywords>MONTH</keywords>
+ <keywords>MONTHS</keywords>
+ <keywords>MORE</keywords>
+ <keywords>MOVEMENT</keywords>
+ <keywords>MOVETABLE</keywords>
+ <keywords>NAME</keywords>
+ <keywords>NAMESPACE</keywords>
+ <keywords>NAN</keywords>
+ <keywords>NATIONAL</keywords>
+ <keywords>NATURAL</keywords>
+ <keywords>NCHAR</keywords>
+ <keywords>NCLOB</keywords>
+ <keywords>NESTED</keywords>
+ <keywords>NETWORK</keywords>
+ <keywords>NEW</keywords>
+ <keywords>NEW_TABLE</keywords>
+ <keywords>NEXT</keywords>
+ <keywords>NEXTVAL</keywords>
+ <keywords>NICKNAME</keywords>
+ <keywords>NO</keywords>
+ <keywords>NOCACHE</keywords>
+ <keywords>NOCOPY</keywords>
+ <keywords>NOCYCLE</keywords>
+ <keywords>NODE</keywords>
+ <keywords>NODEGROUP</keywords>
+ <keywords>NODES</keywords>
+ <keywords>NOMAXVALUE</keywords>
+ <keywords>NOMINVALUE</keywords>
+ <keywords>NONBLOCKED</keywords>
+ <keywords>NONE</keywords>
+ <keywords>NOORDER</keywords>
+ <keywords>NORCAC</keywords>
+ <keywords>NORMAL</keywords>
+ <keywords>NOT</keywords>
+ <keywords>NULL</keywords>
+ <keywords>NULLS</keywords>
+ <keywords>NUM</keywords>
+ <keywords>NUMBER</keywords>
+ <keywords>NUMBLOCKPAGES</keywords>
+ <keywords>NUMERIC</keywords>
+ <keywords>NUM_EXECUTIONS</keywords>
+ <keywords>NUM_FREQVALUES</keywords>
+ <keywords>NUM_QUANTILES</keywords>
+ <keywords>NVARCHAR</keywords>
+ <keywords>NVARCHAR2</keywords>
+ <keywords>OBJECT</keywords>
+ <keywords>OBJMAINT</keywords>
+ <keywords>OCCURRENCE</keywords>
+ <keywords>OCTETS</keywords>
+ <keywords>OF</keywords>
+ <keywords>OFF</keywords>
+ <keywords>OFFSET</keywords>
+ <keywords>OLD</keywords>
+ <keywords>OLD_TABLE</keywords>
+ <keywords>OLE</keywords>
+ <keywords>OLEDB</keywords>
+ <keywords>ON</keywords>
+ <keywords>ONCE</keywords>
+ <keywords>ONLINE</keywords>
+ <keywords>ONLY</keywords>
+ <keywords>OPEN</keywords>
+ <keywords>OPTIMIZATION</keywords>
+ <keywords>OPTIMIZE</keywords>
+ <keywords>OPTION</keywords>
+ <keywords>OPTIONS</keywords>
+ <keywords>OPTPROFILE</keywords>
+ <keywords>OR</keywords>
+ <keywords>ORDER</keywords>
+ <keywords>ORDINALITY</keywords>
+ <keywords>ORGANIZE</keywords>
+ <keywords>OUT</keywords>
+ <keywords>OUTBOUND</keywords>
+ <keywords>OUTCOME</keywords>
+ <keywords>OUTER</keywords>
+ <keywords>OVER</keywords>
+ <keywords>OVERFLOW</keywords>
+ <keywords>OVERHEAD</keywords>
+ <keywords>OVERLAPS</keywords>
+ <keywords>OVERRIDE</keywords>
+ <keywords>OVERRIDING</keywords>
+ <keywords>OWNERSHIP</keywords>
+ <keywords>P</keywords>
+ <keywords>PACKAGE</keywords>
+ <keywords>PAGE</keywords>
+ <keywords>PAGESIZE</keywords>
+ <keywords>PARALLEL</keywords>
+ <keywords>PARAMETER</keywords>
+ <keywords>PARAMETERS</keywords>
+ <keywords>PARENT</keywords>
+ <keywords>PART</keywords>
+ <keywords>PARTITION</keywords>
+ <keywords>PARTITIONED</keywords>
+ <keywords>PARTITIONING</keywords>
+ <keywords>PARTITIONINGS</keywords>
+ <keywords>PARTITIONS</keywords>
+ <keywords>PASSING</keywords>
+ <keywords>PASSTHRU</keywords>
+ <keywords>PASSWORD</keywords>
+ <keywords>PATH</keywords>
+ <keywords>PATROLLER</keywords>
+ <keywords>PCTDEACTIVATE</keywords>
+ <keywords>PCTFREE</keywords>
+ <keywords>PERCENT</keywords>
+ <keywords>PERCENT_ARGBYTES</keywords>
+ <keywords>PERFORM</keywords>
+ <keywords>PERIOD</keywords>
+ <keywords>PERMISSION</keywords>
+ <keywords>PIECESIZE</keywords>
+ <keywords>PIPE</keywords>
+ <keywords>PKGCACHE</keywords>
+ <keywords>PKGCACHE_METRICS</keywords>
+ <keywords>PKGCACHE_STMT_ARGS</keywords>
+ <keywords>PLACING</keywords>
+ <keywords>PLAN</keywords>
+ <keywords>PLS_INTEGER</keywords>
+ <keywords>POLICY</keywords>
+ <keywords>PORTION</keywords>
+ <keywords>POSITION</keywords>
+ <keywords>PRAGMA</keywords>
+ <keywords>PRECEDING</keywords>
+ <keywords>PRECISION</keywords>
+ <keywords>PREDICATES</keywords>
+ <keywords>PREFETCH</keywords>
+ <keywords>PREFETCHSIZE</keywords>
+ <keywords>PREPARE</keywords>
+ <keywords>PRESERVE</keywords>
+ <keywords>PREVENT</keywords>
+ <keywords>PREVIOUS</keywords>
+ <keywords>PREVVAL</keywords>
+ <keywords>PRIMARY</keywords>
+ <keywords>PRIOR</keywords>
+ <keywords>PRIORITY</keywords>
+ <keywords>PRIQTY</keywords>
+ <keywords>PRIVILEGES</keywords>
+ <keywords>PROCEDURE</keywords>
+ <keywords>PROFILE</keywords>
+ <keywords>PROGRAM</keywords>
+ <keywords>PROPAGATE</keywords>
+ <keywords>PROTOCOL</keywords>
+ <keywords>PRUNE</keywords>
+ <keywords>PUBLIC</keywords>
+ <keywords>PUBLISH</keywords>
+ <keywords>QSTATS</keywords>
+ <keywords>QUERY</keywords>
+ <keywords>QUERYNO</keywords>
+ <keywords>QUERYTAG</keywords>
+ <keywords>QUEUEDACTIVITIES</keywords>
+ <keywords>QUEUEDCONNECTIONS</keywords>
+ <keywords>QUEUETIME</keywords>
+ <keywords>QUIESCE_CONNECT</keywords>
+ <keywords>RAISE</keywords>
+ <keywords>RANGE</keywords>
+ <keywords>RATE</keywords>
+ <keywords>RATIO</keywords>
+ <keywords>RAW</keywords>
+ <keywords>READ</keywords>
+ <keywords>READS</keywords>
+ <keywords>REAL</keywords>
+ <keywords>REBALANCE</keywords>
+ <keywords>RECOMMEND</keywords>
+ <keywords>RECORD</keywords>
+ <keywords>RECOVERY</keywords>
+ <keywords>RECREATE</keywords>
+ <keywords>REDIRECT</keywords>
+ <keywords>REDISTRIBUTE</keywords>
+ <keywords>REDUCE</keywords>
+ <keywords>REF</keywords>
+ <keywords>REFERENCE</keywords>
+ <keywords>REFERENCES</keywords>
+ <keywords>REFERENCING</keywords>
+ <keywords>REFRESH</keywords>
+ <keywords>REGISTERS</keywords>
+ <keywords>REGULAR</keywords>
+ <keywords>REGVAR</keywords>
+ <keywords>REGVARVALUES</keywords>
+ <keywords>REJECT</keywords>
+ <keywords>RELEASE</keywords>
+ <keywords>RELEASED</keywords>
+ <keywords>REMAIN</keywords>
+ <keywords>REMAP</keywords>
+ <keywords>REMOTE</keywords>
+ <keywords>REMOVE</keywords>
+ <keywords>RENAME</keywords>
+ <keywords>REOPT</keywords>
+ <keywords>REORG</keywords>
+ <keywords>REPEAT</keywords>
+ <keywords>REPEATABLE</keywords>
+ <keywords>REPLACE</keywords>
+ <keywords>REPLICATED</keywords>
+ <keywords>REPLICATION</keywords>
+ <keywords>REQUEST</keywords>
+ <keywords>REQUIRE</keywords>
+ <keywords>RESET</keywords>
+ <keywords>RESIDENT</keywords>
+ <keywords>RESIGNAL</keywords>
+ <keywords>RESIZE</keywords>
+ <keywords>RESOLVE</keywords>
+ <keywords>RESTART</keywords>
+ <keywords>RESTORE</keywords>
+ <keywords>RESTRICT</keywords>
+ <keywords>RESULT</keywords>
+ <keywords>RESULT_SET_LOCATOR</keywords>
+ <keywords>RESUME</keywords>
+ <keywords>RETAIN</keywords>
+ <keywords>RETURN</keywords>
+ <keywords>RETURNING</keywords>
+ <keywords>RETURNS</keywords>
+ <keywords>RETURN_STATUS</keywords>
+ <keywords>REUSE</keywords>
+ <keywords>REVERSE</keywords>
+ <keywords>REVOKE</keywords>
+ <keywords>RID</keywords>
+ <keywords>RID_BIT</keywords>
+ <keywords>RIGHT</keywords>
+ <keywords>ROLE</keywords>
+ <keywords>ROLLBACK</keywords>
+ <keywords>ROLLFORWARD</keywords>
+ <keywords>ROLLOUT</keywords>
+ <keywords>ROLLUP</keywords>
+ <keywords>ROOT</keywords>
+ <keywords>ROUNDING</keywords>
+ <keywords>ROUND_CEILING</keywords>
+ <keywords>ROUND_DOWN</keywords>
+ <keywords>ROUND_FLOOR</keywords>
+ <keywords>ROUND_HALF_EVEN</keywords>
+ <keywords>ROUND_HALF_UP</keywords>
+ <keywords>ROUTINES</keywords>
+ <keywords>ROW</keywords>
+ <keywords>ROWS</keywords>
+ <keywords>ROW_COUNT</keywords>
+ <keywords>RR</keywords>
+ <keywords>RS</keywords>
+ <keywords>RULE</keywords>
+ <keywords>RUN</keywords>
+ <keywords>RUNSTATS</keywords>
+ <keywords>S</keywords>
+ <keywords>SAFE</keywords>
+ <keywords>SAMPLED</keywords>
+ <keywords>SAVEPOINT</keywords>
+ <keywords>SBCS</keywords>
+ <keywords>SCANS</keywords>
+ <keywords>SCHEMA</keywords>
+ <keywords>SCOPE</keywords>
+ <keywords>SCRATCHPAD</keywords>
+ <keywords>SCROLL</keywords>
+ <keywords>SCSTATS</keywords>
+ <keywords>SEARCH</keywords>
+ <keywords>SECADM</keywords>
+ <keywords>SECMAINT</keywords>
+ <keywords>SECOND</keywords>
+ <keywords>SECONDS</keywords>
+ <keywords>SECQTY</keywords>
+ <keywords>SECTION</keywords>
+ <keywords>SECURED</keywords>
+ <keywords>SECURITY</keywords>
+ <keywords>SELECT</keywords>
+ <keywords>SELECTION</keywords>
+ <keywords>SELECTIVITY</keywords>
+ <keywords>SELF</keywords>
+ <keywords>SENSITIVE</keywords>
+ <keywords>SEQUENCE</keywords>
+ <keywords>SERIALIZABLE</keywords>
+ <keywords>SERVER</keywords>
+ <keywords>SERVICE</keywords>
+ <keywords>SESSION</keywords>
+ <keywords>SESSION_USER</keywords>
+ <keywords>SET</keywords>
+ <keywords>SETS</keywords>
+ <keywords>SETSESSIONUSER</keywords>
+ <keywords>SETTING</keywords>
+ <keywords>SHARE</keywords>
+ <keywords>SHARES</keywords>
+ <keywords>SHRLEVEL</keywords>
+ <keywords>SIBLINGS</keywords>
+ <keywords>SIGNAL</keywords>
+ <keywords>SIMPLE</keywords>
+ <keywords>SIZE</keywords>
+ <keywords>SKIP</keywords>
+ <keywords>SMALLINT</keywords>
+ <keywords>SNAN</keywords>
+ <keywords>SNAPSHOT</keywords>
+ <keywords>SOFT</keywords>
+ <keywords>SOME</keywords>
+ <keywords>SOURCE</keywords>
+ <keywords>SPECIAL</keywords>
+ <keywords>SPECIFIC</keywords>
+ <keywords>SPECIFICATION</keywords>
+ <keywords>SPLIT</keywords>
+ <keywords>SQL</keywords>
+ <keywords>SQLADM</keywords>
+ <keywords>SQLCODE</keywords>
+ <keywords>SQLDATA</keywords>
+ <keywords>SQLERRM</keywords>
+ <keywords>SQLEXCEPTION</keywords>
+ <keywords>SQLID</keywords>
+ <keywords>SQLINTERNAL</keywords>
+ <keywords>SQLROWSREAD</keywords>
+ <keywords>SQLROWSREADINSC</keywords>
+ <keywords>SQLROWSRETURNED</keywords>
+ <keywords>SQLSTATE</keywords>
+ <keywords>SQLTEMPSPACE</keywords>
+ <keywords>SQLWARNING</keywords>
+ <keywords>SQL_CCFLAGS</keywords>
+ <keywords>SSA</keywords>
+ <keywords>STABILITY</keywords>
+ <keywords>STAGING</keywords>
+ <keywords>START</keywords>
+ <keywords>STARTING</keywords>
+ <keywords>STATE</keywords>
+ <keywords>STATEMENT</keywords>
+ <keywords>STATEMENTS</keywords>
+ <keywords>STATIC</keywords>
+ <keywords>STATISTICS</keywords>
+ <keywords>STATUS</keywords>
+ <keywords>STAY</keywords>
+ <keywords>STMT</keywords>
+ <keywords>STMTHIST</keywords>
+ <keywords>STMTVALS</keywords>
+ <keywords>STMT_EXEC_TIME</keywords>
+ <keywords>STOGROUP</keywords>
+ <keywords>STOP</keywords>
+ <keywords>STORAGE</keywords>
+ <keywords>STRIP</keywords>
+ <keywords>STRIPE</keywords>
+ <keywords>STYLE</keywords>
+ <keywords>SUB</keywords>
+ <keywords>SUBSECTION</keywords>
+ <keywords>SUCCESS</keywords>
+ <keywords>SUMMARY</keywords>
+ <keywords>SUSPEND</keywords>
+ <keywords>SWITCH</keywords>
+ <keywords>SYMMETRIC</keywords>
+ <keywords>SYNONYM</keywords>
+ <keywords>SYSADM</keywords>
+ <keywords>SYSADMIN</keywords>
+ <keywords>SYSCTRL</keywords>
+ <keywords>SYSDATE</keywords>
+ <keywords>SYSMAINT</keywords>
+ <keywords>SYSMON</keywords>
+ <keywords>SYSTEM</keywords>
+ <keywords>SYSTEM_TIME</keywords>
+ <keywords>SYSTEM_USER</keywords>
+ <keywords>SYS_REFCURSOR</keywords>
+ <keywords>T</keywords>
+ <keywords>TABLE</keywords>
+ <keywords>TABLES</keywords>
+ <keywords>TABLESAMPLE</keywords>
+ <keywords>TABLESPACE</keywords>
+ <keywords>TABLESPACES</keywords>
+ <keywords>TAG</keywords>
+ <keywords>TARGET</keywords>
+ <keywords>TEMPLATE</keywords>
+ <keywords>TEMPORAL</keywords>
+ <keywords>TEMPORARY</keywords>
+ <keywords>TEXT</keywords>
+ <keywords>THAN</keywords>
+ <keywords>THEN</keywords>
+ <keywords>THREADSAFE</keywords>
+ <keywords>THRESHOLD</keywords>
+ <keywords>THRESHOLDVIOLATIONS</keywords>
+ <keywords>THROUGH</keywords>
+ <keywords>TIME</keywords>
+ <keywords>TIMEOUT</keywords>
+ <keywords>TIMERONCOST</keywords>
+ <keywords>TIMESTAMP</keywords>
+ <keywords>TIMEZONE</keywords>
+ <keywords>TO</keywords>
+ <keywords>TOKEN</keywords>
+ <keywords>TOTALDBPARTITIONCONNECTIONS</keywords>
+ <keywords>TOTALMEMBERCONNECTIONS</keywords>
+ <keywords>TOTALSCMEMBERCONNECTIONS</keywords>
+ <keywords>TOTALSCPARTITIONCONNECTIONS</keywords>
+ <keywords>TRAILING</keywords>
+ <keywords>TRANSACTION</keywords>
+ <keywords>TRANSACTIONS</keywords>
+ <keywords>TRANSFER</keywords>
+ <keywords>TRANSFERRATE</keywords>
+ <keywords>TRANSFORM</keywords>
+ <keywords>TRANSFORMS</keywords>
+ <keywords>TRANSLATE</keywords>
+ <keywords>TREAT</keywords>
+ <keywords>TREE</keywords>
+ <keywords>TRIGGER</keywords>
+ <keywords>TRIGGERS</keywords>
+ <keywords>TRIM</keywords>
+ <keywords>TRUE</keywords>
+ <keywords>TRUNC</keywords>
+ <keywords>TRUNCATE</keywords>
+ <keywords>TRUSTED</keywords>
+ <keywords>TWOLEVEL</keywords>
+ <keywords>TXNCOMPLETION</keywords>
+ <keywords>TYPE</keywords>
+ <keywords>TYPES</keywords>
+ <keywords>UESCAPE</keywords>
+ <keywords>UNBOUNDED</keywords>
+ <keywords>UNCHECKED</keywords>
+ <keywords>UNCOMMITTED</keywords>
+ <keywords>UNDER</keywords>
+ <keywords>UNDO</keywords>
+ <keywords>UNFORMATTED</keywords>
+ <keywords>UNICODE</keywords>
+ <keywords>UNION</keywords>
+ <keywords>UNIQUE</keywords>
+ <keywords>UNIT</keywords>
+ <keywords>UNITS</keywords>
+ <keywords>UNNEST</keywords>
+ <keywords>UNSAFE</keywords>
+ <keywords>UNSAMPLED</keywords>
+ <keywords>UNTIL</keywords>
+ <keywords>UOW</keywords>
+ <keywords>UOWTOTALTIME</keywords>
+ <keywords>UOW_EXECUTABLE_LIST</keywords>
+ <keywords>UOW_METRICS</keywords>
+ <keywords>UOW_PACKAGE_LIST</keywords>
+ <keywords>UPDATE</keywords>
+ <keywords>UPDATED_SINCE_BOUNDARY_TIME</keywords>
+ <keywords>UPDATING</keywords>
+ <keywords>UPON</keywords>
+ <keywords>UR</keywords>
+ <keywords>URI</keywords>
+ <keywords>USA</keywords>
+ <keywords>USAGE</keywords>
+ <keywords>USE</keywords>
+ <keywords>USER</keywords>
+ <keywords>USERID</keywords>
+ <keywords>USING</keywords>
+ <keywords>UTILALL</keywords>
+ <keywords>UTILLOCATION</keywords>
+ <keywords>UTILPHASE</keywords>
+ <keywords>UTILSTART</keywords>
+ <keywords>UTILSTOP</keywords>
+ <keywords>VALIDATE</keywords>
+ <keywords>VALIDATED</keywords>
+ <keywords>VALUE</keywords>
+ <keywords>VALUES</keywords>
+ <keywords>VARCHAR</keywords>
+ <keywords>VARCHAR2</keywords>
+ <keywords>VARGRAPHIC</keywords>
+ <keywords>VARIABLE</keywords>
+ <keywords>VARIANT</keywords>
+ <keywords>VARRAY</keywords>
+ <keywords>VARYING</keywords>
+ <keywords>VCAT</keywords>
+ <keywords>VERIFY_GROUP_FOR_USER</keywords>
+ <keywords>VERIFY_ROLE_FOR_USER</keywords>
+ <keywords>VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER</keywords>
+ <keywords>VERSION</keywords>
+ <keywords>VERSIONING</keywords>
+ <keywords>VERSIONS</keywords>
+ <keywords>VIEW</keywords>
+ <keywords>VIOLATIONS</keywords>
+ <keywords>VOLATILE</keywords>
+ <keywords>WAIT</keywords>
+ <keywords>WAITING</keywords>
+ <keywords>WATER</keywords>
+ <keywords>WCSTATS</keywords>
+ <keywords>WHEN</keywords>
+ <keywords>WHERE</keywords>
+ <keywords>WHILE</keywords>
+ <keywords>WHITESPACE</keywords>
+ <keywords>WITH</keywords>
+ <keywords>WITHIN</keywords>
+ <keywords>WITHOUT</keywords>
+ <keywords>WLMADM</keywords>
+ <keywords>WLSTATS</keywords>
+ <keywords>WORK</keywords>
+ <keywords>WORKLOAD</keywords>
+ <keywords>WRAP</keywords>
+ <keywords>WRAPPER</keywords>
+ <keywords>WRITE</keywords>
+ <keywords>WRITEDOWN</keywords>
+ <keywords>WRITEUP</keywords>
+ <keywords>WRKSTNNAME</keywords>
+ <keywords>XACT</keywords>
+ <keywords>XML</keywords>
+ <keywords>XMLAGG</keywords>
+ <keywords>XMLATTRIBUTES</keywords>
+ <keywords>XMLBINARY</keywords>
+ <keywords>XMLCAST</keywords>
+ <keywords>XMLCOMMENT</keywords>
+ <keywords>XMLCONCAT</keywords>
+ <keywords>XMLDECLARATION</keywords>
+ <keywords>XMLDOCUMENT</keywords>
+ <keywords>XMLELEMENT</keywords>
+ <keywords>XMLEXISTS</keywords>
+ <keywords>XMLFOREST</keywords>
+ <keywords>XMLGROUP</keywords>
+ <keywords>XMLNAMESPACES</keywords>
+ <keywords>XMLPARSE</keywords>
+ <keywords>XMLPATTERN</keywords>
+ <keywords>XMLPI</keywords>
+ <keywords>XMLQUERY</keywords>
+ <keywords>XMLROW</keywords>
+ <keywords>XMLSCHEMA</keywords>
+ <keywords>XMLSERIALIZE</keywords>
+ <keywords>XMLTABLE</keywords>
+ <keywords>XMLTEXT</keywords>
+ <keywords>XMLVALIDATE</keywords>
+ <keywords>XQUERY</keywords>
+ <keywords>XSLTRANSFORM</keywords>
+ <keywords>XSROBJECT</keywords>
+ <keywords>YEAR</keywords>
+ <keywords>YEARS</keywords>
+ <keywords>YES</keywords>
+ <operators><</operators>
+ <operators>"</operators>
+ <operators>%</operators>
+ <operators>&</operators>
+ <operators>''''</operators>
+ <operators>(</operators>
+ <operators>)</operators>
+ <operators>*</operators>
+ <operators>+</operators>
+ <operators>,</operators>
+ <operators>-</operators>
+ <operators>.</operators>
+ <operators>/</operators>
+ <operators>:</operators>
+ <operators>;</operators>
+ <operators>=</operators>
+ <operators>?</operators>
+ <operators>[</operators>
+ <operators>]</operators>
+ <operators>_</operators>
+ <operators>'|'</operators>
+ <operators>,=</operators>
+ <operators><=</operators>
+ <operators>||</operators>
+ <operators>..</operators>
+ <operators>'-,'</operators>
+ <operators>!</operators>
+ <operators>~</operators>
+ <operators>:=</operators>
+ <operators>{</operators>
+ <operators>}</operators>
+ <operators>(+)</operators>
+ </SQLSyntaxDefinition>
+ <nicknameDefinition constraintSupported="true" indexSupported="true" maximumIdentifierLength="128"/>
+ <schemaDefinition maximumIdentifierLength="128"/>
+ <viewDefinition maximumIdentifierLength="128"/>
+ <privilegedElementDefinitions name="Database">
+ <privilegeDefinitions name="BINDADD"/>
+ <privilegeDefinitions name="CONNECT"/>
+ <privilegeDefinitions name="CREATETAB"/>
+ <privilegeDefinitions name="CREATE_EXTERNAL_ROUTINE"/>
+ <privilegeDefinitions name="CREATE_NOT_FENCED_ROUTINE"/>
+ <privilegeDefinitions name="IMPLICIT_SCHEMA"/>
+ <privilegeDefinitions name="DBADM"/>
+ <privilegeDefinitions name="LOAD"/>
+ <privilegeDefinitions name="QUIESCE_CONNECT"/>
+ <privilegeDefinitions name="SECADM"/>
+ <privilegeDefinitions name="ACCESSCTRL"/>
+ <privilegeDefinitions name="DATAACCESS"/>
+ <privilegeDefinitions name="EXPLAIN"/>
+ <privilegeDefinitions name="SQLADM"/>
+ <privilegeDefinitions name="WLMADM"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Schema">
+ <privilegeDefinitions name="ALTERIN"/>
+ <privilegeDefinitions name="CREATEIN"/>
+ <privilegeDefinitions name="DROPIN"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PersistentTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="ViewTable">
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Nickname">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions xmi:id="COLUMN_1" name="Column"/>
+ <privilegedElementDefinitions name="MaterializedQueryTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Routine">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Sequence">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="USAGE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Index">
+ <privilegeDefinitions name="CONTROL"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Tablespace">
+ <privilegeDefinitions name="USE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Package">
+ <privilegeDefinitions name="BIND"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Module">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PLSQLPackage">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="GlobalVariable">
+ <privilegeDefinitions name="READ"/>
+ <privilegeDefinitions name="WRITE"/>
+ </privilegedElementDefinitions>
+ <constructedDataTypeDefinition arrayDatatypeSupported="true" multisetDatatypeSupported="true" rowDatatypeSupported="true" referenceDatatypeSupported="true" cursorDatatypeSupported="true"/>
+</DBDefinition:DatabaseVendorDefinition>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_10.5/DB2 UDB_10.5.xmi b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_10.5/DB2 UDB_10.5.xmi
new file mode 100644
index 0000000..f8ed7b0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_10.5/DB2 UDB_10.5.xmi
@@ -0,0 +1,1511 @@
+<?xml version="1.0" encoding="ASCII"?>
+<DBDefinition:DatabaseVendorDefinition xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:DBDefinition="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore" vendor="DB2 UDB" version="V10.5" maximumIdentifierLength="8" viewTriggerSupported="true" maximumCommentLength="64" sequenceSupported="true" mQTSupported="true" aliasSupported="true" userDefinedTypeSupported="true" SQLStatementSupported="true" nicknameSupported="true" xmlSupported="true" packageSupported="true" roleSupported="true" groupSupported="true" userSupported="true" roleAuthorizationSupported="true" constructedDataTypeSupported="true" mQTIndexSupported="true">
+ <predefinedDataTypeDefinitions xmi:id="BIGINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="BIGINT" jdbcEnumType="-5" javaClassName="long">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BIGINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="BINARY_LARGE_OBJECT" jdbcEnumType="2004" javaClassName="java.sql.Blob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="127" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>GRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="16336" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_2" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR</name>
+ <name>CHARACTER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CLOB</name>
+ <name>CHARACTER LARGE OBJECT</name>
+ <name>CHAR LARGE OBJECT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="1073741823" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DBCLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR</name>
+ <name>CHARACTER VARYING</name>
+ <name>CHAR VARYING</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_2" primitiveType="CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATE_1" keyConstraintSupported="true" primitiveType="DATE" jdbcEnumType="91" javaClassName="java.sql.Date">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT DATE</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATE</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DECIMAL_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECIMAL</name>
+ <name>DEC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_2" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="34" primitiveType="FLOAT" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="34">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECFLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DOUBLE_PRECISION_1" keyConstraintSupported="true" primitiveType="DOUBLE_PRECISION" jdbcEnumType="8" javaClassName="double">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DOUBLE</name>
+ <name>DOUBLE PRECISION</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="53" primitiveType="FLOAT" jdbcEnumType="6" javaClassName="double" defaultPrecision="53" cutoffPrecision="25">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>FLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_1" keyConstraintSupported="true" identitySupported="true" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>INTEGER</name>
+ <name>INT</name>
+ <name>BINARY_INTEGER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATALINK_1" lengthSupported="true" maximumLength="200" primitiveType="DATALINK" jdbcEnumType="70" javaClassName="java.net.URL" defaultLength="200" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATALINK</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NUMERIC_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="NUMERIC" jdbcEnumType="2" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMERIC</name>
+ <name>NUM</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="REAL_1" keyConstraintSupported="true" primitiveType="REAL" jdbcEnumType="7" javaClassName="float">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>REAL</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="SMALLINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="SMALLINT" jdbcEnumType="5" javaClassName="short">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SMALLINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIME_1" keyConstraintSupported="true" primitiveType="TIME" jdbcEnumType="92" javaClassName="java.sql.Time">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIME</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIME</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="12" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp" defaultPrecision="6">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIMESTAMP</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIMESTAMP</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="1" displayName="CHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR FOR BIT DATA</name>
+ <name>CHARACTER FOR BIT DATA</name>
+ <name>CHAR () FOR BIT DATA</name>
+ <name>CHARACTER () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]" defaultLength="1" displayName="VARCHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR FOR BIT DATA</name>
+ <name>CHARACTER VARYING FOR BIT DATA</name>
+ <name>CHAR VARYING FOR BIT DATA</name>
+ <name>VARCHAR () FOR BIT DATA</name>
+ <name>CHARACTER VARYING () FOR BIT DATA</name>
+ <name>CHAR VARYING () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_2" primitiveType="BINARY_VARYING" jdbcEnumType="-4" javaClassName="byte[]">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_1" primitiveType="XML_TYPE" jdbcEnumType="1111" orderingSupported="false" groupingSupported="false">
+ <name>XML</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" defaultSupported="false" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMBER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions lengthSupported="true" keyConstraintSupported="true" defaultSupported="false" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="4096">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR2</name>
+ </predefinedDataTypeDefinitions>
+ <tableSpaceDefinition typeSupported="true" extentSizeSupported="true" prefetchSizeSupported="true" managedBySupported="true" pageSizeSupported="true" bufferPoolSupported="true" maximumIdentifierLength="18">
+ <tableSpaceType>REGULAR</tableSpaceType>
+ <tableSpaceType>TEMPORARY</tableSpaceType>
+ <tableSpaceType>LARGE</tableSpaceType>
+ </tableSpaceDefinition>
+ <storedProcedureDefinition nullInputActionSupported="true" determininsticSupported="true" returnedNullSupported="true" parameterStyleSupported="true" maximumIdentifierLength="128">
+ <predefinedDataTypeDefinitions xmi:id="BOOLEAN_1" primitiveType="BOOLEAN" jdbcEnumType="-7" javaClassName="boolean">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BOOLEAN</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_1" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_2" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>PLS_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_3" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BINARY_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_2" primitiveType="XML_TYPE" jdbcEnumType="1111" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>XMLTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_2" lengthSupported="true" maximumLength="32767" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="32767">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_3" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_2" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCLOB</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_2" lengthSupported="true" maximumLength="2000" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="127">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCHAR</name>
+ <name>NATIONAL CHARACTER</name>
+ <name>NATIONAL CHAR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_3" lengthSupported="true" maximumLength="4000" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="2048">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NVARCHAR2</name>
+ <name>NATIONAL CHARACTER VARYING</name>
+ <name>NATIONAL CHAR VARYING</name>
+ <name>NCHAR VARYING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_4" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NATURAL</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_2" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SYS_REFCURSOR</name>
+ <name>REFCURSOR</name>
+ <name>REF CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_3" lengthSupported="true" bitDataSupported="true" maximumLength="4000" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="1" displayName="STRING({0})" displayNameSupported="true" lengthSemanticSupported="true">
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>UID</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>STRING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_5" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>POSITIVE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_6" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SIGNTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <languageType>SQL</languageType>
+ <languageType>JAVA</languageType>
+ <languageType>C</languageType>
+ <languageType>COBOL</languageType>
+ <languageType>ASSEMBLY</languageType>
+ <languageType>PLI</languageType>
+ <functionLanguageType>SQL</functionLanguageType>
+ <functionLanguageType>JAVA</functionLanguageType>
+ <functionLanguageType>C</functionLanguageType>
+ <functionLanguageType>OLE</functionLanguageType>
+ <procedureType>PROCEDURE</procedureType>
+ <procedureType>FUNCTION</procedureType>
+ </storedProcedureDefinition>
+ <triggerDefinition granularitySupported="true" referencesClauseSupported="true" perColumnUpdateTriggerSupported="true" rowTriggerReferenceSupported="true" tableTriggerReferenceSupported="true" maximumIdentifierLength="128"/>
+ <columnDefinition identitySupported="true" identityStartValueSupported="true" identityIncrementSupported="true" identityMinimumSupported="true" identityMaximumSupported="true" identityCycleSupported="true" maximumIdentifierLength="128"/>
+ <constraintDefinition informationalConstraintSupported="true" clusteredPrimaryKeySupported="true" clusteredUniqueConstraintSupported="true" maximumPrimaryKeyIdentifierLength="128" maximumForeignKeyIdentifierLength="128" maximumCheckConstraintIdentifierLength="128">
+ <parentUpdateDRIRuleType>RESTRICT</parentUpdateDRIRuleType>
+ <parentUpdateDRIRuleType>NO_ACTION</parentUpdateDRIRuleType>
+ <parentDeleteDRIRuleType>RESTRICT</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>CASCADE</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>SET_NULL</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>NO_ACTION</parentDeleteDRIRuleType>
+ <checkOption>NONE</checkOption>
+ <checkOption>LOCAL</checkOption>
+ <checkOption>CASCADE</checkOption>
+ </constraintDefinition>
+ <indexDefinition clusteringSupported="true" includedColumnsSupported="true" maximumIdentifierLength="128"/>
+ <tableDefinition maximumIdentifierLength="128"/>
+ <sequenceDefinition predefinedDataTypeDefinitions="BIGINT_1 INTEGER_1 SMALLINT_1 DECIMAL_1" defaultDataTypeDefinition="INTEGER_1" typeEnumerationSupported="true" cacheSupported="true" orderSupported="true" noMaximumValueString="NO MAXVALUE" noMinimumValueString="NO MINVALUE" noCacheString="NO CACHE" cacheDefaultValue="20"/>
+ <udtDefinition distinctTypeSupported="true" structuredTypeSupported="true" maximumIdentifierLength="128"/>
+ <queryDefinition/>
+ <SQLSyntaxDefinition>
+ <keywords>ACCESS</keywords>
+ <keywords>ACCESSCTRL</keywords>
+ <keywords>ACCORDING</keywords>
+ <keywords>ACCTNG</keywords>
+ <keywords>ACTION</keywords>
+ <keywords>ACTIVATE</keywords>
+ <keywords>ACTIVATED</keywords>
+ <keywords>ACTIVE</keywords>
+ <keywords>ACTIVITIES</keywords>
+ <keywords>ACTIVITY</keywords>
+ <keywords>ACTIVITYMETRICS</keywords>
+ <keywords>ACTIVITYSTMT</keywords>
+ <keywords>ACTIVITYTOTALTIME</keywords>
+ <keywords>ACTIVITYVALS</keywords>
+ <keywords>ACTUALS</keywords>
+ <keywords>ADAPTIVE</keywords>
+ <keywords>ADD</keywords>
+ <keywords>ADDRESS</keywords>
+ <keywords>ADMIN</keywords>
+ <keywords>ADMINISTRATION</keywords>
+ <keywords>AFTER</keywords>
+ <keywords>AGE</keywords>
+ <keywords>AGENT</keywords>
+ <keywords>AGGREGATE</keywords>
+ <keywords>AGGSQLTEMPSPACE</keywords>
+ <keywords>ALIAS</keywords>
+ <keywords>ALL</keywords>
+ <keywords>ALLOCATE</keywords>
+ <keywords>ALLOW</keywords>
+ <keywords>ALTER</keywords>
+ <keywords>ALTERIN</keywords>
+ <keywords>ALWAYS</keywords>
+ <keywords>ANALYZE_TABLE</keywords>
+ <keywords>ANCHOR</keywords>
+ <keywords>AND</keywords>
+ <keywords>ANY</keywords>
+ <keywords>APPEND</keywords>
+ <keywords>APPLICATION</keywords>
+ <keywords>APPLNAME</keywords>
+ <keywords>APPL_ID</keywords>
+ <keywords>APPL_NAME</keywords>
+ <keywords>APREUSE</keywords>
+ <keywords>ARRAY</keywords>
+ <keywords>ARRAY_AGG</keywords>
+ <keywords>ARRAY_EXISTS</keywords>
+ <keywords>AS</keywords>
+ <keywords>ASC</keywords>
+ <keywords>ASCII</keywords>
+ <keywords>ASENSITIVE</keywords>
+ <keywords>ASSOCIATE</keywords>
+ <keywords>AST</keywords>
+ <keywords>ASUTIME</keywords>
+ <keywords>ASYNCHRONY</keywords>
+ <keywords>AT</keywords>
+ <keywords>ATOMIC</keywords>
+ <keywords>ATTACH</keywords>
+ <keywords>ATTRIBUTE</keywords>
+ <keywords>ATTRIBUTES</keywords>
+ <keywords>AUDIT</keywords>
+ <keywords>AUTHENTICATION</keywords>
+ <keywords>AUTHID</keywords>
+ <keywords>AUTHORIZATION</keywords>
+ <keywords>AUTHORIZATIONS</keywords>
+ <keywords>AUTHORIZED</keywords>
+ <keywords>AUTH_ID</keywords>
+ <keywords>AUTOMATIC</keywords>
+ <keywords>AUTONOMOUS</keywords>
+ <keywords>AUTONOMOUS_TRANSACTION</keywords>
+ <keywords>AUTORESIZE</keywords>
+ <keywords>AUTOSTART</keywords>
+ <keywords>B</keywords>
+ <keywords>BACKUP</keywords>
+ <keywords>BASE</keywords>
+ <keywords>BASE64</keywords>
+ <keywords>BASED</keywords>
+ <keywords>BEFORE</keywords>
+ <keywords>BEGIN</keywords>
+ <keywords>BERNOULLI</keywords>
+ <keywords>BETWEEN</keywords>
+ <keywords>BIGINT</keywords>
+ <keywords>BIN</keywords>
+ <keywords>BINARY</keywords>
+ <keywords>BINARY_INTEGER</keywords>
+ <keywords>BIND</keywords>
+ <keywords>BINDADD</keywords>
+ <keywords>BIT</keywords>
+ <keywords>BLOB</keywords>
+ <keywords>BLOCKED</keywords>
+ <keywords>BLOCKINSERT</keywords>
+ <keywords>BLOCKSIZE</keywords>
+ <keywords>BODY</keywords>
+ <keywords>BOOLEAN</keywords>
+ <keywords>BOTH</keywords>
+ <keywords>BUFFER</keywords>
+ <keywords>BUFFERPOOL</keywords>
+ <keywords>BUFFERPOOLS</keywords>
+ <keywords>BUFFERSIZE</keywords>
+ <keywords>BUILD</keywords>
+ <keywords>BULK</keywords>
+ <keywords>BUSINESS_TIME</keywords>
+ <keywords>BY</keywords>
+ <keywords>BYPASS</keywords>
+ <keywords>BYTE</keywords>
+ <keywords>C</keywords>
+ <keywords>CACHE</keywords>
+ <keywords>CACHING</keywords>
+ <keywords>CALL</keywords>
+ <keywords>CALLED</keywords>
+ <keywords>CALLER</keywords>
+ <keywords>CAPTURE</keywords>
+ <keywords>CARDINALITIES</keywords>
+ <keywords>CARDINALITY</keywords>
+ <keywords>CASCADE</keywords>
+ <keywords>CASCADED</keywords>
+ <keywords>CASE</keywords>
+ <keywords>CAST</keywords>
+ <keywords>CATEGORIES</keywords>
+ <keywords>CCSID</keywords>
+ <keywords>CFGALL</keywords>
+ <keywords>CHANGE</keywords>
+ <keywords>CHANGED</keywords>
+ <keywords>CHANGES</keywords>
+ <keywords>CHANGESUMMARY</keywords>
+ <keywords>CHAR</keywords>
+ <keywords>CHARACTER</keywords>
+ <keywords>CHECK</keywords>
+ <keywords>CHECKED</keywords>
+ <keywords>CHECKING</keywords>
+ <keywords>CLASS</keywords>
+ <keywords>CLIENT</keywords>
+ <keywords>CLIENT_ACCTNG</keywords>
+ <keywords>CLIENT_APPLNAME</keywords>
+ <keywords>CLIENT_USERID</keywords>
+ <keywords>CLIENT_WRKSTNNAME</keywords>
+ <keywords>CLOB</keywords>
+ <keywords>CLOSE</keywords>
+ <keywords>CLR</keywords>
+ <keywords>CLUSTER</keywords>
+ <keywords>COBOL</keywords>
+ <keywords>CODEUNITS16</keywords>
+ <keywords>CODEUNITS32</keywords>
+ <keywords>COLLECT</keywords>
+ <keywords>COLLID</keywords>
+ <keywords>COLUMN</keywords>
+ <keywords>COLUMNS</keywords>
+ <keywords>COMM</keywords>
+ <keywords>COMMENT</keywords>
+ <keywords>COMMIT</keywords>
+ <keywords>COMMITTED</keywords>
+ <keywords>COMPACT</keywords>
+ <keywords>COMPARE</keywords>
+ <keywords>COMPARISONS</keywords>
+ <keywords>COMPILATION</keywords>
+ <keywords>COMPILEDFUNCTION</keywords>
+ <keywords>COMPILEDTRIGGER</keywords>
+ <keywords>COMPILEFRAGMENT</keywords>
+ <keywords>COMPONENT</keywords>
+ <keywords>COMPONENTS</keywords>
+ <keywords>COMPOUND</keywords>
+ <keywords>COMPRESS</keywords>
+ <keywords>COMPRESSION</keywords>
+ <keywords>CONCAT</keywords>
+ <keywords>CONCURRENTDBCOORDACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADOCCURRENCES</keywords>
+ <keywords>CONDITION</keywords>
+ <keywords>CONN</keywords>
+ <keywords>CONNECT</keywords>
+ <keywords>CONNECTION</keywords>
+ <keywords>CONNECTIONIDLETIME</keywords>
+ <keywords>CONNECTIONS</keywords>
+ <keywords>CONNECTOPT</keywords>
+ <keywords>CONNECT_BY_ROOT</keywords>
+ <keywords>CONNHEADER</keywords>
+ <keywords>CONNMEMUSE</keywords>
+ <keywords>CONSERVATIVE</keywords>
+ <keywords>CONSTANT</keywords>
+ <keywords>CONSTRAINT</keywords>
+ <keywords>CONSTRAINTS</keywords>
+ <keywords>CONSTRUCTOR</keywords>
+ <keywords>CONTAINERS</keywords>
+ <keywords>CONTAINS</keywords>
+ <keywords>CONTENT</keywords>
+ <keywords>CONTEXT</keywords>
+ <keywords>CONTINUE</keywords>
+ <keywords>CONTROL</keywords>
+ <keywords>CONVERT</keywords>
+ <keywords>COORDINATOR</keywords>
+ <keywords>COPY</keywords>
+ <keywords>CORRELATOR</keywords>
+ <keywords>COUNT</keywords>
+ <keywords>COUNT_BIG</keywords>
+ <keywords>CPU</keywords>
+ <keywords>CPUTIME</keywords>
+ <keywords>CPUTIMEINSC</keywords>
+ <keywords>CREATE</keywords>
+ <keywords>CREATEIN</keywords>
+ <keywords>CREATETAB</keywords>
+ <keywords>CREATE_EXTERNAL_ROUTINE</keywords>
+ <keywords>CREATE_NOT_FENCED</keywords>
+ <keywords>CREATE_NOT_FENCED_ROUTINE</keywords>
+ <keywords>CREATE_SECURE_OBJECT</keywords>
+ <keywords>CROSS</keywords>
+ <keywords>CS</keywords>
+ <keywords>CUBE</keywords>
+ <keywords>CURRENT</keywords>
+ <keywords>CURRENT_DATE</keywords>
+ <keywords>CURRENT_PATH</keywords>
+ <keywords>CURRENT_SCHEMA</keywords>
+ <keywords>CURRENT_SERVER</keywords>
+ <keywords>CURRENT_TIME</keywords>
+ <keywords>CURRENT_TIMESTAMP</keywords>
+ <keywords>CURRENT_TIMEZONE</keywords>
+ <keywords>CURRENT_USER</keywords>
+ <keywords>CURRVAL</keywords>
+ <keywords>CURSOR</keywords>
+ <keywords>CURSORS</keywords>
+ <keywords>CYCLE</keywords>
+ <keywords>DATA</keywords>
+ <keywords>DATAACCESS</keywords>
+ <keywords>DATABASE</keywords>
+ <keywords>DATATAGINSC</keywords>
+ <keywords>DATE</keywords>
+ <keywords>DAY</keywords>
+ <keywords>DAYS</keywords>
+ <keywords>DB</keywords>
+ <keywords>DB2DARI</keywords>
+ <keywords>DB2GENERAL</keywords>
+ <keywords>DB2GENRL</keywords>
+ <keywords>DB2LBACREADARRAY</keywords>
+ <keywords>DB2LBACREADSET</keywords>
+ <keywords>DB2LBACREADTREE</keywords>
+ <keywords>DB2LBACRULES</keywords>
+ <keywords>DB2LBACWRITEARRAY</keywords>
+ <keywords>DB2LBACWRITESET</keywords>
+ <keywords>DB2LBACWRITETREE</keywords>
+ <keywords>DB2SPL</keywords>
+ <keywords>DB2SQL</keywords>
+ <keywords>DB2VALIDATE</keywords>
+ <keywords>DB2_EXCEPTION_INIT</keywords>
+ <keywords>DB2_RETURN_STATUS</keywords>
+ <keywords>DB2_SQL_NESTING_LEVEL</keywords>
+ <keywords>DB2_TEMPORAL_TRIGGER_FROM_VALUE</keywords>
+ <keywords>DB2_TEMPORAL_TRIGGER_TO_VALUE</keywords>
+ <keywords>DB2_TOKEN_STRING</keywords>
+ <keywords>DBADM</keywords>
+ <keywords>DBCFG</keywords>
+ <keywords>DBCFGVALUES</keywords>
+ <keywords>DBCLOB</keywords>
+ <keywords>DBDBMCFG</keywords>
+ <keywords>DBINFO</keywords>
+ <keywords>DBMCFG</keywords>
+ <keywords>DBMCFGVALUES</keywords>
+ <keywords>DBMEMUSE</keywords>
+ <keywords>DBPARTITIONNUM</keywords>
+ <keywords>DBPARTITIONNUMS</keywords>
+ <keywords>DBPARTITIONS</keywords>
+ <keywords>DDL</keywords>
+ <keywords>DDLALL</keywords>
+ <keywords>DDLDATA</keywords>
+ <keywords>DDLFEDERATED</keywords>
+ <keywords>DDLMONITOR</keywords>
+ <keywords>DDLSECURITY</keywords>
+ <keywords>DDLSQL</keywords>
+ <keywords>DDLSTMTEXEC</keywords>
+ <keywords>DDLSTORAGE</keywords>
+ <keywords>DDLWLM</keywords>
+ <keywords>DDLXML</keywords>
+ <keywords>DEACTIVATE</keywords>
+ <keywords>DEADLOCK</keywords>
+ <keywords>DEADLOCKS</keywords>
+ <keywords>DEBUGINFO</keywords>
+ <keywords>DEC</keywords>
+ <keywords>DECFLOAT</keywords>
+ <keywords>DECIMAL</keywords>
+ <keywords>DECLARE</keywords>
+ <keywords>DECOMPOSITION</keywords>
+ <keywords>DEFAULT</keywords>
+ <keywords>DEFAULTS</keywords>
+ <keywords>DEFER</keywords>
+ <keywords>DEFERRED</keywords>
+ <keywords>DEFINE</keywords>
+ <keywords>DEFINER</keywords>
+ <keywords>DEFINITION</keywords>
+ <keywords>DEGREE</keywords>
+ <keywords>DELETE</keywords>
+ <keywords>DELETING</keywords>
+ <keywords>DEPENDENT</keywords>
+ <keywords>DESC</keywords>
+ <keywords>DESCRIPTOR</keywords>
+ <keywords>DETACH</keywords>
+ <keywords>DETAILED</keywords>
+ <keywords>DETAILS</keywords>
+ <keywords>DETERMINED</keywords>
+ <keywords>DETERMINISTIC</keywords>
+ <keywords>DEVICE</keywords>
+ <keywords>DIAGNOSTICS</keywords>
+ <keywords>DIMENSIONS</keywords>
+ <keywords>DIRTY</keywords>
+ <keywords>DISABLE</keywords>
+ <keywords>DISALLOW</keywords>
+ <keywords>DISPATCH</keywords>
+ <keywords>DISTINCT</keywords>
+ <keywords>DISTRIBUTE</keywords>
+ <keywords>DISTRIBUTED</keywords>
+ <keywords>DISTRIBUTION</keywords>
+ <keywords>DLCONN</keywords>
+ <keywords>DLLOCK</keywords>
+ <keywords>DML</keywords>
+ <keywords>DO</keywords>
+ <keywords>DOCUMENT</keywords>
+ <keywords>DOUBLE</keywords>
+ <keywords>DROP</keywords>
+ <keywords>DROPIN</keywords>
+ <keywords>DROPPED</keywords>
+ <keywords>DYNAMIC</keywords>
+ <keywords>EACH</keywords>
+ <keywords>ELEMENT</keywords>
+ <keywords>ELSE</keywords>
+ <keywords>ELSEIF</keywords>
+ <keywords>ELSIF</keywords>
+ <keywords>EMPTY</keywords>
+ <keywords>ENABLE</keywords>
+ <keywords>ENCRYPTION</keywords>
+ <keywords>END</keywords>
+ <keywords>ENDING</keywords>
+ <keywords>ENFORCED</keywords>
+ <keywords>ENFORCEMENT</keywords>
+ <keywords>ENVIRONMENT</keywords>
+ <keywords>ERASE</keywords>
+ <keywords>ERROR</keywords>
+ <keywords>ESCAPE</keywords>
+ <keywords>ESTIMATE</keywords>
+ <keywords>ESTIMATEDCOST</keywords>
+ <keywords>ESTIMATEDSQLCOST</keywords>
+ <keywords>EUR</keywords>
+ <keywords>EVALUATE</keywords>
+ <keywords>EVENT</keywords>
+ <keywords>EVERY</keywords>
+ <keywords>EVMONSTART</keywords>
+ <keywords>EXACT</keywords>
+ <keywords>EXCEEDED</keywords>
+ <keywords>EXCEPT</keywords>
+ <keywords>EXCEPTION</keywords>
+ <keywords>EXCEPTION_INIT</keywords>
+ <keywords>EXCLUDE</keywords>
+ <keywords>EXCLUDES</keywords>
+ <keywords>EXCLUDING</keywords>
+ <keywords>EXCLUSIVE</keywords>
+ <keywords>EXECNODE</keywords>
+ <keywords>EXECUTABLE</keywords>
+ <keywords>EXECUTE</keywords>
+ <keywords>EXECUTETIME</keywords>
+ <keywords>EXECUTION</keywords>
+ <keywords>EXEMPTION</keywords>
+ <keywords>EXISTS</keywords>
+ <keywords>EXIT</keywords>
+ <keywords>EXPAND</keywords>
+ <keywords>EXPLAIN</keywords>
+ <keywords>EXPRESSION</keywords>
+ <keywords>EXTEND</keywords>
+ <keywords>EXTENDED</keywords>
+ <keywords>EXTENSION</keywords>
+ <keywords>EXTENTSIZE</keywords>
+ <keywords>EXTERNAL</keywords>
+ <keywords>EXTRACT</keywords>
+ <keywords>FAILURE</keywords>
+ <keywords>FALSE</keywords>
+ <keywords>FEDERATED</keywords>
+ <keywords>FEDERATED_TOOL</keywords>
+ <keywords>FENCED</keywords>
+ <keywords>FETCH</keywords>
+ <keywords>FILE</keywords>
+ <keywords>FILEREAD</keywords>
+ <keywords>FILEWRITE</keywords>
+ <keywords>FILTER</keywords>
+ <keywords>FINAL</keywords>
+ <keywords>FIRST</keywords>
+ <keywords>FLOAT</keywords>
+ <keywords>FLUSH</keywords>
+ <keywords>FOLLOWING</keywords>
+ <keywords>FOLLOWS</keywords>
+ <keywords>FOR</keywords>
+ <keywords>FORALL</keywords>
+ <keywords>FORCE</keywords>
+ <keywords>FOREIGN</keywords>
+ <keywords>FOUND</keywords>
+ <keywords>FREE</keywords>
+ <keywords>FREEPAGE</keywords>
+ <keywords>FROM</keywords>
+ <keywords>FULL</keywords>
+ <keywords>FUNCTION</keywords>
+ <keywords>G</keywords>
+ <keywords>GBPCACHE</keywords>
+ <keywords>GENERAL</keywords>
+ <keywords>GENERATE</keywords>
+ <keywords>GENERATED</keywords>
+ <keywords>GENERIC</keywords>
+ <keywords>GET</keywords>
+ <keywords>GLOBAL</keywords>
+ <keywords>GOTO</keywords>
+ <keywords>GRANT</keywords>
+ <keywords>GRAPHIC</keywords>
+ <keywords>GROUP</keywords>
+ <keywords>GROUPING</keywords>
+ <keywords>HANDLER</keywords>
+ <keywords>HARD</keywords>
+ <keywords>HASH</keywords>
+ <keywords>HASHED</keywords>
+ <keywords>HASHING</keywords>
+ <keywords>HAVING</keywords>
+ <keywords>HEX</keywords>
+ <keywords>HEXLIT</keywords>
+ <keywords>HIDDEN</keywords>
+ <keywords>HIERARCHY</keywords>
+ <keywords>HIGH</keywords>
+ <keywords>HISTOGRAM</keywords>
+ <keywords>HISTOGRAMBIN</keywords>
+ <keywords>HISTORY</keywords>
+ <keywords>HOLD</keywords>
+ <keywords>HOUR</keywords>
+ <keywords>HOURS</keywords>
+ <keywords>HPJ</keywords>
+ <keywords>ID</keywords>
+ <keywords>IDENTITY</keywords>
+ <keywords>IF</keywords>
+ <keywords>IGNORE</keywords>
+ <keywords>IMMEDIATE</keywords>
+ <keywords>IMPLEMENTATION</keywords>
+ <keywords>IMPLICIT</keywords>
+ <keywords>IMPLICITLY</keywords>
+ <keywords>IMPLICIT_SCHEMA</keywords>
+ <keywords>IN</keywords>
+ <keywords>INACTIVE</keywords>
+ <keywords>INCLUDE</keywords>
+ <keywords>INCLUDES</keywords>
+ <keywords>INCLUDING</keywords>
+ <keywords>INCLUSIVE</keywords>
+ <keywords>INCREASESIZE</keywords>
+ <keywords>INCREMENT</keywords>
+ <keywords>INCREMENTAL</keywords>
+ <keywords>INDEX</keywords>
+ <keywords>INDEXES</keywords>
+ <keywords>INDICATOR</keywords>
+ <keywords>INDICES</keywords>
+ <keywords>INF</keywords>
+ <keywords>INFINITY</keywords>
+ <keywords>INFIX</keywords>
+ <keywords>INFO</keywords>
+ <keywords>INHERIT</keywords>
+ <keywords>INITIALLY</keywords>
+ <keywords>INITIALSIZE</keywords>
+ <keywords>INITIAL_INSTS</keywords>
+ <keywords>INITIAL_IOS</keywords>
+ <keywords>INLINE</keywords>
+ <keywords>INLINEFUNCTION</keywords>
+ <keywords>INLINETRIGGER</keywords>
+ <keywords>INNER</keywords>
+ <keywords>INOUT</keywords>
+ <keywords>INPUT</keywords>
+ <keywords>INSENSITIVE</keywords>
+ <keywords>INSERT</keywords>
+ <keywords>INSERTING</keywords>
+ <keywords>INSTANTIABLE</keywords>
+ <keywords>INSTEAD</keywords>
+ <keywords>INSTS_PER_ARGBYTE</keywords>
+ <keywords>INSTS_PER_INVOC</keywords>
+ <keywords>INT</keywords>
+ <keywords>INTEGER</keywords>
+ <keywords>INTEGRITY</keywords>
+ <keywords>INTERARRIVALTIME</keywords>
+ <keywords>INTERSECT</keywords>
+ <keywords>INTO</keywords>
+ <keywords>INVALID</keywords>
+ <keywords>INVALIDATION</keywords>
+ <keywords>IO</keywords>
+ <keywords>IOS_PER_ARGBYTE</keywords>
+ <keywords>IOS_PER_INVOC</keywords>
+ <keywords>IS</keywords>
+ <keywords>ISO</keywords>
+ <keywords>ISOLATION</keywords>
+ <keywords>ITERATE</keywords>
+ <keywords>JAVA</keywords>
+ <keywords>JIS</keywords>
+ <keywords>JOIN</keywords>
+ <keywords>K</keywords>
+ <keywords>KEEP</keywords>
+ <keywords>KEEPDYNAMIC</keywords>
+ <keywords>KEY</keywords>
+ <keywords>KEYS</keywords>
+ <keywords>L</keywords>
+ <keywords>LABEL</keywords>
+ <keywords>LANGUAGE</keywords>
+ <keywords>LARGE</keywords>
+ <keywords>LAST</keywords>
+ <keywords>LATERAL</keywords>
+ <keywords>LC_CTYPE</keywords>
+ <keywords>LC_MESSAGES</keywords>
+ <keywords>LC_TIME</keywords>
+ <keywords>LEADING</keywords>
+ <keywords>LEAVE</keywords>
+ <keywords>LEFT</keywords>
+ <keywords>LENGTH</keywords>
+ <keywords>LEVEL</keywords>
+ <keywords>LEVEL2</keywords>
+ <keywords>LIBRARY</keywords>
+ <keywords>LIBRARYADM</keywords>
+ <keywords>LIFETIME</keywords>
+ <keywords>LIKE</keywords>
+ <keywords>LIMIT</keywords>
+ <keywords>LIST</keywords>
+ <keywords>LOAD</keywords>
+ <keywords>LOCAL</keywords>
+ <keywords>LOCALE</keywords>
+ <keywords>LOCATION</keywords>
+ <keywords>LOCATOR</keywords>
+ <keywords>LOCATORS</keywords>
+ <keywords>LOCK</keywords>
+ <keywords>LOCKED</keywords>
+ <keywords>LOCKING</keywords>
+ <keywords>LOCKS</keywords>
+ <keywords>LOCKSIZE</keywords>
+ <keywords>LOCK_ACTIVITY_VALUES</keywords>
+ <keywords>LOCK_PARTICIPANTS</keywords>
+ <keywords>LOCK_PARTICIPANT_ACTIVITIES</keywords>
+ <keywords>LOG</keywords>
+ <keywords>LOGGED</keywords>
+ <keywords>LOGICAL</keywords>
+ <keywords>LONG</keywords>
+ <keywords>LONGVAR</keywords>
+ <keywords>LOOP</keywords>
+ <keywords>LOW</keywords>
+ <keywords>LOWER</keywords>
+ <keywords>M</keywords>
+ <keywords>MAIN</keywords>
+ <keywords>MAINTAINED</keywords>
+ <keywords>MANAGED</keywords>
+ <keywords>MANUALSTART</keywords>
+ <keywords>MAP</keywords>
+ <keywords>MAPPING</keywords>
+ <keywords>MARK</keywords>
+ <keywords>MASK</keywords>
+ <keywords>MATCHED</keywords>
+ <keywords>MATCHING</keywords>
+ <keywords>MATERIALIZED</keywords>
+ <keywords>MAX</keywords>
+ <keywords>MAXFILES</keywords>
+ <keywords>MAXFILESIZE</keywords>
+ <keywords>MAXIMUM</keywords>
+ <keywords>MAXSIZE</keywords>
+ <keywords>MAXVALUE</keywords>
+ <keywords>MDC</keywords>
+ <keywords>MEDIUM</keywords>
+ <keywords>MEMBER</keywords>
+ <keywords>MEMBERS</keywords>
+ <keywords>MERGE</keywords>
+ <keywords>MESSAGE_TEXT</keywords>
+ <keywords>METHOD</keywords>
+ <keywords>METHODS</keywords>
+ <keywords>METRICS</keywords>
+ <keywords>MICROSECOND</keywords>
+ <keywords>MICROSECONDS</keywords>
+ <keywords>MINPCTUSED</keywords>
+ <keywords>MINUS</keywords>
+ <keywords>MINUTE</keywords>
+ <keywords>MINUTES</keywords>
+ <keywords>MINVALUE</keywords>
+ <keywords>MISSING</keywords>
+ <keywords>MIXED</keywords>
+ <keywords>MODE</keywords>
+ <keywords>MODIFIES</keywords>
+ <keywords>MODULE</keywords>
+ <keywords>MONITOR</keywords>
+ <keywords>MONTH</keywords>
+ <keywords>MONTHS</keywords>
+ <keywords>MORE</keywords>
+ <keywords>MOVEMENT</keywords>
+ <keywords>MOVETABLE</keywords>
+ <keywords>NAME</keywords>
+ <keywords>NAMESPACE</keywords>
+ <keywords>NAN</keywords>
+ <keywords>NATIONAL</keywords>
+ <keywords>NATURAL</keywords>
+ <keywords>NCHAR</keywords>
+ <keywords>NCLOB</keywords>
+ <keywords>NESTED</keywords>
+ <keywords>NETWORK</keywords>
+ <keywords>NEW</keywords>
+ <keywords>NEW_TABLE</keywords>
+ <keywords>NEXT</keywords>
+ <keywords>NEXTVAL</keywords>
+ <keywords>NICKNAME</keywords>
+ <keywords>NO</keywords>
+ <keywords>NOCACHE</keywords>
+ <keywords>NOCOPY</keywords>
+ <keywords>NOCYCLE</keywords>
+ <keywords>NODE</keywords>
+ <keywords>NODEGROUP</keywords>
+ <keywords>NODES</keywords>
+ <keywords>NOMAXVALUE</keywords>
+ <keywords>NOMINVALUE</keywords>
+ <keywords>NONBLOCKED</keywords>
+ <keywords>NONE</keywords>
+ <keywords>NOORDER</keywords>
+ <keywords>NORCAC</keywords>
+ <keywords>NORMAL</keywords>
+ <keywords>NOT</keywords>
+ <keywords>NULL</keywords>
+ <keywords>NULLS</keywords>
+ <keywords>NUM</keywords>
+ <keywords>NUMBER</keywords>
+ <keywords>NUMBLOCKPAGES</keywords>
+ <keywords>NUMERIC</keywords>
+ <keywords>NUM_EXECUTIONS</keywords>
+ <keywords>NUM_FREQVALUES</keywords>
+ <keywords>NUM_QUANTILES</keywords>
+ <keywords>NVARCHAR</keywords>
+ <keywords>NVARCHAR2</keywords>
+ <keywords>OBJECT</keywords>
+ <keywords>OBJMAINT</keywords>
+ <keywords>OCCURRENCE</keywords>
+ <keywords>OCTETS</keywords>
+ <keywords>OF</keywords>
+ <keywords>OFF</keywords>
+ <keywords>OFFSET</keywords>
+ <keywords>OLD</keywords>
+ <keywords>OLD_TABLE</keywords>
+ <keywords>OLE</keywords>
+ <keywords>OLEDB</keywords>
+ <keywords>ON</keywords>
+ <keywords>ONCE</keywords>
+ <keywords>ONLINE</keywords>
+ <keywords>ONLY</keywords>
+ <keywords>OPEN</keywords>
+ <keywords>OPTIMIZATION</keywords>
+ <keywords>OPTIMIZE</keywords>
+ <keywords>OPTION</keywords>
+ <keywords>OPTIONS</keywords>
+ <keywords>OPTPROFILE</keywords>
+ <keywords>OR</keywords>
+ <keywords>ORDER</keywords>
+ <keywords>ORDINALITY</keywords>
+ <keywords>ORGANIZE</keywords>
+ <keywords>OSMETRICS</keywords>
+ <keywords>OUT</keywords>
+ <keywords>OUTBOUND</keywords>
+ <keywords>OUTCOME</keywords>
+ <keywords>OUTER</keywords>
+ <keywords>OVER</keywords>
+ <keywords>OVERFLOW</keywords>
+ <keywords>OVERHEAD</keywords>
+ <keywords>OVERLAPS</keywords>
+ <keywords>OVERRIDE</keywords>
+ <keywords>OVERRIDING</keywords>
+ <keywords>OWNERSHIP</keywords>
+ <keywords>P</keywords>
+ <keywords>PACKAGE</keywords>
+ <keywords>PAGE</keywords>
+ <keywords>PAGESIZE</keywords>
+ <keywords>PARALLEL</keywords>
+ <keywords>PARALLEL_ENABLE</keywords>
+ <keywords>PARAMETER</keywords>
+ <keywords>PARAMETERS</keywords>
+ <keywords>PARENT</keywords>
+ <keywords>PART</keywords>
+ <keywords>PARTITION</keywords>
+ <keywords>PARTITIONED</keywords>
+ <keywords>PARTITIONING</keywords>
+ <keywords>PARTITIONINGS</keywords>
+ <keywords>PARTITIONS</keywords>
+ <keywords>PASSING</keywords>
+ <keywords>PASSTHRU</keywords>
+ <keywords>PASSWORD</keywords>
+ <keywords>PATH</keywords>
+ <keywords>PATROLLER</keywords>
+ <keywords>PCTDEACTIVATE</keywords>
+ <keywords>PCTFREE</keywords>
+ <keywords>PERCENT</keywords>
+ <keywords>PERCENT_ARGBYTES</keywords>
+ <keywords>PERFORM</keywords>
+ <keywords>PERIOD</keywords>
+ <keywords>PERMISSION</keywords>
+ <keywords>PIECESIZE</keywords>
+ <keywords>PIPE</keywords>
+ <keywords>PIPELINED</keywords>
+ <keywords>PKGCACHE</keywords>
+ <keywords>PKGCACHE_METRICS</keywords>
+ <keywords>PKGCACHE_STMT_ARGS</keywords>
+ <keywords>PLACING</keywords>
+ <keywords>PLAN</keywords>
+ <keywords>PLS_INTEGER</keywords>
+ <keywords>POLICY</keywords>
+ <keywords>PORTION</keywords>
+ <keywords>POSITION</keywords>
+ <keywords>PRAGMA</keywords>
+ <keywords>PRECEDING</keywords>
+ <keywords>PRECISION</keywords>
+ <keywords>PREDICATES</keywords>
+ <keywords>PREFETCH</keywords>
+ <keywords>PREFETCHSIZE</keywords>
+ <keywords>PREPARE</keywords>
+ <keywords>PRESERVE</keywords>
+ <keywords>PREVENT</keywords>
+ <keywords>PREVIOUS</keywords>
+ <keywords>PREVVAL</keywords>
+ <keywords>PRIMARY</keywords>
+ <keywords>PRIOR</keywords>
+ <keywords>PRIORITY</keywords>
+ <keywords>PRIQTY</keywords>
+ <keywords>PRIVILEGES</keywords>
+ <keywords>PROCEDURE</keywords>
+ <keywords>PROFILE</keywords>
+ <keywords>PROGRAM</keywords>
+ <keywords>PROPAGATE</keywords>
+ <keywords>PROTOCOL</keywords>
+ <keywords>PRUNE</keywords>
+ <keywords>PUBLIC</keywords>
+ <keywords>PUBLISH</keywords>
+ <keywords>QSTATS</keywords>
+ <keywords>QUERY</keywords>
+ <keywords>QUERYNO</keywords>
+ <keywords>QUERYTAG</keywords>
+ <keywords>QUEUEDACTIVITIES</keywords>
+ <keywords>QUEUEDCONNECTIONS</keywords>
+ <keywords>QUEUETIME</keywords>
+ <keywords>QUIESCE_CONNECT</keywords>
+ <keywords>RAISE</keywords>
+ <keywords>RANDOM</keywords>
+ <keywords>RANGE</keywords>
+ <keywords>RATE</keywords>
+ <keywords>RATIO</keywords>
+ <keywords>RAW</keywords>
+ <keywords>READ</keywords>
+ <keywords>READS</keywords>
+ <keywords>REAL</keywords>
+ <keywords>REBALANCE</keywords>
+ <keywords>RECOMMEND</keywords>
+ <keywords>RECORD</keywords>
+ <keywords>RECOVERY</keywords>
+ <keywords>RECREATE</keywords>
+ <keywords>REDIRECT</keywords>
+ <keywords>REDISTRIBUTE</keywords>
+ <keywords>REDUCE</keywords>
+ <keywords>REF</keywords>
+ <keywords>REFERENCE</keywords>
+ <keywords>REFERENCES</keywords>
+ <keywords>REFERENCING</keywords>
+ <keywords>REFRESH</keywords>
+ <keywords>REGISTERS</keywords>
+ <keywords>REGULAR</keywords>
+ <keywords>REGVAR</keywords>
+ <keywords>REGVARVALUES</keywords>
+ <keywords>REJECT</keywords>
+ <keywords>RELEASE</keywords>
+ <keywords>RELEASED</keywords>
+ <keywords>REMAIN</keywords>
+ <keywords>REMAP</keywords>
+ <keywords>REMOTE</keywords>
+ <keywords>REMOVE</keywords>
+ <keywords>RENAME</keywords>
+ <keywords>REOPT</keywords>
+ <keywords>REORG</keywords>
+ <keywords>REPEAT</keywords>
+ <keywords>REPEATABLE</keywords>
+ <keywords>REPLACE</keywords>
+ <keywords>REPLICATED</keywords>
+ <keywords>REPLICATION</keywords>
+ <keywords>REQUEST</keywords>
+ <keywords>REQUIRE</keywords>
+ <keywords>RESET</keywords>
+ <keywords>RESIDENT</keywords>
+ <keywords>RESIGNAL</keywords>
+ <keywords>RESIZE</keywords>
+ <keywords>RESOLVE</keywords>
+ <keywords>RESTART</keywords>
+ <keywords>RESTORE</keywords>
+ <keywords>RESTRICT</keywords>
+ <keywords>RESULT</keywords>
+ <keywords>RESULT_SET_LOCATOR</keywords>
+ <keywords>RESUME</keywords>
+ <keywords>RETAIN</keywords>
+ <keywords>RETURN</keywords>
+ <keywords>RETURNING</keywords>
+ <keywords>RETURNS</keywords>
+ <keywords>RETURN_STATUS</keywords>
+ <keywords>REUSE</keywords>
+ <keywords>REVERSE</keywords>
+ <keywords>REVOKE</keywords>
+ <keywords>RID</keywords>
+ <keywords>RID_BIT</keywords>
+ <keywords>RIGHT</keywords>
+ <keywords>ROLE</keywords>
+ <keywords>ROLLBACK</keywords>
+ <keywords>ROLLFORWARD</keywords>
+ <keywords>ROLLOUT</keywords>
+ <keywords>ROLLUP</keywords>
+ <keywords>ROOT</keywords>
+ <keywords>ROUNDING</keywords>
+ <keywords>ROUND_CEILING</keywords>
+ <keywords>ROUND_DOWN</keywords>
+ <keywords>ROUND_FLOOR</keywords>
+ <keywords>ROUND_HALF_EVEN</keywords>
+ <keywords>ROUND_HALF_UP</keywords>
+ <keywords>ROUTINES</keywords>
+ <keywords>ROW</keywords>
+ <keywords>ROWS</keywords>
+ <keywords>ROW_COUNT</keywords>
+ <keywords>RR</keywords>
+ <keywords>RS</keywords>
+ <keywords>RULE</keywords>
+ <keywords>RULES</keywords>
+ <keywords>RUN</keywords>
+ <keywords>RUNSTATS</keywords>
+ <keywords>S</keywords>
+ <keywords>SAFE</keywords>
+ <keywords>SAMPLED</keywords>
+ <keywords>SAVEPOINT</keywords>
+ <keywords>SBCS</keywords>
+ <keywords>SCANS</keywords>
+ <keywords>SCHEMA</keywords>
+ <keywords>SCMETRICS</keywords>
+ <keywords>SCOPE</keywords>
+ <keywords>SCRATCHPAD</keywords>
+ <keywords>SCROLL</keywords>
+ <keywords>SCSTATS</keywords>
+ <keywords>SEARCH</keywords>
+ <keywords>SECADM</keywords>
+ <keywords>SECMAINT</keywords>
+ <keywords>SECOND</keywords>
+ <keywords>SECONDS</keywords>
+ <keywords>SECQTY</keywords>
+ <keywords>SECTION</keywords>
+ <keywords>SECURED</keywords>
+ <keywords>SECURITY</keywords>
+ <keywords>SELECT</keywords>
+ <keywords>SELECTION</keywords>
+ <keywords>SELECTIVITY</keywords>
+ <keywords>SELF</keywords>
+ <keywords>SENSITIVE</keywords>
+ <keywords>SEQUENCE</keywords>
+ <keywords>SERIALIZABLE</keywords>
+ <keywords>SERVER</keywords>
+ <keywords>SERVICE</keywords>
+ <keywords>SESSION</keywords>
+ <keywords>SESSION_USER</keywords>
+ <keywords>SET</keywords>
+ <keywords>SETS</keywords>
+ <keywords>SETSESSIONUSER</keywords>
+ <keywords>SETTING</keywords>
+ <keywords>SHARE</keywords>
+ <keywords>SHARES</keywords>
+ <keywords>SHRLEVEL</keywords>
+ <keywords>SIBLINGS</keywords>
+ <keywords>SIGNAL</keywords>
+ <keywords>SIMPLE</keywords>
+ <keywords>SIZE</keywords>
+ <keywords>SKIP</keywords>
+ <keywords>SMALLINT</keywords>
+ <keywords>SNAN</keywords>
+ <keywords>SNAPSHOT</keywords>
+ <keywords>SOFT</keywords>
+ <keywords>SOME</keywords>
+ <keywords>SOURCE</keywords>
+ <keywords>SPECIAL</keywords>
+ <keywords>SPECIFIC</keywords>
+ <keywords>SPECIFICATION</keywords>
+ <keywords>SPLIT</keywords>
+ <keywords>SQL</keywords>
+ <keywords>SQLADM</keywords>
+ <keywords>SQLCODE</keywords>
+ <keywords>SQLDATA</keywords>
+ <keywords>SQLERRM</keywords>
+ <keywords>SQLEXCEPTION</keywords>
+ <keywords>SQLID</keywords>
+ <keywords>SQLINTERNAL</keywords>
+ <keywords>SQLROWSREAD</keywords>
+ <keywords>SQLROWSREADINSC</keywords>
+ <keywords>SQLROWSRETURNED</keywords>
+ <keywords>SQLSTATE</keywords>
+ <keywords>SQLTEMPSPACE</keywords>
+ <keywords>SQLWARNING</keywords>
+ <keywords>SQL_CCFLAGS</keywords>
+ <keywords>SSA</keywords>
+ <keywords>STABILITY</keywords>
+ <keywords>STAGING</keywords>
+ <keywords>START</keywords>
+ <keywords>STARTING</keywords>
+ <keywords>STATE</keywords>
+ <keywords>STATEMENT</keywords>
+ <keywords>STATEMENTS</keywords>
+ <keywords>STATIC</keywords>
+ <keywords>STATISTICS</keywords>
+ <keywords>STATUS</keywords>
+ <keywords>STAY</keywords>
+ <keywords>STMT</keywords>
+ <keywords>STMTHIST</keywords>
+ <keywords>STMTVALS</keywords>
+ <keywords>STMT_EXEC_TIME</keywords>
+ <keywords>STOGROUP</keywords>
+ <keywords>STOP</keywords>
+ <keywords>STORAGE</keywords>
+ <keywords>STRIP</keywords>
+ <keywords>STRIPE</keywords>
+ <keywords>STRONG</keywords>
+ <keywords>STYLE</keywords>
+ <keywords>SUB</keywords>
+ <keywords>SUBSECTION</keywords>
+ <keywords>SUBTYPE</keywords>
+ <keywords>SUCCESS</keywords>
+ <keywords>SUMMARY</keywords>
+ <keywords>SUSPEND</keywords>
+ <keywords>SWITCH</keywords>
+ <keywords>SYMMETRIC</keywords>
+ <keywords>SYNONYM</keywords>
+ <keywords>SYSADM</keywords>
+ <keywords>SYSADMIN</keywords>
+ <keywords>SYSCTRL</keywords>
+ <keywords>SYSDATE</keywords>
+ <keywords>SYSMAINT</keywords>
+ <keywords>SYSMON</keywords>
+ <keywords>SYSTEM</keywords>
+ <keywords>SYSTEM_TIME</keywords>
+ <keywords>SYSTEM_USER</keywords>
+ <keywords>SYS_REFCURSOR</keywords>
+ <keywords>T</keywords>
+ <keywords>TABLE</keywords>
+ <keywords>TABLES</keywords>
+ <keywords>TABLESAMPLE</keywords>
+ <keywords>TABLESPACE</keywords>
+ <keywords>TABLESPACES</keywords>
+ <keywords>TAG</keywords>
+ <keywords>TARGET</keywords>
+ <keywords>TEMPLATE</keywords>
+ <keywords>TEMPORAL</keywords>
+ <keywords>TEMPORARY</keywords>
+ <keywords>TEXT</keywords>
+ <keywords>THAN</keywords>
+ <keywords>THEN</keywords>
+ <keywords>THREADSAFE</keywords>
+ <keywords>THRESHOLD</keywords>
+ <keywords>THRESHOLDVIOLATIONS</keywords>
+ <keywords>THROUGH</keywords>
+ <keywords>TIER</keywords>
+ <keywords>TIME</keywords>
+ <keywords>TIMEOUT</keywords>
+ <keywords>TIMERONCOST</keywords>
+ <keywords>TIMESTAMP</keywords>
+ <keywords>TIMEZONE</keywords>
+ <keywords>TO</keywords>
+ <keywords>TOKEN</keywords>
+ <keywords>TOTALDBPARTITIONCONNECTIONS</keywords>
+ <keywords>TOTALMEMBERCONNECTIONS</keywords>
+ <keywords>TOTALSCMEMBERCONNECTIONS</keywords>
+ <keywords>TOTALSCPARTITIONCONNECTIONS</keywords>
+ <keywords>TRAILING</keywords>
+ <keywords>TRANSACTION</keywords>
+ <keywords>TRANSACTIONS</keywords>
+ <keywords>TRANSFER</keywords>
+ <keywords>TRANSFERRATE</keywords>
+ <keywords>TRANSFORM</keywords>
+ <keywords>TRANSFORMS</keywords>
+ <keywords>TRANSLATE</keywords>
+ <keywords>TREAT</keywords>
+ <keywords>TREE</keywords>
+ <keywords>TRIGGER</keywords>
+ <keywords>TRIGGERS</keywords>
+ <keywords>TRIM</keywords>
+ <keywords>TRUE</keywords>
+ <keywords>TRUNC</keywords>
+ <keywords>TRUNCATE</keywords>
+ <keywords>TRUSTED</keywords>
+ <keywords>TSN</keywords>
+ <keywords>TWOLEVEL</keywords>
+ <keywords>TXNCOMPLETION</keywords>
+ <keywords>TYPE</keywords>
+ <keywords>TYPES</keywords>
+ <keywords>UESCAPE</keywords>
+ <keywords>UNBOUNDED</keywords>
+ <keywords>UNCHECKED</keywords>
+ <keywords>UNCOMMITTED</keywords>
+ <keywords>UNDER</keywords>
+ <keywords>UNDO</keywords>
+ <keywords>UNFORMATTED</keywords>
+ <keywords>UNICODE</keywords>
+ <keywords>UNION</keywords>
+ <keywords>UNIQUE</keywords>
+ <keywords>UNIT</keywords>
+ <keywords>UNITS</keywords>
+ <keywords>UNNEST</keywords>
+ <keywords>UNSAFE</keywords>
+ <keywords>UNSAMPLED</keywords>
+ <keywords>UNTIL</keywords>
+ <keywords>UOW</keywords>
+ <keywords>UOWTOTALTIME</keywords>
+ <keywords>UOW_EXECUTABLE_LIST</keywords>
+ <keywords>UOW_METRICS</keywords>
+ <keywords>UOW_PACKAGE_LIST</keywords>
+ <keywords>UPDATE</keywords>
+ <keywords>UPDATED_SINCE_BOUNDARY_TIME</keywords>
+ <keywords>UPDATING</keywords>
+ <keywords>UPON</keywords>
+ <keywords>UR</keywords>
+ <keywords>URI</keywords>
+ <keywords>USA</keywords>
+ <keywords>USAGE</keywords>
+ <keywords>USE</keywords>
+ <keywords>USER</keywords>
+ <keywords>USERID</keywords>
+ <keywords>USING</keywords>
+ <keywords>UTILALL</keywords>
+ <keywords>UTILLOCATION</keywords>
+ <keywords>UTILPHASE</keywords>
+ <keywords>UTILSTART</keywords>
+ <keywords>UTILSTOP</keywords>
+ <keywords>VALIDATE</keywords>
+ <keywords>VALIDATED</keywords>
+ <keywords>VALUE</keywords>
+ <keywords>VALUES</keywords>
+ <keywords>VARCHAR</keywords>
+ <keywords>VARCHAR2</keywords>
+ <keywords>VARGRAPHIC</keywords>
+ <keywords>VARIABLE</keywords>
+ <keywords>VARIANT</keywords>
+ <keywords>VARRAY</keywords>
+ <keywords>VARYING</keywords>
+ <keywords>VCAT</keywords>
+ <keywords>VERIFY_GROUP_FOR_USER</keywords>
+ <keywords>VERIFY_ROLE_FOR_USER</keywords>
+ <keywords>VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER</keywords>
+ <keywords>VERSION</keywords>
+ <keywords>VERSIONING</keywords>
+ <keywords>VERSIONS</keywords>
+ <keywords>VIEW</keywords>
+ <keywords>VIOLATIONS</keywords>
+ <keywords>VOLATILE</keywords>
+ <keywords>WAIT</keywords>
+ <keywords>WAITING</keywords>
+ <keywords>WATER</keywords>
+ <keywords>WCSTATS</keywords>
+ <keywords>WEAK</keywords>
+ <keywords>WELLFORMED</keywords>
+ <keywords>WHEN</keywords>
+ <keywords>WHERE</keywords>
+ <keywords>WHILE</keywords>
+ <keywords>WHITESPACE</keywords>
+ <keywords>WITH</keywords>
+ <keywords>WITHIN</keywords>
+ <keywords>WITHOUT</keywords>
+ <keywords>WLMADM</keywords>
+ <keywords>WLMETRICS</keywords>
+ <keywords>WLSTATS</keywords>
+ <keywords>WORK</keywords>
+ <keywords>WORKLOAD</keywords>
+ <keywords>WRAP</keywords>
+ <keywords>WRAPPER</keywords>
+ <keywords>WRITE</keywords>
+ <keywords>WRITEDOWN</keywords>
+ <keywords>WRITEUP</keywords>
+ <keywords>WRKSTNNAME</keywords>
+ <keywords>XACT</keywords>
+ <keywords>XML</keywords>
+ <keywords>XMLAGG</keywords>
+ <keywords>XMLATTRIBUTES</keywords>
+ <keywords>XMLBINARY</keywords>
+ <keywords>XMLCAST</keywords>
+ <keywords>XMLCOMMENT</keywords>
+ <keywords>XMLCONCAT</keywords>
+ <keywords>XMLDECLARATION</keywords>
+ <keywords>XMLDOCUMENT</keywords>
+ <keywords>XMLELEMENT</keywords>
+ <keywords>XMLEXISTS</keywords>
+ <keywords>XMLFOREST</keywords>
+ <keywords>XMLGROUP</keywords>
+ <keywords>XMLNAMESPACES</keywords>
+ <keywords>XMLPARSE</keywords>
+ <keywords>XMLPATTERN</keywords>
+ <keywords>XMLPI</keywords>
+ <keywords>XMLQUERY</keywords>
+ <keywords>XMLROW</keywords>
+ <keywords>XMLSCHEMA</keywords>
+ <keywords>XMLSERIALIZE</keywords>
+ <keywords>XMLTABLE</keywords>
+ <keywords>XMLTEXT</keywords>
+ <keywords>XMLVALIDATE</keywords>
+ <keywords>XQUERY</keywords>
+ <keywords>XSLTRANSFORM</keywords>
+ <keywords>XSROBJECT</keywords>
+ <keywords>YEAR</keywords>
+ <keywords>YEARS</keywords>
+ <keywords>YES</keywords>
+ <operators><</operators>
+ <operators>"</operators>
+ <operators>%</operators>
+ <operators>&</operators>
+ <operators>''''</operators>
+ <operators>(</operators>
+ <operators>)</operators>
+ <operators>*</operators>
+ <operators>+</operators>
+ <operators>,</operators>
+ <operators>-</operators>
+ <operators>.</operators>
+ <operators>/</operators>
+ <operators>:</operators>
+ <operators>;</operators>
+ <operators>=</operators>
+ <operators>?</operators>
+ <operators>[</operators>
+ <operators>]</operators>
+ <operators>_</operators>
+ <operators>'|'</operators>
+ <operators>,=</operators>
+ <operators><=</operators>
+ <operators>||</operators>
+ <operators>..</operators>
+ <operators>'-,'</operators>
+ <operators>!</operators>
+ <operators>~</operators>
+ <operators>:=</operators>
+ <operators>{</operators>
+ <operators>}</operators>
+ <operators>(+)</operators>
+ </SQLSyntaxDefinition>
+ <nicknameDefinition constraintSupported="true" indexSupported="true" maximumIdentifierLength="128"/>
+ <schemaDefinition maximumIdentifierLength="128"/>
+ <viewDefinition maximumIdentifierLength="128"/>
+ <privilegedElementDefinitions name="Database">
+ <privilegeDefinitions name="BINDADD"/>
+ <privilegeDefinitions name="CONNECT"/>
+ <privilegeDefinitions name="CREATETAB"/>
+ <privilegeDefinitions name="CREATE_EXTERNAL_ROUTINE"/>
+ <privilegeDefinitions name="CREATE_NOT_FENCED_ROUTINE"/>
+ <privilegeDefinitions name="IMPLICIT_SCHEMA"/>
+ <privilegeDefinitions name="DBADM"/>
+ <privilegeDefinitions name="LOAD"/>
+ <privilegeDefinitions name="QUIESCE_CONNECT"/>
+ <privilegeDefinitions name="SECADM"/>
+ <privilegeDefinitions name="ACCESSCTRL"/>
+ <privilegeDefinitions name="DATAACCESS"/>
+ <privilegeDefinitions name="EXPLAIN"/>
+ <privilegeDefinitions name="SQLADM"/>
+ <privilegeDefinitions name="WLMADM"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Schema">
+ <privilegeDefinitions name="ALTERIN"/>
+ <privilegeDefinitions name="CREATEIN"/>
+ <privilegeDefinitions name="DROPIN"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PersistentTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="ViewTable">
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Nickname">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions xmi:id="COLUMN_1" name="Column"/>
+ <privilegedElementDefinitions name="MaterializedQueryTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Routine">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Sequence">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="USAGE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Index">
+ <privilegeDefinitions name="CONTROL"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Tablespace">
+ <privilegeDefinitions name="USE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Package">
+ <privilegeDefinitions name="BIND"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Module">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PLSQLPackage">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="GlobalVariable">
+ <privilegeDefinitions name="READ"/>
+ <privilegeDefinitions name="WRITE"/>
+ </privilegedElementDefinitions>
+ <constructedDataTypeDefinition arrayDatatypeSupported="true" multisetDatatypeSupported="true" rowDatatypeSupported="true" referenceDatatypeSupported="true" cursorDatatypeSupported="true"/>
+</DBDefinition:DatabaseVendorDefinition>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.5/DB2 UDB_9.5.xmi b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.5/DB2 UDB_9.5.xmi
new file mode 100644
index 0000000..c4562ad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.5/DB2 UDB_9.5.xmi
@@ -0,0 +1,1008 @@
+<?xml version="1.0" encoding="ASCII"?>
+<DBDefinition:DatabaseVendorDefinition xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:DBDefinition="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore" vendor="DB2 UDB" version="V9.5" maximumIdentifierLength="8" viewTriggerSupported="true" maximumCommentLength="64" sequenceSupported="true" mQTSupported="true" aliasSupported="true" userDefinedTypeSupported="true" SQLStatementSupported="true" nicknameSupported="true" xmlSupported="true" packageSupported="true" roleSupported="true" groupSupported="true" userSupported="true" roleAuthorizationSupported="true" mQTIndexSupported="true">
+ <predefinedDataTypeDefinitions xmi:id="BIGINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="BIGINT" jdbcEnumType="-5" javaClassName="long">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BIGINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="BINARY_LARGE_OBJECT" jdbcEnumType="2004" javaClassName="java.sql.Blob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="127" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>GRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="16336" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_2" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR</name>
+ <name>CHARACTER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CLOB</name>
+ <name>CHARACTER LARGE OBJECT</name>
+ <name>CHAR LARGE OBJECT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="1073741823" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DBCLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR</name>
+ <name>CHARACTER VARYING</name>
+ <name>CHAR VARYING</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_2" primitiveType="CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATE_1" keyConstraintSupported="true" primitiveType="DATE" jdbcEnumType="91" javaClassName="java.sql.Date">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT DATE</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATE</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DECIMAL_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECIMAL</name>
+ <name>DEC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_2" keyConstraintSupported="true" precisionSupported="true" maximumPrecision="34" primitiveType="FLOAT" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="34">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECFLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DOUBLE_PRECISION_1" keyConstraintSupported="true" primitiveType="DOUBLE_PRECISION" jdbcEnumType="8" javaClassName="double">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DOUBLE</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="53" primitiveType="FLOAT" jdbcEnumType="6" javaClassName="double" defaultPrecision="53" cutoffPrecision="25">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>FLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_1" keyConstraintSupported="true" identitySupported="true" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>INTEGER</name>
+ <name>INT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATALINK_1" lengthSupported="true" maximumLength="200" primitiveType="DATALINK" jdbcEnumType="70" javaClassName="java.net.URL" defaultLength="200" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATALINK</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NUMERIC_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="NUMERIC" jdbcEnumType="2" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMERIC</name>
+ <name>NUM</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="REAL_1" keyConstraintSupported="true" primitiveType="REAL" jdbcEnumType="7" javaClassName="float">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>REAL</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="SMALLINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="SMALLINT" jdbcEnumType="5" javaClassName="short">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SMALLINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIME_1" keyConstraintSupported="true" primitiveType="TIME" jdbcEnumType="92" javaClassName="java.sql.Time">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIME</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIME</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_1" keyConstraintSupported="true" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIMESTAMP</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIMESTAMP</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="1" displayName="CHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR FOR BIT DATA</name>
+ <name>CHARACTER FOR BIT DATA</name>
+ <name>CHAR () FOR BIT DATA</name>
+ <name>CHARACTER () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]" defaultLength="1" displayName="VARCHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR FOR BIT DATA</name>
+ <name>CHARACTER VARYING FOR BIT DATA</name>
+ <name>CHAR VARYING FOR BIT DATA</name>
+ <name>VARCHAR () FOR BIT DATA</name>
+ <name>CHARACTER VARYING () FOR BIT DATA</name>
+ <name>CHAR VARYING () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_2" primitiveType="BINARY_VARYING" jdbcEnumType="-4" javaClassName="byte[]">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_1" primitiveType="XML_TYPE" jdbcEnumType="1111" orderingSupported="false" groupingSupported="false">
+ <name>XML</name>
+ </predefinedDataTypeDefinitions>
+ <tableSpaceDefinition typeSupported="true" extentSizeSupported="true" prefetchSizeSupported="true" managedBySupported="true" pageSizeSupported="true" bufferPoolSupported="true" maximumIdentifierLength="18">
+ <tableSpaceType>REGULAR</tableSpaceType>
+ <tableSpaceType>TEMPORARY</tableSpaceType>
+ <tableSpaceType>LARGE</tableSpaceType>
+ </tableSpaceDefinition>
+ <storedProcedureDefinition nullInputActionSupported="true" determininsticSupported="true" returnedNullSupported="true" parameterStyleSupported="true" maximumIdentifierLength="128">
+ <languageType>SQL</languageType>
+ <languageType>JAVA</languageType>
+ <languageType>C</languageType>
+ <languageType>COBOL</languageType>
+ <languageType>ASSEMBLY</languageType>
+ <languageType>PLI</languageType>
+ <functionLanguageType>SQL</functionLanguageType>
+ <functionLanguageType>JAVA</functionLanguageType>
+ <functionLanguageType>C</functionLanguageType>
+ <functionLanguageType>OLE</functionLanguageType>
+ <procedureType>PROCEDURE</procedureType>
+ <procedureType>FUNCTION</procedureType>
+ </storedProcedureDefinition>
+ <triggerDefinition granularitySupported="true" referencesClauseSupported="true" perColumnUpdateTriggerSupported="true" rowTriggerReferenceSupported="true" tableTriggerReferenceSupported="true" maximumIdentifierLength="128"/>
+ <columnDefinition identitySupported="true" identityStartValueSupported="true" identityIncrementSupported="true" identityMinimumSupported="true" identityMaximumSupported="true" identityCycleSupported="true" maximumIdentifierLength="128"/>
+ <constraintDefinition informationalConstraintSupported="true" clusteredPrimaryKeySupported="true" clusteredUniqueConstraintSupported="true" maximumPrimaryKeyIdentifierLength="128" maximumForeignKeyIdentifierLength="128" maximumCheckConstraintIdentifierLength="128">
+ <parentUpdateDRIRuleType>RESTRICT</parentUpdateDRIRuleType>
+ <parentUpdateDRIRuleType>NO_ACTION</parentUpdateDRIRuleType>
+ <parentDeleteDRIRuleType>RESTRICT</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>CASCADE</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>SET_NULL</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>NO_ACTION</parentDeleteDRIRuleType>
+ <checkOption>NONE</checkOption>
+ <checkOption>LOCAL</checkOption>
+ <checkOption>CASCADE</checkOption>
+ </constraintDefinition>
+ <indexDefinition clusteringSupported="true" includedColumnsSupported="true" maximumIdentifierLength="128"/>
+ <tableDefinition maximumIdentifierLength="128"/>
+ <sequenceDefinition predefinedDataTypeDefinitions="BIGINT_1 INTEGER_1 SMALLINT_1 DECIMAL_1" defaultDataTypeDefinition="INTEGER_1" typeEnumerationSupported="true" cacheSupported="true" orderSupported="true" noMaximumValueString="NO MAXVALUE" noMinimumValueString="NO MINVALUE" noCacheString="NO CACHE" cacheDefaultValue="20"/>
+ <udtDefinition distinctTypeSupported="true" structuredTypeSupported="true" maximumIdentifierLength="128"/>
+ <queryDefinition/>
+ <SQLSyntaxDefinition>
+ <keywords>ABS</keywords>
+ <keywords>ABSENT</keywords>
+ <keywords>ABSOLUTE</keywords>
+ <keywords>ACCESS</keywords>
+ <keywords>ACCORDING</keywords>
+ <keywords>ACTION</keywords>
+ <keywords>ACTIVATE</keywords>
+ <keywords>ADA</keywords>
+ <keywords>ADD</keywords>
+ <keywords>AFTER</keywords>
+ <keywords>ALIAS</keywords>
+ <keywords>ALL</keywords>
+ <keywords>ALLOCATE</keywords>
+ <keywords>ALLOW</keywords>
+ <keywords>ALTER</keywords>
+ <keywords>ALTERIN</keywords>
+ <keywords>ALWAYS</keywords>
+ <keywords>AND</keywords>
+ <keywords>ANY</keywords>
+ <keywords>APPEND</keywords>
+ <keywords>ARE</keywords>
+ <keywords>ARRAY</keywords>
+ <keywords>AS</keywords>
+ <keywords>ASC</keywords>
+ <keywords>ASCII</keywords>
+ <keywords>ASENSITIVE</keywords>
+ <keywords>ASSERTION</keywords>
+ <keywords>ASSOCIATE</keywords>
+ <keywords>ASUTIME</keywords>
+ <keywords>ASYMMETRIC</keywords>
+ <keywords>AT</keywords>
+ <keywords>ATOMIC</keywords>
+ <keywords>ATTRIBUTES</keywords>
+ <keywords>AUDIT</keywords>
+ <keywords>AUTHORIZATION</keywords>
+ <keywords>AUTOMATIC</keywords>
+ <keywords>AUX</keywords>
+ <keywords>AUXILIARY</keywords>
+ <keywords>AVG</keywords>
+ <keywords>BASE64</keywords>
+ <keywords>BEFORE</keywords>
+ <keywords>BEGIN</keywords>
+ <keywords>BETWEEN</keywords>
+ <keywords>BIGINT</keywords>
+ <keywords>BINARY</keywords>
+ <keywords>BIND</keywords>
+ <keywords>BINDADD</keywords>
+ <keywords>BIT</keywords>
+ <keywords>BIT_LENGTH</keywords>
+ <keywords>BLOB</keywords>
+ <keywords>BLOCKED</keywords>
+ <keywords>BOOLEAN</keywords>
+ <keywords>BOTH</keywords>
+ <keywords>BUFFERPOOL</keywords>
+ <keywords>BY</keywords>
+ <keywords>C</keywords>
+ <keywords>CACHE</keywords>
+ <keywords>CALL</keywords>
+ <keywords>CALLED</keywords>
+ <keywords>CAPTURE</keywords>
+ <keywords>CARDINALITY</keywords>
+ <keywords>CASCADE</keywords>
+ <keywords>CASCADED</keywords>
+ <keywords>CASE</keywords>
+ <keywords>CAST</keywords>
+ <keywords>CATALOG</keywords>
+ <keywords>CCSID</keywords>
+ <keywords>CEIL</keywords>
+ <keywords>CEILING</keywords>
+ <keywords>CHANGE</keywords>
+ <keywords>CHAR</keywords>
+ <keywords>CHAR_LENGTH</keywords>
+ <keywords>CHARACTER</keywords>
+ <keywords>CHARACTER_LENGTH</keywords>
+ <keywords>CHECK</keywords>
+ <keywords>CHECKED</keywords>
+ <keywords>CLIENT</keywords>
+ <keywords>CLOB</keywords>
+ <keywords>CLOSE</keywords>
+ <keywords>CLUSTER</keywords>
+ <keywords>COALESCE</keywords>
+ <keywords>COBOL</keywords>
+ <keywords>COLLATE</keywords>
+ <keywords>COLLATION</keywords>
+ <keywords>COLLECT</keywords>
+ <keywords>COLLECTION</keywords>
+ <keywords>COLLID</keywords>
+ <keywords>COLUMN</keywords>
+ <keywords>COLUMNS</keywords>
+ <keywords>COMMENT</keywords>
+ <keywords>COMMIT</keywords>
+ <keywords>COMMITTED</keywords>
+ <keywords>COMPARISONS</keywords>
+ <keywords>CONCAT</keywords>
+ <keywords>CONDITION</keywords>
+ <keywords>CONNECT</keywords>
+ <keywords>CONNECTION</keywords>
+ <keywords>CONSERVATIVE</keywords>
+ <keywords>CONSTRAINT</keywords>
+ <keywords>CONSTRAINTS</keywords>
+ <keywords>CONTAINS</keywords>
+ <keywords>CONTENT</keywords>
+ <keywords>CONTINUE</keywords>
+ <keywords>CONTROL</keywords>
+ <keywords>CONVERT</keywords>
+ <keywords>COPY</keywords>
+ <keywords>CORRELATION</keywords>
+ <keywords>CORR</keywords>
+ <keywords>CORRESPONDING</keywords>
+ <keywords>COUNT</keywords>
+ <keywords>COUNT_BIG</keywords>
+ <keywords>COVAR_POP</keywords>
+ <keywords>COVAR_SAMP</keywords>
+ <keywords>C++</keywords>
+ <keywords>CREATE</keywords>
+ <keywords>CREATEIN</keywords>
+ <keywords>CREATETAB</keywords>
+ <keywords>CROSS</keywords>
+ <keywords>CUBE</keywords>
+ <keywords>CUME_DIST</keywords>
+ <keywords>CURRENT</keywords>
+ <keywords>CURRENT_DATE</keywords>
+ <keywords>CURRENT_DEFAULT_TRANSFORM_GROUP</keywords>
+ <keywords>CURRENT_EXPLAIN_MODE</keywords>
+ <keywords>CURRENT_LC_CTYPE</keywords>
+ <keywords>CURRENT_PATH</keywords>
+ <keywords>CURRENT_ROLE</keywords>
+ <keywords>CURRENT_SCHEMA</keywords>
+ <keywords>CURRENT_SERVER</keywords>
+ <keywords>CURRENT_SQLID</keywords>
+ <keywords>CURRENT_TIME</keywords>
+ <keywords>CURRENT_TIMESTAMP</keywords>
+ <keywords>CURRENT_TIMEZONE</keywords>
+ <keywords>CURRENT_TRANSFORM_GROUP_FOR_TYPE</keywords>
+ <keywords>CURRENT_USER</keywords>
+ <keywords>CURSOR</keywords>
+ <keywords>CYCLE</keywords>
+ <keywords>DATA</keywords>
+ <keywords>DATABASE</keywords>
+ <keywords>DATALINK</keywords>
+ <keywords>DATAPARTITIONNAME</keywords>
+ <keywords>DATAPARTITIONNUM</keywords>
+ <keywords>DATE</keywords>
+ <keywords>DAY</keywords>
+ <keywords>DAYS</keywords>
+ <keywords>DB</keywords>
+ <keywords>DBADM</keywords>
+ <keywords>DBCLOB</keywords>
+ <keywords>DBINFO</keywords>
+ <keywords>DB2DARI</keywords>
+ <keywords>DB2GENRL</keywords>
+ <keywords>DB2GENERAL</keywords>
+ <keywords>DB2SQL</keywords>
+ <keywords>DBPARTITIONNAME</keywords>
+ <keywords>DBPARTITIONNUM</keywords>
+ <keywords>DEADLOCKS</keywords>
+ <keywords>DEALLOCATE</keywords>
+ <keywords>DEC</keywords>
+ <keywords>DECIMAL</keywords>
+ <keywords>DECLARE</keywords>
+ <keywords>DEFAULT</keywords>
+ <keywords>DEFAULTS</keywords>
+ <keywords>DEFINE</keywords>
+ <keywords>DEFINITION</keywords>
+ <keywords>DEGREE</keywords>
+ <keywords>DEFERRABLE</keywords>
+ <keywords>DEFERRED</keywords>
+ <keywords>DELETE</keywords>
+ <keywords>DENSE_RANK</keywords>
+ <keywords>DENSERANK</keywords>
+ <keywords>DEREF</keywords>
+ <keywords>DESC</keywords>
+ <keywords>DESCRIBE</keywords>
+ <keywords>DESCRIPTOR</keywords>
+ <keywords>DSSIZE</keywords>
+ <keywords>DETERMINISTIC</keywords>
+ <keywords>DIAGNOSTICS</keywords>
+ <keywords>DIMENSIONS</keywords>
+ <keywords>DISABLE</keywords>
+ <keywords>DISALLOW</keywords>
+ <keywords>DISCONNECT</keywords>
+ <keywords>DISTINCT</keywords>
+ <keywords>DOCUMENT</keywords>
+ <keywords>DOMAIN</keywords>
+ <keywords>DO</keywords>
+ <keywords>DOUBLE</keywords>
+ <keywords>DROP</keywords>
+ <keywords>DROPIN</keywords>
+ <keywords>DYNAMIC</keywords>
+ <keywords>EACH</keywords>
+ <keywords>EBCDIC</keywords>
+ <keywords>EDITPROC</keywords>
+ <keywords>ELEMENT</keywords>
+ <keywords>ELSE</keywords>
+ <keywords>ELSEIF</keywords>
+ <keywords>EMPTY</keywords>
+ <keywords>ENABLE</keywords>
+ <keywords>ENCODING</keywords>
+ <keywords>ENCRYPTION</keywords>
+ <keywords>END</keywords>
+ <keywords>END-EXEC</keywords>
+ <keywords>ENDING</keywords>
+ <keywords>ERASE</keywords>
+ <keywords>ESCAPE</keywords>
+ <keywords>EUR</keywords>
+ <keywords>EVENT</keywords>
+ <keywords>EVERY</keywords>
+ <keywords>EXACT</keywords>
+ <keywords>EXCEPT</keywords>
+ <keywords>EXCEPTION</keywords>
+ <keywords>EXCLUDE</keywords>
+ <keywords>EXCLUDING</keywords>
+ <keywords>EXCLUSIVE</keywords>
+ <keywords>EXEC</keywords>
+ <keywords>EXECUTE</keywords>
+ <keywords>EXISTS</keywords>
+ <keywords>EXIT</keywords>
+ <keywords>EXP</keywords>
+ <keywords>EXPLAIN</keywords>
+ <keywords>EXTENSION</keywords>
+ <keywords>EXTERNAL</keywords>
+ <keywords>EXTRACT</keywords>
+ <keywords>FALSE</keywords>
+ <keywords>FEDERATED</keywords>
+ <keywords>FENCED</keywords>
+ <keywords>FETCH</keywords>
+ <keywords>FIELDPROC</keywords>
+ <keywords>FILE</keywords>
+ <keywords>FILTER</keywords>
+ <keywords>FINAL</keywords>
+ <keywords>FIRST</keywords>
+ <keywords>FLOAT</keywords>
+ <keywords>FLOOR</keywords>
+ <keywords>FLUSH</keywords>
+ <keywords>FOLLOWING</keywords>
+ <keywords>FOR</keywords>
+ <keywords>FORCE</keywords>
+ <keywords>FOREIGN</keywords>
+ <keywords>FORTRAN</keywords>
+ <keywords>FOUND</keywords>
+ <keywords>FREE</keywords>
+ <keywords>FROM</keywords>
+ <keywords>FS</keywords>
+ <keywords>FULL</keywords>
+ <keywords>FUNCTION</keywords>
+ <keywords>FUSION</keywords>
+ <keywords>G</keywords>
+ <keywords>GENERAL</keywords>
+ <keywords>GENERATED</keywords>
+ <keywords>GET</keywords>
+ <keywords>GLOBAL</keywords>
+ <keywords>GO</keywords>
+ <keywords>GOTO</keywords>
+ <keywords>GRANT</keywords>
+ <keywords>GRAPHIC</keywords>
+ <keywords>GROUP</keywords>
+ <keywords>GROUPING</keywords>
+ <keywords>HANDLER</keywords>
+ <keywords>HASH</keywords>
+ <keywords>HASHED_VALUE</keywords>
+ <keywords>HAVING</keywords>
+ <keywords>HINT</keywords>
+ <keywords>HOLD</keywords>
+ <keywords>HOUR</keywords>
+ <keywords>HOURS</keywords>
+ <keywords>HEX</keywords>
+ <keywords>IDENTITY</keywords>
+ <keywords>IF</keywords>
+ <keywords>IMMEDIATE</keywords>
+ <keywords>IMPLICIT_SCHEMA</keywords>
+ <keywords>IN</keywords>
+ <keywords>INCLUDE</keywords>
+ <keywords>INCLUDING</keywords>
+ <keywords>INCLUSIVE</keywords>
+ <keywords>INCREMENT</keywords>
+ <keywords>INDEX</keywords>
+ <keywords>INDICATOR</keywords>
+ <keywords>INHERIT</keywords>
+ <keywords>INITIALLY</keywords>
+ <keywords>INITIAL_INSTS</keywords>
+ <keywords>INITIAL_IOS</keywords>
+ <keywords>INNER</keywords>
+ <keywords>INOUT</keywords>
+ <keywords>INPUT</keywords>
+ <keywords>INSENSITIVE</keywords>
+ <keywords>INSERT</keywords>
+ <keywords>INSTEAD</keywords>
+ <keywords>INSTS_PER_ARGBYTE</keywords>
+ <keywords>INSTS_PER_INVOC</keywords>
+ <keywords>INT</keywords>
+ <keywords>INTEGER</keywords>
+ <keywords>INTEGRITY</keywords>
+ <keywords>INTERSECT</keywords>
+ <keywords>INTERSECTION</keywords>
+ <keywords>INTERVAL</keywords>
+ <keywords>INTO</keywords>
+ <keywords>IOS_PER_ARGBYTE</keywords>
+ <keywords>IOS_PER_INVOC</keywords>
+ <keywords>IS</keywords>
+ <keywords>ISO</keywords>
+ <keywords>ISOBID</keywords>
+ <keywords>ISOLATION</keywords>
+ <keywords>ITERATE</keywords>
+ <keywords>JAR</keywords>
+ <keywords>JAVA</keywords>
+ <keywords>JIS</keywords>
+ <keywords>JOIN</keywords>
+ <keywords>K</keywords>
+ <keywords>KEY</keywords>
+ <keywords>LABEL</keywords>
+ <keywords>LANGUAGE</keywords>
+ <keywords>LARGE</keywords>
+ <keywords>LAST</keywords>
+ <keywords>LATERAL</keywords>
+ <keywords>LC_CTYPE</keywords>
+ <keywords>LEADING</keywords>
+ <keywords>LEAVE</keywords>
+ <keywords>LEFT</keywords>
+ <keywords>LENGTH</keywords>
+ <keywords>LEVEL</keywords>
+ <keywords>LIKE</keywords>
+ <keywords>LIMIT</keywords>
+ <keywords>LINK</keywords>
+ <keywords>LINKTYPE</keywords>
+ <keywords>LN</keywords>
+ <keywords>LOAD</keywords>
+ <keywords>LOCAL</keywords>
+ <keywords>LOCALDATE</keywords>
+ <keywords>LOCALE</keywords>
+ <keywords>LOCALTIME</keywords>
+ <keywords>LOCALTIMESTAMP</keywords>
+ <keywords>LOCATOR</keywords>
+ <keywords>LOCATORS</keywords>
+ <keywords>LOCK</keywords>
+ <keywords>LOCKMAX</keywords>
+ <keywords>LOCKS</keywords>
+ <keywords>LOCKSIZE</keywords>
+ <keywords>LONG</keywords>
+ <keywords>LONGVAR</keywords>
+ <keywords>LOOP</keywords>
+ <keywords>LOWER</keywords>
+ <keywords>M</keywords>
+ <keywords>MAINTAINED</keywords>
+ <keywords>MAPPING</keywords>
+ <keywords>MATCH</keywords>
+ <keywords>MATERIALIZED</keywords>
+ <keywords>MAX</keywords>
+ <keywords>MAXVALUE</keywords>
+ <keywords>MEMBER</keywords>
+ <keywords>MERGE</keywords>
+ <keywords>METHOD</keywords>
+ <keywords>MICROSECOND</keywords>
+ <keywords>MICROSECONDS</keywords>
+ <keywords>MIN</keywords>
+ <keywords>MINUTE</keywords>
+ <keywords>MINUTES</keywords>
+ <keywords>MINVALUE</keywords>
+ <keywords>MOD</keywords>
+ <keywords>MODE</keywords>
+ <keywords>MODIFIES</keywords>
+ <keywords>MODULE</keywords>
+ <keywords>MONITOR</keywords>
+ <keywords>MONTH</keywords>
+ <keywords>MONTHS</keywords>
+ <keywords>MULTISET</keywords>
+ <keywords>NAMED</keywords>
+ <keywords>NAMES</keywords>
+ <keywords>NAMESPACE</keywords>
+ <keywords>NATIONAL</keywords>
+ <keywords>NATURAL</keywords>
+ <keywords>NCHAR</keywords>
+ <keywords>NCLOB</keywords>
+ <keywords>NEW</keywords>
+ <keywords>NEW_TABLE</keywords>
+ <keywords>NEXT</keywords>
+ <keywords>NEXTVAL</keywords>
+ <keywords>NICKNAME</keywords>
+ <keywords>NIL</keywords>
+ <keywords>NO</keywords>
+ <keywords>NOCACHE</keywords>
+ <keywords>NOCYCLE</keywords>
+ <keywords>NODE</keywords>
+ <keywords>NODENAME</keywords>
+ <keywords>NODENUMBER</keywords>
+ <keywords>NOMAXVALUE</keywords>
+ <keywords>NOMINVALUE</keywords>
+ <keywords>NONE</keywords>
+ <keywords>NOORDER</keywords>
+ <keywords>NORMALIZE</keywords>
+ <keywords>NORMALIZED</keywords>
+ <keywords>NOT</keywords>
+ <keywords>NULL</keywords>
+ <keywords>NULLABLE</keywords>
+ <keywords>NULLIF</keywords>
+ <keywords>NULLS</keywords>
+ <keywords>NUMBER</keywords>
+ <keywords>NUMERIC</keywords>
+ <keywords>NUMPARTS</keywords>
+ <keywords>OBID</keywords>
+ <keywords>OBJECT</keywords>
+ <keywords>OCTET_LENGTH</keywords>
+ <keywords>OF</keywords>
+ <keywords>OFF</keywords>
+ <keywords>OLD</keywords>
+ <keywords>OLD_TABLE</keywords>
+ <keywords>OLE</keywords>
+ <keywords>OLEDB</keywords>
+ <keywords>ON</keywords>
+ <keywords>ONCE</keywords>
+ <keywords>ONLINE</keywords>
+ <keywords>ONLY</keywords>
+ <keywords>OPEN</keywords>
+ <keywords>OPTIMIZATION</keywords>
+ <keywords>OPTIMIZE</keywords>
+ <keywords>OPTION</keywords>
+ <keywords>OR</keywords>
+ <keywords>ORDER</keywords>
+ <keywords>OUT</keywords>
+ <keywords>OUTER</keywords>
+ <keywords>OUTPUT</keywords>
+ <keywords>OVER</keywords>
+ <keywords>OVERLAY</keywords>
+ <keywords>OVERLAPS</keywords>
+ <keywords>OVERRIDING</keywords>
+ <keywords>PACKAGE</keywords>
+ <keywords>PAD</keywords>
+ <keywords>PADDED</keywords>
+ <keywords>PAGESIZE</keywords>
+ <keywords>PART</keywords>
+ <keywords>PARTIAL</keywords>
+ <keywords>PARTITIONED</keywords>
+ <keywords>PARTITIONING</keywords>
+ <keywords>PARTITIONS</keywords>
+ <keywords>PARALLEL</keywords>
+ <keywords>PARAMETER</keywords>
+ <keywords>PASCAL</keywords>
+ <keywords>PASSING</keywords>
+ <keywords>PASSTHRU</keywords>
+ <keywords>PASSWORD</keywords>
+ <keywords>PATH</keywords>
+ <keywords>PARTITION</keywords>
+ <keywords>PCTFREE</keywords>
+ <keywords>PERCENT_ARGBYTES</keywords>
+ <keywords>PERCENT_RANK</keywords>
+ <keywords>PERCENTILE_CONT</keywords>
+ <keywords>PERCENTILE_DISC</keywords>
+ <keywords>PERMISSION</keywords>
+ <keywords>PIECESIZE</keywords>
+ <keywords>PIPE</keywords>
+ <keywords>PLAN</keywords>
+ <keywords>PLI</keywords>
+ <keywords>POSITION</keywords>
+ <keywords>POWER</keywords>
+ <keywords>PRECEDING</keywords>
+ <keywords>PRECISION</keywords>
+ <keywords>PREPARE</keywords>
+ <keywords>PRESERVE</keywords>
+ <keywords>PREVVAL</keywords>
+ <keywords>PRIMARY</keywords>
+ <keywords>PRIOR</keywords>
+ <keywords>PRIQTY</keywords>
+ <keywords>PRIVILEGES</keywords>
+ <keywords>PROCEDURE</keywords>
+ <keywords>PROGRAM</keywords>
+ <keywords>PSID</keywords>
+ <keywords>PUBLIC</keywords>
+ <keywords>QUERY</keywords>
+ <keywords>QUERYNO</keywords>
+ <keywords>RANGE</keywords>
+ <keywords>READ</keywords>
+ <keywords>READS</keywords>
+ <keywords>REAL</keywords>
+ <keywords>RECOMMEND</keywords>
+ <keywords>RECOVERY</keywords>
+ <keywords>RECURSIVE</keywords>
+ <keywords>REF</keywords>
+ <keywords>REFERENCE</keywords>
+ <keywords>REFERENCES</keywords>
+ <keywords>REFERENCING</keywords>
+ <keywords>REFRESH</keywords>
+ <keywords>REGISTERS</keywords>
+ <keywords>REGR_AVGX</keywords>
+ <keywords>REGR_AVGY</keywords>
+ <keywords>REGR_COUNT</keywords>
+ <keywords>REGR_INTERCEPT</keywords>
+ <keywords>REGR_R2</keywords>
+ <keywords>REGR_SLOPE</keywords>
+ <keywords>REGR_SXX</keywords>
+ <keywords>REGR_SXY</keywords>
+ <keywords>REGR_SYY</keywords>
+ <keywords>RELATIVE</keywords>
+ <keywords>RELEASE</keywords>
+ <keywords>RENAME</keywords>
+ <keywords>REPEATABLE</keywords>
+ <keywords>REPEAT</keywords>
+ <keywords>REPLACE</keywords>
+ <keywords>REPLICATED</keywords>
+ <keywords>RESET</keywords>
+ <keywords>RESIGNAL</keywords>
+ <keywords>RESOLVE</keywords>
+ <keywords>RESTART</keywords>
+ <keywords>RESTORE</keywords>
+ <keywords>RESTRICT</keywords>
+ <keywords>RESULT</keywords>
+ <keywords>RESULT_SET_LOCATOR</keywords>
+ <keywords>RETAIN</keywords>
+ <keywords>RETURN</keywords>
+ <keywords>RETURNING</keywords>
+ <keywords>RETURNS</keywords>
+ <keywords>RETURN_STATUS</keywords>
+ <keywords>REVOKE</keywords>
+ <keywords>RIGHT</keywords>
+ <keywords>ROLLBACK</keywords>
+ <keywords>ROLLUP</keywords>
+ <keywords>ROUTINE</keywords>
+ <keywords>ROW</keywords>
+ <keywords>ROWID</keywords>
+ <keywords>ROWNUMBER</keywords>
+ <keywords>ROWS</keywords>
+ <keywords>ROWSET</keywords>
+ <keywords>ROW_COUNT</keywords>
+ <keywords>RRN</keywords>
+ <keywords>RUN</keywords>
+ <keywords>S</keywords>
+ <keywords>SAVEPOINT</keywords>
+ <keywords>SBCS</keywords>
+ <keywords>SCALE</keywords>
+ <keywords>SCHEMA</keywords>
+ <keywords>SCOPE</keywords>
+ <keywords>SCRATCHPAD</keywords>
+ <keywords>SCROLL</keywords>
+ <keywords>SEARCH</keywords>
+ <keywords>SECOND</keywords>
+ <keywords>SECONDS</keywords>
+ <keywords>SECQTY</keywords>
+ <keywords>SECTION</keywords>
+ <keywords>SECURITY</keywords>
+ <keywords>SELECT</keywords>
+ <keywords>SELECTIVITY</keywords>
+ <keywords>SELF</keywords>
+ <keywords>SENSITIVE</keywords>
+ <keywords>SEQUENCE</keywords>
+ <keywords>SERIALIZABLE</keywords>
+ <keywords>SERVER</keywords>
+ <keywords>SESSION</keywords>
+ <keywords>SESSION_USER</keywords>
+ <keywords>SET</keywords>
+ <keywords>SETS</keywords>
+ <keywords>SHARE</keywords>
+ <keywords>SIGNAL</keywords>
+ <keywords>SIMILAR</keywords>
+ <keywords>SIMPLE</keywords>
+ <keywords>SIZE</keywords>
+ <keywords>SMALLINT</keywords>
+ <keywords>SNAPSHOT</keywords>
+ <keywords>SOME</keywords>
+ <keywords>SOURCE</keywords>
+ <keywords>SPACE</keywords>
+ <keywords>SPECIFIC</keywords>
+ <keywords>SPECIFICTYPE</keywords>
+ <keywords>SQL</keywords>
+ <keywords>SQLCODE</keywords>
+ <keywords>SQLERROR</keywords>
+ <keywords>SQLEXCEPTION</keywords>
+ <keywords>SQLWARNING</keywords>
+ <keywords>SQLID</keywords>
+ <keywords>SQLSTATE</keywords>
+ <keywords>SQRT</keywords>
+ <keywords>STACKED</keywords>
+ <keywords>STANDALONE</keywords>
+ <keywords>STANDARD</keywords>
+ <keywords>START</keywords>
+ <keywords>STARTING</keywords>
+ <keywords>STATE</keywords>
+ <keywords>STATEMENT</keywords>
+ <keywords>STATIC</keywords>
+ <keywords>STATISTICS</keywords>
+ <keywords>STAY</keywords>
+ <keywords>STDDEV_POP</keywords>
+ <keywords>STDDEV_SAMP</keywords>
+ <keywords>STRIP</keywords>
+ <keywords>STOGROUP</keywords>
+ <keywords>STORAGE</keywords>
+ <keywords>STORES</keywords>
+ <keywords>STYLE</keywords>
+ <keywords>SUBMULTISET</keywords>
+ <keywords>SUBSTRING</keywords>
+ <keywords>SUM</keywords>
+ <keywords>SUMMARY</keywords>
+ <keywords>SWITCH</keywords>
+ <keywords>SYMMETRIC</keywords>
+ <keywords>SYNONYM</keywords>
+ <keywords>SYSFUN</keywords>
+ <keywords>SYSIBM</keywords>
+ <keywords>SYSPROC</keywords>
+ <keywords>SYSTEM</keywords>
+ <keywords>SYSTEM_USER</keywords>
+ <keywords>TABLE</keywords>
+ <keywords>TABLES</keywords>
+ <keywords>TABLE_NAME</keywords>
+ <keywords>TABLESPACE</keywords>
+ <keywords>TABLESPACES</keywords>
+ <keywords>TEMPORARY</keywords>
+ <keywords>THEN</keywords>
+ <keywords>THREADSAFE</keywords>
+ <keywords>TIME</keywords>
+ <keywords>TIMESTAMP</keywords>
+ <keywords>TIMEZONE</keywords>
+ <keywords>TIMEZONE_HOUR</keywords>
+ <keywords>TIMEZONE_MINUTE</keywords>
+ <keywords>TO</keywords>
+ <keywords>TRAILING</keywords>
+ <keywords>TRANSACTION</keywords>
+ <keywords>TRANSFORM</keywords>
+ <keywords>TRANSLATE</keywords>
+ <keywords>TRANSLATION</keywords>
+ <keywords>TREAT</keywords>
+ <keywords>TRIGGER</keywords>
+ <keywords>TRIM</keywords>
+ <keywords>TRUE</keywords>
+ <keywords>TYPE</keywords>
+ <keywords>UESCAPE</keywords>
+ <keywords>UNBOUNDED</keywords>
+ <keywords>UNCOMMITTED</keywords>
+ <keywords>UNDER</keywords>
+ <keywords>UNDO</keywords>
+ <keywords>UNICODE</keywords>
+ <keywords>UNION</keywords>
+ <keywords>UNIQUE</keywords>
+ <keywords>UNKNOWN</keywords>
+ <keywords>UNNEST</keywords>
+ <keywords>UNTIL</keywords>
+ <keywords>UNTYPED</keywords>
+ <keywords>UPDATE</keywords>
+ <keywords>UPPER</keywords>
+ <keywords>URL</keywords>
+ <keywords>URI</keywords>
+ <keywords>USA</keywords>
+ <keywords>USE</keywords>
+ <keywords>USAGE</keywords>
+ <keywords>USER</keywords>
+ <keywords>USING</keywords>
+ <keywords>VALID</keywords>
+ <keywords>VALIDPROC</keywords>
+ <keywords>VALUE</keywords>
+ <keywords>VALUES</keywords>
+ <keywords>VARCHAR</keywords>
+ <keywords>VARGRAPHIC</keywords>
+ <keywords>VARIABLE</keywords>
+ <keywords>VARIANT</keywords>
+ <keywords>VARYING</keywords>
+ <keywords>VAR_POP</keywords>
+ <keywords>VAR_SAMP</keywords>
+ <keywords>VCAT</keywords>
+ <keywords>VERSION</keywords>
+ <keywords>VIEW</keywords>
+ <keywords>VOLATILE</keywords>
+ <keywords>VOLUMES</keywords>
+ <keywords>WHEN</keywords>
+ <keywords>WHENEVER</keywords>
+ <keywords>WHERE</keywords>
+ <keywords>WHILE</keywords>
+ <keywords>WHITESPACE</keywords>
+ <keywords>WIDTH_BUCKET</keywords>
+ <keywords>WINDOW</keywords>
+ <keywords>WITH</keywords>
+ <keywords>WITHIN</keywords>
+ <keywords>WITHOUT</keywords>
+ <keywords>WLM</keywords>
+ <keywords>WORK</keywords>
+ <keywords>WRAPPER</keywords>
+ <keywords>WRITE</keywords>
+ <keywords>XML</keywords>
+ <keywords>XMLAGG</keywords>
+ <keywords>XMLBINARY</keywords>
+ <keywords>XMLCAST</keywords>
+ <keywords>XMLELEMENT</keywords>
+ <keywords>XMLEXISTS</keywords>
+ <keywords>XMLATTRIBUTES</keywords>
+ <keywords>XMLCOMMENT</keywords>
+ <keywords>XMLCONCAT</keywords>
+ <keywords>XMLDECLARATION</keywords>
+ <keywords>XMLDOCUMENT</keywords>
+ <keywords>XMLELEMENT</keywords>
+ <keywords>XMLFOREST</keywords>
+ <keywords>XMLITERATE</keywords>
+ <keywords>XMLNAMESPACES</keywords>
+ <keywords>XMLPARSE</keywords>
+ <keywords>XMLPI</keywords>
+ <keywords>XMLQUERY</keywords>
+ <keywords>XMLSCHEMA</keywords>
+ <keywords>XMLSERIALIZE</keywords>
+ <keywords>XMLTABLE</keywords>
+ <keywords>XMLTEXT</keywords>
+ <keywords>XMLVALIDATE</keywords>
+ <keywords>XMLXSROBJECTID</keywords>
+ <keywords>YEAR</keywords>
+ <keywords>YEARS</keywords>
+ <keywords>YES</keywords>
+ <keywords>ZONE</keywords>
+ <operators><</operators>
+ <operators>"</operators>
+ <operators>%</operators>
+ <operators>&</operators>
+ <operators>''''</operators>
+ <operators>(</operators>
+ <operators>)</operators>
+ <operators>*</operators>
+ <operators>+</operators>
+ <operators>,</operators>
+ <operators>-</operators>
+ <operators>.</operators>
+ <operators>/</operators>
+ <operators>:</operators>
+ <operators>;</operators>
+ <operators>=</operators>
+ <operators>?</operators>
+ <operators>[</operators>
+ <operators>]</operators>
+ <operators>_</operators>
+ <operators>'|'</operators>
+ <operators>,=</operators>
+ <operators><=</operators>
+ <operators>||</operators>
+ <operators>..</operators>
+ <operators>'-,'</operators>
+ <operators>!</operators>
+ <operators>~</operators>
+ <operators>:=</operators>
+ <operators>{</operators>
+ <operators>}</operators>
+ <operators>(+)</operators>
+ </SQLSyntaxDefinition>
+ <nicknameDefinition constraintSupported="true" indexSupported="true" maximumIdentifierLength="128"/>
+ <schemaDefinition maximumIdentifierLength="128"/>
+ <viewDefinition maximumIdentifierLength="128"/>
+ <privilegedElementDefinitions name="Database">
+ <privilegeDefinitions name="BINDADD"/>
+ <privilegeDefinitions name="CONNECT"/>
+ <privilegeDefinitions name="CREATETAB"/>
+ <privilegeDefinitions name="CREATE_EXTERNAL_ROUTINE"/>
+ <privilegeDefinitions name="CREATE_NOT_FENCED_ROUTINE"/>
+ <privilegeDefinitions name="IMPLICIT_SCHEMA"/>
+ <privilegeDefinitions name="DBADM"/>
+ <privilegeDefinitions name="LOAD"/>
+ <privilegeDefinitions name="QUIESCE_CONNECT"/>
+ <privilegeDefinitions name="SECADM"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Schema">
+ <privilegeDefinitions name="ALTERIN"/>
+ <privilegeDefinitions name="CREATEIN"/>
+ <privilegeDefinitions name="DROPIN"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PersistentTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="ViewTable">
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Nickname">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions xmi:id="COLUMN_1" name="Column"/>
+ <privilegedElementDefinitions name="MaterializedQueryTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Routine">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Sequence">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="USAGE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Index">
+ <privilegeDefinitions name="CONTROL"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Tablespace">
+ <privilegeDefinitions name="USE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Package">
+ <privilegeDefinitions name="BIND"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <constructedDataTypeDefinition arrayDatatypeSupported="true"/>
+</DBDefinition:DatabaseVendorDefinition>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.7/DB2 UDB_9.7.xmi b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.7/DB2 UDB_9.7.xmi
new file mode 100644
index 0000000..d1ed112
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.7/DB2 UDB_9.7.xmi
@@ -0,0 +1,1410 @@
+<?xml version="1.0" encoding="ASCII"?>
+<DBDefinition:DatabaseVendorDefinition xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:DBDefinition="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore" vendor="DB2 UDB" version="V9.7" maximumIdentifierLength="8" viewTriggerSupported="true" maximumCommentLength="64" sequenceSupported="true" mQTSupported="true" aliasSupported="true" userDefinedTypeSupported="true" SQLStatementSupported="true" nicknameSupported="true" xmlSupported="true" packageSupported="true" roleSupported="true" groupSupported="true" userSupported="true" roleAuthorizationSupported="true" constructedDataTypeSupported="true" mQTIndexSupported="true">
+ <predefinedDataTypeDefinitions xmi:id="BIGINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="BIGINT" jdbcEnumType="-5" javaClassName="long">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BIGINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="BINARY_LARGE_OBJECT" jdbcEnumType="2004" javaClassName="java.sql.Blob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="127" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>GRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="16336" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_2" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR</name>
+ <name>CHARACTER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CLOB</name>
+ <name>CHARACTER LARGE OBJECT</name>
+ <name>CHAR LARGE OBJECT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="1073741823" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DBCLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR</name>
+ <name>CHARACTER VARYING</name>
+ <name>CHAR VARYING</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_2" primitiveType="CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATE_1" keyConstraintSupported="true" primitiveType="DATE" jdbcEnumType="91" javaClassName="java.sql.Date">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT DATE</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATE</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DECIMAL_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECIMAL</name>
+ <name>DEC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_2" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="34" primitiveType="FLOAT" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="34">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECFLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DOUBLE_PRECISION_1" keyConstraintSupported="true" primitiveType="DOUBLE_PRECISION" jdbcEnumType="8" javaClassName="double">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DOUBLE</name>
+ <name>DOUBLE PRECISION</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="53" primitiveType="FLOAT" jdbcEnumType="6" javaClassName="double" defaultPrecision="53" cutoffPrecision="25">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>FLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_1" keyConstraintSupported="true" identitySupported="true" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>INTEGER</name>
+ <name>INT</name>
+ <name>BINARY_INTEGER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATALINK_1" lengthSupported="true" maximumLength="200" primitiveType="DATALINK" jdbcEnumType="70" javaClassName="java.net.URL" defaultLength="200" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATALINK</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NUMERIC_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="NUMERIC" jdbcEnumType="2" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMERIC</name>
+ <name>NUM</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="REAL_1" keyConstraintSupported="true" primitiveType="REAL" jdbcEnumType="7" javaClassName="float">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>REAL</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="SMALLINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="SMALLINT" jdbcEnumType="5" javaClassName="short">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SMALLINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIME_1" keyConstraintSupported="true" primitiveType="TIME" jdbcEnumType="92" javaClassName="java.sql.Time">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIME</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIME</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="12" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp" defaultPrecision="6">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIMESTAMP</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIMESTAMP</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="1" displayName="CHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR FOR BIT DATA</name>
+ <name>CHARACTER FOR BIT DATA</name>
+ <name>CHAR () FOR BIT DATA</name>
+ <name>CHARACTER () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]" defaultLength="1" displayName="VARCHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR FOR BIT DATA</name>
+ <name>CHARACTER VARYING FOR BIT DATA</name>
+ <name>CHAR VARYING FOR BIT DATA</name>
+ <name>VARCHAR () FOR BIT DATA</name>
+ <name>CHARACTER VARYING () FOR BIT DATA</name>
+ <name>CHAR VARYING () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_2" primitiveType="BINARY_VARYING" jdbcEnumType="-4" javaClassName="byte[]">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_1" primitiveType="XML_TYPE" jdbcEnumType="1111" orderingSupported="false" groupingSupported="false">
+ <name>XML</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" defaultSupported="false" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMBER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions lengthSupported="true" keyConstraintSupported="true" defaultSupported="false" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="4096">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR2</name>
+ </predefinedDataTypeDefinitions>
+ <tableSpaceDefinition typeSupported="true" extentSizeSupported="true" prefetchSizeSupported="true" managedBySupported="true" pageSizeSupported="true" bufferPoolSupported="true" maximumIdentifierLength="18">
+ <tableSpaceType>REGULAR</tableSpaceType>
+ <tableSpaceType>TEMPORARY</tableSpaceType>
+ <tableSpaceType>LARGE</tableSpaceType>
+ </tableSpaceDefinition>
+ <storedProcedureDefinition nullInputActionSupported="true" determininsticSupported="true" returnedNullSupported="true" parameterStyleSupported="true" maximumIdentifierLength="128">
+ <predefinedDataTypeDefinitions xmi:id="BOOLEAN_1" primitiveType="BOOLEAN" jdbcEnumType="-7" javaClassName="boolean">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BOOLEAN</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_1" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_2" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>PLS_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_3" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BINARY_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_2" primitiveType="XML_TYPE" jdbcEnumType="1111" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>XMLTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_2" lengthSupported="true" maximumLength="32767" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="32767">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_3" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_2" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCLOB</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_2" lengthSupported="true" maximumLength="2000" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="127">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCHAR</name>
+ <name>NATIONAL CHARACTER</name>
+ <name>NATIONAL CHAR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_3" lengthSupported="true" maximumLength="4000" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="2048">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NVARCHAR2</name>
+ <name>NATIONAL CHARACTER VARYING</name>
+ <name>NATIONAL CHAR VARYING</name>
+ <name>NCHAR VARYING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_4" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NATURAL</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_2" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SYS_REFCURSOR</name>
+ <name>REFCURSOR</name>
+ <name>REF CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_3" lengthSupported="true" bitDataSupported="true" maximumLength="4000" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="1" displayName="STRING({0})" displayNameSupported="true" lengthSemanticSupported="true">
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>UID</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>STRING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_5" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>POSITIVE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_6" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SIGNTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <languageType>SQL</languageType>
+ <languageType>JAVA</languageType>
+ <languageType>C</languageType>
+ <languageType>COBOL</languageType>
+ <languageType>ASSEMBLY</languageType>
+ <languageType>PLI</languageType>
+ <functionLanguageType>SQL</functionLanguageType>
+ <functionLanguageType>JAVA</functionLanguageType>
+ <functionLanguageType>C</functionLanguageType>
+ <functionLanguageType>OLE</functionLanguageType>
+ <procedureType>PROCEDURE</procedureType>
+ <procedureType>FUNCTION</procedureType>
+ </storedProcedureDefinition>
+ <triggerDefinition granularitySupported="true" referencesClauseSupported="true" perColumnUpdateTriggerSupported="true" rowTriggerReferenceSupported="true" tableTriggerReferenceSupported="true" maximumIdentifierLength="128"/>
+ <columnDefinition identitySupported="true" identityStartValueSupported="true" identityIncrementSupported="true" identityMinimumSupported="true" identityMaximumSupported="true" identityCycleSupported="true" maximumIdentifierLength="128"/>
+ <constraintDefinition informationalConstraintSupported="true" clusteredPrimaryKeySupported="true" clusteredUniqueConstraintSupported="true" maximumPrimaryKeyIdentifierLength="128" maximumForeignKeyIdentifierLength="128" maximumCheckConstraintIdentifierLength="128">
+ <parentUpdateDRIRuleType>RESTRICT</parentUpdateDRIRuleType>
+ <parentUpdateDRIRuleType>NO_ACTION</parentUpdateDRIRuleType>
+ <parentDeleteDRIRuleType>RESTRICT</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>CASCADE</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>SET_NULL</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>NO_ACTION</parentDeleteDRIRuleType>
+ <checkOption>NONE</checkOption>
+ <checkOption>LOCAL</checkOption>
+ <checkOption>CASCADE</checkOption>
+ </constraintDefinition>
+ <indexDefinition clusteringSupported="true" includedColumnsSupported="true" maximumIdentifierLength="128"/>
+ <tableDefinition maximumIdentifierLength="128"/>
+ <sequenceDefinition predefinedDataTypeDefinitions="BIGINT_1 INTEGER_1 SMALLINT_1 DECIMAL_1" defaultDataTypeDefinition="INTEGER_1" typeEnumerationSupported="true" cacheSupported="true" orderSupported="true" noMaximumValueString="NO MAXVALUE" noMinimumValueString="NO MINVALUE" noCacheString="NO CACHE" cacheDefaultValue="20"/>
+ <udtDefinition distinctTypeSupported="true" structuredTypeSupported="true" maximumIdentifierLength="128"/>
+ <queryDefinition/>
+ <SQLSyntaxDefinition>
+ <keywords>ACCESS</keywords>
+ <keywords>ACCESSCTRL</keywords>
+ <keywords>ACCORDING</keywords>
+ <keywords>ACCTNG</keywords>
+ <keywords>ACTION</keywords>
+ <keywords>ACTIVATE</keywords>
+ <keywords>ACTIVITIES</keywords>
+ <keywords>ACTIVITY</keywords>
+ <keywords>ACTIVITYSTMT</keywords>
+ <keywords>ACTIVITYTOTALTIME</keywords>
+ <keywords>ACTIVITYVALS</keywords>
+ <keywords>ADD</keywords>
+ <keywords>ADDRESS</keywords>
+ <keywords>ADMIN</keywords>
+ <keywords>ADMINISTRATION</keywords>
+ <keywords>AFTER</keywords>
+ <keywords>AGE</keywords>
+ <keywords>AGENT</keywords>
+ <keywords>AGGREGATE</keywords>
+ <keywords>AGGSQLTEMPSPACE</keywords>
+ <keywords>ALIAS</keywords>
+ <keywords>ALL</keywords>
+ <keywords>ALLOCATE</keywords>
+ <keywords>ALLOW</keywords>
+ <keywords>ALTER</keywords>
+ <keywords>ALTERIN</keywords>
+ <keywords>ALWAYS</keywords>
+ <keywords>ANCHOR</keywords>
+ <keywords>AND</keywords>
+ <keywords>ANY</keywords>
+ <keywords>APPEND</keywords>
+ <keywords>APPLICATION</keywords>
+ <keywords>APPLNAME</keywords>
+ <keywords>APPL_ID</keywords>
+ <keywords>APPL_NAME</keywords>
+ <keywords>APREUSE</keywords>
+ <keywords>ARRAY</keywords>
+ <keywords>ARRAY_AGG</keywords>
+ <keywords>ARRAY_EXISTS</keywords>
+ <keywords>AS</keywords>
+ <keywords>ASC</keywords>
+ <keywords>ASCII</keywords>
+ <keywords>ASENSITIVE</keywords>
+ <keywords>ASSOCIATE</keywords>
+ <keywords>AST</keywords>
+ <keywords>ASUTIME</keywords>
+ <keywords>ASYNCHRONY</keywords>
+ <keywords>AT</keywords>
+ <keywords>ATOMIC</keywords>
+ <keywords>ATTACH</keywords>
+ <keywords>ATTRIBUTE</keywords>
+ <keywords>ATTRIBUTES</keywords>
+ <keywords>AUDIT</keywords>
+ <keywords>AUTHENTICATION</keywords>
+ <keywords>AUTHID</keywords>
+ <keywords>AUTHORIZATION</keywords>
+ <keywords>AUTHORIZATIONS</keywords>
+ <keywords>AUTHORIZED</keywords>
+ <keywords>AUTH_ID</keywords>
+ <keywords>AUTOMATIC</keywords>
+ <keywords>AUTONOMOUS</keywords>
+ <keywords>AUTONOMOUS_TRANSACTION</keywords>
+ <keywords>AUTORESIZE</keywords>
+ <keywords>AUTOSTART</keywords>
+ <keywords>B</keywords>
+ <keywords>BASE</keywords>
+ <keywords>BASE64</keywords>
+ <keywords>BASED</keywords>
+ <keywords>BEFORE</keywords>
+ <keywords>BEGIN</keywords>
+ <keywords>BERNOULLI</keywords>
+ <keywords>BETWEEN</keywords>
+ <keywords>BIGINT</keywords>
+ <keywords>BIN</keywords>
+ <keywords>BINARY</keywords>
+ <keywords>BINARY_INTEGER</keywords>
+ <keywords>BIND</keywords>
+ <keywords>BINDADD</keywords>
+ <keywords>BIT</keywords>
+ <keywords>BLOB</keywords>
+ <keywords>BLOCKED</keywords>
+ <keywords>BLOCKINSERT</keywords>
+ <keywords>BLOCKSIZE</keywords>
+ <keywords>BODY</keywords>
+ <keywords>BOOLEAN</keywords>
+ <keywords>BOTH</keywords>
+ <keywords>BUFFER</keywords>
+ <keywords>BUFFERPOOL</keywords>
+ <keywords>BUFFERPOOLS</keywords>
+ <keywords>BUFFERSIZE</keywords>
+ <keywords>BUILD</keywords>
+ <keywords>BULK</keywords>
+ <keywords>BY</keywords>
+ <keywords>BYPASS</keywords>
+ <keywords>C</keywords>
+ <keywords>CACHE</keywords>
+ <keywords>CACHING</keywords>
+ <keywords>CALL</keywords>
+ <keywords>CALLED</keywords>
+ <keywords>CALLER</keywords>
+ <keywords>CAPTURE</keywords>
+ <keywords>CARDINALITIES</keywords>
+ <keywords>CARDINALITY</keywords>
+ <keywords>CASCADE</keywords>
+ <keywords>CASCADED</keywords>
+ <keywords>CASE</keywords>
+ <keywords>CAST</keywords>
+ <keywords>CATEGORIES</keywords>
+ <keywords>CCSID</keywords>
+ <keywords>CHANGE</keywords>
+ <keywords>CHANGED</keywords>
+ <keywords>CHANGES</keywords>
+ <keywords>CHAR</keywords>
+ <keywords>CHARACTER</keywords>
+ <keywords>CHECK</keywords>
+ <keywords>CHECKED</keywords>
+ <keywords>CHECKING</keywords>
+ <keywords>CLASS</keywords>
+ <keywords>CLIENT</keywords>
+ <keywords>CLIENT_ACCTNG</keywords>
+ <keywords>CLIENT_APPLNAME</keywords>
+ <keywords>CLIENT_USERID</keywords>
+ <keywords>CLIENT_WRKSTNNAME</keywords>
+ <keywords>CLOB</keywords>
+ <keywords>CLOSE</keywords>
+ <keywords>CLR</keywords>
+ <keywords>CLUSTER</keywords>
+ <keywords>COBOL</keywords>
+ <keywords>CODEUNITS16</keywords>
+ <keywords>CODEUNITS32</keywords>
+ <keywords>COLLECT</keywords>
+ <keywords>COLLID</keywords>
+ <keywords>COLUMN</keywords>
+ <keywords>COLUMNS</keywords>
+ <keywords>COMM</keywords>
+ <keywords>COMMENT</keywords>
+ <keywords>COMMIT</keywords>
+ <keywords>COMMITTED</keywords>
+ <keywords>COMPACT</keywords>
+ <keywords>COMPARE</keywords>
+ <keywords>COMPARISONS</keywords>
+ <keywords>COMPILATION</keywords>
+ <keywords>COMPILEDFUNCTION</keywords>
+ <keywords>COMPILEDTRIGGER</keywords>
+ <keywords>COMPONENT</keywords>
+ <keywords>COMPONENTS</keywords>
+ <keywords>COMPOUND</keywords>
+ <keywords>COMPRESS</keywords>
+ <keywords>COMPRESSION</keywords>
+ <keywords>CONCAT</keywords>
+ <keywords>CONCURRENTDBCOORDACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADOCCURRENCES</keywords>
+ <keywords>CONDITION</keywords>
+ <keywords>CONN</keywords>
+ <keywords>CONNECT</keywords>
+ <keywords>CONNECTION</keywords>
+ <keywords>CONNECTIONIDLETIME</keywords>
+ <keywords>CONNECTIONS</keywords>
+ <keywords>CONNECTOPT</keywords>
+ <keywords>CONNECT_BY_ROOT</keywords>
+ <keywords>CONNHEADER</keywords>
+ <keywords>CONNMEMUSE</keywords>
+ <keywords>CONSERVATIVE</keywords>
+ <keywords>CONSTANT</keywords>
+ <keywords>CONSTRAINT</keywords>
+ <keywords>CONSTRAINTS</keywords>
+ <keywords>CONSTRUCTOR</keywords>
+ <keywords>CONTAINERS</keywords>
+ <keywords>CONTAINS</keywords>
+ <keywords>CONTENT</keywords>
+ <keywords>CONTEXT</keywords>
+ <keywords>CONTINUE</keywords>
+ <keywords>CONTROL</keywords>
+ <keywords>CONVERT</keywords>
+ <keywords>COORDINATOR</keywords>
+ <keywords>COPY</keywords>
+ <keywords>CORRELATOR</keywords>
+ <keywords>COUNT</keywords>
+ <keywords>COUNT_BIG</keywords>
+ <keywords>CPU</keywords>
+ <keywords>CPUTIME</keywords>
+ <keywords>CPUTIMEINSC</keywords>
+ <keywords>CREATE</keywords>
+ <keywords>CREATEIN</keywords>
+ <keywords>CREATETAB</keywords>
+ <keywords>CREATE_EXTERNAL_ROUTINE</keywords>
+ <keywords>CREATE_NOT_FENCED</keywords>
+ <keywords>CREATE_NOT_FENCED_ROUTINE</keywords>
+ <keywords>CROSS</keywords>
+ <keywords>CS</keywords>
+ <keywords>CUBE</keywords>
+ <keywords>CURRENT</keywords>
+ <keywords>CURRENT_DATE</keywords>
+ <keywords>CURRENT_PATH</keywords>
+ <keywords>CURRENT_SCHEMA</keywords>
+ <keywords>CURRENT_SERVER</keywords>
+ <keywords>CURRENT_TIME</keywords>
+ <keywords>CURRENT_TIMESTAMP</keywords>
+ <keywords>CURRENT_TIMEZONE</keywords>
+ <keywords>CURRENT_USER</keywords>
+ <keywords>CURRVAL</keywords>
+ <keywords>CURSOR</keywords>
+ <keywords>CURSORS</keywords>
+ <keywords>CYCLE</keywords>
+ <keywords>DATA</keywords>
+ <keywords>DATAACCESS</keywords>
+ <keywords>DATABASE</keywords>
+ <keywords>DATE</keywords>
+ <keywords>DAY</keywords>
+ <keywords>DAYS</keywords>
+ <keywords>DB</keywords>
+ <keywords>DB2DARI</keywords>
+ <keywords>DB2GENERAL</keywords>
+ <keywords>DB2GENRL</keywords>
+ <keywords>DB2LBACREADARRAY</keywords>
+ <keywords>DB2LBACREADSET</keywords>
+ <keywords>DB2LBACREADTREE</keywords>
+ <keywords>DB2LBACRULES</keywords>
+ <keywords>DB2LBACWRITEARRAY</keywords>
+ <keywords>DB2LBACWRITESET</keywords>
+ <keywords>DB2LBACWRITETREE</keywords>
+ <keywords>DB2SECURITYLABEL</keywords>
+ <keywords>DB2SPL</keywords>
+ <keywords>DB2SQL</keywords>
+ <keywords>DB2VALIDATE</keywords>
+ <keywords>DB2_RETURN_STATUS</keywords>
+ <keywords>DB2_TOKEN_STRING</keywords>
+ <keywords>DBADM</keywords>
+ <keywords>DBCLOB</keywords>
+ <keywords>DBINFO</keywords>
+ <keywords>DBMEMUSE</keywords>
+ <keywords>DBPARTITIONNUM</keywords>
+ <keywords>DBPARTITIONNUMS</keywords>
+ <keywords>DBPARTITIONS</keywords>
+ <keywords>DDL</keywords>
+ <keywords>DEACTIVATE</keywords>
+ <keywords>DEADLOCK</keywords>
+ <keywords>DEADLOCKS</keywords>
+ <keywords>DEBUGINFO</keywords>
+ <keywords>DEC</keywords>
+ <keywords>DECFLOAT</keywords>
+ <keywords>DECIMAL</keywords>
+ <keywords>DECLARE</keywords>
+ <keywords>DECOMPOSITION</keywords>
+ <keywords>DEFAULT</keywords>
+ <keywords>DEFAULTS</keywords>
+ <keywords>DEFER</keywords>
+ <keywords>DEFERRED</keywords>
+ <keywords>DEFINE</keywords>
+ <keywords>DEFINER</keywords>
+ <keywords>DEFINITION</keywords>
+ <keywords>DEGREE</keywords>
+ <keywords>DELETE</keywords>
+ <keywords>DEPENDENT</keywords>
+ <keywords>DESC</keywords>
+ <keywords>DESCRIPTOR</keywords>
+ <keywords>DETACH</keywords>
+ <keywords>DETAILED</keywords>
+ <keywords>DETAILS</keywords>
+ <keywords>DETERMINED</keywords>
+ <keywords>DETERMINISTIC</keywords>
+ <keywords>DEVICE</keywords>
+ <keywords>DIAGNOSTICS</keywords>
+ <keywords>DIMENSIONS</keywords>
+ <keywords>DIRTY</keywords>
+ <keywords>DISABLE</keywords>
+ <keywords>DISALLOW</keywords>
+ <keywords>DISPATCH</keywords>
+ <keywords>DISTINCT</keywords>
+ <keywords>DISTRIBUTE</keywords>
+ <keywords>DISTRIBUTED</keywords>
+ <keywords>DISTRIBUTION</keywords>
+ <keywords>DLCONN</keywords>
+ <keywords>DLLOCK</keywords>
+ <keywords>DML</keywords>
+ <keywords>DO</keywords>
+ <keywords>DOCUMENT</keywords>
+ <keywords>DOUBLE</keywords>
+ <keywords>DROP</keywords>
+ <keywords>DROPIN</keywords>
+ <keywords>DROPPED</keywords>
+ <keywords>DYNAMIC</keywords>
+ <keywords>EACH</keywords>
+ <keywords>ELEMENT</keywords>
+ <keywords>ELSE</keywords>
+ <keywords>ELSEIF</keywords>
+ <keywords>ELSIF</keywords>
+ <keywords>EMPTY</keywords>
+ <keywords>ENABLE</keywords>
+ <keywords>ENCRYPTION</keywords>
+ <keywords>END</keywords>
+ <keywords>ENDING</keywords>
+ <keywords>ENFORCED</keywords>
+ <keywords>ENFORCEMENT</keywords>
+ <keywords>ENVIRONMENT</keywords>
+ <keywords>ERASE</keywords>
+ <keywords>ERROR</keywords>
+ <keywords>ESCAPE</keywords>
+ <keywords>ESTIMATE</keywords>
+ <keywords>ESTIMATEDCOST</keywords>
+ <keywords>ESTIMATEDSQLCOST</keywords>
+ <keywords>EUR</keywords>
+ <keywords>EVALUATE</keywords>
+ <keywords>EVENT</keywords>
+ <keywords>EVERY</keywords>
+ <keywords>EXACT</keywords>
+ <keywords>EXCEEDED</keywords>
+ <keywords>EXCEPT</keywords>
+ <keywords>EXCEPTION</keywords>
+ <keywords>EXCEPTION_INIT</keywords>
+ <keywords>EXCLUDES</keywords>
+ <keywords>EXCLUDING</keywords>
+ <keywords>EXCLUSIVE</keywords>
+ <keywords>EXECNODE</keywords>
+ <keywords>EXECUTE</keywords>
+ <keywords>EXECUTETIME</keywords>
+ <keywords>EXECUTION</keywords>
+ <keywords>EXEMPTION</keywords>
+ <keywords>EXISTS</keywords>
+ <keywords>EXIT</keywords>
+ <keywords>EXPAND</keywords>
+ <keywords>EXPLAIN</keywords>
+ <keywords>EXPRESSION</keywords>
+ <keywords>EXTEND</keywords>
+ <keywords>EXTENDED</keywords>
+ <keywords>EXTENSION</keywords>
+ <keywords>EXTENTSIZE</keywords>
+ <keywords>EXTERNAL</keywords>
+ <keywords>EXTRACT</keywords>
+ <keywords>FAILURE</keywords>
+ <keywords>FALSE</keywords>
+ <keywords>FEDERATED</keywords>
+ <keywords>FEDERATED_TOOL</keywords>
+ <keywords>FENCED</keywords>
+ <keywords>FETCH</keywords>
+ <keywords>FILE</keywords>
+ <keywords>FILEREAD</keywords>
+ <keywords>FILEWRITE</keywords>
+ <keywords>FILTER</keywords>
+ <keywords>FINAL</keywords>
+ <keywords>FIRST</keywords>
+ <keywords>FLOAT</keywords>
+ <keywords>FLUSH</keywords>
+ <keywords>FOLLOWING</keywords>
+ <keywords>FOLLOWS</keywords>
+ <keywords>FOR</keywords>
+ <keywords>FORALL</keywords>
+ <keywords>FORCE</keywords>
+ <keywords>FOREIGN</keywords>
+ <keywords>FOUND</keywords>
+ <keywords>FREE</keywords>
+ <keywords>FREEPAGE</keywords>
+ <keywords>FROM</keywords>
+ <keywords>FULL</keywords>
+ <keywords>FUNCTION</keywords>
+ <keywords>G</keywords>
+ <keywords>GBPCACHE</keywords>
+ <keywords>GENERAL</keywords>
+ <keywords>GENERATE</keywords>
+ <keywords>GENERATED</keywords>
+ <keywords>GET</keywords>
+ <keywords>GLOBAL</keywords>
+ <keywords>GOTO</keywords>
+ <keywords>GRANT</keywords>
+ <keywords>GRAPHIC</keywords>
+ <keywords>GROUP</keywords>
+ <keywords>GROUPING</keywords>
+ <keywords>HANDLER</keywords>
+ <keywords>HARD</keywords>
+ <keywords>HASH</keywords>
+ <keywords>HASHED</keywords>
+ <keywords>HASHING</keywords>
+ <keywords>HAVING</keywords>
+ <keywords>HEX</keywords>
+ <keywords>HIDDEN</keywords>
+ <keywords>HIERARCHY</keywords>
+ <keywords>HIGH</keywords>
+ <keywords>HISTOGRAM</keywords>
+ <keywords>HISTOGRAMBIN</keywords>
+ <keywords>HISTORY</keywords>
+ <keywords>HOLD</keywords>
+ <keywords>HOUR</keywords>
+ <keywords>HOURS</keywords>
+ <keywords>HPJ</keywords>
+ <keywords>ID</keywords>
+ <keywords>IDENTITY</keywords>
+ <keywords>IF</keywords>
+ <keywords>IGNORE</keywords>
+ <keywords>IMMEDIATE</keywords>
+ <keywords>IMPLICIT</keywords>
+ <keywords>IMPLICITLY</keywords>
+ <keywords>IMPLICIT_SCHEMA</keywords>
+ <keywords>IN</keywords>
+ <keywords>INCLUDE</keywords>
+ <keywords>INCLUDES</keywords>
+ <keywords>INCLUDING</keywords>
+ <keywords>INCLUSIVE</keywords>
+ <keywords>INCREASESIZE</keywords>
+ <keywords>INCREMENT</keywords>
+ <keywords>INCREMENTAL</keywords>
+ <keywords>INDEX</keywords>
+ <keywords>INDEXES</keywords>
+ <keywords>INDICATOR</keywords>
+ <keywords>INDICES</keywords>
+ <keywords>INF</keywords>
+ <keywords>INFINITY</keywords>
+ <keywords>INFIX</keywords>
+ <keywords>INFO</keywords>
+ <keywords>INHERIT</keywords>
+ <keywords>INITIALLY</keywords>
+ <keywords>INITIALSIZE</keywords>
+ <keywords>INITIAL_INSTS</keywords>
+ <keywords>INITIAL_IOS</keywords>
+ <keywords>INLINE</keywords>
+ <keywords>INLINEFUNCTION</keywords>
+ <keywords>INLINETRIGGER</keywords>
+ <keywords>INNER</keywords>
+ <keywords>INOUT</keywords>
+ <keywords>INPUT</keywords>
+ <keywords>INSENSITIVE</keywords>
+ <keywords>INSERT</keywords>
+ <keywords>INSTANTIABLE</keywords>
+ <keywords>INSTEAD</keywords>
+ <keywords>INSTS_PER_ARGBYTE</keywords>
+ <keywords>INSTS_PER_INVOC</keywords>
+ <keywords>INT</keywords>
+ <keywords>INTEGER</keywords>
+ <keywords>INTEGRITY</keywords>
+ <keywords>INTERARRIVALTIME</keywords>
+ <keywords>INTERSECT</keywords>
+ <keywords>INTO</keywords>
+ <keywords>INVALID</keywords>
+ <keywords>INVALIDATION</keywords>
+ <keywords>IO</keywords>
+ <keywords>IOS_PER_ARGBYTE</keywords>
+ <keywords>IOS_PER_INVOC</keywords>
+ <keywords>IS</keywords>
+ <keywords>ISO</keywords>
+ <keywords>ISOLATION</keywords>
+ <keywords>ITERATE</keywords>
+ <keywords>JAVA</keywords>
+ <keywords>JIS</keywords>
+ <keywords>JOIN</keywords>
+ <keywords>K</keywords>
+ <keywords>KEEP</keywords>
+ <keywords>KEY</keywords>
+ <keywords>KEYS</keywords>
+ <keywords>L</keywords>
+ <keywords>LABEL</keywords>
+ <keywords>LANGUAGE</keywords>
+ <keywords>LARGE</keywords>
+ <keywords>LAST</keywords>
+ <keywords>LATERAL</keywords>
+ <keywords>LC_CTYPE</keywords>
+ <keywords>LC_MESSAGES</keywords>
+ <keywords>LC_TIME</keywords>
+ <keywords>LEADING</keywords>
+ <keywords>LEAVE</keywords>
+ <keywords>LEFT</keywords>
+ <keywords>LENGTH</keywords>
+ <keywords>LEVEL</keywords>
+ <keywords>LEVEL2</keywords>
+ <keywords>LIBRARY</keywords>
+ <keywords>LIBRARYADM</keywords>
+ <keywords>LIFETIME</keywords>
+ <keywords>LIKE</keywords>
+ <keywords>LIMIT</keywords>
+ <keywords>LIST</keywords>
+ <keywords>LOAD</keywords>
+ <keywords>LOCAL</keywords>
+ <keywords>LOCALE</keywords>
+ <keywords>LOCATION</keywords>
+ <keywords>LOCATOR</keywords>
+ <keywords>LOCATORS</keywords>
+ <keywords>LOCK</keywords>
+ <keywords>LOCKED</keywords>
+ <keywords>LOCKING</keywords>
+ <keywords>LOCKS</keywords>
+ <keywords>LOCKSIZE</keywords>
+ <keywords>LOG</keywords>
+ <keywords>LOGGED</keywords>
+ <keywords>LONG</keywords>
+ <keywords>LONGVAR</keywords>
+ <keywords>LOOP</keywords>
+ <keywords>LOW</keywords>
+ <keywords>LOWER</keywords>
+ <keywords>M</keywords>
+ <keywords>MAIN</keywords>
+ <keywords>MAINTAINED</keywords>
+ <keywords>MANAGED</keywords>
+ <keywords>MANUALSTART</keywords>
+ <keywords>MAP</keywords>
+ <keywords>MAPPING</keywords>
+ <keywords>MARK</keywords>
+ <keywords>MATCHED</keywords>
+ <keywords>MATCHING</keywords>
+ <keywords>MATERIALIZED</keywords>
+ <keywords>MAX</keywords>
+ <keywords>MAXFILES</keywords>
+ <keywords>MAXFILESIZE</keywords>
+ <keywords>MAXSIZE</keywords>
+ <keywords>MAXVALUE</keywords>
+ <keywords>MDC</keywords>
+ <keywords>MEDIUM</keywords>
+ <keywords>MERGE</keywords>
+ <keywords>MESSAGE_TEXT</keywords>
+ <keywords>METHOD</keywords>
+ <keywords>METHODS</keywords>
+ <keywords>METRICS</keywords>
+ <keywords>MICROSECOND</keywords>
+ <keywords>MICROSECONDS</keywords>
+ <keywords>MINPCTUSED</keywords>
+ <keywords>MINUS</keywords>
+ <keywords>MINUTE</keywords>
+ <keywords>MINUTES</keywords>
+ <keywords>MINVALUE</keywords>
+ <keywords>MISSING</keywords>
+ <keywords>MIXED</keywords>
+ <keywords>MODE</keywords>
+ <keywords>MODIFIES</keywords>
+ <keywords>MODULE</keywords>
+ <keywords>MONITOR</keywords>
+ <keywords>MONTH</keywords>
+ <keywords>MONTHS</keywords>
+ <keywords>MORE</keywords>
+ <keywords>MOVEMENT</keywords>
+ <keywords>NAME</keywords>
+ <keywords>NAMESPACE</keywords>
+ <keywords>NAN</keywords>
+ <keywords>NATURAL</keywords>
+ <keywords>NCHAR</keywords>
+ <keywords>NCLOB</keywords>
+ <keywords>NESTED</keywords>
+ <keywords>NETWORK</keywords>
+ <keywords>NEW</keywords>
+ <keywords>NEW_TABLE</keywords>
+ <keywords>NEXT</keywords>
+ <keywords>NEXTVAL</keywords>
+ <keywords>NICKNAME</keywords>
+ <keywords>NO</keywords>
+ <keywords>NOCACHE</keywords>
+ <keywords>NOCOPY</keywords>
+ <keywords>NOCYCLE</keywords>
+ <keywords>NODE</keywords>
+ <keywords>NODEGROUP</keywords>
+ <keywords>NODES</keywords>
+ <keywords>NOMAXVALUE</keywords>
+ <keywords>NOMINVALUE</keywords>
+ <keywords>NONBLOCKED</keywords>
+ <keywords>NONE</keywords>
+ <keywords>NOORDER</keywords>
+ <keywords>NORMAL</keywords>
+ <keywords>NOT</keywords>
+ <keywords>NULL</keywords>
+ <keywords>NULLS</keywords>
+ <keywords>NUM</keywords>
+ <keywords>NUMBER</keywords>
+ <keywords>NUMBLOCKPAGES</keywords>
+ <keywords>NUMERIC</keywords>
+ <keywords>NUM_EXECUTIONS</keywords>
+ <keywords>NUM_FREQVALUES</keywords>
+ <keywords>NUM_QUANTILES</keywords>
+ <keywords>NVARCHAR2</keywords>
+ <keywords>OBJECT</keywords>
+ <keywords>OBJMAINT</keywords>
+ <keywords>OCCURRENCE</keywords>
+ <keywords>OCTETS</keywords>
+ <keywords>OF</keywords>
+ <keywords>OFF</keywords>
+ <keywords>OLD</keywords>
+ <keywords>OLD_TABLE</keywords>
+ <keywords>OLE</keywords>
+ <keywords>OLEDB</keywords>
+ <keywords>ON</keywords>
+ <keywords>ONCE</keywords>
+ <keywords>ONLINE</keywords>
+ <keywords>ONLY</keywords>
+ <keywords>OPEN</keywords>
+ <keywords>OPTIMIZATION</keywords>
+ <keywords>OPTIMIZE</keywords>
+ <keywords>OPTION</keywords>
+ <keywords>OPTIONS</keywords>
+ <keywords>OPTPROFILE</keywords>
+ <keywords>OR</keywords>
+ <keywords>ORDER</keywords>
+ <keywords>ORDINALITY</keywords>
+ <keywords>ORGANIZE</keywords>
+ <keywords>OUT</keywords>
+ <keywords>OUTBOUND</keywords>
+ <keywords>OUTER</keywords>
+ <keywords>OVER</keywords>
+ <keywords>OVERFLOW</keywords>
+ <keywords>OVERHEAD</keywords>
+ <keywords>OVERRIDE</keywords>
+ <keywords>OVERRIDING</keywords>
+ <keywords>OWNERSHIP</keywords>
+ <keywords>P</keywords>
+ <keywords>PACKAGE</keywords>
+ <keywords>PAGE</keywords>
+ <keywords>PAGESIZE</keywords>
+ <keywords>PARALLEL</keywords>
+ <keywords>PARAMETER</keywords>
+ <keywords>PARAMETERS</keywords>
+ <keywords>PARENT</keywords>
+ <keywords>PART</keywords>
+ <keywords>PARTITION</keywords>
+ <keywords>PARTITIONED</keywords>
+ <keywords>PARTITIONING</keywords>
+ <keywords>PARTITIONINGS</keywords>
+ <keywords>PARTITIONS</keywords>
+ <keywords>PASSING</keywords>
+ <keywords>PASSTHRU</keywords>
+ <keywords>PASSWORD</keywords>
+ <keywords>PATH</keywords>
+ <keywords>PATROLLER</keywords>
+ <keywords>PCTDEACTIVATE</keywords>
+ <keywords>PCTFREE</keywords>
+ <keywords>PERCENT</keywords>
+ <keywords>PERCENT_ARGBYTES</keywords>
+ <keywords>PERFORM</keywords>
+ <keywords>PIECESIZE</keywords>
+ <keywords>PIPE</keywords>
+ <keywords>PLACING</keywords>
+ <keywords>PLAN</keywords>
+ <keywords>PLS_INTEGER</keywords>
+ <keywords>POLICY</keywords>
+ <keywords>POSITION</keywords>
+ <keywords>PRAGMA</keywords>
+ <keywords>PRECEDING</keywords>
+ <keywords>PRECISION</keywords>
+ <keywords>PREDICATES</keywords>
+ <keywords>PREFETCH</keywords>
+ <keywords>PREFETCHSIZE</keywords>
+ <keywords>PREPARE</keywords>
+ <keywords>PRESERVE</keywords>
+ <keywords>PREVENT</keywords>
+ <keywords>PREVIOUS</keywords>
+ <keywords>PREVVAL</keywords>
+ <keywords>PRIMARY</keywords>
+ <keywords>PRIOR</keywords>
+ <keywords>PRIORITY</keywords>
+ <keywords>PRIQTY</keywords>
+ <keywords>PRIVILEGES</keywords>
+ <keywords>PROCEDURE</keywords>
+ <keywords>PROFILE</keywords>
+ <keywords>PROGRAM</keywords>
+ <keywords>PROPAGATE</keywords>
+ <keywords>PROTOCOL</keywords>
+ <keywords>PRUNE</keywords>
+ <keywords>PUBLIC</keywords>
+ <keywords>PUBLISH</keywords>
+ <keywords>QSTATS</keywords>
+ <keywords>QUERY</keywords>
+ <keywords>QUERYNO</keywords>
+ <keywords>QUERYTAG</keywords>
+ <keywords>QUEUEDACTIVITIES</keywords>
+ <keywords>QUEUEDCONNECTIONS</keywords>
+ <keywords>QUEUETIME</keywords>
+ <keywords>QUIESCE_CONNECT</keywords>
+ <keywords>RAISE</keywords>
+ <keywords>RAISE_APPLICATION_ERROR</keywords>
+ <keywords>RANGE</keywords>
+ <keywords>RATE</keywords>
+ <keywords>RATIO</keywords>
+ <keywords>RAW</keywords>
+ <keywords>READ</keywords>
+ <keywords>READS</keywords>
+ <keywords>REAL</keywords>
+ <keywords>REBALANCE</keywords>
+ <keywords>RECOMMEND</keywords>
+ <keywords>RECORD</keywords>
+ <keywords>RECOVERY</keywords>
+ <keywords>RECREATE</keywords>
+ <keywords>REDIRECT</keywords>
+ <keywords>REDUCE</keywords>
+ <keywords>REF</keywords>
+ <keywords>REFERENCE</keywords>
+ <keywords>REFERENCES</keywords>
+ <keywords>REFERENCING</keywords>
+ <keywords>REFRESH</keywords>
+ <keywords>REGISTERS</keywords>
+ <keywords>REGULAR</keywords>
+ <keywords>REJECT</keywords>
+ <keywords>RELEASE</keywords>
+ <keywords>REMAP</keywords>
+ <keywords>REMOTE</keywords>
+ <keywords>REMOVE</keywords>
+ <keywords>RENAME</keywords>
+ <keywords>REOPT</keywords>
+ <keywords>REPEAT</keywords>
+ <keywords>REPEATABLE</keywords>
+ <keywords>REPLACE</keywords>
+ <keywords>REPLICATED</keywords>
+ <keywords>REPLICATION</keywords>
+ <keywords>REQUEST</keywords>
+ <keywords>REQUIRE</keywords>
+ <keywords>RESET</keywords>
+ <keywords>RESIDENT</keywords>
+ <keywords>RESIGNAL</keywords>
+ <keywords>RESIZE</keywords>
+ <keywords>RESOLVE</keywords>
+ <keywords>RESTART</keywords>
+ <keywords>RESTRICT</keywords>
+ <keywords>RESULT</keywords>
+ <keywords>RESULT_SET_LOCATOR</keywords>
+ <keywords>RETAIN</keywords>
+ <keywords>RETURN</keywords>
+ <keywords>RETURNING</keywords>
+ <keywords>RETURNS</keywords>
+ <keywords>RETURN_STATUS</keywords>
+ <keywords>REUSE</keywords>
+ <keywords>REVERSE</keywords>
+ <keywords>REVOKE</keywords>
+ <keywords>RID</keywords>
+ <keywords>RID_BIT</keywords>
+ <keywords>RIGHT</keywords>
+ <keywords>ROLE</keywords>
+ <keywords>ROLLBACK</keywords>
+ <keywords>ROLLOUT</keywords>
+ <keywords>ROLLUP</keywords>
+ <keywords>ROOT</keywords>
+ <keywords>ROUNDING</keywords>
+ <keywords>ROUND_CEILING</keywords>
+ <keywords>ROUND_DOWN</keywords>
+ <keywords>ROUND_FLOOR</keywords>
+ <keywords>ROUND_HALF_EVEN</keywords>
+ <keywords>ROUND_HALF_UP</keywords>
+ <keywords>ROUTINES</keywords>
+ <keywords>ROW</keywords>
+ <keywords>ROWS</keywords>
+ <keywords>ROW_COUNT</keywords>
+ <keywords>RR</keywords>
+ <keywords>RS</keywords>
+ <keywords>RULE</keywords>
+ <keywords>RUN</keywords>
+ <keywords>S</keywords>
+ <keywords>SAFE</keywords>
+ <keywords>SAMPLED</keywords>
+ <keywords>SAVEPOINT</keywords>
+ <keywords>SBCS</keywords>
+ <keywords>SCANS</keywords>
+ <keywords>SCHEMA</keywords>
+ <keywords>SCOPE</keywords>
+ <keywords>SCRATCHPAD</keywords>
+ <keywords>SCROLL</keywords>
+ <keywords>SCSTATS</keywords>
+ <keywords>SEARCH</keywords>
+ <keywords>SECADM</keywords>
+ <keywords>SECMAINT</keywords>
+ <keywords>SECOND</keywords>
+ <keywords>SECONDS</keywords>
+ <keywords>SECQTY</keywords>
+ <keywords>SECTION</keywords>
+ <keywords>SECURED</keywords>
+ <keywords>SECURITY</keywords>
+ <keywords>SELECT</keywords>
+ <keywords>SELECTION</keywords>
+ <keywords>SELECTIVITY</keywords>
+ <keywords>SELF</keywords>
+ <keywords>SENSITIVE</keywords>
+ <keywords>SEQUENCE</keywords>
+ <keywords>SERIALIZABLE</keywords>
+ <keywords>SERVER</keywords>
+ <keywords>SERVICE</keywords>
+ <keywords>SESSION</keywords>
+ <keywords>SESSION_USER</keywords>
+ <keywords>SET</keywords>
+ <keywords>SETS</keywords>
+ <keywords>SETSESSIONUSER</keywords>
+ <keywords>SETTING</keywords>
+ <keywords>SHARE</keywords>
+ <keywords>SHRLEVEL</keywords>
+ <keywords>SIBLINGS</keywords>
+ <keywords>SIGNAL</keywords>
+ <keywords>SIMPLE</keywords>
+ <keywords>SIZE</keywords>
+ <keywords>SKIP</keywords>
+ <keywords>SMALLINT</keywords>
+ <keywords>SNAN</keywords>
+ <keywords>SNAPSHOT</keywords>
+ <keywords>SOME</keywords>
+ <keywords>SOURCE</keywords>
+ <keywords>SPECIAL</keywords>
+ <keywords>SPECIFIC</keywords>
+ <keywords>SPECIFICATION</keywords>
+ <keywords>SPLIT</keywords>
+ <keywords>SQL</keywords>
+ <keywords>SQLADM</keywords>
+ <keywords>SQLCODE</keywords>
+ <keywords>SQLDATA</keywords>
+ <keywords>SQLERRM</keywords>
+ <keywords>SQLEXCEPTION</keywords>
+ <keywords>SQLID</keywords>
+ <keywords>SQLINTERNAL</keywords>
+ <keywords>SQLROWSREAD</keywords>
+ <keywords>SQLROWSREADINSC</keywords>
+ <keywords>SQLROWSRETURNED</keywords>
+ <keywords>SQLSTATE</keywords>
+ <keywords>SQLTEMPSPACE</keywords>
+ <keywords>SQLWARNING</keywords>
+ <keywords>SQL_CCFLAGS</keywords>
+ <keywords>SSA</keywords>
+ <keywords>STABILITY</keywords>
+ <keywords>STAGING</keywords>
+ <keywords>START</keywords>
+ <keywords>STARTING</keywords>
+ <keywords>STATE</keywords>
+ <keywords>STATEMENT</keywords>
+ <keywords>STATEMENTS</keywords>
+ <keywords>STATIC</keywords>
+ <keywords>STATISTICS</keywords>
+ <keywords>STATUS</keywords>
+ <keywords>STAY</keywords>
+ <keywords>STMT</keywords>
+ <keywords>STMTHIST</keywords>
+ <keywords>STMTVALS</keywords>
+ <keywords>STMT_EXEC_TIME</keywords>
+ <keywords>STOGROUP</keywords>
+ <keywords>STOP</keywords>
+ <keywords>STORAGE</keywords>
+ <keywords>STRIP</keywords>
+ <keywords>STRIPE</keywords>
+ <keywords>STYLE</keywords>
+ <keywords>SUB</keywords>
+ <keywords>SUBSECTION</keywords>
+ <keywords>SUCCESS</keywords>
+ <keywords>SUMMARY</keywords>
+ <keywords>SWITCH</keywords>
+ <keywords>SYMMETRIC</keywords>
+ <keywords>SYNONYM</keywords>
+ <keywords>SYSADM</keywords>
+ <keywords>SYSADMIN</keywords>
+ <keywords>SYSCTRL</keywords>
+ <keywords>SYSDATE</keywords>
+ <keywords>SYSMAINT</keywords>
+ <keywords>SYSMON</keywords>
+ <keywords>SYSPROC</keywords>
+ <keywords>SYSTEM</keywords>
+ <keywords>SYSTEM_USER</keywords>
+ <keywords>SYS_REFCURSOR</keywords>
+ <keywords>T</keywords>
+ <keywords>TABLE</keywords>
+ <keywords>TABLES</keywords>
+ <keywords>TABLESAMPLE</keywords>
+ <keywords>TABLESPACE</keywords>
+ <keywords>TABLESPACES</keywords>
+ <keywords>TARGET</keywords>
+ <keywords>TEMPLATE</keywords>
+ <keywords>TEMPORARY</keywords>
+ <keywords>THAN</keywords>
+ <keywords>THEN</keywords>
+ <keywords>THREADSAFE</keywords>
+ <keywords>THRESHOLD</keywords>
+ <keywords>THRESHOLDVIOLATIONS</keywords>
+ <keywords>THROUGH</keywords>
+ <keywords>TIME</keywords>
+ <keywords>TIMEOUT</keywords>
+ <keywords>TIMERONCOST</keywords>
+ <keywords>TIMESTAMP</keywords>
+ <keywords>TIMEZONE</keywords>
+ <keywords>TO</keywords>
+ <keywords>TOKEN</keywords>
+ <keywords>TOTALDBPARTITIONCONNECTIONS</keywords>
+ <keywords>TOTALSCPARTITIONCONNECTIONS</keywords>
+ <keywords>TRAILING</keywords>
+ <keywords>TRANSACTION</keywords>
+ <keywords>TRANSACTIONS</keywords>
+ <keywords>TRANSFER</keywords>
+ <keywords>TRANSFERRATE</keywords>
+ <keywords>TRANSFORM</keywords>
+ <keywords>TRANSFORMS</keywords>
+ <keywords>TRANSLATE</keywords>
+ <keywords>TREAT</keywords>
+ <keywords>TREE</keywords>
+ <keywords>TRIGGER</keywords>
+ <keywords>TRIGGERS</keywords>
+ <keywords>TRIM</keywords>
+ <keywords>TRUE</keywords>
+ <keywords>TRUNC</keywords>
+ <keywords>TRUNCATE</keywords>
+ <keywords>TRUSTED</keywords>
+ <keywords>TWOLEVEL</keywords>
+ <keywords>TYPE</keywords>
+ <keywords>TYPES</keywords>
+ <keywords>UESCAPE</keywords>
+ <keywords>UNBOUNDED</keywords>
+ <keywords>UNCHECKED</keywords>
+ <keywords>UNCOMMITTED</keywords>
+ <keywords>UNDER</keywords>
+ <keywords>UNDO</keywords>
+ <keywords>UNFORMATTED</keywords>
+ <keywords>UNICODE</keywords>
+ <keywords>UNION</keywords>
+ <keywords>UNIQUE</keywords>
+ <keywords>UNIT</keywords>
+ <keywords>UNITS</keywords>
+ <keywords>UNNEST</keywords>
+ <keywords>UNSAFE</keywords>
+ <keywords>UNTIL</keywords>
+ <keywords>UOWTOTALTIME</keywords>
+ <keywords>UPDATE</keywords>
+ <keywords>UPDATED_SINCE_BOUNDARY_TIME</keywords>
+ <keywords>UPON</keywords>
+ <keywords>UR</keywords>
+ <keywords>URI</keywords>
+ <keywords>USA</keywords>
+ <keywords>USAGE</keywords>
+ <keywords>USE</keywords>
+ <keywords>USER</keywords>
+ <keywords>USERID</keywords>
+ <keywords>USING</keywords>
+ <keywords>VALIDATE</keywords>
+ <keywords>VALIDATED</keywords>
+ <keywords>VALUE</keywords>
+ <keywords>VALUES</keywords>
+ <keywords>VARCHAR</keywords>
+ <keywords>VARCHAR2</keywords>
+ <keywords>VARGRAPHIC</keywords>
+ <keywords>VARIABLE</keywords>
+ <keywords>VARIANT</keywords>
+ <keywords>VARRAY</keywords>
+ <keywords>VARYING</keywords>
+ <keywords>VCAT</keywords>
+ <keywords>VERSION</keywords>
+ <keywords>VIEW</keywords>
+ <keywords>VIOLATIONS</keywords>
+ <keywords>VOLATILE</keywords>
+ <keywords>WAIT</keywords>
+ <keywords>WAITING</keywords>
+ <keywords>WATER</keywords>
+ <keywords>WCSTATS</keywords>
+ <keywords>WHEN</keywords>
+ <keywords>WHERE</keywords>
+ <keywords>WHILE</keywords>
+ <keywords>WHITESPACE</keywords>
+ <keywords>WITH</keywords>
+ <keywords>WITHIN</keywords>
+ <keywords>WITHOUT</keywords>
+ <keywords>WLMADM</keywords>
+ <keywords>WLSTATS</keywords>
+ <keywords>WORK</keywords>
+ <keywords>WORKLOAD</keywords>
+ <keywords>WRAPPER</keywords>
+ <keywords>WRITE</keywords>
+ <keywords>WRITEDOWN</keywords>
+ <keywords>WRITEUP</keywords>
+ <keywords>WRKSTNNAME</keywords>
+ <keywords>XACT</keywords>
+ <keywords>XML</keywords>
+ <keywords>XMLAGG</keywords>
+ <keywords>XMLATTRIBUTES</keywords>
+ <keywords>XMLBINARY</keywords>
+ <keywords>XMLCAST</keywords>
+ <keywords>XMLCOMMENT</keywords>
+ <keywords>XMLCONCAT</keywords>
+ <keywords>XMLDECLARATION</keywords>
+ <keywords>XMLDOCUMENT</keywords>
+ <keywords>XMLELEMENT</keywords>
+ <keywords>XMLEXISTS</keywords>
+ <keywords>XMLFOREST</keywords>
+ <keywords>XMLGROUP</keywords>
+ <keywords>XMLNAMESPACES</keywords>
+ <keywords>XMLPARSE</keywords>
+ <keywords>XMLPATTERN</keywords>
+ <keywords>XMLPI</keywords>
+ <keywords>XMLQUERY</keywords>
+ <keywords>XMLROW</keywords>
+ <keywords>XMLSCHEMA</keywords>
+ <keywords>XMLSERIALIZE</keywords>
+ <keywords>XMLTABLE</keywords>
+ <keywords>XMLTEXT</keywords>
+ <keywords>XMLVALIDATE</keywords>
+ <keywords>XQUERY</keywords>
+ <keywords>XSLTRANSFORM</keywords>
+ <keywords>XSROBJECT</keywords>
+ <keywords>YEAR</keywords>
+ <keywords>YEARS</keywords>
+ <keywords>YES</keywords>
+ <operators><</operators>
+ <operators>"</operators>
+ <operators>%</operators>
+ <operators>&</operators>
+ <operators>''''</operators>
+ <operators>(</operators>
+ <operators>)</operators>
+ <operators>*</operators>
+ <operators>+</operators>
+ <operators>,</operators>
+ <operators>-</operators>
+ <operators>.</operators>
+ <operators>/</operators>
+ <operators>:</operators>
+ <operators>;</operators>
+ <operators>=</operators>
+ <operators>?</operators>
+ <operators>[</operators>
+ <operators>]</operators>
+ <operators>_</operators>
+ <operators>'|'</operators>
+ <operators>,=</operators>
+ <operators><=</operators>
+ <operators>||</operators>
+ <operators>..</operators>
+ <operators>'-,'</operators>
+ <operators>!</operators>
+ <operators>~</operators>
+ <operators>:=</operators>
+ <operators>{</operators>
+ <operators>}</operators>
+ <operators>(+)</operators>
+ </SQLSyntaxDefinition>
+ <nicknameDefinition constraintSupported="true" indexSupported="true" maximumIdentifierLength="128"/>
+ <schemaDefinition maximumIdentifierLength="128"/>
+ <viewDefinition maximumIdentifierLength="128"/>
+ <privilegedElementDefinitions name="Database">
+ <privilegeDefinitions name="BINDADD"/>
+ <privilegeDefinitions name="CONNECT"/>
+ <privilegeDefinitions name="CREATETAB"/>
+ <privilegeDefinitions name="CREATE_EXTERNAL_ROUTINE"/>
+ <privilegeDefinitions name="CREATE_NOT_FENCED_ROUTINE"/>
+ <privilegeDefinitions name="IMPLICIT_SCHEMA"/>
+ <privilegeDefinitions name="DBADM"/>
+ <privilegeDefinitions name="LOAD"/>
+ <privilegeDefinitions name="QUIESCE_CONNECT"/>
+ <privilegeDefinitions name="SECADM"/>
+ <privilegeDefinitions name="ACCESSCTRL"/>
+ <privilegeDefinitions name="DATAACCESS"/>
+ <privilegeDefinitions name="EXPLAIN"/>
+ <privilegeDefinitions name="SQLADM"/>
+ <privilegeDefinitions name="WLMADM"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Schema">
+ <privilegeDefinitions name="ALTERIN"/>
+ <privilegeDefinitions name="CREATEIN"/>
+ <privilegeDefinitions name="DROPIN"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PersistentTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="TemporaryTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="ViewTable">
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Nickname">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions xmi:id="COLUMN_1" name="Column"/>
+ <privilegedElementDefinitions name="MaterializedQueryTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Routine">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Sequence">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="USAGE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Index">
+ <privilegeDefinitions name="CONTROL"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Tablespace">
+ <privilegeDefinitions name="USE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Package">
+ <privilegeDefinitions name="BIND"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Module">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PLSQLPackage">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="GlobalVariable">
+ <privilegeDefinitions name="READ"/>
+ <privilegeDefinitions name="WRITE"/>
+ </privilegedElementDefinitions>
+ <constructedDataTypeDefinition arrayDatatypeSupported="true" multisetDatatypeSupported="true" rowDatatypeSupported="true" referenceDatatypeSupported="true" cursorDatatypeSupported="true"/>
+</DBDefinition:DatabaseVendorDefinition>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.8/DB2 UDB_9.8.xmi b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.8/DB2 UDB_9.8.xmi
new file mode 100644
index 0000000..1e9a3c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition/runtime/vendors/DB2 UDB_9.8/DB2 UDB_9.8.xmi
@@ -0,0 +1,1404 @@
+<?xml version="1.0" encoding="ASCII"?>
+<DBDefinition:DatabaseVendorDefinition xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:DBDefinition="http:///org/eclipse/datatools/modelbase/dbdefinition/dbdefinition.ecore" vendor="DB2 UDB" version="V9.8" maximumIdentifierLength="8" viewTriggerSupported="true" maximumCommentLength="64" sequenceSupported="true" mQTSupported="true" aliasSupported="true" userDefinedTypeSupported="true" SQLStatementSupported="true" nicknameSupported="true" xmlSupported="true" packageSupported="true" roleSupported="true" groupSupported="true" userSupported="true" roleAuthorizationSupported="true" constructedDataTypeSupported="true" memberSupported="true" mQTIndexSupported="true">
+ <predefinedDataTypeDefinitions xmi:id="BIGINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="BIGINT" jdbcEnumType="-5" javaClassName="long">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BIGINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="BINARY_LARGE_OBJECT" jdbcEnumType="2004" javaClassName="java.sql.Blob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="127" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>GRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="16336" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_2" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARGRAPHIC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="1">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR</name>
+ <name>CHARACTER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="2147483647" primitiveType="CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CLOB</name>
+ <name>CHARACTER LARGE OBJECT</name>
+ <name>CHAR LARGE OBJECT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_1" lengthSupported="true" maximumLength="1073741823" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob" defaultLength="1048576" lengthUnit="DOUBLE_BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DBCLOB</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="32">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR</name>
+ <name>CHARACTER VARYING</name>
+ <name>CHAR VARYING</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_2" primitiveType="CHARACTER_VARYING" jdbcEnumType="-1" javaClassName="java.lang.String">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATE_1" keyConstraintSupported="true" primitiveType="DATE" jdbcEnumType="91" javaClassName="java.sql.Date">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT DATE</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATE</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DECIMAL_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECIMAL</name>
+ <name>DEC</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_2" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="34" primitiveType="FLOAT" jdbcEnumType="3" javaClassName="java.math.BigDecimal" defaultPrecision="34">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DECFLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DOUBLE_PRECISION_1" keyConstraintSupported="true" primitiveType="DOUBLE_PRECISION" jdbcEnumType="8" javaClassName="double">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DOUBLE</name>
+ <name>DOUBLE PRECISION</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="FLOAT_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="53" primitiveType="FLOAT" jdbcEnumType="6" javaClassName="double" defaultPrecision="53" cutoffPrecision="25">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>FLOAT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_1" keyConstraintSupported="true" identitySupported="true" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>INTEGER</name>
+ <name>INT</name>
+ <name>BINARY_INTEGER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="DATALINK_1" lengthSupported="true" maximumLength="200" primitiveType="DATALINK" jdbcEnumType="70" javaClassName="java.net.URL" defaultLength="200" lengthUnit="BYTE">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>DATALINK</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NUMERIC_1" scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" maximumPrecision="31" primitiveType="NUMERIC" jdbcEnumType="2" javaClassName="java.math.BigDecimal" defaultPrecision="5">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMERIC</name>
+ <name>NUM</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="REAL_1" keyConstraintSupported="true" primitiveType="REAL" jdbcEnumType="7" javaClassName="float">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>REAL</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="SMALLINT_1" keyConstraintSupported="true" identitySupported="true" primitiveType="SMALLINT" jdbcEnumType="5" javaClassName="short">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SMALLINT</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIME_1" keyConstraintSupported="true" primitiveType="TIME" jdbcEnumType="92" javaClassName="java.sql.Time">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIME</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIME</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="TIMESTAMP_1" precisionSupported="true" keyConstraintSupported="true" maximumPrecision="12" primitiveType="TIMESTAMP" jdbcEnumType="93" javaClassName="java.sql.Timestamp" defaultPrecision="6">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>CURRENT TIMESTAMP</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>TIMESTAMP</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="254" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="1" displayName="CHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CHAR FOR BIT DATA</name>
+ <name>CHARACTER FOR BIT DATA</name>
+ <name>CHAR () FOR BIT DATA</name>
+ <name>CHARACTER () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_1" lengthSupported="true" keyConstraintSupported="true" maximumLength="32672" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]" defaultLength="1" displayName="VARCHAR ({0}) FOR BIT DATA" displayNameSupported="true">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR FOR BIT DATA</name>
+ <name>CHARACTER VARYING FOR BIT DATA</name>
+ <name>CHAR VARYING FOR BIT DATA</name>
+ <name>VARCHAR () FOR BIT DATA</name>
+ <name>CHARACTER VARYING () FOR BIT DATA</name>
+ <name>CHAR VARYING () FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_2" primitiveType="BINARY_VARYING" jdbcEnumType="-4" javaClassName="byte[]">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG VARCHAR FOR BIT DATA</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_1" primitiveType="XML_TYPE" jdbcEnumType="1111" orderingSupported="false" groupingSupported="false">
+ <name>XML</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions scaleSupported="true" precisionSupported="true" keyConstraintSupported="true" identitySupported="true" defaultSupported="false" maximumPrecision="31" primitiveType="DECIMAL" jdbcEnumType="3" javaClassName="java.math.BigDecimal">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NUMBER</name>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions lengthSupported="true" keyConstraintSupported="true" defaultSupported="false" maximumLength="32672" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="4096">
+ <defaultValueTypes>SYSTEM_DEFAULT</defaultValueTypes>
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>SESSION_USER</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>VARCHAR2</name>
+ </predefinedDataTypeDefinitions>
+ <tableSpaceDefinition typeSupported="true" extentSizeSupported="true" prefetchSizeSupported="true" managedBySupported="true" pageSizeSupported="true" bufferPoolSupported="true" maximumIdentifierLength="18">
+ <tableSpaceType>REGULAR</tableSpaceType>
+ <tableSpaceType>TEMPORARY</tableSpaceType>
+ <tableSpaceType>LARGE</tableSpaceType>
+ </tableSpaceDefinition>
+ <storedProcedureDefinition nullInputActionSupported="true" determininsticSupported="true" returnedNullSupported="true" parameterStyleSupported="true" maximumIdentifierLength="128">
+ <predefinedDataTypeDefinitions xmi:id="BOOLEAN_1" primitiveType="BOOLEAN" jdbcEnumType="-7" javaClassName="boolean">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BOOLEAN</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_1" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_2" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>PLS_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_3" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>BINARY_INTEGER</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="XML_TYPE_2" primitiveType="XML_TYPE" jdbcEnumType="1111" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>XMLTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_2" lengthSupported="true" maximumLength="32767" primitiveType="BINARY" jdbcEnumType="-2" javaClassName="byte[]" defaultLength="32767">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="BINARY_VARYING_3" primitiveType="BINARY_VARYING" jdbcEnumType="-3" javaClassName="byte[]">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>LONG RAW</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_LARGE_OBJECT_2" primitiveType="NATIONAL_CHARACTER_LARGE_OBJECT" jdbcEnumType="2005" javaClassName="java.sql.Clob">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCLOB</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_2" lengthSupported="true" maximumLength="2000" primitiveType="NATIONAL_CHARACTER" jdbcEnumType="1" javaClassName="java.lang.String" defaultLength="127">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NCHAR</name>
+ <name>NATIONAL CHARACTER</name>
+ <name>NATIONAL CHAR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="NATIONAL_CHARACTER_VARYING_3" lengthSupported="true" maximumLength="4000" primitiveType="NATIONAL_CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="2048">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NVARCHAR2</name>
+ <name>NATIONAL CHARACTER VARYING</name>
+ <name>NATIONAL CHAR VARYING</name>
+ <name>NCHAR VARYING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_4" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>NATURAL</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CURSOR_2" primitiveType="DATALINK" jdbcEnumType="-100008">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SYS_REFCURSOR</name>
+ <name>REFCURSOR</name>
+ <name>REF CURSOR</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="CHARACTER_VARYING_3" lengthSupported="true" bitDataSupported="true" maximumLength="4000" primitiveType="CHARACTER_VARYING" jdbcEnumType="12" javaClassName="java.lang.String" defaultLength="1" displayName="STRING({0})" displayNameSupported="true" lengthSemanticSupported="true">
+ <defaultValueTypes>USER</defaultValueTypes>
+ <defaultValueTypes>UID</defaultValueTypes>
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>STRING</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_5" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>POSITIVE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <predefinedDataTypeDefinitions xmi:id="INTEGER_6" primitiveType="INTEGER" jdbcEnumType="4" javaClassName="int">
+ <defaultValueTypes>NULL</defaultValueTypes>
+ <name>SIGNTYPE</name>
+ <languageType>PLSQL</languageType>
+ </predefinedDataTypeDefinitions>
+ <languageType>SQL</languageType>
+ <languageType>JAVA</languageType>
+ <languageType>C</languageType>
+ <languageType>COBOL</languageType>
+ <languageType>ASSEMBLY</languageType>
+ <languageType>PLI</languageType>
+ <functionLanguageType>SQL</functionLanguageType>
+ <functionLanguageType>JAVA</functionLanguageType>
+ <functionLanguageType>C</functionLanguageType>
+ <functionLanguageType>OLE</functionLanguageType>
+ <procedureType>PROCEDURE</procedureType>
+ <procedureType>FUNCTION</procedureType>
+ </storedProcedureDefinition>
+ <triggerDefinition granularitySupported="true" referencesClauseSupported="true" perColumnUpdateTriggerSupported="true" rowTriggerReferenceSupported="true" tableTriggerReferenceSupported="true" maximumIdentifierLength="128"/>
+ <columnDefinition identitySupported="true" identityStartValueSupported="true" identityIncrementSupported="true" identityMinimumSupported="true" identityMaximumSupported="true" identityCycleSupported="true" maximumIdentifierLength="128"/>
+ <constraintDefinition informationalConstraintSupported="true" clusteredPrimaryKeySupported="true" clusteredUniqueConstraintSupported="true" maximumPrimaryKeyIdentifierLength="128" maximumForeignKeyIdentifierLength="128" maximumCheckConstraintIdentifierLength="128">
+ <parentUpdateDRIRuleType>RESTRICT</parentUpdateDRIRuleType>
+ <parentUpdateDRIRuleType>NO_ACTION</parentUpdateDRIRuleType>
+ <parentDeleteDRIRuleType>RESTRICT</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>CASCADE</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>SET_NULL</parentDeleteDRIRuleType>
+ <parentDeleteDRIRuleType>NO_ACTION</parentDeleteDRIRuleType>
+ <checkOption>NONE</checkOption>
+ <checkOption>LOCAL</checkOption>
+ <checkOption>CASCADE</checkOption>
+ </constraintDefinition>
+ <indexDefinition clusteringSupported="true" includedColumnsSupported="true" maximumIdentifierLength="128"/>
+ <tableDefinition maximumIdentifierLength="128"/>
+ <sequenceDefinition predefinedDataTypeDefinitions="BIGINT_1 INTEGER_1 SMALLINT_1 DECIMAL_1" defaultDataTypeDefinition="INTEGER_1" typeEnumerationSupported="true" cacheSupported="true" orderSupported="true" noMaximumValueString="NO MAXVALUE" noMinimumValueString="NO MINVALUE" noCacheString="NO CACHE" cacheDefaultValue="20"/>
+ <udtDefinition distinctTypeSupported="true" structuredTypeSupported="true" maximumIdentifierLength="128"/>
+ <queryDefinition/>
+ <SQLSyntaxDefinition>
+ <keywords>ACCESS</keywords>
+ <keywords>ACCESSCTRL</keywords>
+ <keywords>ACCORDING</keywords>
+ <keywords>ACCTNG</keywords>
+ <keywords>ACTION</keywords>
+ <keywords>ACTIVATE</keywords>
+ <keywords>ACTIVITIES</keywords>
+ <keywords>ACTIVITY</keywords>
+ <keywords>ACTIVITYSTMT</keywords>
+ <keywords>ACTIVITYTOTALTIME</keywords>
+ <keywords>ACTIVITYVALS</keywords>
+ <keywords>ADD</keywords>
+ <keywords>ADDRESS</keywords>
+ <keywords>ADMIN</keywords>
+ <keywords>ADMINISTRATION</keywords>
+ <keywords>AFTER</keywords>
+ <keywords>AGE</keywords>
+ <keywords>AGENT</keywords>
+ <keywords>AGGREGATE</keywords>
+ <keywords>AGGSQLTEMPSPACE</keywords>
+ <keywords>ALIAS</keywords>
+ <keywords>ALL</keywords>
+ <keywords>ALLOCATE</keywords>
+ <keywords>ALLOW</keywords>
+ <keywords>ALTER</keywords>
+ <keywords>ALTERIN</keywords>
+ <keywords>ALWAYS</keywords>
+ <keywords>ANCHOR</keywords>
+ <keywords>AND</keywords>
+ <keywords>ANY</keywords>
+ <keywords>APPEND</keywords>
+ <keywords>APPLICATION</keywords>
+ <keywords>APPLNAME</keywords>
+ <keywords>APPL_ID</keywords>
+ <keywords>APPL_NAME</keywords>
+ <keywords>APREUSE</keywords>
+ <keywords>ARRAY</keywords>
+ <keywords>ARRAY_AGG</keywords>
+ <keywords>ARRAY_EXISTS</keywords>
+ <keywords>AS</keywords>
+ <keywords>ASC</keywords>
+ <keywords>ASCII</keywords>
+ <keywords>ASENSITIVE</keywords>
+ <keywords>ASSOCIATE</keywords>
+ <keywords>AST</keywords>
+ <keywords>ASUTIME</keywords>
+ <keywords>ASYNCHRONY</keywords>
+ <keywords>AT</keywords>
+ <keywords>ATOMIC</keywords>
+ <keywords>ATTACH</keywords>
+ <keywords>ATTRIBUTE</keywords>
+ <keywords>ATTRIBUTES</keywords>
+ <keywords>AUDIT</keywords>
+ <keywords>AUTHENTICATION</keywords>
+ <keywords>AUTHID</keywords>
+ <keywords>AUTHORIZATION</keywords>
+ <keywords>AUTHORIZATIONS</keywords>
+ <keywords>AUTHORIZED</keywords>
+ <keywords>AUTH_ID</keywords>
+ <keywords>AUTOMATIC</keywords>
+ <keywords>AUTONOMOUS</keywords>
+ <keywords>AUTONOMOUS_TRANSACTION</keywords>
+ <keywords>AUTORESIZE</keywords>
+ <keywords>AUTOSTART</keywords>
+ <keywords>B</keywords>
+ <keywords>BASE</keywords>
+ <keywords>BASE64</keywords>
+ <keywords>BASED</keywords>
+ <keywords>BEFORE</keywords>
+ <keywords>BEGIN</keywords>
+ <keywords>BERNOULLI</keywords>
+ <keywords>BETWEEN</keywords>
+ <keywords>BIGINT</keywords>
+ <keywords>BIN</keywords>
+ <keywords>BINARY</keywords>
+ <keywords>BINARY_INTEGER</keywords>
+ <keywords>BIND</keywords>
+ <keywords>BINDADD</keywords>
+ <keywords>BIT</keywords>
+ <keywords>BLOB</keywords>
+ <keywords>BLOCKED</keywords>
+ <keywords>BLOCKINSERT</keywords>
+ <keywords>BLOCKSIZE</keywords>
+ <keywords>BODY</keywords>
+ <keywords>BOOLEAN</keywords>
+ <keywords>BOTH</keywords>
+ <keywords>BUFFER</keywords>
+ <keywords>BUFFERPOOL</keywords>
+ <keywords>BUFFERPOOLS</keywords>
+ <keywords>BUFFERSIZE</keywords>
+ <keywords>BUILD</keywords>
+ <keywords>BULK</keywords>
+ <keywords>BY</keywords>
+ <keywords>BYPASS</keywords>
+ <keywords>C</keywords>
+ <keywords>CACHE</keywords>
+ <keywords>CACHING</keywords>
+ <keywords>CALL</keywords>
+ <keywords>CALLED</keywords>
+ <keywords>CALLER</keywords>
+ <keywords>CAPTURE</keywords>
+ <keywords>CARDINALITIES</keywords>
+ <keywords>CARDINALITY</keywords>
+ <keywords>CASCADE</keywords>
+ <keywords>CASCADED</keywords>
+ <keywords>CASE</keywords>
+ <keywords>CAST</keywords>
+ <keywords>CATEGORIES</keywords>
+ <keywords>CCSID</keywords>
+ <keywords>CHANGE</keywords>
+ <keywords>CHANGED</keywords>
+ <keywords>CHANGES</keywords>
+ <keywords>CHAR</keywords>
+ <keywords>CHARACTER</keywords>
+ <keywords>CHECK</keywords>
+ <keywords>CHECKED</keywords>
+ <keywords>CHECKING</keywords>
+ <keywords>CLASS</keywords>
+ <keywords>CLIENT</keywords>
+ <keywords>CLIENT_ACCTNG</keywords>
+ <keywords>CLIENT_APPLNAME</keywords>
+ <keywords>CLIENT_USERID</keywords>
+ <keywords>CLIENT_WRKSTNNAME</keywords>
+ <keywords>CLOB</keywords>
+ <keywords>CLOSE</keywords>
+ <keywords>CLR</keywords>
+ <keywords>CLUSTER</keywords>
+ <keywords>COBOL</keywords>
+ <keywords>CODEUNITS16</keywords>
+ <keywords>CODEUNITS32</keywords>
+ <keywords>COLLECT</keywords>
+ <keywords>COLLID</keywords>
+ <keywords>COLUMN</keywords>
+ <keywords>COLUMNS</keywords>
+ <keywords>COMM</keywords>
+ <keywords>COMMENT</keywords>
+ <keywords>COMMIT</keywords>
+ <keywords>COMMITTED</keywords>
+ <keywords>COMPACT</keywords>
+ <keywords>COMPARE</keywords>
+ <keywords>COMPARISONS</keywords>
+ <keywords>COMPILATION</keywords>
+ <keywords>COMPILEDFUNCTION</keywords>
+ <keywords>COMPILEDTRIGGER</keywords>
+ <keywords>COMPONENT</keywords>
+ <keywords>COMPONENTS</keywords>
+ <keywords>COMPOUND</keywords>
+ <keywords>COMPRESS</keywords>
+ <keywords>COMPRESSION</keywords>
+ <keywords>CONCAT</keywords>
+ <keywords>CONCURRENTDBCOORDACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADACTIVITIES</keywords>
+ <keywords>CONCURRENTWORKLOADOCCURRENCES</keywords>
+ <keywords>CONDITION</keywords>
+ <keywords>CONN</keywords>
+ <keywords>CONNECT</keywords>
+ <keywords>CONNECTION</keywords>
+ <keywords>CONNECTIONIDLETIME</keywords>
+ <keywords>CONNECTIONS</keywords>
+ <keywords>CONNECTOPT</keywords>
+ <keywords>CONNECT_BY_ROOT</keywords>
+ <keywords>CONNHEADER</keywords>
+ <keywords>CONNMEMUSE</keywords>
+ <keywords>CONSERVATIVE</keywords>
+ <keywords>CONSTANT</keywords>
+ <keywords>CONSTRAINT</keywords>
+ <keywords>CONSTRAINTS</keywords>
+ <keywords>CONSTRUCTOR</keywords>
+ <keywords>CONTAINERS</keywords>
+ <keywords>CONTAINS</keywords>
+ <keywords>CONTENT</keywords>
+ <keywords>CONTEXT</keywords>
+ <keywords>CONTINUE</keywords>
+ <keywords>CONTROL</keywords>
+ <keywords>CONVERT</keywords>
+ <keywords>COORDINATOR</keywords>
+ <keywords>COPY</keywords>
+ <keywords>CORRELATOR</keywords>
+ <keywords>COUNT</keywords>
+ <keywords>COUNT_BIG</keywords>
+ <keywords>CPU</keywords>
+ <keywords>CPUTIME</keywords>
+ <keywords>CPUTIMEINSC</keywords>
+ <keywords>CREATE</keywords>
+ <keywords>CREATEIN</keywords>
+ <keywords>CREATETAB</keywords>
+ <keywords>CREATE_EXTERNAL_ROUTINE</keywords>
+ <keywords>CREATE_NOT_FENCED</keywords>
+ <keywords>CREATE_NOT_FENCED_ROUTINE</keywords>
+ <keywords>CROSS</keywords>
+ <keywords>CS</keywords>
+ <keywords>CUBE</keywords>
+ <keywords>CURRENT</keywords>
+ <keywords>CURRENT_DATE</keywords>
+ <keywords>CURRENT_PATH</keywords>
+ <keywords>CURRENT_SCHEMA</keywords>
+ <keywords>CURRENT_SERVER</keywords>
+ <keywords>CURRENT_TIME</keywords>
+ <keywords>CURRENT_TIMESTAMP</keywords>
+ <keywords>CURRENT_TIMEZONE</keywords>
+ <keywords>CURRENT_USER</keywords>
+ <keywords>CURRVAL</keywords>
+ <keywords>CURSOR</keywords>
+ <keywords>CURSORS</keywords>
+ <keywords>CYCLE</keywords>
+ <keywords>DATA</keywords>
+ <keywords>DATAACCESS</keywords>
+ <keywords>DATABASE</keywords>
+ <keywords>DATE</keywords>
+ <keywords>DAY</keywords>
+ <keywords>DAYS</keywords>
+ <keywords>DB</keywords>
+ <keywords>DB2DARI</keywords>
+ <keywords>DB2GENERAL</keywords>
+ <keywords>DB2GENRL</keywords>
+ <keywords>DB2LBACREADARRAY</keywords>
+ <keywords>DB2LBACREADSET</keywords>
+ <keywords>DB2LBACREADTREE</keywords>
+ <keywords>DB2LBACRULES</keywords>
+ <keywords>DB2LBACWRITEARRAY</keywords>
+ <keywords>DB2LBACWRITESET</keywords>
+ <keywords>DB2LBACWRITETREE</keywords>
+ <keywords>DB2SECURITYLABEL</keywords>
+ <keywords>DB2SPL</keywords>
+ <keywords>DB2SQL</keywords>
+ <keywords>DB2VALIDATE</keywords>
+ <keywords>DB2_RETURN_STATUS</keywords>
+ <keywords>DB2_TOKEN_STRING</keywords>
+ <keywords>DBADM</keywords>
+ <keywords>DBCLOB</keywords>
+ <keywords>DBINFO</keywords>
+ <keywords>DBMEMUSE</keywords>
+ <keywords>DBPARTITIONNUM</keywords>
+ <keywords>DBPARTITIONNUMS</keywords>
+ <keywords>DBPARTITIONS</keywords>
+ <keywords>DDL</keywords>
+ <keywords>DEACTIVATE</keywords>
+ <keywords>DEADLOCK</keywords>
+ <keywords>DEADLOCKS</keywords>
+ <keywords>DEBUGINFO</keywords>
+ <keywords>DEC</keywords>
+ <keywords>DECFLOAT</keywords>
+ <keywords>DECIMAL</keywords>
+ <keywords>DECLARE</keywords>
+ <keywords>DECOMPOSITION</keywords>
+ <keywords>DEFAULT</keywords>
+ <keywords>DEFAULTS</keywords>
+ <keywords>DEFER</keywords>
+ <keywords>DEFERRED</keywords>
+ <keywords>DEFINE</keywords>
+ <keywords>DEFINER</keywords>
+ <keywords>DEFINITION</keywords>
+ <keywords>DEGREE</keywords>
+ <keywords>DELETE</keywords>
+ <keywords>DEPENDENT</keywords>
+ <keywords>DESC</keywords>
+ <keywords>DESCRIPTOR</keywords>
+ <keywords>DETACH</keywords>
+ <keywords>DETAILED</keywords>
+ <keywords>DETAILS</keywords>
+ <keywords>DETERMINED</keywords>
+ <keywords>DETERMINISTIC</keywords>
+ <keywords>DEVICE</keywords>
+ <keywords>DIAGNOSTICS</keywords>
+ <keywords>DIMENSIONS</keywords>
+ <keywords>DIRTY</keywords>
+ <keywords>DISABLE</keywords>
+ <keywords>DISALLOW</keywords>
+ <keywords>DISPATCH</keywords>
+ <keywords>DISTINCT</keywords>
+ <keywords>DISTRIBUTE</keywords>
+ <keywords>DISTRIBUTED</keywords>
+ <keywords>DISTRIBUTION</keywords>
+ <keywords>DLCONN</keywords>
+ <keywords>DLLOCK</keywords>
+ <keywords>DML</keywords>
+ <keywords>DO</keywords>
+ <keywords>DOCUMENT</keywords>
+ <keywords>DOUBLE</keywords>
+ <keywords>DROP</keywords>
+ <keywords>DROPIN</keywords>
+ <keywords>DROPPED</keywords>
+ <keywords>DYNAMIC</keywords>
+ <keywords>EACH</keywords>
+ <keywords>ELEMENT</keywords>
+ <keywords>ELSE</keywords>
+ <keywords>ELSEIF</keywords>
+ <keywords>ELSIF</keywords>
+ <keywords>EMPTY</keywords>
+ <keywords>ENABLE</keywords>
+ <keywords>ENCRYPTION</keywords>
+ <keywords>END</keywords>
+ <keywords>ENDING</keywords>
+ <keywords>ENFORCED</keywords>
+ <keywords>ENFORCEMENT</keywords>
+ <keywords>ENVIRONMENT</keywords>
+ <keywords>ERASE</keywords>
+ <keywords>ERROR</keywords>
+ <keywords>ESCAPE</keywords>
+ <keywords>ESTIMATE</keywords>
+ <keywords>ESTIMATEDCOST</keywords>
+ <keywords>ESTIMATEDSQLCOST</keywords>
+ <keywords>EUR</keywords>
+ <keywords>EVALUATE</keywords>
+ <keywords>EVENT</keywords>
+ <keywords>EVERY</keywords>
+ <keywords>EXACT</keywords>
+ <keywords>EXCEEDED</keywords>
+ <keywords>EXCEPT</keywords>
+ <keywords>EXCEPTION</keywords>
+ <keywords>EXCEPTION_INIT</keywords>
+ <keywords>EXCLUDES</keywords>
+ <keywords>EXCLUDING</keywords>
+ <keywords>EXCLUSIVE</keywords>
+ <keywords>EXECNODE</keywords>
+ <keywords>EXECUTE</keywords>
+ <keywords>EXECUTETIME</keywords>
+ <keywords>EXECUTION</keywords>
+ <keywords>EXEMPTION</keywords>
+ <keywords>EXISTS</keywords>
+ <keywords>EXIT</keywords>
+ <keywords>EXPAND</keywords>
+ <keywords>EXPLAIN</keywords>
+ <keywords>EXPRESSION</keywords>
+ <keywords>EXTEND</keywords>
+ <keywords>EXTENDED</keywords>
+ <keywords>EXTENSION</keywords>
+ <keywords>EXTENTSIZE</keywords>
+ <keywords>EXTERNAL</keywords>
+ <keywords>EXTRACT</keywords>
+ <keywords>FAILURE</keywords>
+ <keywords>FALSE</keywords>
+ <keywords>FEDERATED</keywords>
+ <keywords>FEDERATED_TOOL</keywords>
+ <keywords>FENCED</keywords>
+ <keywords>FETCH</keywords>
+ <keywords>FILE</keywords>
+ <keywords>FILEREAD</keywords>
+ <keywords>FILEWRITE</keywords>
+ <keywords>FILTER</keywords>
+ <keywords>FINAL</keywords>
+ <keywords>FIRST</keywords>
+ <keywords>FLOAT</keywords>
+ <keywords>FLUSH</keywords>
+ <keywords>FOLLOWING</keywords>
+ <keywords>FOLLOWS</keywords>
+ <keywords>FOR</keywords>
+ <keywords>FORALL</keywords>
+ <keywords>FORCE</keywords>
+ <keywords>FOREIGN</keywords>
+ <keywords>FOUND</keywords>
+ <keywords>FREE</keywords>
+ <keywords>FREEPAGE</keywords>
+ <keywords>FROM</keywords>
+ <keywords>FULL</keywords>
+ <keywords>FUNCTION</keywords>
+ <keywords>G</keywords>
+ <keywords>GBPCACHE</keywords>
+ <keywords>GENERAL</keywords>
+ <keywords>GENERATE</keywords>
+ <keywords>GENERATED</keywords>
+ <keywords>GET</keywords>
+ <keywords>GLOBAL</keywords>
+ <keywords>GOTO</keywords>
+ <keywords>GRANT</keywords>
+ <keywords>GRAPHIC</keywords>
+ <keywords>GROUP</keywords>
+ <keywords>GROUPING</keywords>
+ <keywords>HANDLER</keywords>
+ <keywords>HARD</keywords>
+ <keywords>HASH</keywords>
+ <keywords>HASHED</keywords>
+ <keywords>HASHING</keywords>
+ <keywords>HAVING</keywords>
+ <keywords>HEX</keywords>
+ <keywords>HIDDEN</keywords>
+ <keywords>HIERARCHY</keywords>
+ <keywords>HIGH</keywords>
+ <keywords>HISTOGRAM</keywords>
+ <keywords>HISTOGRAMBIN</keywords>
+ <keywords>HISTORY</keywords>
+ <keywords>HOLD</keywords>
+ <keywords>HOUR</keywords>
+ <keywords>HOURS</keywords>
+ <keywords>HPJ</keywords>
+ <keywords>ID</keywords>
+ <keywords>IDENTITY</keywords>
+ <keywords>IF</keywords>
+ <keywords>IGNORE</keywords>
+ <keywords>IMMEDIATE</keywords>
+ <keywords>IMPLICIT</keywords>
+ <keywords>IMPLICITLY</keywords>
+ <keywords>IMPLICIT_SCHEMA</keywords>
+ <keywords>IN</keywords>
+ <keywords>INCLUDE</keywords>
+ <keywords>INCLUDES</keywords>
+ <keywords>INCLUDING</keywords>
+ <keywords>INCLUSIVE</keywords>
+ <keywords>INCREASESIZE</keywords>
+ <keywords>INCREMENT</keywords>
+ <keywords>INCREMENTAL</keywords>
+ <keywords>INDEX</keywords>
+ <keywords>INDEXES</keywords>
+ <keywords>INDICATOR</keywords>
+ <keywords>INDICES</keywords>
+ <keywords>INF</keywords>
+ <keywords>INFINITY</keywords>
+ <keywords>INFIX</keywords>
+ <keywords>INFO</keywords>
+ <keywords>INHERIT</keywords>
+ <keywords>INITIALLY</keywords>
+ <keywords>INITIALSIZE</keywords>
+ <keywords>INITIAL_INSTS</keywords>
+ <keywords>INITIAL_IOS</keywords>
+ <keywords>INLINE</keywords>
+ <keywords>INLINEFUNCTION</keywords>
+ <keywords>INLINETRIGGER</keywords>
+ <keywords>INNER</keywords>
+ <keywords>INOUT</keywords>
+ <keywords>INPUT</keywords>
+ <keywords>INSENSITIVE</keywords>
+ <keywords>INSERT</keywords>
+ <keywords>INSTANTIABLE</keywords>
+ <keywords>INSTEAD</keywords>
+ <keywords>INSTS_PER_ARGBYTE</keywords>
+ <keywords>INSTS_PER_INVOC</keywords>
+ <keywords>INT</keywords>
+ <keywords>INTEGER</keywords>
+ <keywords>INTEGRITY</keywords>
+ <keywords>INTERARRIVALTIME</keywords>
+ <keywords>INTERSECT</keywords>
+ <keywords>INTO</keywords>
+ <keywords>INVALID</keywords>
+ <keywords>INVALIDATION</keywords>
+ <keywords>IO</keywords>
+ <keywords>IOS_PER_ARGBYTE</keywords>
+ <keywords>IOS_PER_INVOC</keywords>
+ <keywords>IS</keywords>
+ <keywords>ISO</keywords>
+ <keywords>ISOLATION</keywords>
+ <keywords>ITERATE</keywords>
+ <keywords>JAVA</keywords>
+ <keywords>JIS</keywords>
+ <keywords>JOIN</keywords>
+ <keywords>K</keywords>
+ <keywords>KEEP</keywords>
+ <keywords>KEY</keywords>
+ <keywords>KEYS</keywords>
+ <keywords>L</keywords>
+ <keywords>LABEL</keywords>
+ <keywords>LANGUAGE</keywords>
+ <keywords>LARGE</keywords>
+ <keywords>LAST</keywords>
+ <keywords>LATERAL</keywords>
+ <keywords>LC_CTYPE</keywords>
+ <keywords>LC_MESSAGES</keywords>
+ <keywords>LC_TIME</keywords>
+ <keywords>LEADING</keywords>
+ <keywords>LEAVE</keywords>
+ <keywords>LEFT</keywords>
+ <keywords>LENGTH</keywords>
+ <keywords>LEVEL</keywords>
+ <keywords>LEVEL2</keywords>
+ <keywords>LIBRARY</keywords>
+ <keywords>LIBRARYADM</keywords>
+ <keywords>LIFETIME</keywords>
+ <keywords>LIKE</keywords>
+ <keywords>LIMIT</keywords>
+ <keywords>LIST</keywords>
+ <keywords>LOAD</keywords>
+ <keywords>LOCAL</keywords>
+ <keywords>LOCALE</keywords>
+ <keywords>LOCATION</keywords>
+ <keywords>LOCATOR</keywords>
+ <keywords>LOCATORS</keywords>
+ <keywords>LOCK</keywords>
+ <keywords>LOCKED</keywords>
+ <keywords>LOCKING</keywords>
+ <keywords>LOCKS</keywords>
+ <keywords>LOCKSIZE</keywords>
+ <keywords>LOG</keywords>
+ <keywords>LOGGED</keywords>
+ <keywords>LONG</keywords>
+ <keywords>LONGVAR</keywords>
+ <keywords>LOOP</keywords>
+ <keywords>LOW</keywords>
+ <keywords>LOWER</keywords>
+ <keywords>M</keywords>
+ <keywords>MAIN</keywords>
+ <keywords>MAINTAINED</keywords>
+ <keywords>MANAGED</keywords>
+ <keywords>MANUALSTART</keywords>
+ <keywords>MAP</keywords>
+ <keywords>MAPPING</keywords>
+ <keywords>MARK</keywords>
+ <keywords>MATCHED</keywords>
+ <keywords>MATCHING</keywords>
+ <keywords>MATERIALIZED</keywords>
+ <keywords>MAX</keywords>
+ <keywords>MAXFILES</keywords>
+ <keywords>MAXFILESIZE</keywords>
+ <keywords>MAXSIZE</keywords>
+ <keywords>MAXVALUE</keywords>
+ <keywords>MDC</keywords>
+ <keywords>MEDIUM</keywords>
+ <keywords>MEMBER</keywords>
+ <keywords>MEMBERS</keywords>
+ <keywords>MERGE</keywords>
+ <keywords>MESSAGE_TEXT</keywords>
+ <keywords>METHOD</keywords>
+ <keywords>METHODS</keywords>
+ <keywords>METRICS</keywords>
+ <keywords>MICROSECOND</keywords>
+ <keywords>MICROSECONDS</keywords>
+ <keywords>MINPCTUSED</keywords>
+ <keywords>MINUS</keywords>
+ <keywords>MINUTE</keywords>
+ <keywords>MINUTES</keywords>
+ <keywords>MINVALUE</keywords>
+ <keywords>MISSING</keywords>
+ <keywords>MIXED</keywords>
+ <keywords>MODE</keywords>
+ <keywords>MODIFIES</keywords>
+ <keywords>MODULE</keywords>
+ <keywords>MONITOR</keywords>
+ <keywords>MONTH</keywords>
+ <keywords>MONTHS</keywords>
+ <keywords>MORE</keywords>
+ <keywords>MOVEMENT</keywords>
+ <keywords>NAME</keywords>
+ <keywords>NAMESPACE</keywords>
+ <keywords>NAN</keywords>
+ <keywords>NATURAL</keywords>
+ <keywords>NCHAR</keywords>
+ <keywords>NCLOB</keywords>
+ <keywords>NESTED</keywords>
+ <keywords>NETWORK</keywords>
+ <keywords>NEW</keywords>
+ <keywords>NEW_TABLE</keywords>
+ <keywords>NEXT</keywords>
+ <keywords>NEXTVAL</keywords>
+ <keywords>NICKNAME</keywords>
+ <keywords>NO</keywords>
+ <keywords>NOCACHE</keywords>
+ <keywords>NOCOPY</keywords>
+ <keywords>NOCYCLE</keywords>
+ <keywords>NODE</keywords>
+ <keywords>NODEGROUP</keywords>
+ <keywords>NODES</keywords>
+ <keywords>NOMAXVALUE</keywords>
+ <keywords>NOMINVALUE</keywords>
+ <keywords>NONBLOCKED</keywords>
+ <keywords>NONE</keywords>
+ <keywords>NOORDER</keywords>
+ <keywords>NORMAL</keywords>
+ <keywords>NOT</keywords>
+ <keywords>NULL</keywords>
+ <keywords>NULLS</keywords>
+ <keywords>NUM</keywords>
+ <keywords>NUMBER</keywords>
+ <keywords>NUMBLOCKPAGES</keywords>
+ <keywords>NUMERIC</keywords>
+ <keywords>NUM_EXECUTIONS</keywords>
+ <keywords>NUM_FREQVALUES</keywords>
+ <keywords>NUM_QUANTILES</keywords>
+ <keywords>NVARCHAR2</keywords>
+ <keywords>OBJECT</keywords>
+ <keywords>OBJMAINT</keywords>
+ <keywords>OCCURRENCE</keywords>
+ <keywords>OCTETS</keywords>
+ <keywords>OF</keywords>
+ <keywords>OFF</keywords>
+ <keywords>OLD</keywords>
+ <keywords>OLD_TABLE</keywords>
+ <keywords>OLE</keywords>
+ <keywords>OLEDB</keywords>
+ <keywords>ON</keywords>
+ <keywords>ONCE</keywords>
+ <keywords>ONLINE</keywords>
+ <keywords>ONLY</keywords>
+ <keywords>OPEN</keywords>
+ <keywords>OPTIMIZATION</keywords>
+ <keywords>OPTIMIZE</keywords>
+ <keywords>OPTION</keywords>
+ <keywords>OPTIONS</keywords>
+ <keywords>OPTPROFILE</keywords>
+ <keywords>OR</keywords>
+ <keywords>ORDER</keywords>
+ <keywords>ORDINALITY</keywords>
+ <keywords>ORGANIZE</keywords>
+ <keywords>OUT</keywords>
+ <keywords>OUTBOUND</keywords>
+ <keywords>OUTER</keywords>
+ <keywords>OVER</keywords>
+ <keywords>OVERFLOW</keywords>
+ <keywords>OVERHEAD</keywords>
+ <keywords>OVERRIDE</keywords>
+ <keywords>OVERRIDING</keywords>
+ <keywords>OWNERSHIP</keywords>
+ <keywords>P</keywords>
+ <keywords>PACKAGE</keywords>
+ <keywords>PAGE</keywords>
+ <keywords>PAGESIZE</keywords>
+ <keywords>PARALLEL</keywords>
+ <keywords>PARAMETER</keywords>
+ <keywords>PARAMETERS</keywords>
+ <keywords>PARENT</keywords>
+ <keywords>PART</keywords>
+ <keywords>PARTITION</keywords>
+ <keywords>PARTITIONED</keywords>
+ <keywords>PARTITIONING</keywords>
+ <keywords>PARTITIONINGS</keywords>
+ <keywords>PARTITIONS</keywords>
+ <keywords>PASSING</keywords>
+ <keywords>PASSTHRU</keywords>
+ <keywords>PASSWORD</keywords>
+ <keywords>PATH</keywords>
+ <keywords>PATROLLER</keywords>
+ <keywords>PCTDEACTIVATE</keywords>
+ <keywords>PCTFREE</keywords>
+ <keywords>PERCENT</keywords>
+ <keywords>PERCENT_ARGBYTES</keywords>
+ <keywords>PERFORM</keywords>
+ <keywords>PIECESIZE</keywords>
+ <keywords>PIPE</keywords>
+ <keywords>PLACING</keywords>
+ <keywords>PLAN</keywords>
+ <keywords>PLS_INTEGER</keywords>
+ <keywords>POLICY</keywords>
+ <keywords>POSITION</keywords>
+ <keywords>PRAGMA</keywords>
+ <keywords>PRECEDING</keywords>
+ <keywords>PRECISION</keywords>
+ <keywords>PREDICATES</keywords>
+ <keywords>PREFETCH</keywords>
+ <keywords>PREFETCHSIZE</keywords>
+ <keywords>PREPARE</keywords>
+ <keywords>PRESERVE</keywords>
+ <keywords>PREVENT</keywords>
+ <keywords>PREVIOUS</keywords>
+ <keywords>PREVVAL</keywords>
+ <keywords>PRIMARY</keywords>
+ <keywords>PRIOR</keywords>
+ <keywords>PRIORITY</keywords>
+ <keywords>PRIQTY</keywords>
+ <keywords>PRIVILEGES</keywords>
+ <keywords>PROCEDURE</keywords>
+ <keywords>PROFILE</keywords>
+ <keywords>PROGRAM</keywords>
+ <keywords>PROPAGATE</keywords>
+ <keywords>PROTOCOL</keywords>
+ <keywords>PRUNE</keywords>
+ <keywords>PUBLIC</keywords>
+ <keywords>PUBLISH</keywords>
+ <keywords>QSTATS</keywords>
+ <keywords>QUERY</keywords>
+ <keywords>QUERYNO</keywords>
+ <keywords>QUERYTAG</keywords>
+ <keywords>QUEUEDACTIVITIES</keywords>
+ <keywords>QUEUEDCONNECTIONS</keywords>
+ <keywords>QUEUETIME</keywords>
+ <keywords>QUIESCE_CONNECT</keywords>
+ <keywords>RAISE</keywords>
+ <keywords>RAISE_APPLICATION_ERROR</keywords>
+ <keywords>RANGE</keywords>
+ <keywords>RATE</keywords>
+ <keywords>RATIO</keywords>
+ <keywords>RAW</keywords>
+ <keywords>READ</keywords>
+ <keywords>READS</keywords>
+ <keywords>REAL</keywords>
+ <keywords>REBALANCE</keywords>
+ <keywords>RECOMMEND</keywords>
+ <keywords>RECORD</keywords>
+ <keywords>RECOVERY</keywords>
+ <keywords>RECREATE</keywords>
+ <keywords>REDIRECT</keywords>
+ <keywords>REDUCE</keywords>
+ <keywords>REF</keywords>
+ <keywords>REFERENCE</keywords>
+ <keywords>REFERENCES</keywords>
+ <keywords>REFERENCING</keywords>
+ <keywords>REFRESH</keywords>
+ <keywords>REGISTERS</keywords>
+ <keywords>REGULAR</keywords>
+ <keywords>REJECT</keywords>
+ <keywords>RELEASE</keywords>
+ <keywords>REMAP</keywords>
+ <keywords>REMOTE</keywords>
+ <keywords>REMOVE</keywords>
+ <keywords>RENAME</keywords>
+ <keywords>REOPT</keywords>
+ <keywords>REPEAT</keywords>
+ <keywords>REPEATABLE</keywords>
+ <keywords>REPLACE</keywords>
+ <keywords>REPLICATED</keywords>
+ <keywords>REPLICATION</keywords>
+ <keywords>REQUEST</keywords>
+ <keywords>REQUIRE</keywords>
+ <keywords>RESET</keywords>
+ <keywords>RESIDENT</keywords>
+ <keywords>RESIGNAL</keywords>
+ <keywords>RESIZE</keywords>
+ <keywords>RESOLVE</keywords>
+ <keywords>RESTART</keywords>
+ <keywords>RESTRICT</keywords>
+ <keywords>RESULT</keywords>
+ <keywords>RESULT_SET_LOCATOR</keywords>
+ <keywords>RETAIN</keywords>
+ <keywords>RETURN</keywords>
+ <keywords>RETURNING</keywords>
+ <keywords>RETURNS</keywords>
+ <keywords>RETURN_STATUS</keywords>
+ <keywords>REUSE</keywords>
+ <keywords>REVERSE</keywords>
+ <keywords>REVOKE</keywords>
+ <keywords>RID</keywords>
+ <keywords>RID_BIT</keywords>
+ <keywords>RIGHT</keywords>
+ <keywords>ROLE</keywords>
+ <keywords>ROLLBACK</keywords>
+ <keywords>ROLLOUT</keywords>
+ <keywords>ROLLUP</keywords>
+ <keywords>ROOT</keywords>
+ <keywords>ROUNDING</keywords>
+ <keywords>ROUND_CEILING</keywords>
+ <keywords>ROUND_DOWN</keywords>
+ <keywords>ROUND_FLOOR</keywords>
+ <keywords>ROUND_HALF_EVEN</keywords>
+ <keywords>ROUND_HALF_UP</keywords>
+ <keywords>ROUTINES</keywords>
+ <keywords>ROW</keywords>
+ <keywords>ROWS</keywords>
+ <keywords>ROW_COUNT</keywords>
+ <keywords>RR</keywords>
+ <keywords>RS</keywords>
+ <keywords>RULE</keywords>
+ <keywords>RUN</keywords>
+ <keywords>S</keywords>
+ <keywords>SAFE</keywords>
+ <keywords>SAMPLED</keywords>
+ <keywords>SAVEPOINT</keywords>
+ <keywords>SBCS</keywords>
+ <keywords>SCANS</keywords>
+ <keywords>SCHEMA</keywords>
+ <keywords>SCOPE</keywords>
+ <keywords>SCRATCHPAD</keywords>
+ <keywords>SCROLL</keywords>
+ <keywords>SCSTATS</keywords>
+ <keywords>SEARCH</keywords>
+ <keywords>SECADM</keywords>
+ <keywords>SECMAINT</keywords>
+ <keywords>SECOND</keywords>
+ <keywords>SECONDS</keywords>
+ <keywords>SECQTY</keywords>
+ <keywords>SECTION</keywords>
+ <keywords>SECURED</keywords>
+ <keywords>SECURITY</keywords>
+ <keywords>SELECT</keywords>
+ <keywords>SELECTION</keywords>
+ <keywords>SELECTIVITY</keywords>
+ <keywords>SELF</keywords>
+ <keywords>SENSITIVE</keywords>
+ <keywords>SEQUENCE</keywords>
+ <keywords>SERIALIZABLE</keywords>
+ <keywords>SERVER</keywords>
+ <keywords>SERVICE</keywords>
+ <keywords>SESSION</keywords>
+ <keywords>SESSION_USER</keywords>
+ <keywords>SET</keywords>
+ <keywords>SETS</keywords>
+ <keywords>SETSESSIONUSER</keywords>
+ <keywords>SETTING</keywords>
+ <keywords>SHARE</keywords>
+ <keywords>SHRLEVEL</keywords>
+ <keywords>SIBLINGS</keywords>
+ <keywords>SIGNAL</keywords>
+ <keywords>SIMPLE</keywords>
+ <keywords>SIZE</keywords>
+ <keywords>SKIP</keywords>
+ <keywords>SMALLINT</keywords>
+ <keywords>SNAN</keywords>
+ <keywords>SNAPSHOT</keywords>
+ <keywords>SOME</keywords>
+ <keywords>SOURCE</keywords>
+ <keywords>SPECIAL</keywords>
+ <keywords>SPECIFIC</keywords>
+ <keywords>SPECIFICATION</keywords>
+ <keywords>SPLIT</keywords>
+ <keywords>SQL</keywords>
+ <keywords>SQLADM</keywords>
+ <keywords>SQLCODE</keywords>
+ <keywords>SQLDATA</keywords>
+ <keywords>SQLERRM</keywords>
+ <keywords>SQLEXCEPTION</keywords>
+ <keywords>SQLID</keywords>
+ <keywords>SQLINTERNAL</keywords>
+ <keywords>SQLROWSREAD</keywords>
+ <keywords>SQLROWSREADINSC</keywords>
+ <keywords>SQLROWSRETURNED</keywords>
+ <keywords>SQLSTATE</keywords>
+ <keywords>SQLTEMPSPACE</keywords>
+ <keywords>SQLWARNING</keywords>
+ <keywords>SQL_CCFLAGS</keywords>
+ <keywords>SSA</keywords>
+ <keywords>STABILITY</keywords>
+ <keywords>STAGING</keywords>
+ <keywords>START</keywords>
+ <keywords>STARTING</keywords>
+ <keywords>STATE</keywords>
+ <keywords>STATEMENT</keywords>
+ <keywords>STATEMENTS</keywords>
+ <keywords>STATIC</keywords>
+ <keywords>STATISTICS</keywords>
+ <keywords>STATUS</keywords>
+ <keywords>STAY</keywords>
+ <keywords>STMT</keywords>
+ <keywords>STMTHIST</keywords>
+ <keywords>STMTVALS</keywords>
+ <keywords>STMT_EXEC_TIME</keywords>
+ <keywords>STOGROUP</keywords>
+ <keywords>STOP</keywords>
+ <keywords>STORAGE</keywords>
+ <keywords>STRIP</keywords>
+ <keywords>STRIPE</keywords>
+ <keywords>STYLE</keywords>
+ <keywords>SUB</keywords>
+ <keywords>SUBSECTION</keywords>
+ <keywords>SUCCESS</keywords>
+ <keywords>SUMMARY</keywords>
+ <keywords>SWITCH</keywords>
+ <keywords>SYMMETRIC</keywords>
+ <keywords>SYNONYM</keywords>
+ <keywords>SYSADM</keywords>
+ <keywords>SYSADMIN</keywords>
+ <keywords>SYSCTRL</keywords>
+ <keywords>SYSDATE</keywords>
+ <keywords>SYSMAINT</keywords>
+ <keywords>SYSMON</keywords>
+ <keywords>SYSPROC</keywords>
+ <keywords>SYSTEM</keywords>
+ <keywords>SYSTEM_USER</keywords>
+ <keywords>SYS_REFCURSOR</keywords>
+ <keywords>T</keywords>
+ <keywords>TABLE</keywords>
+ <keywords>TABLES</keywords>
+ <keywords>TABLESAMPLE</keywords>
+ <keywords>TABLESPACE</keywords>
+ <keywords>TABLESPACES</keywords>
+ <keywords>TARGET</keywords>
+ <keywords>TEMPLATE</keywords>
+ <keywords>TEMPORARY</keywords>
+ <keywords>THAN</keywords>
+ <keywords>THEN</keywords>
+ <keywords>THREADSAFE</keywords>
+ <keywords>THRESHOLD</keywords>
+ <keywords>THRESHOLDVIOLATIONS</keywords>
+ <keywords>THROUGH</keywords>
+ <keywords>TIME</keywords>
+ <keywords>TIMEOUT</keywords>
+ <keywords>TIMERONCOST</keywords>
+ <keywords>TIMESTAMP</keywords>
+ <keywords>TIMEZONE</keywords>
+ <keywords>TO</keywords>
+ <keywords>TOKEN</keywords>
+ <keywords>TOTALDBPARTITIONCONNECTIONS</keywords>
+ <keywords>TOTALMEMBERCONNECTIONS</keywords>
+ <keywords>TOTALSCMEMBERCONNECTIONS</keywords>
+ <keywords>TOTALSCPARTITIONCONNECTIONS</keywords>
+ <keywords>TRAILING</keywords>
+ <keywords>TRANSACTION</keywords>
+ <keywords>TRANSACTIONS</keywords>
+ <keywords>TRANSFER</keywords>
+ <keywords>TRANSFERRATE</keywords>
+ <keywords>TRANSFORM</keywords>
+ <keywords>TRANSFORMS</keywords>
+ <keywords>TRANSLATE</keywords>
+ <keywords>TREAT</keywords>
+ <keywords>TREE</keywords>
+ <keywords>TRIGGER</keywords>
+ <keywords>TRIGGERS</keywords>
+ <keywords>TRIM</keywords>
+ <keywords>TRUE</keywords>
+ <keywords>TRUNC</keywords>
+ <keywords>TRUNCATE</keywords>
+ <keywords>TRUSTED</keywords>
+ <keywords>TWOLEVEL</keywords>
+ <keywords>TYPE</keywords>
+ <keywords>TYPES</keywords>
+ <keywords>UESCAPE</keywords>
+ <keywords>UNBOUNDED</keywords>
+ <keywords>UNCHECKED</keywords>
+ <keywords>UNCOMMITTED</keywords>
+ <keywords>UNDER</keywords>
+ <keywords>UNDO</keywords>
+ <keywords>UNFORMATTED</keywords>
+ <keywords>UNICODE</keywords>
+ <keywords>UNION</keywords>
+ <keywords>UNIQUE</keywords>
+ <keywords>UNIT</keywords>
+ <keywords>UNITS</keywords>
+ <keywords>UNNEST</keywords>
+ <keywords>UNSAFE</keywords>
+ <keywords>UNTIL</keywords>
+ <keywords>UOWTOTALTIME</keywords>
+ <keywords>UPDATE</keywords>
+ <keywords>UPDATED_SINCE_BOUNDARY_TIME</keywords>
+ <keywords>UPON</keywords>
+ <keywords>UR</keywords>
+ <keywords>URI</keywords>
+ <keywords>USA</keywords>
+ <keywords>USAGE</keywords>
+ <keywords>USE</keywords>
+ <keywords>USER</keywords>
+ <keywords>USERID</keywords>
+ <keywords>USING</keywords>
+ <keywords>VALIDATE</keywords>
+ <keywords>VALIDATED</keywords>
+ <keywords>VALUE</keywords>
+ <keywords>VALUES</keywords>
+ <keywords>VARCHAR</keywords>
+ <keywords>VARCHAR2</keywords>
+ <keywords>VARGRAPHIC</keywords>
+ <keywords>VARIABLE</keywords>
+ <keywords>VARIANT</keywords>
+ <keywords>VARRAY</keywords>
+ <keywords>VARYING</keywords>
+ <keywords>VCAT</keywords>
+ <keywords>VERSION</keywords>
+ <keywords>VIEW</keywords>
+ <keywords>VIOLATIONS</keywords>
+ <keywords>VOLATILE</keywords>
+ <keywords>WAIT</keywords>
+ <keywords>WAITING</keywords>
+ <keywords>WATER</keywords>
+ <keywords>WCSTATS</keywords>
+ <keywords>WHEN</keywords>
+ <keywords>WHERE</keywords>
+ <keywords>WHILE</keywords>
+ <keywords>WHITESPACE</keywords>
+ <keywords>WITH</keywords>
+ <keywords>WITHIN</keywords>
+ <keywords>WITHOUT</keywords>
+ <keywords>WLMADM</keywords>
+ <keywords>WLSTATS</keywords>
+ <keywords>WORK</keywords>
+ <keywords>WORKLOAD</keywords>
+ <keywords>WRAPPER</keywords>
+ <keywords>WRITE</keywords>
+ <keywords>WRITEDOWN</keywords>
+ <keywords>WRITEUP</keywords>
+ <keywords>WRKSTNNAME</keywords>
+ <keywords>XACT</keywords>
+ <keywords>XML</keywords>
+ <keywords>XMLAGG</keywords>
+ <keywords>XMLATTRIBUTES</keywords>
+ <keywords>XMLBINARY</keywords>
+ <keywords>XMLCAST</keywords>
+ <keywords>XMLCOMMENT</keywords>
+ <keywords>XMLCONCAT</keywords>
+ <keywords>XMLDECLARATION</keywords>
+ <keywords>XMLDOCUMENT</keywords>
+ <keywords>XMLELEMENT</keywords>
+ <keywords>XMLEXISTS</keywords>
+ <keywords>XMLFOREST</keywords>
+ <keywords>XMLGROUP</keywords>
+ <keywords>XMLNAMESPACES</keywords>
+ <keywords>XMLPARSE</keywords>
+ <keywords>XMLPATTERN</keywords>
+ <keywords>XMLPI</keywords>
+ <keywords>XMLQUERY</keywords>
+ <keywords>XMLROW</keywords>
+ <keywords>XMLSCHEMA</keywords>
+ <keywords>XMLSERIALIZE</keywords>
+ <keywords>XMLTABLE</keywords>
+ <keywords>XMLTEXT</keywords>
+ <keywords>XMLVALIDATE</keywords>
+ <keywords>XQUERY</keywords>
+ <keywords>XSLTRANSFORM</keywords>
+ <keywords>XSROBJECT</keywords>
+ <keywords>YEAR</keywords>
+ <keywords>YEARS</keywords>
+ <keywords>YES</keywords>
+ <operators><</operators>
+ <operators>"</operators>
+ <operators>%</operators>
+ <operators>&</operators>
+ <operators>''''</operators>
+ <operators>(</operators>
+ <operators>)</operators>
+ <operators>*</operators>
+ <operators>+</operators>
+ <operators>,</operators>
+ <operators>-</operators>
+ <operators>.</operators>
+ <operators>/</operators>
+ <operators>:</operators>
+ <operators>;</operators>
+ <operators>=</operators>
+ <operators>?</operators>
+ <operators>[</operators>
+ <operators>]</operators>
+ <operators>_</operators>
+ <operators>'|'</operators>
+ <operators>,=</operators>
+ <operators><=</operators>
+ <operators>||</operators>
+ <operators>..</operators>
+ <operators>'-,'</operators>
+ <operators>!</operators>
+ <operators>~</operators>
+ <operators>:=</operators>
+ <operators>{</operators>
+ <operators>}</operators>
+ <operators>(+)</operators>
+ </SQLSyntaxDefinition>
+ <nicknameDefinition constraintSupported="true" indexSupported="true" maximumIdentifierLength="128"/>
+ <schemaDefinition maximumIdentifierLength="128"/>
+ <viewDefinition maximumIdentifierLength="128"/>
+ <privilegedElementDefinitions name="Database">
+ <privilegeDefinitions name="BINDADD"/>
+ <privilegeDefinitions name="CONNECT"/>
+ <privilegeDefinitions name="CREATETAB"/>
+ <privilegeDefinitions name="CREATE_EXTERNAL_ROUTINE"/>
+ <privilegeDefinitions name="CREATE_NOT_FENCED_ROUTINE"/>
+ <privilegeDefinitions name="IMPLICIT_SCHEMA"/>
+ <privilegeDefinitions name="DBADM"/>
+ <privilegeDefinitions name="LOAD"/>
+ <privilegeDefinitions name="QUIESCE_CONNECT"/>
+ <privilegeDefinitions name="SECADM"/>
+ <privilegeDefinitions name="ACCESSCTRL"/>
+ <privilegeDefinitions name="DATAACCESS"/>
+ <privilegeDefinitions name="EXPLAIN"/>
+ <privilegeDefinitions name="SQLADM"/>
+ <privilegeDefinitions name="WLMADM"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Schema">
+ <privilegeDefinitions name="ALTERIN"/>
+ <privilegeDefinitions name="CREATEIN"/>
+ <privilegeDefinitions name="DROPIN"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PersistentTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="ViewTable">
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Nickname">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions xmi:id="COLUMN_1" name="Column"/>
+ <privilegedElementDefinitions name="MaterializedQueryTable">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="DELETE"/>
+ <privilegeDefinitions name="INDEX"/>
+ <privilegeDefinitions name="INSERT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="REFERENCES"/>
+ <privilegeDefinitions name="SELECT"/>
+ <privilegeDefinitions actionElementDefinitions="COLUMN_1" name="UPDATE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Routine">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Sequence">
+ <privilegeDefinitions name="ALTER"/>
+ <privilegeDefinitions name="USAGE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Index">
+ <privilegeDefinitions name="CONTROL"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Tablespace">
+ <privilegeDefinitions name="USE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Package">
+ <privilegeDefinitions name="BIND"/>
+ <privilegeDefinitions name="CONTROL"/>
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="Module">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="PLSQLPackage">
+ <privilegeDefinitions name="EXECUTE"/>
+ </privilegedElementDefinitions>
+ <privilegedElementDefinitions name="GlobalVariable">
+ <privilegeDefinitions name="READ"/>
+ <privilegeDefinitions name="WRITE"/>
+ </privilegedElementDefinitions>
+ <constructedDataTypeDefinition arrayDatatypeSupported="true" multisetDatatypeSupported="true" rowDatatypeSupported="true" referenceDatatypeSupported="true" cursorDatatypeSupported="true"/>
+</DBDefinition:DatabaseVendorDefinition>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.ui/src/org/eclipse/datatools/enablement/ibm/db2/luw/ui/drivers/DB2LUWDriverUIContributorBase.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.ui/src/org/eclipse/datatools/enablement/ibm/db2/luw/ui/drivers/DB2LUWDriverUIContributorBase.java
index 285e859..e3d6c5e 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.ui/src/org/eclipse/datatools/enablement/ibm/db2/luw/ui/drivers/DB2LUWDriverUIContributorBase.java
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw.ui/src/org/eclipse/datatools/enablement/ibm/db2/luw/ui/drivers/DB2LUWDriverUIContributorBase.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others. All rights reserved.
+ * Copyright 2007, 2012 IBM Corporation and others. 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
@@ -506,9 +506,33 @@
removeListeners();
DB2JDBCURL url = getURLHandle(this.properties
.getProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID));
- hostText.setText(url.getNode());
- portText.setText(url.getPort());
- databaseText.setText(url.getDatabaseName());
+ // If the properties includes hostname, port or database name, use the values in properties
+//bgp un-comment the following line (and delete the one after that) once the constants class is updated
+//bgp String host = this.properties.getProperty( IJDBCDriverDefinitionConstants.HOSTNAME_PROP_ID );
+ String host = this.properties.getProperty( "hostname" ); //$NON-NLS-1$
+ if ( host != null ) {
+ hostText.setText( host );
+ }
+ else {
+ hostText.setText( url.getNode() );
+ }
+//bgp un-comment the following line (and delete the one after that) once the constants class is updated
+//bgp String port = this.properties.getProperty( IJDBCDriverDefinitionConstants.PORT_PROP_ID );
+ String port = this.properties.getProperty( "port" ); //$NON-NLS-1$
+ if ( port != null ) {
+ portText.setText( port );
+ }
+ else {
+ portText.setText(url.getPort());
+ }
+ String database = this.properties.getProperty( IJDBCDriverDefinitionConstants.DATABASE_NAME_PROP_ID );
+ if ( database != null ) {
+ databaseText.setText( database );
+ }
+ else {
+ databaseText.setText(url.getDatabaseName());
+ }
+
if (url.useClientAuthentication()) {
clientAuthenticationCheckbox.setSelection(true);
enableAuthenticationControls(false);
@@ -703,24 +727,49 @@
* Formats the driver URL based on values specified in
* constructor {@link DB2JDBCURL(String, String, String, boolean, String)}.
*/
- protected String formatURL() {
- String url = "jdbc:db2://" + getNode() + ":" //$NON-NLS-1$ //$NON-NLS-2$
+ public String formatURL() {
+ String url = "jdbc:db2://" + formatNode(getNode()) + ":" //$NON-NLS-1$ //$NON-NLS-2$
+ getPort()
+ "/" + getDatabaseName() //$NON-NLS-1$
+ ":retrieveMessagesFromServerOnGetMessage=true;"; //$NON-NLS-1$
if( useClientAuthentication() )
url += CLIENT_AUTHETICATION_TEXT;
- url += getProperties();
+ if(this.urlProperties!=null && this.urlProperties.length()>0){
+ url += this.urlProperties;
+ }
+ url += getURLOptionalParameters();
return url;
- }
+ }
+
+
+ /**
+ * @return The driver URL formatted in the default URL format
+ */
+ public String getBaseURL() {
+ String url = "jdbc:db2://" + formatNode(getNode()) + ":" //$NON-NLS-1$ //$NON-NLS-2$
+ + getPort()
+ + "/" + getDatabaseName() //$NON-NLS-1$
+ + ":retrieveMessagesFromServerOnGetMessage=true;"; //$NON-NLS-1$
+ if (useClientAuthentication())
+ url += CLIENT_AUTHETICATION_TEXT;
+ return url;
+ }
+ private String formatNode(String node)
+ {
+ if (node.indexOf(":") > -1) {
+ return "[" + node + "]";
+ }
+ return node;
+ }
+
/**
* Parses the specified URL string into URL attributes that can be accessed
* by the corresponding getter methods.
*/
- protected void parseURL(String url) {
+ protected void parseURL(String url) {
try {
- setURLOptionalParameters(""); //$NON-NLS-1$
+ setURLOptionalParameters("");
String remainingURL = url.substring(url.indexOf(':') + 1);
this.subprotocol = remainingURL.substring(0, remainingURL
.indexOf(':'));
@@ -728,54 +777,66 @@
.substring(remainingURL.indexOf(':') + 3);
this.node = remainingURL
.substring(0, remainingURL.indexOf('/'));
- if (this.node.indexOf(':') > -1) {
- this.port = this.node.substring(this.node.indexOf(':') + 1);
- this.node = this.node.substring(0, this.node.indexOf(':'));
+
+ if (node.indexOf('[') > -1 && node.indexOf("]:") > -1) {
+ port = node.substring(node.indexOf("]:") + 2);
+ node = node.substring(1, node.indexOf("]:"));
+ } else if (node.indexOf(':') > -1) {
+ port = node.substring(node.indexOf(':') + 1);
+ node = node.substring(0, node.indexOf(':'));
}
remainingURL = remainingURL
.substring(remainingURL.indexOf('/') + 1);
- if (remainingURL.indexOf(';') > -1) {
-
- String urlString = remainingURL.substring(0, remainingURL
- .indexOf(';'));
- if(urlString.contains("retrieveMessagesFromServerOnGetMessage=true")){ //$NON-NLS-1$
- this.databaseName = remainingURL.substring(0, remainingURL
- .indexOf(':'));
- remainingURL = remainingURL.substring(remainingURL
- .indexOf(':') + 1);
- }else{
- this.databaseName = remainingURL.substring(0, remainingURL
- .indexOf(';'));
- remainingURL = remainingURL.substring(remainingURL
- .indexOf(';') + 1);
- }
-
+ if (remainingURL.indexOf(':') > -1) {
+ this.databaseName = remainingURL.substring(0, remainingURL
+ .indexOf(':'));
+ remainingURL = remainingURL.substring(remainingURL
+ .indexOf(':') + 1);
this.urlProperties = remainingURL;
this.useClientAuthentication = (this.urlProperties.indexOf(CLIENT_AUTHETICATION_TEXT) > -1 );
- String userOptionalParameters=""; //$NON-NLS-1$
- String userParameter = ""; //$NON-NLS-1$
- if(remainingURL!=null && remainingURL.length()>0)
- {
- StringTokenizer st = new StringTokenizer(remainingURL, ";"); //$NON-NLS-1$
- int tokenLength = st.countTokens();
- for(int i=0; i< tokenLength; i++)
- {
- userParameter = st.nextToken();
- if(userParameter!=null && userParameter.length()>0){
- if(!(userParameter.startsWith("retrieveMessagesFromServerOnGetMessage=true"))) //$NON-NLS-1$
- userOptionalParameters += userParameter+";"; //$NON-NLS-1$
- }
- }
-
- setURLOptionalParameters(userOptionalParameters);
- }
-
} else {
- this.databaseName = remainingURL;
+ if(remainingURL.indexOf(';') > -1){
+ this.databaseName = remainingURL.substring(0,remainingURL.indexOf(';'));
+ remainingURL=remainingURL.substring(remainingURL.indexOf(';')+1);
+
+ }
+ else{
+ this.databaseName = remainingURL;
+ remainingURL="";
+ }
+
}
-
+ String userOptionalParameters="";
+ String userParameter = "";
+ if(remainingURL!=null && remainingURL.length()>0)
+ {
+ StringTokenizer st = new StringTokenizer(remainingURL, ";");
+ int tokenLength = st.countTokens();
+ for(int i=0; i< tokenLength; i++)
+ {
+ userParameter = st.nextToken();
+ if(userParameter!=null && userParameter.length()>0){
+
+ if(!(userParameter.startsWith("retrieveMessagesFromServerOnGetMessage")
+ ||(userParameter.equals("securityMechanism=4")
+ || userParameter.startsWith("traceFile")
+ || userParameter.startsWith("traceFileAppend")
+ || userParameter.startsWith("traceLevel")
+ || userParameter.startsWith("traceDirectory"))))
+ userOptionalParameters += userParameter+";";
+ //securityMechanism=4 equals Client authentication, so set
+ //clientAuthentication flag
+ if (userParameter.equals("securityMechanism=4")){
+ useClientAuthentication=true;
+ }
+ }
+ }
+
+ setURLOptionalParameters(userOptionalParameters);
+ }
} catch (Exception e) {
+ e.printStackTrace();
}
}
}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 73f4382..0000000
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Fri Apr 13 14:14:14 PDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.4
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/META-INF/MANIFEST.MF
index ade1dfb..66a5d9f 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/META-INF/MANIFEST.MF
@@ -2,12 +2,22 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.datatools.enablement.ibm.db2.luw;singleton:=true
-Bundle-Version: 1.0.2.qualifier
+Bundle-Version: 1.0.3.qualifier
Bundle-Localization: plugin
-Require-Bundle: org.eclipse.datatools.connectivity;bundle-version="[1.0.1,2.0.0)",
- org.eclipse.datatools.connectivity.sqm.core;bundle-version="[1.0.1,2.0.0)"
-Eclipse-LazyStart: true
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.datatools.connectivity;bundle-version="[1.0.1,2.0.0)",
+ org.eclipse.datatools.connectivity.sqm.core;bundle-version="[1.0.1,2.0.0)",
+ org.eclipse.datatools.enablement.ibm;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.enablement.ibm.db2;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.modelbase.dbdefinition;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.modelbase.sql;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecore.change;bundle-version="[2.7.0,3.0.0)"
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.datatools.enablement.ibm.db2.internal.luw
+Export-Package: org.eclipse.datatools.enablement.ibm.db2.luw,
+ org.eclipse.datatools.enablement.ibm.db2.internal.luw,
+ org.eclipse.datatools.enablement.ibm.db2.luw.catalog,
+ org.eclipse.datatools.enablement.ibm.db2.luw.containment,
+ org.eclipse.datatools.enablement.ibm.db2.luw.model
Bundle-Vendor: %providerName
Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Activator: org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWPluginActivator
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.properties
index c2b08c9..2e76077 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.properties
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.properties
@@ -22,6 +22,11 @@
DB2_UDB_CATEGORY_NAME = DB2 for Linux, UNIX, and Windows
org.eclipse.datatools.enablement.ibm.db2.luw.driverTemplate = IBM Data Server Driver for JDBC and SQLJ
+org.eclipse.datatools.enablement.ibm.db2.luw.kerberosDriverTemplate=IBM Data Server Driver for JDBC and SQLJ using Kerberos security
+org.eclipse.datatools.enablement.ibm.db2.luw.ldapDriverTemplate=IBM Data Server Driver for JDBC and SQLJ using LDAP
+org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.kerberosDriverTemplate=IBM Data Server Driver for JDBC and SQLJ (JDBC 4.0) using Kerberos security
+org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.ldapDriverTemplate=IBM Data Server Driver for JDBC and SQLJ (JDBC 4.0) using LDAP
+org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.driverTemplate = IBM Data Server Driver for JDBC and SQLJ (JDBC 4.0)
org.eclipse.datatools.enablement.ibm.db2.luw.other.driverTemplate = Other Driver
jdbc.connection.name = JDBC Connection
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.xml b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.xml
index df6d5b1..08393a1 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.xml
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/plugin.xml
@@ -1,43 +1,369 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
+ <extension
+ point="org.eclipse.datatools.connectivity.sqm.core.logicalContainment">
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWDatabase"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWDatabaseContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWTemporaryTable"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWTemporaryTableContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWGlobalVariable"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWGlobalVariableContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWNickname"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWNicknameContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWServer"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWServerContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWPartitionGroup"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWPartitionGroupContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWTableSpace"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWTableSpaceContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWBufferPool"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWBufferPoolContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWDatabasePartition"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWDatabasePartitionContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWWrapper"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWWrapperContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="FederatedProcedure"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWFederatedSPContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWUserMapping"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWUserMappingContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWSecurityPolicy"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWSecurityPolicyContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWSecurityLabelComponent"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWSecurityLabelComponentContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWSecurityLabelComponentElement"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWSecurityLabelComponentElementContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWSecurityLabel"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWSecurityLabelContainmentProvider">
+ </containment>
+ <containment
+ package="http:///org/eclipse/datatools/enablement/ibm/db2/luw.ecore"
+ class="LUWTable"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.containment.LUWTableContainmentProvider">
+ </containment>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.sqm.core.dataModelElementFactory">
+ <factory
+ version="V8.1"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory">
+ </factory>
+ <factory
+ version="V8.2"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory">
+ </factory>
+ <factory
+ version="V9.1"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory">
+ </factory>
+ <factory
+ version="V9.5"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory">
+ </factory>
+ <factory
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory"
+ product="DB2 UDB"
+ version="V9.7">
+ </factory>
+ <factory
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory"
+ product="DB2 UDB"
+ version="V9.8">
+ </factory>
+ <factory
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory"
+ product="DB2 UDB"
+ version="V10.1">
+ </factory>
+ <factory
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWModelElementFactory"
+ product="DB2 UDB"
+ version="V10.5">
+ </factory>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.sqm.core.catalog">
+ <catalog
+ version="V8.1"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ <catalog
+ version="V8.2"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ <catalog
+ version="V9.1"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ <catalog
+ version="V9.5"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ <catalog
+ version="V9.7"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ <catalog
+ version="V9.8"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ <catalog
+ version="V10.1"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ <catalog
+ version="V10.5"
+ product="DB2 UDB"
+ provider="org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogProvider"
+ priority = "10">
+ </catalog>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.sqm.core.ddlGeneration">
+ <generator
+ product="DB2 UDB"
+ version="V8.1"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator">
+ </generator>
+ <generator
+ product="DB2 UDB"
+ version="V8.2"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator">
+ </generator>
+ <generator
+ product="DB2 UDB"
+ version="V9.1"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator">
+ </generator>
+ <generator
+ product="DB2 UDB"
+ version="V9.5"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator">
+ </generator>
+ <generator
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator"
+ product="DB2 UDB"
+ version="V9.7">
+ </generator>
+ <generator
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator"
+ product="DB2 UDB"
+ version="V9.8">
+ </generator>
+ <generator
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator"
+ product="DB2 UDB"
+ version="V10.1">
+ </generator>
+ <generator
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlGenerator"
+ product="DB2 UDB"
+ version="V10.5">
+ </generator>
+ <delta
+ product="DB2 UDB"
+ version="V8.1"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator">
+ </delta>
+ <delta
+ product="DB2 UDB"
+ version="V8.2"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator">
+ </delta>
+ <delta
+ product="DB2 UDB"
+ version="V9.1"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator9">
+ </delta>
+ <delta
+ product="DB2 UDB"
+ version="V9.5"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator95">
+ </delta>
+ <delta
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator97"
+ product="DB2 UDB"
+ version="V9.7">
+ </delta>
+ <delta
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator97"
+ product="DB2 UDB"
+ version="V9.8">
+ </delta>
+ <delta
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator97"
+ product="DB2 UDB"
+ version="V10.1">
+ </delta>
+ <delta
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDeltaDdlGenerator97"
+ product="DB2 UDB"
+ version="V10.5">
+ </delta>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.sqltools.data.core.columnDataAccessors">
+ <accessor
+ vendor="DB2 UDB"
+ dataType="DATALINK"
+ class="org.eclipse.datatools.enablement.ibm.db2.data.DatalinkAccessor"
+ />
+ <accessor
+ vendor="DB2 UDB"
+ dataType="DISTINCT"
+ class="org.eclipse.datatools.enablement.ibm.db2.data.DistinctAccessor"
+ />
+ </extension>
+
<extension
point="org.eclipse.datatools.connectivity.sqm.core.databaseRecognition">
<recognizer
class="org.eclipse.datatools.enablement.ibm.db2.internal.luw.LUWDatabaseRecognizer">
</recognizer>
</extension>
- <extension
- point="org.eclipse.datatools.connectivity.connectionProfile">
- <connectionProfile
- category="org.eclipse.datatools.connectivity.db.category"
- configurationType="org.eclipse.datatools.connectivity.db.generic.configurationType"
- icon="icons/jdbc_16.gif"
- id="org.eclipse.datatools.enablement.ibm.db2.luw.connectionProfile"
- name="%profile.db2.luw.title"
- pingFactory="org.eclipse.datatools.enablement.ibm.db2.internal.luw.JDBCLUWConnectionFactory"
- propertiesPersistenceHook="org.eclipse.datatools.enablement.ibm.db2.internal.luw.LUWDBPropertiesPersistenceHook"/>
- <connectionFactory
- class="org.eclipse.datatools.enablement.ibm.db2.internal.luw.JDBCLUWConnectionFactory"
- id="java.sql.Connection"
- name="%jdbc.connection.name"
- profile="org.eclipse.datatools.enablement.ibm.db2.luw.connectionProfile"/>
- </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.sqm.core.metaDataExtension">
+ <metaDataExtension
+ version="V8.1"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ <metaDataExtension
+ version="V8.2"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ <metaDataExtension
+ version="V9.1"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ <metaDataExtension
+ version="V9.5"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ <metaDataExtension
+ version="V9.7"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ <metaDataExtension
+ version="V9.8"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ <metaDataExtension
+ version="V10.1"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ <metaDataExtension
+ version="V10.5"
+ product="DB2 UDB"
+ class="org.eclipse.datatools.enablement.ibm.db2.luw.LUWMetaDataExtension">
+ </metaDataExtension>
+ </extension>
+
+ <extension point="org.eclipse.datatools.connectivity.driverExtension">
+ <driverTemplateOverride
+ priority="3"
+ createDefault="true"
+ valuesProvider="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWDriverValuesProvider"
+ targetId="org.eclipse.datatools.enablement.ibm.db2.luw.driverTemplate" />
+ </extension>
- <extension
+ <extension point="org.eclipse.datatools.connectivity.driverExtension">
+ <driverTemplateOverride
+ priority="3"
+ createDefault="true"
+ targetId="org.eclipse.datatools.enablement.ibm.db2.luw.other.driverTemplate" />
+ </extension>
+
+ <extension
point="org.eclipse.datatools.connectivity.driverExtension">
- <category
- parentCategory="org.eclipse.datatools.connectivity.db.driverCategory"
- id="org.eclipse.datatools.enablement.ibm.db2.driverCategory"
- name="%DB2_UDB_CATEGORY_NAME"/>
-
<driverTemplate
- createDefault="false"
+ createDefault="true"
emptyJarListIsOK="false"
- id="org.eclipse.datatools.enablement.ibm.db2.luw.driverTemplate"
- jarList="C:\Program Files\IBM\SQLLIB\java\db2jcc.jar;C:\Program Files\IBM\SQLLIB\java\db2jcc_license_cisuz.jar"
- name="%org.eclipse.datatools.enablement.ibm.db2.luw.driverTemplate"
- parentCategory="org.eclipse.datatools.enablement.ibm.db2.driverCategory">
+ id="org.eclipse.datatools.enablement.ibm.db2.luw.kerberosDriverTemplate"
+ jarList="C:\Program Files\IBM\SQLLIB\java\db2jcc.jar,C:\Program Files\IBM\SQLLIB\java\db2jcc_license_cu.jar"
+ name="%org.eclipse.datatools.enablement.ibm.db2.luw.kerberosDriverTemplate"
+ parentCategory="org.eclipse.datatools.enablement.ibm.db2.driverCategory"
+ valuesProvider="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWDriverValuesProvider"
+ displayRank="5">
+<!-- <migration
+ class="org.eclipse.datatools.connectivity.drivers.DriverJarFileMigrator">
+ </migration> -->
<properties>
<property
generated="false"
@@ -71,7 +397,203 @@
generated="false"
id="org.eclipse.datatools.connectivity.db.URL"
name="%driverConnectionURL"
- value="jdbc:db2://localhost:50000/SAMPLE"
+ value="jdbc:db2://localhost:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;securityMechanism=11;"
+ required="true"
+ visible="true"/>
+ </properties>
+ </driverTemplate>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.driverExtension">
+ <driverTemplate
+ createDefault="true"
+ emptyJarListIsOK="false"
+ id="org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.kerberosDriverTemplate"
+ jarList="C:\Program Files\IBM\SQLLIB\java\db2jcc4.jar,C:\Program Files\IBM\SQLLIB\java\db2jcc_license_cu.jar"
+ name="%org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.kerberosDriverTemplate"
+ parentCategory="org.eclipse.datatools.enablement.ibm.db2.driverCategory"
+ valuesProvider="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWJDBC4DriverValuesProvider"
+ displayRank="2">
+<!-- <migration
+ class="org.eclipse.datatools.connectivity.drivers.DriverJarFileMigrator">
+ </migration> -->
+ <properties>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.driverClass"
+ name="%driverClass"
+ value="com.ibm.db2.jcc.DB2Driver"
+ required="true"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.vendor"
+ name="%driverVendor"
+ value="DB2 UDB"
+ required="true"
+ visible="false"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.version"
+ name="%driverVersion"
+ value="V9.1"
+ required="true"
+ visible="false"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.databaseName"
+ name="%driverDBName"
+ value="SAMPLE"
+ required="true"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.URL"
+ name="%driverConnectionURL"
+ value="jdbc:db2://localhost:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;securityMechanism=11;"
+ required="true"
+ visible="true"/>
+ </properties>
+ </driverTemplate>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.driverExtension">
+ <driverTemplate
+ createDefault="true"
+ emptyJarListIsOK="false"
+ id="org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.driverTemplate"
+ jarList="C:\Program Files\IBM\SQLLIB\java\db2jcc4.jar;C:\Program Files\IBM\SQLLIB\java\db2jcc_license_cu.jar"
+ name="%org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.driverTemplate"
+ parentCategory="org.eclipse.datatools.enablement.ibm.db2.driverCategory"
+ valuesProvider="org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWJDBC4DriverValuesProvider"
+ displayRank="1">
+<!-- <migration
+ class="org.eclipse.datatools.connectivity.drivers.DriverJarFileMigrator">
+ </migration> -->
+ <properties>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.driverClass"
+ name="%driverClass"
+ value="com.ibm.db2.jcc.DB2Driver"
+ required="true"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.vendor"
+ name="%driverVendor"
+ value="DB2 UDB"
+ required="true"
+ visible="false"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.version"
+ name="%driverVersion"
+ value="V9.1"
+ required="true"
+ visible="false"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.databaseName"
+ name="%driverDBName"
+ value="SAMPLE"
+ required="true"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.URL"
+ name="%driverConnectionURL"
+ value="jdbc:db2://localhost:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;"
+ required="true"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.username"
+ name="%driverUID"
+ value=""
+ required="false"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.password"
+ name="%driverPWD"
+ required="false"
+ visible="true"/>
+ </properties>
+ </driverTemplate>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.connectionProfile">
+ <connectionProfile
+ category="org.eclipse.datatools.connectivity.db.category"
+ configurationType="org.eclipse.datatools.connectivity.db.generic.configurationType"
+ icon="icons/jdbc_16.gif"
+ id="org.eclipse.datatools.enablement.ibm.db2.luw.connectionProfile"
+ name="%profile.db2.luw.title"
+ pingFactory="org.eclipse.datatools.enablement.ibm.db2.internal.luw.JDBCLUWConnectionFactory"
+ propertiesPersistenceHook="org.eclipse.datatools.enablement.ibm.db2.internal.luw.LUWDBPropertiesPersistenceHook"/>
+ <connectionFactory
+ class="org.eclipse.datatools.enablement.ibm.db2.internal.luw.JDBCLUWConnectionFactory"
+ id="java.sql.Connection"
+ name="%jdbc.connection.name"
+ profile="org.eclipse.datatools.enablement.ibm.db2.luw.connectionProfile"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.datatools.connectivity.driverExtension">
+ <category
+ parentCategory="org.eclipse.datatools.connectivity.db.driverCategory"
+ id="org.eclipse.datatools.enablement.ibm.db2.driverCategory"
+ name="%DB2_UDB_CATEGORY_NAME"/>
+
+ <driverTemplate
+ createDefault="false"
+ emptyJarListIsOK="false"
+ id="org.eclipse.datatools.enablement.ibm.db2.luw.driverTemplate"
+ jarList="C:\Program Files\IBM\SQLLIB\java\db2jcc.jar;C:\Program Files\IBM\SQLLIB\java\db2jcc_license_cu.jar"
+ name="%org.eclipse.datatools.enablement.ibm.db2.luw.driverTemplate"
+ parentCategory="org.eclipse.datatools.enablement.ibm.db2.driverCategory"
+ displayRank="4">
+<!-- <migration
+ class="org.eclipse.datatools.connectivity.drivers.DriverJarFileMigrator">
+ </migration> -->
+ <properties>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.driverClass"
+ name="%driverClass"
+ value="com.ibm.db2.jcc.DB2Driver"
+ required="true"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.vendor"
+ name="%driverVendor"
+ value="DB2 UDB"
+ required="true"
+ visible="false"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.version"
+ name="%driverVersion"
+ value="V9.1"
+ required="true"
+ visible="false"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.databaseName"
+ name="%driverDBName"
+ value="SAMPLE"
+ required="true"
+ visible="true"/>
+ <property
+ generated="false"
+ id="org.eclipse.datatools.connectivity.db.URL"
+ name="%driverConnectionURL"
+ value="jdbc:db2://localhost:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;"
required="true"
visible="true"/>
<property
@@ -99,7 +621,8 @@
id="org.eclipse.datatools.enablement.ibm.db2.luw.other.driverTemplate"
jarList=""
name="%org.eclipse.datatools.enablement.ibm.db2.luw.other.driverTemplate"
- parentCategory="org.eclipse.datatools.enablement.ibm.db2.driverCategory">
+ parentCategory="org.eclipse.datatools.enablement.ibm.db2.driverCategory"
+ displayRank="8">
<properties>
<property
generated="false"
@@ -159,4 +682,7 @@
providerID="org.eclipse.datatools.enablement.ibm.db2.luw.connectionProfile">
</providerIDtoDriverCategoryID>
</extension>
+
+
+
</plugin>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/JDBCLUWConnectionFactory.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/JDBCLUWConnectionFactory.java
index a1f005d..4272321 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/JDBCLUWConnectionFactory.java
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/JDBCLUWConnectionFactory.java
@@ -8,7 +8,6 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-
package org.eclipse.datatools.enablement.ibm.db2.internal.luw;
import org.eclipse.datatools.connectivity.IConnection;
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/LUWDatabaseRecognizer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/LUWDatabaseRecognizer.java
index 24e342e..3cf8602 100644
--- a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/LUWDatabaseRecognizer.java
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/internal/luw/LUWDatabaseRecognizer.java
@@ -17,15 +17,97 @@
import org.eclipse.datatools.connectivity.sqm.internal.core.definition.IDatabaseRecognizer;
public class LUWDatabaseRecognizer implements IDatabaseRecognizer {
- public static final String VERSION81 = "V8.1"; //$NON-NLS-1$
- public static final String VERSION82 = "V8.2"; //$NON-NLS-1$
- public static final String VERSION9 = "V9.1"; //$NON-NLS-1$
+ private static final String VERSION71 = "V7.1"; //$NON-NLS-1$
+ private static final String VERSION72 = "V7.2"; //$NON-NLS-1$
+ public static final String VERSION81 = "V8.1"; //$NON-NLS-1$
+ public static final String VERSION82 = "V8.2"; //$NON-NLS-1$
+ public static final String VERSION9 = "V9.1"; //$NON-NLS-1$
+ public static final String VERSION95 = "V9.5"; //$NON-NLS-1$
+ public static final String VERSION97 = "V9.7"; //$NON-NLS-1$
+ public static final String VERSION98 = "V9.8"; //$NON-NLS-1$
+ public static final String VERSION101 = "V10.1"; //$NON-NLS-1$
+ public static final String VERSION105 = "V10.5"; //$NON-NLS-1$
+
private static final String PRODUCT = "DB2 UDB"; //$NON-NLS-1$
+ // !IMPORTANT!
+ // PLEASE NOTE AND READ THIS BEFORE MAKING MODIFICATIONS TO THIS FILE
+ //
+ // The below code is for version recognition of DB2 LUW databases.
+ // This code is executed at the time when we connect to a DB2 LUW
+ // database. It is vital that the correct DB2 LUW version is
+ // recognized as this is the version that all of our code looks at and
+ // a lot of our code is version specific. A bug in this code can cause
+ // huge issues. As an example there was a bug where the version check
+ // for DB2 LUW v10.1 was as follows.
+ // What it was in error
+ // else if(version.startsWith("SQL10010"))
+ // What it should have been
+ // else if(version.startsWith("SQL1001"))
+ //
+ // That extra zero caused us to ONLY properly recognize DB2 LUW v10.1
+ // GA version. DB2 LUW v10.1 FP1 or later would not fall into this
+ // category and then would default to DB2 LUW v9.1. First off since
+ // this is done at connect time absolutely every user who uses our
+ // product in conjunction with DB2 LUW v10.1 FP1 or later hit this
+ // issue 100 percent of the time. This causes problems everywhere,
+ // loading code, generateDDL, modeling...
+ //
+ // The Product Release Code that we get from the DB2 LUW database
+ // is in the form of "SQL" followed by VRF (Version, Release and
+ // Fixpack). We only care about and should only be checking for
+ // "SQL" followed by VR (Version and Release).
+ //
+ // Example:
+ // Below are a few databases and their Product Release Code
+ // DB2 LUW v9.8 FP1 - SQL09081
+ // DB2 LUW v9.8 FP4 - SQL09084
+ // DB2 LUW v10.1 GA - SQL10010
+ // DB2 LUW v10.1 FP2 - SQL10012
+ //
+ // The below version checks will identify and categorize
+ // all of the above databases IGNORING the fixpack value.
+ //
+ // else if(version.startsWith("SQL0908"))
+ // else if(version.startsWith("SQL1001"))
+ //
+ // Please see below an example of how to add a new version
+ // recognizer if a new Version or Release of DB2 LUW came out.
+ // Example: DB2 LUW v11.5 (made up)
+ //
+ // 1. Add a new variable to represent the new Version and/or Release.
+ //
+ // public static final String VERSION115 = "V11.5"; //$NON-NLS-1$
+ //
+ //
+ // 2. Add a new 'else if' at the bottom to catch databases of this
+ // type of Version and Release.
+ //
+ // else if(version.startsWith("SQL1105")) { //$NON-NLS-1$
+ // return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION115);
+ // }
+ //
+ // NOTE: This 'else if' will catch all databases of v11.5 regardless of fixpack.
+ // NOTE: If you were to change it to startsWith("SQL11050") then it WOULD ONLY
+ // CATCH DB2 LUW v11.5 GA AND NOT ANY OF THE FIXPACKS which is of course wrong.
+ // So please make sure to quadruple check the string you will be matching.
+ //
+ //
+ // PLEASE NOTE AND READ THIS BEFORE MAKING MODIFICATIONS TO THIS FILE
+ // !IMPORTANT!
+
public DatabaseDefinition recognize(Connection connection) {
try {
String version = connection.getMetaData().getDatabaseProductVersion();
- if(version.startsWith("SQL0801")) { //$NON-NLS-1$
+
+ // Some versions are recognized in DTP
+ if(version.startsWith("SQL0701")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION71);
+ }
+ else if(version.startsWith("SQL0702")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION72);
+ }
+ else if(version.startsWith("SQL0801")) { //$NON-NLS-1$
return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION81);
}
else if(version.startsWith("SQL0802")) { //$NON-NLS-1$
@@ -34,6 +116,25 @@
else if(version.startsWith("SQL0901")) { //$NON-NLS-1$
return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION9);
}
+ else if(version.startsWith("SQL0905")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION95);
+ }
+ else if(version.startsWith("SQL0907")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION97);
+ }
+ else if(version.startsWith("SQL0908")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION98);
+ }
+ else if(version.startsWith("SQL1001")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION101);
+ }
+ //Temporary hack to make 10.2 connection point to 10.5 connection profile
+ else if(version.startsWith("SQL1002")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION105);
+ }
+ else if(version.startsWith("SQL1005")) { //$NON-NLS-1$
+ return DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition(PRODUCT, VERSION105);
+ }
}
catch (Exception e) {
}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWDriverValuesProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWDriverValuesProvider.java
new file mode 100644
index 0000000..27c84a9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWDriverValuesProvider.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw;
+
+import org.eclipse.datatools.connectivity.drivers.IDriverValuesProvider;
+import org.eclipse.datatools.connectivity.drivers.models.TemplateDescriptor;
+import org.eclipse.datatools.enablement.ibm.util.ClientUtil;
+
+public class DB2LUWDriverValuesProvider implements IDriverValuesProvider{
+ private TemplateDescriptor templateDescriptor = null;
+
+ public String createDefaultValue(String key) {
+ String newKeyValue = null;
+ if (key.equals(VALUE_JARLIST)) {
+ newKeyValue = locateDB2DriverJars();
+ }
+ return newKeyValue;
+ }
+
+ public TemplateDescriptor getDriverTemplate() {
+ return templateDescriptor;
+ }
+
+ public void setDriverTemplate(TemplateDescriptor templateDescriptor) {
+ this.templateDescriptor = templateDescriptor;
+ }
+
+ private String locateDB2DriverJars(){
+ String jarList = null;
+ String path = ClientUtil.getDB2UniversalDriverClientJarsPath();
+ if ((path != null) && (path.length() > 0)){
+ jarList = path;
+ }
+ return jarList;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWJDBC4DriverValuesProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWJDBC4DriverValuesProvider.java
new file mode 100644
index 0000000..c0c0bc1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWJDBC4DriverValuesProvider.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw;
+
+import org.eclipse.datatools.connectivity.drivers.IDriverValuesProvider;
+import org.eclipse.datatools.connectivity.drivers.models.TemplateDescriptor;
+import org.eclipse.datatools.enablement.ibm.util.ClientUtil;
+
+public class DB2LUWJDBC4DriverValuesProvider implements IDriverValuesProvider{
+ private TemplateDescriptor templateDescriptor = null;
+
+ public String createDefaultValue(String key) {
+ String newKeyValue = null;
+ if (key.equals(VALUE_JARLIST)) {
+ newKeyValue = locateDB2DriverJars();
+ }
+ return newKeyValue;
+ }
+
+ public TemplateDescriptor getDriverTemplate() {
+ return templateDescriptor;
+ }
+
+ public void setDriverTemplate(TemplateDescriptor templateDescriptor) {
+ this.templateDescriptor = templateDescriptor;
+ }
+
+ private String locateDB2DriverJars(){
+ String jarList = null;
+ String path = ClientUtil.getDB2UniversalDriverJDBC4ClientJarsPath();
+ if ((path != null) && (path.length() > 0)){
+ jarList = path;
+ }
+ return jarList;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWModelElementFactory.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWModelElementFactory.java
new file mode 100644
index 0000000..ee37b52
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWModelElementFactory.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelFactory;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+public class DB2LUWModelElementFactory implements DataModelElementFactory {
+
+ public EObject create(EClass metaclass) {
+ if (metaclass == SQLSchemaPackage.eINSTANCE.getDatabase()) {
+ return LUWFactory.eINSTANCE.createLUWDatabase();
+ }
+ else if (metaclass == SQLSchemaPackage.eINSTANCE.getSchema()) {
+ return DB2ModelFactory.eINSTANCE.createDB2Schema();
+ }
+ else if (metaclass == SQLTablesPackage.eINSTANCE.getPersistentTable()) {
+ return LUWFactory.eINSTANCE.createLUWTable();
+ }
+ else if (metaclass == SQLTablesPackage.eINSTANCE.getViewTable()) {
+ return LUWFactory.eINSTANCE.createLUWView();
+ }
+ else if (metaclass == SQLTablesPackage.eINSTANCE.getColumn()) {
+ return LUWFactory.eINSTANCE.createLUWColumn();
+ }
+ else if (metaclass == SQLTablesPackage.eINSTANCE.getTrigger()) {
+ return DB2ModelFactory.eINSTANCE.createDB2Trigger();
+ }
+ else if (metaclass == SQLConstraintsPackage.eINSTANCE.getIndex()) {
+ return LUWFactory.eINSTANCE.createLUWIndex();
+ }
+ else if (metaclass == SQLRoutinesPackage.eINSTANCE.getProcedure()) {
+ return DB2ModelFactory.eINSTANCE.createDB2Procedure();
+ }
+ else if (metaclass == SQLRoutinesPackage.eINSTANCE.getUserDefinedFunction()) {
+ return DB2ModelFactory.eINSTANCE.createDB2UserDefinedFunction();
+ }
+ else if (metaclass == SQLRoutinesPackage.eINSTANCE.getMethod()) {
+ return DB2ModelFactory.eINSTANCE.createDB2Method();
+ }
+ else if (metaclass == SQLRoutinesPackage.eINSTANCE.getSource()) {
+ return DB2ModelFactory.eINSTANCE.createDB2Source();
+ }
+ else if (metaclass == DB2ModelPackage.eINSTANCE.getDB2Alias()) {
+ return DB2ModelFactory.eINSTANCE.createDB2Alias();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWMaterializedQueryTable()) {
+ return LUWFactory.eINSTANCE.createLUWMaterializedQueryTable();
+ }
+ else if (metaclass == SQLSchemaPackage.eINSTANCE.getIdentitySpecifier()) {
+ return DB2ModelFactory.eINSTANCE.createDB2IdentitySpecifier();
+ }
+// else if (metaclass == LUWPackage.eINSTANCE.getLUWRelationalNicknameDefault()) {
+// return LUWFactory.eINSTANCE.createLUWRelationalNicknameDefault();
+// }
+// else if (metaclass == LUWPackage.eINSTANCE.getLUWRelationalServerDefault()) {
+// return LUWFactory.eINSTANCE.createLUWRelationalServerDefault();
+// }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWPartitionGroup()) {
+ return LUWFactory.eINSTANCE.createLUWPartitionGroup();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWTableSpace()) {
+ return LUWFactory.eINSTANCE.createLUWTableSpace();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWDatabaseContainer()) {
+ return LUWFactory.eINSTANCE.createLUWDatabaseContainer();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWPartitionKey()) {
+ return LUWFactory.eINSTANCE.createLUWPartitionKey();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWDatabasePartition()) {
+ return LUWFactory.eINSTANCE.createLUWDatabasePartition();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWBufferPool()) {
+ return LUWFactory.eINSTANCE.createLUWBufferPool();
+ }
+ else if (metaclass == SQLDataTypesPackage.eINSTANCE.getAttributeDefinition()) {
+ return LUWFactory.eINSTANCE.createLUWAttributeDefinition();
+ }
+ else if (metaclass == DB2ModelPackage.eINSTANCE.getDB2Package()) {
+ return LUWFactory.eINSTANCE.createLUWDatabasePackage();
+ }
+ else if (metaclass == DB2ModelPackage.eINSTANCE.getDB2PackageStatement()) {
+ return DB2ModelFactory.eINSTANCE.createDB2PackageStatement();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWGlobalVariable()) {
+ return LUWFactory.eINSTANCE.createLUWGlobalVariable();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWModule()) {
+ return LUWFactory.eINSTANCE.createLUWModule();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWModuleCondition()) {
+ return LUWFactory.eINSTANCE.createLUWModuleCondition();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWModuleGlobalVariable()) {
+ return LUWFactory.eINSTANCE.createLUWModuleGlobalVariable();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWModuleFunction()) {
+ return LUWFactory.eINSTANCE.createLUWModuleFunction();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWModuleProcedure()) {
+ return LUWFactory.eINSTANCE.createLUWModuleProcedure();
+ }
+ else if (metaclass == SQLDataTypesPackage.eINSTANCE.getArrayDataType()){
+ return LUWFactory.eINSTANCE.createLUWArrayDataType();
+ }
+ else if (metaclass == SQLDataTypesPackage.eINSTANCE.getRowDataType()){
+ return LUWFactory.eINSTANCE.createLUWRowDataType();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWWrapper()) {
+ return LUWFactory.eINSTANCE.createLUWGenericWrapper();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWServer()) {
+ return LUWFactory.eINSTANCE.createLUWGenericServer();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWUserMapping()) {
+ return LUWFactory.eINSTANCE.createLUWGenericUserMapping();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getLUWNickname()) {
+ return LUWFactory.eINSTANCE.createLUWGenericNickname();
+ }
+ else if (metaclass == LUWPackage.eINSTANCE.getFederatedProcedure()) {
+ return LUWFactory.eINSTANCE.createFederatedProcedure();
+ }
+ else {
+ return metaclass.getEPackage().getEFactoryInstance().create(metaclass);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWPluginActivator.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWPluginActivator.java
new file mode 100644
index 0000000..ecbbe06
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/DB2LUWPluginActivator.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+
+public class DB2LUWPluginActivator extends Plugin {
+ private static DB2LUWPluginActivator instance;
+ public static final String PLUGIN_ID = "org.eclipse.datatools.enablement.ibm.db2.luw"; //$NON-NLS-1$
+
+ public static DB2LUWPluginActivator getInstance() { return instance; }
+
+ public DB2LUWPluginActivator() {
+ super();
+ instance = this;
+ }
+
+ /**
+ * Convenience method for <code>log(String, int, Throwable, boolean)</code>
+ * {
+ *
+ * @param message
+ * message, if <code>null</code> the message from the throwable
+ * is used
+ * @param throwable
+ * optional throwable as details
+ */
+ public void log(String message, Throwable throwable) {
+ if (message == null) {
+ message = throwable.getLocalizedMessage();
+ }
+ log(message, IStatus.ERROR, throwable);
+ }
+
+ /**
+ * Create and add a status message to the eclipse log.
+ *
+ * @param message
+ * message
+ * @param severity
+ * either IStatus.OK, IStatus.CANCEL, IStatus.ERROR,
+ * IStatus.WARNING or IStatus.INFO
+ * @param throwable
+ * optional throwable as details
+ * @see org.eclipse.core.runtime.IStatus
+ */
+ public void log(String message, int severity, Throwable throwable) {
+ IStatus status = new Status(severity, instance.getBundle()
+ .getSymbolicName(), IStatus.OK, message, throwable);
+ instance.getLog().log(status);
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/LUWMetaDataExtension.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/LUWMetaDataExtension.java
new file mode 100644
index 0000000..6cdf62a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/LUWMetaDataExtension.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.definition.MetaDataExtension;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.definition.AbstractMetaDataExtension;
+import org.eclipse.datatools.enablement.ibm.db2.internal.luw.LUWDatabaseRecognizer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.ecore.EClass;
+
+public class LUWMetaDataExtension extends AbstractMetaDataExtension implements MetaDataExtension {
+
+ public int getMaximumIdentifierLength(SQLObject sqlObject) {
+ int maximumIdentifierLength = 0;
+
+ if (sqlObject instanceof LUWTableSpace) {
+ LUWTableSpace tablespace = (LUWTableSpace)sqlObject;
+ LUWPartitionGroup group = tablespace.getGroup();
+ if (group != null) {
+ Database database = group.getDatabase();
+ if (database != null) {
+ DatabaseDefinition dbDef = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ maximumIdentifierLength = dbDef.getTablespaceMaximumIdentifierLength();
+ }
+ }
+ }
+ else if (sqlObject instanceof LUWIndex) {
+ LUWIndex index = (LUWIndex)sqlObject;
+
+ Schema schema = index.getSchema();
+ if (schema != null) {
+ Database database = ModelHelper.getDatabase(schema);
+ if (database != null) {
+ DatabaseDefinition dbDef = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ String ver = dbDef.getVersion();
+ if (LUWDatabaseRecognizer.VERSION81.equalsIgnoreCase(ver) ||
+ LUWDatabaseRecognizer.VERSION81.equalsIgnoreCase(ver)) {
+ maximumIdentifierLength = 18;
+ }
+ else if (LUWDatabaseRecognizer.VERSION9.equalsIgnoreCase(ver) ||
+ LUWDatabaseRecognizer.VERSION95.equalsIgnoreCase(ver)) {
+ maximumIdentifierLength = 128;
+ }
+ }
+ }
+ }
+ else if (sqlObject instanceof LUWBufferPool) {
+ LUWBufferPool bufferPool = (LUWBufferPool)sqlObject;
+ if (bufferPool != null) {
+ maximumIdentifierLength = 18;
+ }
+ }
+ else if ( sqlObject instanceof DB2Permission ||
+ sqlObject instanceof DB2Mask )
+ {
+ maximumIdentifierLength = 128;
+ }
+
+ return maximumIdentifierLength;
+ }
+
+ //TODO
+ public EClass getMetaClass(String metaClassName){
+ EClass eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier(metaClassName);
+
+ if (eClass == null) {
+ eClass = (EClass)DB2ModelPackage.eINSTANCE.getEClassifier(metaClassName);
+ }
+
+ if (eClass == null) {
+ if (metaClassName.equalsIgnoreCase("MaterializedQueryTable")) { //$NON-NLS-1$
+ eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier("LUWMaterializedQueryTable"); //$NON-NLS-1$
+ }
+ else if (metaClassName.equalsIgnoreCase("Nickname")) { //$NON-NLS-1$
+ eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier("LUWGenericNickname"); //$NON-NLS-1$
+ }
+ else if (metaClassName.equalsIgnoreCase("Tablespace")) { //$NON-NLS-1$
+ eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier("LUWTableSpace"); //$NON-NLS-1$
+ }
+ else if (metaClassName.equalsIgnoreCase("Package")) { //$NON-NLS-1$
+ eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier("LUWDatabasePackage"); //$NON-NLS-1$
+ }
+ else if (metaClassName.equalsIgnoreCase("Module")) { //$NON-NLS-1$
+ eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier("LUWModule"); //$NON-NLS-1$
+ }
+ else if (metaClassName.equalsIgnoreCase("PLSQLPackage")) { //$NON-NLS-1$
+ eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier("PLSQLPackage"); //$NON-NLS-1$
+ }
+ else if (metaClassName.equalsIgnoreCase("GlobalVariable")) { //$NON-NLS-1$
+ eClass = (EClass)LUWPackage.eINSTANCE.getEClassifier("LUWGlobalVariable"); //$NON-NLS-1$
+ }
+ }
+
+ return eClass;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogAlias.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogAlias.java
new file mode 100644
index 0000000..bdd8080
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogAlias.java
@@ -0,0 +1,236 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2AliasImpl;
+import org.eclipse.datatools.enablement.ibm.util.CloneUtil;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogAlias extends DB2AliasImpl implements ICatalogObject,IDatabaseObject {
+ public void refresh() {
+ this.aliasedTableLoaded = false;
+ this.columnsLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ }
+
+ public String getDescription(){
+ if (!this.aliasedTableLoaded) this.loadAliasedTable();
+ return this.description;
+ }
+
+
+ public Table getAliasedTable() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getAliasedTable();
+ } else {
+ if(!this.aliasedTableLoaded) this.loadAliasedTable();
+ return this.aliasedTable;
+ }
+ }
+
+// public EList getColumns() {
+// if (LUWOverwriteStatus.IS_OVERWRITE) {
+// return super.getColumns();
+// } else {
+// if(!this.columnsLoaded) this.loadColumns();
+// return this.columns;
+// }
+// }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == DB2ModelPackage.DB2_ALIAS__DESCRIPTION) {
+ this.getDescription();
+ }
+ else if(id == DB2ModelPackage.DB2_ALIAS__ALIASED_TABLE) {
+ this.getAliasedTable();
+ }
+ else if(id == DB2ModelPackage.DB2_ALIAS__COLUMNS) {
+ this.getColumns();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadAliasedTable() {
+ if(this.aliasedTableLoaded) return;
+ this.aliasedTableLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT BASE_TABSCHEMA, BASE_TABNAME,REMARKS FROM SYSCAT.TABLES" //$NON-NLS-1$
+ + " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "' AND TABNAME='" + LUWUtil.getIdentifier(this.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ r.next();
+ final String aliasedSchemaName = r.getString(1).trim();
+ final String aliasedTableName = r.getString(2);
+ this.setAliasedTable(this.getTable(aliasedSchemaName, aliasedTableName));
+ this.setDescription(r.getString(3));
+
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+// private synchronized void loadColumns() {
+// if(this.columnsLoaded) return;
+// this.columnsLoaded = true;
+//
+// boolean deliver = this.eDeliver();
+// this.eSetDeliver(false);
+//
+// EList columns = super.getColumns();
+// Table table = this.getAliasedTable();
+// for (Iterator iter = table.getColumns().iterator(); iter.hasNext();){
+// Column tabColumn = (Column) iter.next();
+// Column aliasColumn = new LUWCatalogColumn();
+// this.cloneColumn(tabColumn, aliasColumn);
+// columns.add(aliasColumn);
+// }
+//
+// this.eSetDeliver(deliver);
+// }
+
+ private Table getTable(String schemaName, String tableName) {
+ Schema schema = this.getSchema(schemaName);
+ if(schema instanceof LUWCatalogSchema){
+ Table t = ((LUWCatalogSchema)schema).getTable(schemaName,tableName);
+ if (t != null) return t;
+ }
+
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+
+ Table table = new LUWCatalogTable();
+ table.setName(tableName);
+ table.setSchema(schema);
+
+ return table;
+
+
+ }
+ private Schema getSchema(String schemaName) {
+ Schema s = this.getSchema();
+ if(s.getName().equals(schemaName)) return s;
+
+ Database db = s.getDatabase();
+ if (db instanceof LUWCatalogDatabase){
+ s = ((LUWCatalogDatabase)db).getSchema(schemaName);
+ if (s != null) return s;
+ }
+
+ Iterator it = db.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(db);
+
+ if (db instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)db).cacheSchema(schema);
+ }
+
+ return schema;
+
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogTable.getImpactedAlias(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedPackages(connection, this));
+ return impacts;
+ }
+
+ private void cloneColumn(Column src, Column target){
+ target.setName(src.getName());
+ DataType datatype = src.getDataType();
+ if (datatype instanceof SQLDataType) {
+ DataType newDataType = (DataType) CloneUtil.cloneSingleObject(datatype);
+ target.setDataType(newDataType);
+ } else {
+ target.setDataType(datatype);
+ }
+ }
+
+ private boolean aliasedTableLoaded = false;
+ private boolean columnsLoaded = false;
+ private boolean impactsLoaded = false;
+ private Collection impacts = new ArrayList();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogArrayDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogArrayDataType.java
new file mode 100644
index 0000000..20e6208
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogArrayDataType.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl;
+
+public class LUWCatalogArrayDataType extends LUWArrayDataTypeImpl implements ICatalogObject {
+ public void refresh() {
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ }
+
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogAttribute.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogAttribute.java
new file mode 100644
index 0000000..2a11dd7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogAttribute.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAttributeDefinitionImpl;
+
+
+public class LUWCatalogAttribute extends LUWAttributeDefinitionImpl implements ICatalogObject {
+ public void refresh() {
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return ((LUWCatalogStructuredUserDefinedType) this.eContainer()).getCatalogDatabase();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogCheckConstraint.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogCheckConstraint.java
new file mode 100644
index 0000000..2d33076
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogCheckConstraint.java
@@ -0,0 +1,192 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.CheckConstraintImpl;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+
+
+public class LUWCatalogCheckConstraint extends CheckConstraintImpl implements ICatalogObject {
+ public void refresh() {
+ this.loaded = false;
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+ RefreshManager.getInstance().referesh(this);
+
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getBaseTable().getSchema().getDatabase();
+ }
+
+ public SearchCondition getSearchCondition() {
+ if(!this.loaded) this.load();
+ return this.searchCondition;
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLConstraintsPackage.CHECK_CONSTRAINT__SEARCH_CONDITION) {
+ this.getSearchCondition();
+ }
+ else if(id == SQLConstraintsPackage.CHECK_CONSTRAINT__DEPENDENCIES) {
+ this.getDependencies();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogPrimaryKey.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ this.loadDependencies(super.getDependencies());
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void load() {
+ if(this.loaded) return;
+ this.loaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT TEXT FROM SYSCAT.CHECKS" + this.getWhereClause()); //$NON-NLS-1$
+ while(r.next()) {
+ String text = r.getString(1);
+ if (text != null) {
+ //remove un-readable character
+ text = text.replaceAll("[\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000b\u000c\u000e\u000f" +
+ "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f]", " ");
+ }
+ DataModelElementFactory factory = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase()).getDataModelElementFactory();
+ SearchCondition searchCondition = ((SearchCondition) factory.create(SQLExpressionsPackage.eINSTANCE.getSearchConditionDefault()));
+ searchCondition.setSQL(text);
+ this.setSearchCondition(searchCondition);
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private void loadDependencies(EList dependencyList) throws SQLException {
+ final Table table = (Table) this.eContainer();
+ final Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery("SELECT COLNAME FROM SYSCAT.COLCHECKS WHERE CONSTNAME='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(this.getName()) + "' AND TABSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(table.getSchema().getName()) + "' AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ try {
+ while(r.next()) {
+ final String colName = r.getString(1);
+ Column column = this.getColumn(colName);
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(column);
+ dependencyList.add(dep);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ private String getWhereClause() {
+ Table table = this.getBaseTable();
+ return " WHERE CONSTNAME='" + LUWUtil.getIdentifier(this.getName()) + "' AND TABSCHEMA='" + LUWUtil.getIdentifier(this.getBaseTable().getSchema().getName()) //$NON-NLS-1$ //$NON-NLS-2$
+ + "' AND TABNAME='" + LUWUtil.getIdentifier(this.getBaseTable().getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ private Column getColumn(String columnName) {
+ Table table = this.getBaseTable();
+ if (table instanceof LUWCatalogTable) {
+ Column c = ((LUWCatalogTable)table).getColumn(columnName);
+ if (c!= null) return c;
+ }
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ if(c.getName().equals(columnName)) return c;
+ }
+ Column column = new LUWCatalogColumn();
+ column.setName(columnName);
+ column.setTable(table);
+
+ return column;
+ }
+
+
+ private boolean loaded = false;
+ private boolean dependencyLoaded = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogColumn.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogColumn.java
new file mode 100644
index 0000000..e06c268
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogColumn.java
@@ -0,0 +1,447 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogStatistics;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWCatalogMessages;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogColumn extends LUWColumnImpl implements ICatalogObject, IDatabaseObject {
+ public void refresh() {
+ this.identitySpecifierLoaded = false;
+ this.generateExpressionLoaded = false;
+ if (this.optionsLoaded) {
+ this.optionsLoaded = false;
+ this.getOptions().clear();
+ }
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getTable().getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ }
+ }
+
+ public IdentitySpecifier getIdentitySpecifier() {
+ if(!this.identitySpecifierLoaded) this.loadIdentitySpecifier();
+ return this.identitySpecifier;
+ }
+
+ public ValueExpression getGenerateExpression() {
+ if(!this.generateExpressionLoaded) this.loadGenerateExrepression();
+ return this.generateExpression;
+ }
+
+ public EList getOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getOptions();
+ } else {
+ if(!this.optionsLoaded) this.loadOptions();
+ return super.getOptions();
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ ICatalogObject[] objs = new ICatalogObject[0];
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogColumn.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER) {
+ this.getIdentitySpecifier();
+ }
+ else if(id == SQLTablesPackage.COLUMN__GENERATE_EXPRESSION) {
+ this.getGenerateExpression();
+ }
+ else if(id == LUWPackage.LUW_COLUMN__OPTIONS) {
+ this.getOptions();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ public synchronized void loadGenerateExrepression() {
+ if(this.generateExpressionLoaded) return;
+ this.generateExpressionLoaded = true;
+ if (!this.isGenerated) return;
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ final Table table = this.getTable();
+ final Schema schema = table.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery("SELECT TEXT FROM SYSCAT.COLUMNS" //$NON-NLS-1$
+ + " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) //$NON-NLS-1$
+ + "' AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) //$NON-NLS-1$
+ + "' AND COLNAME='" + LUWUtil.getIdentifier(this.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+
+
+ while (r.next()) {
+ String exprValue = r.getString("TEXT"); //$NON-NLS-1$
+ if (exprValue != null && exprValue.length() >0) {
+ ValueExpression expr = (ValueExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getValueExpressionDefault());
+ this.setGenerateExpression(expr);
+ int pos = exprValue.indexOf("AS"); //$NON-NLS-1$
+ if (pos >= 0) {
+ exprValue = exprValue.substring(pos+2).trim();
+ }
+ expr.setSQL(exprValue);
+ }
+
+ }
+ r.close();
+ s.close();
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadIdentitySpecifier() {
+ if(this.identitySpecifierLoaded) return;
+ this.identitySpecifierLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ //the column is identity column
+ if (this.identitySpecifier != null) {
+ LUWCatalogColumn.loadIdentitySpecifier(this.getConnection(), this.identitySpecifier,this);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadIdentitySpecifier(Connection connection, IdentitySpecifier identitySpecifier, Column column) throws SQLException {
+ final Table table = column.getTable();
+ final Schema schema = table.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ String query = "Select INCREMENT,START,MAXVALUE,MINVALUE,CYCLE, CACHE " + //$NON-NLS-1$
+ " FROM SYSCAT.COLIDENTATTRIBUTES" + //$NON-NLS-1$
+ " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND TABNAME= '" + LUWUtil.getIdentifier(table.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND COLNAME ='" + LUWUtil.getIdentifier(column.getName()) + "'" ; //$NON-NLS-1$ //$NON-NLS-2$
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ DB2IdentitySpecifier identity = (DB2IdentitySpecifier)identitySpecifier;
+ identity.setIncrement(r.getBigDecimal("INCREMENT").toBigInteger()); //$NON-NLS-1$
+ identity.setStartValue(r.getBigDecimal("START").toBigInteger()); //$NON-NLS-1$
+ identity.setMinimum(r.getBigDecimal("MINVALUE").toBigInteger()); //$NON-NLS-1$
+ identity.setMaximum(r.getBigDecimal("MAXVALUE").toBigInteger()); //$NON-NLS-1$
+ identity.setCache(r.getInt("CACHE")); //$NON-NLS-1$
+
+ if (r.getString("CYCLE").trim().equals("Y")){ //$NON-NLS-1$ //$NON-NLS-2$
+ identitySpecifier.setCycleOption(true);
+ }else {
+ identitySpecifier.setCycleOption(false);
+ }
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+
+ private synchronized void loadOptions() {
+ if(this.optionsLoaded) return;
+ this.optionsLoaded = true;
+ EList options = super.getOptions();
+
+ Table table = this.getTable();
+ if (!(table instanceof LUWNickname)) return; //only nickname column has option
+
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ String query = "SELECT OPTION, SETTING FROM SYSCAT.COLOPTIONS WHERE TABSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(this.getTable().getSchema().getName()) + "' AND TABNAME='" + LUWUtil.getIdentifier(this.getTable().getName()) //$NON-NLS-1$
+ + "' AND COLNAME='" + LUWUtil.getIdentifier(this.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+ final String name = r.getString(1);
+ final String value = r.getString(2);
+ LUWOption option = LUWFactory.eINSTANCE.createLUWOption();
+ option.setName(name);
+ option.setValue(value);
+ options.add(option);
+ }
+ }
+ catch (Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static Collection getStatistics(Connection connection, Column column){
+ Collection statistics = new ArrayList();
+ statistics.addAll(getColumnStatistics(connection,column));
+ statistics.addAll(getDistributeStatistics(connection,column));
+ return statistics;
+ }
+ public static Collection getColumnStatistics(Connection connection, Column column){
+ Collection statistics = new ArrayList();
+ try {
+ Table table = column.getTable();
+ Schema schema = table.getSchema();
+
+ String query = "SELECT COLCARD,HIGH2KEY,LOW2KEY,AVGCOLLEN, NUMNULLS, SUB_COUNT" +
+ ",SUB_DELIM_LENGTH "+
+ " FROM SYSSTAT.COLUMNS" +
+ " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " AND TABNAME ='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND COLNAME = '" + LUWUtil.getIdentifier(column.getName()) + "'" +
+ " FOR FETCH ONLY";
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ CatalogStatistics stats = null;
+ final BigInteger card = r.getBigDecimal("COLCARD").toBigInteger();
+ if (card.intValue() != -1) {
+ stats = new CatalogStatistics("COLCARD",LUWCatalogMessages.STAT_COL_CARD,LUWCatalogMessages.STAT_COL_CARD_DES,card,"SYSSTAT.COLUMNS");
+ statistics.add(stats);
+ }
+
+ DataType datatype = column.getDataType();
+ boolean isBinaryData = false;
+ if (datatype instanceof PredefinedDataType) {
+ PredefinedDataType type = (PredefinedDataType)datatype;
+ if (type.getPrimitiveType() == PrimitiveType.BINARY_LITERAL
+ || type.getPrimitiveType() == PrimitiveType.BINARY_VARYING_LITERAL) {
+ isBinaryData = true;
+ }
+
+ }
+
+ if (isBinaryData){
+ } else {
+ final String high2key = r.getString("HIGH2KEY");
+ final String low2key = r.getString("LOW2KEY");
+ boolean hasKeyValue = (high2key != null && !high2key.trim().equals("")
+ && low2key != null && !low2key.trim().equals("")
+ && !high2key.equals(low2key));
+
+ if (!"".equals(high2key)) {
+ stats = new CatalogStatistics("HIGH2KEY",LUWCatalogMessages.STAT_HIGH2KEY,LUWCatalogMessages.STAT_HIGH2KEY_DES,LUWUtil.getSingleQuotedString(high2key),hasKeyValue ? "SYSSTAT.COLUMNS":"" );
+ statistics.add(stats);
+ }
+
+ if (!"".equals(low2key)) {
+ stats = new CatalogStatistics("LOW2KEY",LUWCatalogMessages.STAT_LOW2KEY,LUWCatalogMessages.STAT_LOW2KEY_DES,LUWUtil.getSingleQuotedString(low2key),hasKeyValue ? "SYSSTAT.COLUMNS":"");
+ statistics.add(stats);
+ }
+
+ final int avgLen = r.getInt("AVGCOLLEN");
+ if (avgLen != -1) {
+ stats = new CatalogStatistics("AVGCOLLEN",LUWCatalogMessages.STAT_AVG_COLLEN,LUWCatalogMessages.STAT_AVG_COLLEN_DES,avgLen,"SYSSTAT.COLUMNS");
+ statistics.add(stats);
+ }
+
+ }
+ final BigInteger numNulls = r.getBigDecimal("NUMNULLS").toBigInteger();;
+ if (numNulls.intValue() != -1) {
+ stats = new CatalogStatistics("NUMNULLS",LUWCatalogMessages.STAT_NUMNULLS,LUWCatalogMessages.STAT_NUMNULLS_DES,numNulls,"SYSSTAT.COLUMNS");
+ statistics.add(stats);
+ }
+
+ final int subCount = r.getInt("SUB_COUNT");
+ if (subCount != -1) {
+ stats = new CatalogStatistics("SUB_COUNT",LUWCatalogMessages.STAT_SUB_COUNT,LUWCatalogMessages.STAT_SUB_COUNT_DES,subCount,"SYSSTAT.COLUMNS");
+ statistics.add(stats);
+ }
+
+ final int subDelimLen = r.getInt("SUB_DELIM_LENGTH");
+ if (subDelimLen != -1) {
+ stats = new CatalogStatistics("SUB_DELIM_LENGTH",LUWCatalogMessages.STAT_SUB_DELIM_LENGTH,LUWCatalogMessages.STAT_SUB_DELIM_LENGTH_DES,subDelimLen,"SYSSTAT.COLUMNS");
+ statistics.add(stats);
+ }
+
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return statistics;
+ }
+
+ public static Collection getDistributeStatistics(Connection connection, Column column){
+ Collection statistics = new ArrayList();
+ Collection distStat = new ArrayList();
+ Collection typeGroup = new ArrayList();
+ try {
+ Table table = column.getTable();
+ Schema schema = table.getSchema();
+ int groupNum = 1;
+
+ String query = "SELECT TYPE,SEQNO,COLVALUE,VALCOUNT,DISTCOUNT"+
+ " FROM SYSSTAT.COLDIST" +
+ " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " AND TABNAME ='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND COLNAME = '" + LUWUtil.getIdentifier(column.getName()) + "'" +
+ " AND COLVALUE <>''" +
+ " ORDER BY TYPE" +
+ " FOR FETCH ONLY";
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ CatalogStatistics stats = null;
+ distStat = new ArrayList();
+ final String type = r.getString("TYPE");
+ if (type != null && !type.equals("")) {
+ stats = new CatalogStatistics("TYPE",LUWCatalogMessages.STAT_COLDIST_TYPE,LUWCatalogMessages.STAT_COLDIST_TYPE_DES,type,"");
+ distStat.add(stats);
+ }
+
+ final int seqno = r.getInt("SEQNO");
+ if (seqno != -1 ) {
+ stats = new CatalogStatistics("SEQNO",LUWCatalogMessages.STAT_COLDIST_SEQNO,LUWCatalogMessages.STAT_COLDIST_SEQNO_DES,seqno,"");
+ distStat.add(stats);
+ }
+
+ final String colValue = r.getString("COLVALUE");
+ if (colValue != null && !colValue.equals("")) {
+ stats = new CatalogStatistics("COLVALUE",LUWCatalogMessages.STAT_COLDIST_COLVALUE,LUWCatalogMessages.STAT_COLDIST_COLVALUE_DES,colValue,"SYSSTAT.COLDIST");
+ distStat.add(stats);
+ }
+
+ final BigInteger valueCount = r.getBigDecimal("VALCOUNT").toBigInteger();;
+ if (valueCount.intValue() != -1) {
+ stats = new CatalogStatistics("VALCOUNT",LUWCatalogMessages.STAT_COLDIST_VALCOUNT,LUWCatalogMessages.STAT_COLDIST_VALCOUNT_DES,valueCount,"SYSSTAT.COLDIST");
+ distStat.add(stats);
+ }
+
+ final BigDecimal distColuntValue = r.getBigDecimal("DISTCOUNT");
+ if (distColuntValue != null) {
+ final BigInteger distCount = r.getBigDecimal("DISTCOUNT").toBigInteger();;
+ if (distCount.intValue() != -1) {
+ stats = new CatalogStatistics("DISTCOUNT",LUWCatalogMessages.STAT_COLDIST_DISTCOUNT,LUWCatalogMessages.STAT_COLDIST_DISTCOUNT_DES,distCount,"SYSSTAT.COLDIST");
+ distStat.add(stats);
+ }
+ }
+
+ if (distStat.size() >0 ) {
+ statistics.add(new CatalogStatistics("Distribution " + seqno, MessageFormat.format(LUWCatalogMessages.STAT_COLDIST, new Object[]{new Integer(groupNum++)})
+ ,MessageFormat.format(LUWCatalogMessages.STAT_COLDIST_DES,new Object[]{new Integer(seqno)})
+ ,distStat,"SYSSTAT.COLDIST"));
+
+ }
+
+
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return statistics;
+ }
+
+
+ void setGenerated(boolean isGenerated) {
+ this.isGenerated = isGenerated;
+ }
+
+ private boolean identitySpecifierLoaded = false;
+ private boolean generateExpressionLoaded = false;
+ private boolean optionsLoaded = false;
+ private boolean isGenerated = false;
+ private boolean statisticsLoaded = false;
+
+ private Collection statistics = new ArrayList();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogConstant.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogConstant.java
new file mode 100644
index 0000000..3ce3269
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogConstant.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+public class LUWCatalogConstant {
+
+ //Database
+ public static final String PRIVILEGE_BINADD = "BINDADD"; //$NON-NLS-1$
+ public static final String PRIVILEGE_CONNECT = "CONNECT"; //$NON-NLS-1$
+ public static final String PRIVILEGE_CREATETAB = "CREATETAB"; //$NON-NLS-1$
+ public static final String PRIVILEGE_CREATE_EXTERNAL_ROUTINE = "CREATE_EXTERNAL_ROUTINE"; //$NON-NLS-1$
+ public static final String PRIVILEGE_CREATE_NOT_FENCED_ROUTINE = "CREATE_NOT_FENCED_ROUTINE"; //$NON-NLS-1$
+ public static final String PRIVILEGE_IMPLICIT_SCHEMA = "IMPLICIT_SCHEMA"; //$NON-NLS-1$
+ public static final String PRIVILEGE_DBADM = "DBADM"; //$NON-NLS-1$
+ public static final String PRIVILEGE_LOAD = "LOAD"; //$NON-NLS-1$
+ public static final String PRIVILEGE_QUIESCE_CONNECT = "QUIESCE_CONNECT"; //$NON-NLS-1$
+ public static final String PRIVILEGE_SECADM = "SECADM"; //$NON-NLS-1$
+
+ //schema
+ public static final String PRIVILEGE_ALTERIN = "ALTERIN"; //$NON-NLS-1$
+ public static final String PRIVILEGE_CREATEIN = "CREATEIN"; //$NON-NLS-1$
+ public static final String PRIVILEGE_DROPIN = "DROPIN"; //$NON-NLS-1$
+
+ //Table
+ public static final String PRIVILEGE_ALTER = "ALTER"; //$NON-NLS-1$
+ public static final String PRIVILEGE_CONTROL = "CONTROL"; //$NON-NLS-1$
+ public static final String PRIVILEGE_DELETE = "DELETE"; //$NON-NLS-1$
+ public static final String PRIVILEGE_INDEX = "INDEX"; //$NON-NLS-1$
+ public static final String PRIVILEGE_INSERT = "INSERT"; //$NON-NLS-1$
+ public static final String PRIVILEGE_REFERENCES = "REFERENCES"; //$NON-NLS-1$
+ public static final String PRIVILEGE_SELECT = "SELECT"; //$NON-NLS-1$
+ public static final String PRIVILEGE_UPDATE = "UPDATE"; //$NON-NLS-1$
+
+ //Routine, module/plsqlPackage
+ public static final String PRIVILEGE_EXECUTE = "EXECUTE"; //$NON-NLS-1$
+
+ //SEQUENCE
+ public static final String PRIVILEGE_USAGE = "USAGE"; //$NON-NLS-1$
+
+ //TABLESPACE
+ public static final String PRIVILEGE_USE = "USE"; //$NON-NLS-1$
+
+ //PACKAGFE
+ public static final String PRIVILEGE_BIND = "BIND"; //$NON-NLS-1$
+
+ //Global Variable
+ public static final String PRIVILEGE_READ = "READ"; //$NON-NLS-1$
+ public static final String PRIVILEGE_WRITE = "WRITE"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogCursorDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogCursorDataType.java
new file mode 100644
index 0000000..51411d3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogCursorDataType.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWCursorDataTypeImpl;
+
+public class LUWCatalogCursorDataType extends LUWCursorDataTypeImpl implements ICatalogObject {
+ public void refresh() {
+ this.rowTypeLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ }
+
+ public LUWRowDataType getRowType() {
+ if (!this.rowTypeLoaded) this.loadRowType();
+ return this.rowType;
+ }
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_CURSOR_DATA_TYPE__ROW_TYPE) {
+ this.getRowType();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadRowType() {
+ if(this.rowTypeLoaded) return;
+ this.rowTypeLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+ String query = "SELECT BSCHEMA,BMODULENAME,BNAME" +
+ " FROM SYSCAT.DATATYPEDEP " +
+ " WHERE TYPESCHEMA = '" + LUWUtil.getIdentifier(this.getSchema().getName()) + "'" +
+ " AND TYPENAME = '" + LUWUtil.getIdentifier(this.getName())+"'" +
+ " AND BTYPE ='R'" +
+ " AND TYPEMODULENAME IS NULL";
+
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String schemaName = r.getString("BSCHEMA").trim();
+ final String moduleName = r.getString("BMODULENAME");
+ final String name = r.getString("BNAME").trim();
+
+ LUWRowDataType rowType = this.getLUWRowDataType(this, schemaName, moduleName, name);
+ if (rowType != null) {
+ this.setRowType(rowType);
+ }
+ }
+
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private static LUWRowDataType getLUWRowDataType(UserDefinedType udt, String schemaName,String moduleName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogStructuredUserDefinedType.getSchema(udt, schemaName);
+ if (moduleName != null && !"".equals(moduleName)) {
+ LUWModule module = LUWCatalogCursorDataType.getLUWModue((DB2Schema) schema, moduleName);
+ if (module != null) {
+ Iterator it = module.getModuleObjects().iterator();
+ while(it.hasNext()) {
+ Object obj = it.next();
+ if (obj instanceof LUWRowDataType && ((SQLObject)obj).getName().equals(userDefinedTypeName) )
+ return (LUWRowDataType) obj;
+ }
+ }
+ } else {
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if((userDefinedType instanceof LUWRowDataType) && userDefinedType.getName().equals(userDefinedTypeName))
+ return (LUWRowDataType) userDefinedType;
+ }
+
+ }
+ return null;
+ }
+
+ private static LUWModule getLUWModue(DB2Schema schema, String moduleName) {
+ for (Iterator iter = schema.getModules().iterator(); iter.hasNext();){
+ LUWModule module =(LUWModule)iter.next();
+ if (moduleName.trim().equals(module.getName())) return module;
+ }
+ return null;
+ }
+
+ private boolean rowTypeLoaded = false;
+
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDatabase.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDatabase.java
new file mode 100644
index 0000000..e881731
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDatabase.java
@@ -0,0 +1,1249 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionFilter;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionFilterListener;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.DatabaseConnectionRegistry;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl;
+import org.eclipse.datatools.enablement.ibm.util.IConnectionFilter;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Group;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.User;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogDatabase extends LUWDatabaseImpl implements ICatalogObject {
+ private static StorageProvider storageCatalogProvider = null;
+ private static Vector luwserverProviders = null;
+ private static ModuleCatalogProvider moduleCatalogPovider = null;
+
+ public static StorageProvider getCatalogStorageProvider() {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2.luw", "luwstorageProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ if(extensions.length == 1) {
+ IConfigurationElement[] configElements = extensions[0].getConfigurationElements();
+ try {
+ storageCatalogProvider = (StorageProvider) configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(Exception e) {
+ }
+ }
+ }
+ return storageCatalogProvider;
+ }
+
+ public static Vector getLUWServerCatalogProvider() {
+ Vector providers = new Vector();
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2.luw", "luwserverProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for (int i = 0; i < extensions.length; i++ ) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for (int j = 0; j < configElements.length; j++) {
+ if(configElements[j].getName().equals("provider")) { //$NON-NLS-1$
+ try {
+ LUWServerCatalogProvider provider = (LUWServerCatalogProvider) configElements[j].createExecutableExtension("class"); //$NON-NLS-1$
+ providers.add(provider);
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the LUWServer provider", e); //$NON-NLS-1$
+ RDBCorePlugin.getDefault().getLog().log(status);
+ }
+ break;
+ }
+ }
+ try {
+ }
+ catch(Exception e) {
+ }
+ }
+ }
+ luwserverProviders = providers;
+ return luwserverProviders;
+ }
+
+ public static ModuleCatalogProvider getCatalogModuleProvider() {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2.luw", "moduleProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ if(extensions.length == 1) {
+ IConfigurationElement[] configElements = extensions[0].getConfigurationElements();
+ try {
+ moduleCatalogPovider = (ModuleCatalogProvider) configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(Exception e) {
+ }
+ }
+ }
+ return moduleCatalogPovider;
+ }
+
+ public LUWCatalogDatabase(Connection connection) {
+ if(connection == null) {
+ System.err.println("null connection"); //$NON-NLS-1$
+ throw new RuntimeException();
+ }
+ this.connection = connection;
+
+
+// ((RecoverableConnection)connection).getConnectionInfo().addFilterListener(new FilterListener(this));
+ }
+
+ public synchronized void refresh() {
+ this.schemasLoaded = false;
+ this.partitionGroupLoaded = false;
+ this.bufferpoolLoaded = false;
+ this.wrappersLoaded = false;
+ this.remoteServersLoaded = false;
+ this.tablespaceLoades = false;
+ this.authLoaded = false;
+ this.privilegeLoaded = false;
+ this.propertyLoaded = false;
+ this.containerLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ return this.connection;
+ }
+
+ public Database getCatalogDatabase() {
+ return this;
+ }
+
+ public EList getSchemas() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getSchemas();
+ } else {
+ if(!this.schemasLoaded) this.loadSchemas();
+ return this.schemas;
+ }
+ }
+
+ public EList getServers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getServers();
+ } else {
+ if(!this.remoteServersLoaded) this.loadRemoteServers();
+ return this.servers;
+ }
+ }
+
+ public EList getWrappers() { //@gsauere
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getWrappers();
+ } else {
+ if (!this.wrappersLoaded) this.loadWrappers();
+ return super.getWrappers();
+ }
+ }
+
+ public boolean isFederated() {
+ if(!this.remoteServersLoaded) this.loadRemoteServers();
+ return this.federated;
+ }
+
+ public EList getGroups(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getGroups();
+ } else {
+ if (!this.partitionGroupLoaded) this.loadPartitionGroups();
+ return this.groups;
+ }
+ }
+
+ public EList getBufferpools(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getBufferpools();
+ } else {
+ if (!this.bufferpoolLoaded) this.loadBufferPools();
+ return this.bufferpools;
+ }
+ }
+
+ public EList getTablespaces() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getTablespaces();
+ } else {
+ if (!this.tablespaceLoades) this.loadTablespaces();
+ return this.tablespaces;
+ }
+ }
+
+ public EList getAuthorizationIds() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getAuthorizationIds();
+ } else {
+ if (!this.authLoaded) this.loadAuthorizationIds();
+ return this.authorizationIds;
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public boolean isPartitioned() {
+ if (!this.propertyLoaded) this.loadProperties();
+ return this.partitioned;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_DATABASE__SCHEMAS) {
+ this.getSchemas();
+ }
+ else if(id == LUWPackage.LUW_DATABASE__SERVERS) {
+ this.getServers();
+ }
+ else if(id == LUWPackage.LUW_DATABASE__FEDERATED) {
+ this.getServers();
+ }
+ else if(id == LUWPackage.LUW_DATABASE__GROUPS) {
+ this.getGroups();
+ }
+ else if(id == LUWPackage.LUW_DATABASE__BUFFERPOOLS) {
+ this.getBufferpools();
+ }
+// else if(id == LUWPackage.LUW_DATABASE__TABLESPACES) {
+// this.getTablespaces();
+// }
+ else if(id == LUWPackage.LUW_DATABASE__WRAPPERS) {
+ this.getWrappers();
+ }
+ else if(id == LUWPackage.LUW_DATABASE__AUTHORIZATION_IDS) {
+ this.getAuthorizationIds();
+ }
+ else if(id == LUWPackage.LUW_DATABASE__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ else if(id == LUWPackage.LUW_DATABASE__PARTITIONED) {
+ this.isPartitioned();
+ }
+
+ if (filterListener == null) {
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry
+ .getInstance().getConnectionForDatabase(this);
+ filterListener = new FilterListener(this);
+ connectionInfo.addFilterListener(filterListener);
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadSchemas() {
+ if(this.schemasLoaded) return;
+ this.schemasLoaded = true;
+
+ this.registerFilterListener();
+
+ EList schemaList = super.getSchemas();
+ schemaList.clear();
+
+ this.iniCachedSchema();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(this);
+ ConnectionFilter filter = connectionInfo.getFilter(this.getName()+"::"+ConnectionFilter.SCHEMA_FILTER); //$NON-NLS-1$
+ if (filter == null) { //if schema filter is null, then get default filter
+ filter = connectionInfo.getFilter(ConnectionFilter.SCHEMA_FILTER);
+ }
+
+ String query = "SELECT SCHEMANAME, REMARKS, OWNER FROM SYSCAT.SCHEMATA"; //$NON-NLS-1$
+ if (filter != null) {
+ query += " WHERE " + CatalogLoadUtil.getFilterString(filter.getPredicate(), "rtrim(SCHEMANAME)"); //$NON-NLS-1$
+ }
+
+ //fix for wsdbu00270310 , make the result sorted by the SCHEMANAME
+ query += " ORDER BY SCHEMANAME" ;
+
+ Statement s = this.connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ String schemaName = r.getString(1).trim();
+ String remarks = r.getString(2);
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDescription(remarks);
+
+ final String owner = r.getString(3).trim();
+
+ AuthorizationIdentifier authid = this.getAuthorizationId(this, owner, "U");
+
+ schema.setOwner(authid);
+
+ schemaList.add(schema);
+ this.cacheSchema(schema);
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadRemoteServers() {
+ if(this.remoteServersLoaded) return;
+ this.remoteServersLoaded = true;
+
+ this.registerFilterListener();
+
+ EList remoteServerList = super.getServers();
+ remoteServerList.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ //load LUWServer by extension point
+ this.loadLUWServers(remoteServerList,this);
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(this);
+ ConnectionFilter filter = connectionInfo.getFilter(this.getName()+"::"+ConnectionFilter.REMOTE_SERVER_FILTER); //$NON-NLS-1$
+ if (filter == null) { //if remote server filter is null, then get default filter
+ filter = connectionInfo.getFilter(ConnectionFilter.REMOTE_SERVER_FILTER);
+ }
+
+ String query = "SELECT s.SERVERNAME, s.SERVERTYPE, s.SERVERVERSION, s.REMARKS, s.WRAPNAME " + //@gsauere //$NON-NLS-1$
+ " FROM SYSCAT.SERVERS s, SYSCAT.WRAPPERS w" + //$NON-NLS-1$
+ " WHERE s.WRAPNAME = w.WRAPNAME" + //$NON-NLS-1$
+ " AND w.WRAPTYPE='R'"; //$NON-NLS-1$
+ if (filter != null) {
+ query += " AND " + CatalogLoadUtil.getFilterString(filter.getPredicate(), "SERVERNAME"); //$NON-NLS-1$
+ }
+
+ Statement s = this.connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+ final String serverName = r.getString(1);
+ final String serverType = r.getString(2);
+ final String serverVersion = r.getString(3);
+ final String remarks = r.getString(4);
+ final String wrapperName = r.getString(5); //@gsauere
+ LUWCatalogFederatedServer server = new LUWCatalogFederatedServer();
+ server.setName(serverName);
+ server.setServerType(serverType);
+ server.setServerVersion(serverVersion);
+ server.setDescription(remarks);
+ server.setWrapperName(wrapperName);//@gsauere
+ remoteServerList.add(server);
+ }
+ this.federated = true;
+ }
+ catch (Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPartitionGroups() {
+ if(this.partitionGroupLoaded) return;
+ this.partitionGroupLoaded = true;
+
+ this.registerFilterListener();
+ EList groupList = super.getGroups();
+ groupList.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ StorageProvider provider = getCatalogStorageProvider();
+ if (provider != null){
+ Iterator it = provider.getPartitionGroups(this).iterator();
+ while(it.hasNext()) {
+ LUWPartitionGroup pg = (LUWPartitionGroup) it.next();
+ groupList.add(pg);
+ }
+ }
+
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadBufferPools() {
+ if(this.bufferpoolLoaded) return;
+ this.bufferpoolLoaded = true;
+
+ this.registerFilterListener();
+
+
+ EList bpList = super.getBufferpools();
+ bpList.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ StorageProvider provider = getCatalogStorageProvider();
+ if (provider != null){
+ Iterator it = provider.getBufferPools(this).iterator();
+ while(it.hasNext()) {
+ LUWBufferPool bp = (LUWBufferPool) it.next();
+ bpList.add(bp);
+ }
+ }
+
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ private synchronized void loadTablespaces() {
+ if(this.tablespaceLoades) return;
+ this.tablespaceLoades = true;
+ this.registerFilterListener();
+
+ super.getTablespaces().clear();
+ Connection connection = this.getConnection();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ Iterator it = this.getGroups().iterator();
+ while(it.hasNext()) {
+ LUWPartitionGroup pg = (LUWPartitionGroup) it.next();
+ pg.getTableSpaces();
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadAuthorizationIds() {
+ if(this.authLoaded) return;
+ this.authLoaded = true;
+ this.registerFilterListener();
+
+ EList authList = super.getAuthorizationIds();
+ authList.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ this.cachedAuth.clear();
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this);
+ String version = definition.getVersion();
+ float ver = 9.1f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+
+ String query = "";
+ if (ver < 9.1) {
+ query = "SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.DBAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.SCHEMAAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.TABAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.PACKAGEAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.INDEXAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.COLAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.SEQUENCEAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.ROUTINEAUTH " +
+ "UNION SELECT DISTINCT GRANTEE AS AUTHID, GRANTEETYPE AS AUTHIDTYPE,'' AS REMARKS FROM SYSCAT.PASSTHRUAUTH " +
+ "ORDER BY AUTHID";
+ } else if (ver <9.5){
+ query = "SELECT DISTINCT AUTHID,AUTHIDTYPE,'' AS REMARKS FROM SYSIBMADM.AUTHORIZATIONIDS"; //$NON-NLS-1$
+ } else {
+ query = "SELECT DISTINCT AUTHID,AUTHIDTYPE,'' AS REMARKS FROM SYSIBMADM.AUTHORIZATIONIDS" //$NON-NLS-1$
+ + " UNION SELECT DISTINCT ROLENAME AS AUTHID,'R' AS AUTHIDTYPE, REMARKS FROM SYSCAT.ROLES";
+ }
+ Statement s = this.connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String authid = r.getString("AUTHID").trim();
+ final String authtype = r.getString("AUTHIDTYPE");
+ AuthorizationIdentifier auth = null;
+ if ("G".equals(authtype)) {
+ auth = new LUWCatalogGroup();
+ } else if ("U".equals(authtype)) {
+ auth = new LUWCatalogUser();
+ } else if ("R".equals(authtype)) {
+ auth = (AuthorizationIdentifier) this.cachedAuth.get(authid+ ":" +authtype);
+ if (auth != null && auth instanceof Role){
+ }else{
+ auth = new LUWCatalogRole();
+ }
+ } else {
+ continue;
+ }
+ auth.setName(authid);
+
+ final String remarks = r.getString("REMARKS");
+ auth.setDescription(remarks);
+
+ authList.add(auth);
+ String authkey = authid + ":" + authtype;
+ this.cachedAuth.put(authkey, auth);
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+ this.registerFilterListener();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+ privileges.clear();
+ LUWCatalogDatabase.loadPrivileges(connection, super.getPrivileges(), this,"");
+ }catch( Exception e){
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ private synchronized void loadLUWServers(EList serverList, LUWCatalogDatabase db) {
+ Vector providers = getLUWServerCatalogProvider();
+ for (int i =0; i< providers.size(); i++){
+ LUWServerCatalogProvider provider = (LUWServerCatalogProvider)providers.elementAt(i);
+ Iterator it = provider.getLUWServers(db).iterator();
+ while(it.hasNext()) {
+ LUWServer luwserver = (LUWServer) it.next();
+ serverList.add(luwserver);
+ }
+ }
+ }
+
+ private synchronized void loadWrappers() {
+ if(this.wrappersLoaded) return;
+ this.wrappersLoaded = true;
+ this.registerFilterListener();
+
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ super.getWrappers().clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogDatabase.loadWrappers(this.getConnection(),this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadProperties() {
+ if(this.propertyLoaded) return;
+ this.propertyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ String query = "SELECT COUNT(*) FROM TABLE(DB_PARTITIONS()) AS T";
+ Statement s = this.connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final int num = r.getInt(1);
+ if (num > 1 ) {
+ this.partitioned = true;
+ } else {
+ this.partitioned = false;
+ }
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadWrappers(Connection connection, LUWDatabase database) throws SQLException {
+ EList wrappersList = database.getWrappers();
+ try {
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(database);
+ //ConnectionFilter filter = connectionInfo.getFilter(database.getName()+"::"+ConnectionFilter.WRAPPER_FILTER); //$NON-NLS-1$
+ //if (filter == null) { //if schema filter is null, then get default filter
+ // filter = connectionInfo.getFilter(ConnectionFilter.WRAPPER_FILTER);
+ //}
+
+ String query = "SELECT WRAPNAME, WRAPTYPE, WRAPVERSION, LIBRARY, REMARKS FROM SYSCAT.WRAPPERS"; //$NON-NLS-1$
+ //if (filter != null) {
+ // query += " WHERE rtrim(WRAPNAME) " + filter.getPredicate(); //$NON-NLS-1$
+ //}
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String name = r.getString("WRAPNAME"); //$NON-NLS-1$
+ final String type = r.getString("WRAPTYPE"); //$NON-NLS-1$
+ final String version = r.getString("WRAPVERSION"); //$NON-NLS-1$
+ final String library = r.getString("LIBRARY"); //$NON-NLS-1$
+ final String description = r.getString("REMARKS"); //$NON-NLS-1$
+
+ LUWWrapper wrapper = new LUWCatalogWrapper();
+ int iType = type.equals("R") ? 0 : 1; //$NON-NLS-1$
+ WrapperType wrapperType = WrapperType.get(iType);
+ wrapper.setName(name);
+ wrapper.setWrapperType(wrapperType);
+ wrapper.setVersion(version);
+ wrapper.setLibrary(library);
+ wrapper.setDescription(description);
+ wrappersList.add(wrapper);
+ }
+ } catch (Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void loadPrivileges(Connection connection, EList privileges, Database database,String granteeFilter) throws SQLException {
+ try {
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "";
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ String version = definition.getVersion();
+ float ver = 9.5f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+ if (ver < 9.1) {
+ query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",DBADMAUTH,CREATETABAUTH,BINDADDAUTH,CONNECTAUTH,NOFENCEAUTH" +
+ ",IMPLSCHEMAAUTH,LOADAUTH,EXTERNALROUTINEAUTH,QUIESCECONNECTAUTH,'N' AS SECURITYADMAUTH" +
+ " FROM SYSCAT.DBAUTH";
+ } else {
+ query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",DBADMAUTH,CREATETABAUTH,BINDADDAUTH,CONNECTAUTH,NOFENCEAUTH" +
+ ",IMPLSCHEMAAUTH,LOADAUTH,EXTERNALROUTINEAUTH,QUIESCECONNECTAUTH,SECURITYADMAUTH" +
+ " FROM SYSCAT.DBAUTH";
+ }
+
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " WHERE " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ String userName = connection.getMetaData().getUserName();
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ }
+ else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+
+ LUWCatalogPrivilege privilege = null;
+ EClass metaclass = SQLAccessControlPackage.eINSTANCE.getPrivilege();
+ boolean isSystemGranted = granteeId.equalsIgnoreCase(userName);
+ String auth = r.getString("DBADMAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_DBADM);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ auth = r.getString("CREATETABAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CREATETAB);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ auth = r.getString("BINDADDAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_BINADD);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ auth = r.getString("CONNECTAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CONNECT);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ auth = r.getString("NOFENCEAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CREATE_NOT_FENCED_ROUTINE);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ auth = r.getString("IMPLSCHEMAAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_IMPLICIT_SCHEMA);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ auth = r.getString("LOADAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_LOAD);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ auth = r.getString("EXTERNALROUTINEAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CREATE_EXTERNAL_ROUTINE);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ auth = r.getString("QUIESCECONNECTAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_QUIESCE_CONNECT);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ auth = r.getString("SECURITYADMAUTH");
+ if (auth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_SECADM);
+ privileges.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
+ public boolean isBatchLoad(){
+ try {
+ for (Iterator iter = this.getEAnnotations().iterator(); iter.hasNext();){
+ EAnnotation eAnnotation = (EAnnotation)iter.next();
+ String source = eAnnotation.getSource();
+ if (source != null && source.equals(DatabaseREProvider.LOAD_PROPERTY)){
+ String batchLoadStr = (String) eAnnotation.getDetails().get(DatabaseREProvider.IS_BATCH_LOAD);
+ return new Boolean(batchLoadStr).booleanValue();
+ }
+ }
+ } catch(Exception e){
+
+ }
+ return false;
+ }
+
+ public int getLoadOptions(){
+ try {
+ for (Iterator iter = this.getEAnnotations().iterator(); iter.hasNext();){
+ EAnnotation eAnnotation = (EAnnotation)iter.next();
+ String source = eAnnotation.getSource();
+ if (source != null && source.equals(DatabaseREProvider.LOAD_PROPERTY)){
+ String loadOption = (String) eAnnotation.getDetails().get(DatabaseREProvider.LOAD_OPTIONS);
+ return new Integer(loadOption).intValue();
+ }
+ }
+ }catch(Exception e){
+ }
+
+ return 0;
+ }
+
+ public Collection getDatabaseContainer(String tablespaceName) {
+ if (!containerLoaded || this.cachedContainer == null) {
+ this.cachedContainer = new HashMap<String, List<LUWDatabaseContainer>>();
+ this.containerLoaded = true;
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ try {
+ String query = "select distinct TABLESPACE_NAME, CONTAINER_NAME, CONTAINER_TYPE, TOTAL_PAGES " + //$NON-NLS-1$
+ " from TABLE (SYSPROC.SNAPSHOT_CONTAINER ( '' , -2)) AS S"; //$NON-NLS-1$
+ Statement s = this.connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ while(r.next()) {
+ LUWDatabaseContainer container = (LUWDatabaseContainer) factory.create(LUWPackage.eINSTANCE.getLUWDatabaseContainer());
+
+ final String tspName = r.getString("TABLESPACE_NAME").trim();
+
+ final String name = r.getString("CONTAINER_NAME").trim(); //$NON-NLS-1$
+ container.setName(name);
+
+ int containerType = r.getInt("CONTAINER_TYPE");
+ if(containerType == 0) // SMS: Directory
+ {
+ container.setContainerType(LUWContainerType.DIRECTORY_LITERAL);
+ } else if (containerType == 1 || containerType == 5) { //DMS: Device
+ container.setContainerType(LUWContainerType.DEVICE_LITERAL);
+ } else { //DMS: File
+ container.setContainerType(LUWContainerType.FILE_LITERAL);
+ }
+
+ container.setSizeInPages(r.getInt("TOTAL_PAGES")); //$NON-NLS-1$
+
+ if (!this.cachedContainer.containsKey(tspName)) {
+ ArrayList list = new ArrayList();
+ list.add(container);
+ this.cachedContainer.put(tspName, list);
+ } else {
+ ArrayList list = (ArrayList)this.cachedContainer.get(tspName);
+ list.add(container);
+ }
+ }
+ r.close();
+ s.close();
+
+ // Update the tablespaces/containers with partition info
+ loadContainerPartitions();
+ }
+ catch(SQLException e)
+ {
+ }
+ }
+ return (ArrayList) this.cachedContainer.get(tablespaceName);
+ }
+
+ private void loadContainerPartitions() throws SQLException {
+ // Map partition number to partition object
+ Map<Integer, LUWDatabasePartition> partnmap = new HashMap<Integer, LUWDatabasePartition>();
+ List<Object> pgroups = getGroups();
+ for ( Object o : pgroups ) {
+ LUWPartitionGroup pgroup = (LUWPartitionGroup)o;
+
+ if (pgroup.getName().equals( "IBMDEFAULTGROUP" )) { //$NON-NLS-1$
+ for ( Object p : pgroup.getPartitions() ) {
+ LUWDatabasePartition partn = (LUWDatabasePartition)p;
+
+ partnmap.put( partn.getNumber(), partn );
+ }
+ }
+ }
+
+ // Map partition number to associated tablespace name(s)
+ Map<Integer, Collection<String>> tbspmap = getTablespacePartitionMap();
+
+ if ( tbspmap.isEmpty() ) {
+ return;
+ }
+
+ for ( Integer pnum : tbspmap.keySet() ) {
+ String query = "select TABLESPACE_NAME, CONTAINER_NAME " + //$NON-NLS-1$
+ " from TABLE (SYSPROC.SNAPSHOT_CONTAINER ( '' , " + //$NON-NLS-1$
+ pnum.toString() +
+ ")) AS S" + //$NON-NLS-1$
+ " order by TABLESPACE_NAME"; //$NON-NLS-1$
+
+ LUWDatabasePartition partn = partnmap.get( pnum );
+ if (partn == null) {
+ continue;
+ }
+
+ try {
+ Statement s = this.connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ while(r.next()) {
+ final String cname = r.getString("CONTAINER_NAME").trim(); //$NON-NLS-1$
+ final String tsname = r.getString("TABLESPACE_NAME").trim(); //$NON-NLS-1$
+
+ List<LUWDatabaseContainer> containers = this.cachedContainer.get( tsname );
+
+ if (containers != null) {
+ for ( LUWDatabaseContainer container : containers ) {
+ if (container.getName().equals( cname )) {
+ container.getPartitions().add( partn );
+ }
+ }
+ }
+ }
+
+ r.close();
+ s.close();
+ }
+ catch(SQLException e)
+ {
+ }
+ }
+ }
+
+ /**
+ * Get a map from partition number to names of tablespaces whose containers
+ * reference the partition
+ *
+ * @return The map
+ * @throws SQLException
+ */
+ private Map<Integer, Collection<String>> getTablespacePartitionMap() throws SQLException {
+ String query = "select DBPARTITIONNUM, TBSP_NAME" + //$NON-NLS-1$
+ " from SYSIBMADM.SNAPTBSP_PART" + //$NON-NLS-1$
+ " order by DBPARTITIONNUM"; //$NON-NLS-1$
+
+ Statement s = this.connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ Map<Integer, Collection<String>> pmap = new HashMap<Integer, Collection<String>>();
+
+ try {
+ int curpartnum = -1;
+ List<String> names = null;
+
+ while(r.next()) {
+ int pnum = r.getInt( "DBPARTITIONNUM" );
+ String tsname = r.getString( "TBSP_NAME" ).trim();
+
+ if ( pnum != curpartnum ) {
+ curpartnum = pnum;
+ names = new ArrayList<String>();
+ pmap.put( new Integer( pnum ), names );
+ }
+
+ names.add( tsname );
+ }
+ }
+ catch(SQLException e)
+ {
+ // Go on
+ }
+
+ r.close();
+ s.close();
+
+ return pmap;
+ }
+
+ public Schema getSchema(String schemaName){
+ if (! this.schemasLoaded) this.getSchemas();
+ return (Schema) this.cachedSchema.get(schemaName);
+ }
+
+ protected void cacheSchema(Schema schema){
+ this.cachedSchema.put(schema.getName(),schema);
+ }
+
+ private void iniCachedSchema(){
+ this.cachedSchema = new HashMap();
+ }
+
+ /*private AuthorizationIdentifier getAuthId(String authId){
+ if (! this.authLoaded) this.getAuthorizationIds();
+ return (AuthorizationIdentifier) this.cachedAuth.get(authId);
+ }
+ */
+
+
+ private AuthorizationIdentifier getAuthId( String authId) {
+ if ( !this.authLoaded )
+ this.getAuthorizationIds();
+ return (AuthorizationIdentifier) this.cachedAuth.get( authId );
+ }
+
+
+
+ private AuthorizationIdentifier getAuthId(String authId, String authType){
+ if (! this.authLoaded) this.getAuthorizationIds();
+ if (authType == null) {
+ return (AuthorizationIdentifier) this.cachedAuth.get(authId);
+ }
+ else {
+ String authkey = authId + ":" + authType;
+ return (AuthorizationIdentifier) this.cachedAuth.get(authkey);
+ }
+ }
+
+ private void cacheAuth(AuthorizationIdentifier authId){
+ this.cachedAuth.put(authId.getName(),authId);
+ }
+
+ private void iniCachedAuth(){
+ this.cachedAuth = new HashMap();
+ }
+
+ public static AuthorizationIdentifier getAuthorizationId(Database db,String name, String type){
+ AuthorizationIdentifier auth = null;
+ if (db instanceof LUWCatalogDatabase) {
+ if(type==null){
+ auth = ((LUWCatalogDatabase)db).getAuthId(name);
+
+ }
+ else {
+ auth = ((LUWCatalogDatabase)db).getAuthId(name,type);}
+
+ if (auth != null ) {
+ if ("G".equals(type) && auth instanceof Group){
+ return auth;
+ } else if ("U".equals(type) && auth instanceof User){
+ return auth;
+ } else if ("R".equals(type) && auth instanceof Role){
+ return auth;
+ } else {
+ return auth;
+
+ }
+ }
+ }
+
+ Iterator it = db.getAuthorizationIds().iterator();
+ while(it.hasNext()) {
+ auth = (AuthorizationIdentifier) it.next();
+ if(auth.getName().equals(name)) {
+ if ("G".equals(type) && auth instanceof Group){
+ return auth;
+ } else if ("U".equals(type) && auth instanceof User){
+ return auth;
+ } else if ("R".equals(type) && auth instanceof Role){
+ return auth;
+ } else {
+ return auth;
+ }
+ }
+ }
+
+ if ("G".equals(type)){
+ auth = new LUWCatalogGroup();
+ } else if ("U".equals(type)){
+ auth = new LUWCatalogUser();
+ } else if ("R".equals(type)){
+ auth = new LUWCatalogRole();
+ }
+
+ auth.setName(name);
+ auth.setDatabase(db);
+
+ return auth;
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogDatabase.loadPrivileges(connection, privileges, this,granteeFilter);
+ }catch( Exception e){
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private void registerFilterListener(){
+ if (filterListener == null) {
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry
+ .getInstance().getConnectionForDatabase(this);
+ filterListener = new FilterListener(this);
+
+ connectionInfo.addFilterListener(filterListener);
+ }
+
+ }
+
+ private class FilterListener implements ConnectionFilterListener{
+ FilterListener(LUWCatalogDatabase db){
+ this.db= db;
+ }
+
+ public void connectionFilterAdded(String filterKey){
+ this.handleFilterUpdate(filterKey);
+ }
+ public void connectionFilterRemoved(String filterKey){
+ this.handleFilterUpdate(filterKey);
+ }
+
+ private void handleFilterUpdate (String filterKey){
+ if (filterKey.indexOf(ConnectionFilter.SCHEMA_FILTER)>=0
+ //|| filterKey.indexOf(ConnectionFilter.WRAPPER_FILTER)>=0
+ //|| filterKey.indexOf(ConnectionFilter.SERVER_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.NICKNAME_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.REMOTE_SERVER_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.REMOTE_SERVER_FILTER)>=0
+ || filterKey.indexOf(IConnectionFilter.TABLESPACE_FILTER)>=0) {
+ this.db.refresh();
+ } else if (filterKey.indexOf(ConnectionFilter.TABLE_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.VIEW_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.ALIAS_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.MQT_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.SEQUENCE_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.STORED_PROCEDURE_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.USER_DEFINED_FUNCTION_FILTER)>=0
+ || filterKey.indexOf(ConnectionFilter.USER_DEFINED_TYPE_FILTER)>=0
+ || filterKey.indexOf(IConnectionFilter.MODULE_FILTER)>=0
+ || filterKey.indexOf(IConnectionFilter.PLSQL_PACKAGE_FILTER)>=0) {
+
+// ICatalogObject schema = (ICatalogObject) db.getSchema(filterKey.substring(0,filterKey.indexOf(ConnectionFilter.FILTER_SEPARATOR)));
+// if (schema != null) schema.refresh();
+ if(filterKey.indexOf(ConnectionFilter.FILTER_SEPARATOR)>0){
+ ICatalogObject schema = (ICatalogObject) db.getSchema(filterKey.substring(0,filterKey.indexOf(ConnectionFilter.FILTER_SEPARATOR)));
+ if (schema != null) schema.refresh();
+ }else{
+ this.db.refresh();
+ }
+ }
+ }
+ private LUWCatalogDatabase db;
+
+ }
+
+
+ protected Connection connection;
+ private boolean schemasLoaded = false;
+ private boolean wrappersLoaded = false;
+ private boolean remoteServersLoaded = false;
+ private boolean partitionGroupLoaded = false;
+ private boolean bufferpoolLoaded = false;
+ private boolean tablespaceLoades = false;
+ private boolean authLoaded = false;
+ private boolean privilegeLoaded = false;
+ private HashMap cachedSchema = new HashMap();
+ private HashMap cachedAuth = new HashMap();
+ private FilterListener filterListener = null;
+ private Map<String, List<LUWDatabaseContainer>> cachedContainer = null;
+ private boolean propertyLoaded = false;
+ private boolean containerLoaded = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDatabasePackage.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDatabasePackage.java
new file mode 100644
index 0000000..dcb815d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDatabasePackage.java
@@ -0,0 +1,423 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogDatabasePackage extends LUWDatabasePackageImpl implements ICatalogObject,IDatabaseObject {
+ public void refresh() {
+ this.privilegeLoaded = false;
+ this.statementLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+ public EList getPrivileges(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+ public EList getStatements() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getStatements();
+ } else {
+ if (!this.statementLoaded) this.loadStatements();
+ return this.statements;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_DATABASE_PACKAGE__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ else if(id == LUWPackage.LUW_DATABASE_PACKAGE__STATEMENTS) {
+ this.getStatements();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+ LUWCatalogDatabasePackage.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadStatements() {
+ if(this.statementLoaded) return;
+ this.statementLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogDatabasePackage.loadStatements(this.getConnection(),super.getStatements(), this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ public static void loadPrivileges(Connection connection, EList privilegeList,DB2Package pkg, String granteeFilter) throws SQLException {
+ final Schema schema = pkg.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",CONTROLAUTH,BINDAUTH,EXECUTEAUTH" +
+ " FROM SYSCAT.PACKAGEAUTH" +
+ " WHERE GRANTOR <> GRANTEE " +
+ " AND PKGSCHEMA='" + LUWUtil.getIdentifier(pkg.getSchema().getName()) + "'" +
+ " AND PKGNAME='" + LUWUtil.getIdentifier(pkg.getName()) + "'";
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " AND " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ String userName = connection.getMetaData().getUserName();
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+
+ LUWCatalogPrivilege privilege = null;
+ boolean isSystemGranted = granteeId.equalsIgnoreCase(userName);
+ final String controlAuth = r.getString("CONTROLAUTH");
+ if (controlAuth.equals("Y")) {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CONTROL);
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String bindAuth = r.getString("BINDAUTH");
+ if (bindAuth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_BIND);
+ if (bindAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String executeAuth = r.getString("EXECUTEAUTH");
+ if (executeAuth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_EXECUTE);
+ if (executeAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static void loadStatements(Connection connection, EList statements,DB2Package pkg) throws SQLException {
+ final Schema schema = pkg.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Statement s = connection.createStatement();
+ String query = "SELECT STMTNO, SECTNO, TEXT" +
+ " FROM SYSCAT.STATEMENTS" +
+ " WHERE PKGSCHEMA='" + LUWUtil.getIdentifier(pkg.getSchema().getName()) + "'" +
+ " AND PKGNAME='" + LUWUtil.getIdentifier(pkg.getName()) + "'" +
+ (pkg.getVersion().length() > 0 ? (" AND VERSION='" + LUWUtil.getIdentifier(pkg.getVersion()) + "'") : " AND VERSION = ''") +
+ " ORDER BY STMTNO" +
+ " FOR FETCH ONLY WITH UR";
+
+ ResultSet r = s.executeQuery(query);
+ while (r.next()) {
+ DB2PackageStatement pkgstmt = (DB2PackageStatement) factory.create(DB2ModelPackage.eINSTANCE.getDB2PackageStatement());
+ final int pkgStmtNo = r.getInt("STMTNO");
+ pkgstmt.setStatementNumber(pkgStmtNo);
+
+ final int pkgSectNo = r.getInt("SECTNO");
+ pkgstmt.setSectionNumber(pkgSectNo);
+
+ final String pkgText = r.getString("TEXT").trim();
+ SQLStatement sqlstate = (SQLStatement) factory.create(SQLStatementsPackage.eINSTANCE.getSQLStatementDefault());
+ ((SQLStatementDefault)sqlstate).setSQL(pkgText);
+ pkgstmt.setSqlStatement(sqlstate);
+
+ statements.add(pkgstmt);
+ }
+
+ r.close();
+ s.close();
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogDatabasePackage.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogDatabasePackage.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogDatabasePackage.getImpactedTriggers(connection, this));
+ return impacts;
+ }
+
+ protected static Collection getImpactedRoutines(Connection connection, DB2Package db2package) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT ROUTINENAME, ROUTINESCHEMA" +
+ " FROM SYSCAT.ROUTINEDEP" +
+ " WHERE BTYPE = 'K'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(db2package.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(db2package.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String routineName = r.getString("ROUTINENAME").trim();
+ final String schemaName = r.getString("ROUTINESCHEMA").trim();
+ Routine routine = LUWCatalogDatabasePackage.getRountine(db2package, schemaName, routineName);
+ if (routine != null) {
+ impacts.add(routine);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedTriggers(Connection connection, DB2Package db2package) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+
+ String query = "SELECT DISTINCT A.TABSCHEMA, A.TABNAME, A.TRIGNAME" +
+ " FROM SYSCAT.TRIGGERS A, SYSCAT.TRIGDEP B" +
+ " WHERE (B.BNAME='" + LUWUtil.getIdentifier(db2package.getName()) + "'" +
+ " AND B.BSCHEMA='" + LUWUtil.getIdentifier(db2package.getSchema().getName()) + "'" +
+ " AND BTYPE ='K'" +
+ " AND A.TRIGNAME=B.TRIGNAME" +
+ " AND A.TRIGSCHEMA=B.TRIGSCHEMA)" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String trigName = r.getString("TRIGNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Trigger trigger = LUWCatalogDatabasePackage.getTrigger(db2package, schemaName, tabName,trigName);
+ if (trigger != null) {
+ impacts.add(trigger);
+ }
+ }
+ r.close();
+ s.close();
+
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ public static Schema getSchema(DB2Package pkg, String schemaName) {
+ Schema s = pkg.getSchema();
+ if(s.getName().equals(schemaName)) return s;
+ Database db = s.getDatabase();
+ if (db instanceof LUWCatalogDatabase){
+ s = ((LUWCatalogDatabase)db).getSchema(schemaName);
+ if (s != null) return s;
+ }
+ Iterator it = db.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(db);
+
+ if (db instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)db).cacheSchema(schema);
+ }
+
+ return schema;
+ }
+
+ public static Table getTable(DB2Package pkg, String schemaName, String tableName) {
+ Schema schema = LUWCatalogDatabasePackage.getSchema(pkg, schemaName);
+ if(schema instanceof LUWCatalogSchema){
+ Table t = ((LUWCatalogSchema)schema).getTable(schemaName,tableName);
+ if (t != null) return t;
+ }
+
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+
+ return null;
+
+ }
+
+ public static Routine getRountine(DB2Package pkg, String schemaName, String specificName) {
+ Schema schema = LUWCatalogDatabasePackage.getSchema(pkg, schemaName);
+ Iterator it = schema.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine r = (Routine) it.next();
+ if(specificName.equals(r.getSpecificName())) return r;
+ }
+ return null;
+ }
+
+ public static Trigger getTrigger(DB2Package pkg, String schemaName, String tabName, String triggerName) {
+ Table table = LUWCatalogDatabasePackage.getTable(pkg, schemaName,tabName);
+ if (table != null) {
+ Iterator it = table.getTriggers().iterator();
+ while(it.hasNext()) {
+ Trigger r = (Trigger) it.next();
+ if(r.getName().equals(triggerName)) return r;
+ }
+ }
+ return null;
+ }
+
+ private boolean privilegeLoaded = false;
+ private boolean statementLoaded = false;
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+ private boolean impactsLoaded = false;
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDistinctUserDefinedType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDistinctUserDefinedType.java
new file mode 100644
index 0000000..eace09e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogDistinctUserDefinedType.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+public class LUWCatalogDistinctUserDefinedType extends DistinctUserDefinedTypeImpl implements ICatalogObject,IDatabaseObject {
+ public void refresh() {
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ }
+
+ public ICatalogObject[] getImpacted(){
+ Collection impacts = this.getImpactedObjects();
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedConstraints(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedPackages(connection, this));
+
+ return impacts;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedParameter.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedParameter.java
new file mode 100644
index 0000000..6ea5801
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedParameter.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl;
+
+public class LUWCatalogFederatedParameter extends FederatedParameterImpl implements ICatalogObject{
+
+ public void refresh() {
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getRoutine().getSchema().getDatabase();
+ }
+
+ static public void loadParameterOptions(Connection connection, LUWCatalogFederatedParameter parameter,
+ int routineID, int ordinal){
+
+ String query="SELECT ORDINAL, OPTION, SETTING" + //$NON-NLS-1$
+ " FROM SYSIBM.SYSROUTINEPARMOPTIONS" + //$NON-NLS-1$
+ " WHERE ROUTINEID=" + routineID + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND ORDINAL=" + ordinal ; //$NON-NLS-1$
+
+ try {
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ String option = r.getString("OPTION");
+ String setting = r.getString("SETTING");
+
+
+ if(option.equals("REMOTE_PARM_NAME")){
+ parameter.setName(setting);
+ }else if (option.equals("REMOTE_PARM_TYPESCHEMA")){
+ parameter.setRemoteParamTypeSchema(setting);
+ }else if (option.equals("REMOTE_PARM_TYPENAME")){
+ parameter.setRemoteParamTypeName(setting);
+ }else if (option.equals("REMOTE_PARM_SCALE")){
+ parameter.setRemoteRemoteParamScale(Integer.decode(setting).intValue());
+ }else if (option.equals("REMOTE_PARM_LENGTH")){
+ parameter.setRemoteRemoteParamLength(Integer.decode(setting).intValue());
+ }else if (option.equals("REMOTE_CODEPAGE")){
+ parameter.setRemoteCodePage(Integer.decode(setting).intValue());
+ }else if (option.equals("REMOTE_PARM_IS_RETURN_VALUE")){
+ parameter.setRemoteParamIsReturnValue(setting);
+ }else if (option.equals("REMOTE_PARM_TYPE_ID")){
+ parameter.setRemoteParamTypeID(Integer.decode(setting).intValue());
+ }
+ }
+
+ }catch(Exception e){
+// DB2LUWPlugin.getDefault().log("LUWCatalogFederatedParameter:loadParameterOptions: " + e.getMessage(), null); //$NON-NLS-1$
+ }
+
+ }
+
+ private void setRemoteParamTypeName(String setting) {
+ remoteParamTypeName = setting;
+ }
+
+ private void setRemoteParamIsReturnValue(String setting) {
+ if(setting.equals("Y")){
+ setRemoteParamIsReturnValue(true);
+ }
+ }
+
+ private void setRemoteParamIsReturnValue(boolean setting) {
+ remoteParamIsReturnValue = setting;
+ }
+
+ private void setRemoteRemoteParamLength(int setting) {
+ remoteRemoteParamLength = setting;
+ }
+
+ private void setRemoteRemoteParamScale(int setting) {
+ remoteRemoteParamScale = setting;
+ }
+
+ private void setRemoteParamTypeSchema(String setting) {
+ remoteParamTypeSchema = setting;
+ }
+
+ public String getRemoteParamTypeName() {
+ return remoteParamTypeName;
+ }
+
+ public boolean getRemoteParamIsReturnValue() {
+ return remoteParamIsReturnValue;
+ }
+
+ public int getRemoteRemoteParamLength() {
+ return remoteRemoteParamLength;
+ }
+
+ public int getRemoteRemoteParamScale() {
+ return remoteRemoteParamScale;
+ }
+
+ public String getRemoteParamTypeSchema() {
+ return remoteParamTypeSchema;
+ }
+
+ boolean remoteParamIsReturnValue=false;
+ int remoteRemoteParamLength=0;
+ int remoteRemoteParamScale=0;
+ String remoteParamTypeName = "";
+ String remoteParamTypeSchema = "";
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedProcedure.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedProcedure.java
new file mode 100644
index 0000000..e1f6dd4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedProcedure.java
@@ -0,0 +1,606 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.math.BigInteger;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogStatistics;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWCatalogMessages;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogFederatedProcedure extends FederatedProcedureImpl implements ICatalogObject,IDatabaseObject{
+ public void refresh() {
+ this.loaded = false;
+ if (this.parameterLoaded){
+ this.parameters.clear();
+ this.parameterLoaded = false;
+ }
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogProcedure.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedConstraints(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedPackages(connection, this));
+ return impacts;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogFederatedProcedure.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public static Collection getStatistics(Connection connection, Routine routine){
+ Collection statistics = new ArrayList();
+ try {
+ String query = "SELECT IOS_PER_INVOC,INSTS_PER_INVOC,IOS_PER_ARGBYTE,INSTS_PER_ARGBYTE" +
+ ",PERCENT_ARGBYTES,INITIAL_IOS,INITIAL_INSTS,CARDINALITY,SELECTIVITY" +
+ " FROM SYSSTAT.ROUTINES" +
+ " WHERE ROUTINESCHEMA='" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" +
+ " AND ROUTINENAME ='" + LUWUtil.getIdentifier(routine.getName()) + "'" +
+ " AND SPECIFICNAME ='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" +
+ " FOR FETCH ONLY";
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ CatalogStatistics stats = null;
+
+ final float ios_per_Invoc = r.getFloat("IOS_PER_INVOC");
+ if (ios_per_Invoc != -1) {
+ stats = new CatalogStatistics("IOS_PER_INVOC",LUWCatalogMessages.STAT_IOS_PER_INVOC,LUWCatalogMessages.STAT_IOS_PER_INVOC_DES,ios_per_Invoc,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float insts_per_Invoc = r.getFloat("INSTS_PER_INVOC");
+ if (insts_per_Invoc != -1) {
+ stats = new CatalogStatistics("INSTS_PER_INVOC",LUWCatalogMessages.STAT_INSTS_PER_INVOC,LUWCatalogMessages.STAT_INSTS_PER_INVOC_DES,insts_per_Invoc,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float ios_per_Argbyte = r.getFloat("IOS_PER_ARGBYTE");
+ if (ios_per_Argbyte != -1) {
+ stats = new CatalogStatistics("IOS_PER_ARGBYTE",LUWCatalogMessages.STAT_IOS_PER_ARGBYTE,LUWCatalogMessages.STAT_IOS_PER_ARGBYTE_DES,ios_per_Argbyte,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float insts_per_Argbyte = r.getFloat("INSTS_PER_ARGBYTE");
+ if (insts_per_Argbyte != -1) {
+ stats = new CatalogStatistics("INSTS_PER_ARGBYTE",LUWCatalogMessages.STAT_INSTS_PER_ARGBYTE,LUWCatalogMessages.STAT_INSTS_PER_ARGBYTE_DES,insts_per_Argbyte,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final int percent_Argbyte = r.getInt("PERCENT_ARGBYTES");
+ if (percent_Argbyte != -1) {
+ stats = new CatalogStatistics("PERCENT_ARGBYTES",LUWCatalogMessages.STAT_PERCENT_ARGBYTE,LUWCatalogMessages.STAT_PERCENT_ARGBYTE_DES,percent_Argbyte,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+
+ final float initial_ios = r.getFloat("INITIAL_IOS");
+ if (initial_ios != -1) {
+ stats = new CatalogStatistics("INITIAL_IOS",LUWCatalogMessages.STAT_INITIAL_IOS,LUWCatalogMessages.STAT_INITIAL_IOS_DES,initial_ios,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float initial_insts = r.getFloat("INITIAL_INSTS");
+ if (initial_insts != -1) {
+ stats = new CatalogStatistics("INITIAL_INSTS",LUWCatalogMessages.STAT_INITIAL_INSTS,LUWCatalogMessages.STAT_INITIAL_INSTS_DES,initial_insts,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final BigInteger card = r.getBigDecimal("CARDINALITY").toBigInteger();
+ if (card.intValue() != -1) {
+ stats = new CatalogStatistics("CARDINALITY",LUWCatalogMessages.STAT_ROUTINE_CARDINALITY,LUWCatalogMessages.STAT_ROUTINE_CARDINALITY_DES,card,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float selectivity= r.getFloat("SELECTIVITY");
+ if (selectivity != -1) {
+ stats = new CatalogStatistics("SELECTIVITY",LUWCatalogMessages.STAT_SELECTIVITY,LUWCatalogMessages.STAT_SELECTIVITY_DES,selectivity,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ //e.printStackTrace();
+ }
+ return statistics;
+ }
+
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ if(!this.loaded) this.load();
+ return this.getSchema().getDatabase();
+ }
+
+ public boolean isDeterministic() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.isDeterministic();
+ } else {
+ if(!this.loaded) this.load();
+ return super.isDeterministic();
+ }
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public EList getParameters() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getParameters();
+ } else {
+ if(!this.parameterLoaded) this.loadParameters();
+ return this.parameters;
+ }
+ }
+
+ public DataAccess getSqlDataAccess() {
+ if(!this.loaded) this.load();
+ return this.sqlDataAccess;
+ }
+
+ public String getRemoteServer(){
+ if(!this.loaded) this.load();
+ return this.remoteServer;
+ }
+
+ private synchronized void load() {
+ if(this.loaded) return;
+ this.loaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ Connection connection = this.getConnection();
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase());
+ String version = definition.getVersion();
+ float ver = 8.0f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ if(ver < 9 ){
+ //no federated stored procedures prior to V9
+ return;
+ }
+ }
+ catch (NumberFormatException e) {
+// DB2LUWPlugin.getDefault().log("LUWCatalogFederatedProcedure:load: " + e.getMessage(), null); //$NON-NLS-1$
+ }
+
+ try {
+ Statement s = connection.createStatement();
+
+ //get the federated SP options
+ ResultSet r = s.executeQuery("SELECT OPTION, SETTING" +
+ " FROM SYSIBM.SYSROUTINEOPTIONS" +
+ " WHERE ROUTINEID=" + routineID);
+
+ while(r.next()) {
+ String option = r.getString("OPTION");
+ String setting = r.getString("SETTING");
+
+ if(option.equals("REMOTE_UNIQUE_ID")){
+ this.setRemoteUniqueId(setting);
+ }else if (option.equals("REMOTE_SERVER")){
+ this.setRemoteServer(setting);
+ }else if (option.equals("SERVER")){
+ this.setFederatedServerByName(setting);
+ }else if (option.equals("REMOTE_SCHEMA")){
+ this.setRemoteSchema(setting);
+ }else if (option.equals("REMOTE_PACKAGE")){
+ this.setRemotePackage(setting);
+ }else if (option.equals("REMOTE_PROCEDURE")){
+ this.setRemoteProcedureName(setting);
+ }else if (option.equals("REMOTE_NUMPARM")){
+ this.setNumberOfParameters(Integer.decode(setting).intValue());
+ }else if (option.equals("RESULT_SETS_TO_CLIENT")){
+ this.setResultSetsToClient(setting);
+ }else if (option.equals("REMOTE_REFCURSORS")){
+ this.setNumberOfRefCursors(Integer.decode(setting).intValue());
+ }else if (option.equals("ALL_RESULT_SETS_TO_CALLER")){
+ this.setAllResultSetsToCaller(setting);
+ }else if (option.equals("IS_REMOTE_FUNCTION")){
+ this.setOracleRemoteFunction(setting);
+ }
+
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+// DB2LUWPlugin.getDefault().log("LUWCatalogFederatedProcedure:load: " + e.getMessage(), null); //$NON-NLS-1$
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ EList dependencyList = super.getDependencies();
+
+ LUWCatalogProcedure.loadDependencies(this.getConnection(), dependencyList, this);
+
+ if (this.getFederatedServer() != null) {
+ final Database database = this.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(this.getFederatedServer());
+ dependencyList.add(dep);
+ }
+
+ }
+ catch(Exception e) {
+// DB2LUWPlugin.getDefault().log("LUWCatalogFederatedProcedure:loadDependencies: " + e.getMessage(), null); //$NON-NLS-1$
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadParameters() {
+ if(this.parameterLoaded) return;
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogFederatedProcedure.loadParameters(this.getConnection(), super.getParameters(), this);
+ }
+ catch(Exception e) {
+// DB2LUWPlugin.getDefault().log("LUWCatalogFederatedProcedure:loadParameters: " + e.getMessage(), null); //$NON-NLS-1$
+ System.out.println(e.toString());
+ }
+
+ this.parameterLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+
+
+ public static void loadParameters(Connection connection, EList parameterList, LUWCatalogFederatedProcedure fedSP) throws SQLException {
+ final Database database = fedSP.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+// final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ String query="SELECT PARMNAME,ROWTYPE,LOCATOR,TYPESCHEMA,TYPENAME,LENGTH,SCALE,CODEPAGE,REMARKS,TARGET_TYPESCHEMA,TARGET_TYPENAME,ORDINAL" + //$NON-NLS-1$
+ " FROM SYSIBM.SYSROUTINEPARMS" + //$NON-NLS-1$
+ " WHERE ROUTINE_ID=" + LUWCatalogFederatedProcedure.getRoutineID(fedSP) + //$NON-NLS-1$ //$NON-NLS-2$
+ " ORDER BY ORDINAL"; //$NON-NLS-1$
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+
+ final LUWCatalogFederatedParameter parameter = new LUWCatalogFederatedParameter();
+ final String name = r.getString("PARMNAME"); //$NON-NLS-1$
+ parameter.setName(name);
+
+ final String rowtype = r.getString("ROWTYPE").trim(); //$NON-NLS-1$
+ if (rowtype.equals("B")){ //$NON-NLS-1$
+ parameter.setMode(ParameterMode.INOUT_LITERAL);
+ } else if (rowtype.equals("O")) { //$NON-NLS-1$
+ parameter.setMode(ParameterMode.OUT_LITERAL);
+ } else if (rowtype.equals("P")) { //$NON-NLS-1$
+ parameter.setMode(ParameterMode.IN_LITERAL);
+ }
+
+ final String locator = r.getString("LOCATOR"); //$NON-NLS-1$
+ if (locator.equals("Y")) //$NON-NLS-1$
+ parameter.setLocator(true);
+ else
+ parameter.setLocator(false);
+
+ String typeName = r.getString("TYPENAME"); //$NON-NLS-1$
+ if (typeName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length = r.getInt("LENGTH"); //$NON-NLS-1$
+ if (length ==4) typeName="REAL"; //$NON-NLS-1$
+ else typeName="DOUBLE"; //$NON-NLS-1$
+ }
+ PredefinedDataTypeDefinition typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(typeName);
+ if(typeDefinition != null) {
+
+ if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt(8);
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt(8);
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+
+
+ PredefinedDataType type = databaseDefinition.getPredefinedDataType(typeDefinition);
+ if(typeDefinition.isLengthSupported()) {
+ final int length = r.getInt("LENGTH"); //$NON-NLS-1$
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else if(typeDefinition.isPrecisionSupported()) {
+ final int length = r.getInt("LENGTH"); //$NON-NLS-1$
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+
+ if(typeDefinition.isScaleSupported()) {
+ final int length = r.getInt("SCALE"); //$NON-NLS-1$
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+
+ parameter.setContainedType(type);
+ }
+ else {
+ if (typeName.equals("REFERENCE")){ //$NON-NLS-1$
+ final String typeSchemaName = r.getString("TARGET_TYPESCHEMA").trim(); //$NON-NLS-1$
+ final String udtName = r.getString("TARGET_TYPENAME"); //$NON-NLS-1$
+ parameter.setReferencedType(LUWCatalogFederatedProcedure.getUserDefinedType(fedSP,typeSchemaName,udtName));
+ } else {
+ final String typeSchemaName = r.getString("TYPESCHEMA").trim(); //$NON-NLS-1$
+ parameter.setReferencedType(LUWCatalogFederatedProcedure.getUserDefinedType(fedSP,typeSchemaName,typeName));
+ }
+ }
+
+ parameter.setDescription(r.getString("REMARKS")); //$NON-NLS-1$
+ parameter.setFederatedProcedure(fedSP);
+ parameterList.add(parameter);
+ int ordinal = r.getInt("ORDINAL");
+ LUWCatalogFederatedParameter.loadParameterOptions(connection, parameter,
+ LUWCatalogFederatedProcedure.getRoutineID(fedSP),
+ ordinal);
+ }
+ }
+ catch(Exception e) {
+// DB2LUWPlugin.getDefault().log("LUWCatalogFederatedProcedure:loadParameters: " + e.getMessage(), null); //$NON-NLS-1$
+ }
+
+ r.close();
+ s.close();
+
+ }
+
+
+ public static Schema getSchema(LUWCatalogFederatedProcedure fedSP, String schemaName) {
+ Schema s = fedSP.getSchema();
+ if(s.getName().trim().equals(schemaName.trim())) return s;
+ Database d = s.getDatabase();
+ Iterator it = d.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().trim().equals(schemaName.trim())) return s;
+ }
+
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(d);
+
+ return schema;
+ }
+
+ public static Table getTable(LUWCatalogFederatedProcedure fedSP, String schemaName, String tableName) {
+ Schema schema = LUWCatalogFederatedProcedure.getSchema(fedSP, schemaName);
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+
+ Table table = new LUWCatalogTable();
+ table.setName(tableName);
+ table.setSchema(schema);
+
+ return table;
+ }
+
+ public static int getRoutineID(LUWCatalogFederatedProcedure fedSP){
+ if(!fedSP.loaded) fedSP.load();
+ return fedSP.routineID;
+ }
+
+ public static Routine getRountine(LUWCatalogFederatedProcedure fedSP, String schemaName, String routineName) {
+ Schema schema = LUWCatalogFederatedProcedure.getSchema(fedSP, schemaName);
+ Iterator it = schema.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine r = (Routine) it.next();
+ if(r.getName().equals(routineName)) return r;
+ }
+
+ Routine r = new LUWCatalogFederatedProcedure();
+ r.setName(routineName);
+ r.setSchema(schema);
+
+ return r;
+ }
+
+ public static UserDefinedType getUserDefinedType(LUWCatalogFederatedProcedure fedSP, String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogFederatedProcedure.getSchema(fedSP, schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+
+ UserDefinedType userDefinedType = new LUWCatalogDistinctUserDefinedType();
+ userDefinedType.setName(userDefinedTypeName);
+ userDefinedType.setSchema(schema);
+
+ return userDefinedType;
+ }
+
+ public void setRoutineID(int id){
+ this.routineID=id;
+ }
+
+ public DataAccess getSQLDataAccess(){
+ if(!this.loaded) this.load();
+ return sqlDataAccess;
+ }
+
+ public void setSQLDataAccess(DataAccess da){
+ sqlDataAccess = da;
+ }
+
+ public boolean isExternalAction(){
+ if(!this.loaded) this.load();
+ return externalAction;
+ }
+
+ public void setExternalAction(String ea){
+ if(ea.trim().equals("E")){
+ externalAction=true;
+ }
+ }
+
+ private void setAllResultSetsToCaller(String setting) {
+ if(setting.trim().equals("Y")){
+ setAllResultSetsToCaller(true);
+ }else{
+ setAllResultSetsToCaller(false);
+ }
+
+ }
+
+ public LUWCatalogFederatedServer getFederatedServer() {
+ if(!this.loaded) this.load();
+ return server;
+ }
+
+ private void setFederatedServerByName(String setting) {
+ Database db = getSchema().getDatabase();
+ if(db instanceof LUWCatalogDatabase){
+ EList servers = ((LUWCatalogDatabase)db).getServers();
+ Iterator itrServers = servers.iterator();
+ while(itrServers.hasNext()){
+ SQLObject obj = (SQLObject)itrServers.next();
+ if(obj instanceof LUWCatalogFederatedServer &&
+ obj.getName().trim().equals(setting.trim())){
+ server = (LUWCatalogFederatedServer)obj;
+ setRemoteServer(server.getName());
+ break;
+ }
+ }
+ }
+
+ }
+
+ private void setOracleRemoteFunction(String setting) {
+ if(setting.equals("Y")){
+ remoteFunction = true;
+ }
+ }
+
+ public boolean isOracleRemoteFunction() {
+ return remoteFunction;
+ }
+
+
+
+
+ private LUWCatalogFederatedServer server=null;
+ private boolean loaded = false;
+ private boolean dependencyLoaded = false;
+ private boolean parameterLoaded = false;
+ private int routineID=0;
+ private boolean externalAction=false;
+ private boolean remoteFunction=false;
+
+ private boolean statisticsLoaded = false;
+ private boolean impactsLoaded = false;
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedServer.java
new file mode 100644
index 0000000..2064ce5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogFederatedServer.java
@@ -0,0 +1,460 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionFilter;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.DatabaseConnectionRegistry;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericServerImpl;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogFederatedServer extends LUWGenericServerImpl implements ICatalogObject,IDatabaseObject {
+ //TODO: Added by Geetika: Won't need these fields here, as plugin called at next level
+ private static RemoteCatalogProvider remoteCatalogProvider = null;
+ private static boolean remoteCatalogProviderLoaded = false;
+
+ private String wrapperName = ""; //@gsauere //$NON-NLS-1$
+
+ private boolean nicknamesLoaded = false;
+ private boolean wrapperLoaded = false; //@gsauere
+ private boolean userMappingsLoaded = false; //@gsauere
+ private boolean optionsLoaded = false;
+ private boolean remoteServerLoaded = false;
+ private boolean impactsLoaded = false;
+ private Collection impacts = new ArrayList();
+
+ public static RemoteCatalogProvider getRemoteCatalogProvider() {
+ if(!remoteCatalogProviderLoaded) {
+ remoteCatalogProviderLoaded = true;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2.luw", "remoteCatalog"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+ if(extensions.length == 1) {
+ IConfigurationElement[] configElements = extensions[0].getConfigurationElements();
+ try {
+ remoteCatalogProvider = (RemoteCatalogProvider) configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(Exception e) {
+ }
+ }
+ }
+ return remoteCatalogProvider;
+ }
+
+ public synchronized void refresh() {
+ this.nicknamesLoaded = false;
+ this.wrapperLoaded = false; //@gsauere
+ this.userMappingsLoaded = false; //@gsauere
+ this.optionsLoaded = false;
+ this.getOptions().clear();
+
+ //before clearing the remote server, we must get the remote database object and refresh it
+ //this is necessary to refresh nicknames that eventually exist on tables in that database
+ if (this.remoteServer != null) {
+ //no need to cast to ECatRemoteDatabase since we would have to add a dependency to the ecat plugin and
+ //we just need to refresh it.
+ ICatalogObject remoteDB =
+ (ICatalogObject) ((LUWCatalogRelationalRemoteServer) this.remoteServer).getDatabase();
+ if (remoteDB != null) {
+ remoteDB.refresh();
+ }
+ }
+ this.remoteServerLoaded = false;
+ this.remoteServer = null;
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getLUWDatabase();
+ }
+
+ public EList getNicknames() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getNicknames();
+ } else {
+ if(!this.nicknamesLoaded) this.loadNicknames();
+ return super.getNicknames();
+ }
+ }
+
+ public EList getOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getOptions();
+ } else {
+ if(!this.optionsLoaded) this.loadOptions();
+ return super.getOptions();
+ }
+ }
+
+ public RemoteServer getRemoteServer() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getRemoteServer();
+ } else {
+ if(!remoteServerLoaded) this.loadRemoteServer();
+ return super.getRemoteServer();
+ }
+ }
+
+ public LUWWrapper getWrapper() { //@gsauere
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getWrapper();
+ } else {
+ if(!this.wrapperLoaded) this.loadWrapper();
+ return super.getWrapper();
+ }
+ }
+
+ public EList getUserMappings() { //@gsauere
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getUserMappings();
+ } else {
+ if(!this.userMappingsLoaded) this.loadUserMappings();
+ return super.getUserMappings();
+ }
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_SERVER) {
+ this.getNicknames();
+ }
+ else if(id == LUWPackage.LUW_SERVER__OPTIONS) {
+ this.getOptions();
+ }
+ else if(id == LUWPackage.LUW_SERVER__REMOTE_SERVER) {
+ this.getRemoteServer();
+ }
+ else if(id == LUWPackage.LUW_SERVER__USER_MAPPINGS) { //@gsauere
+ this.getUserMappings();
+ }
+ else if(id == LUWPackage.LUW_SERVER__WRAPPER){ //@gsauere
+ this.getWrapper();
+ }
+ else if(id == LUWPackage.LUW_SERVER__NICKNAMES){ //@gsauere
+ this.getNicknames();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadNicknames() {
+ if(this.nicknamesLoaded) return;
+ this.nicknamesLoaded = true;
+ Connection connection = this.getConnection();
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(this.getCatalogDatabase());
+
+ ConnectionFilter filter = connectionInfo.getFilter(this.name + "::" + ConnectionFilter.NICKNAME_FILTER);
+ String filterStr = "";
+ if(filter != null)
+ {
+ filterStr += CatalogLoadUtil.getFilterString(filter.getPredicate(), "TABNAME"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ filterStr = filterStr.length()>0? (" AND (" + filterStr+")"):""; //$NON-NLS-1$
+ String query = "SELECT TABSCHEMA, TABNAME FROM SYSCAT.TABOPTIONS" //$NON-NLS-1$
+ + " WHERE OPTION='SERVER' AND CAST(SUBSTR(SETTING, 1, 128) AS VARCHAR(128))='" + this.getName() + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + filterStr;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+ final String tabSchema = r.getString(1).trim();
+ final String tabName = r.getString(2).trim();
+ getNickName(tabSchema, tabName,this).getServer();
+ }
+ }
+ catch (Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+ catch(Exception e) {
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ //TODO: Added by Geetika: change implementation of LoadRemoteServer to load RelationalRemoteServer
+
+ private synchronized void loadRemoteServer() {
+ if(this.remoteServerLoaded) return;
+ //RelationalRemoteServer remoteServer = LUWFactory.eINSTANCE.createRelationalRemoteServer();
+ RelationalRemoteServer remoteServer = new LUWCatalogRelationalRemoteServer();
+ remoteServer.setName(this.getName());
+ //TODO: Added by Geetika: add the remote database name to the object remoteServer
+ //Syscat Server options has this information
+ remoteServer.setLUWServer(this);
+ this.remoteServerLoaded = true;
+ }
+
+ /*private synchronized void loadRemoteServer() {
+ if(this.remoteServerLoaded) return;
+ RemoteCatalogProvider p = getRemoteCatalogProvider();
+ if(p!= null) {
+ this.remoteServer = p.getRemoteServer(this);
+ }
+ this.remoteServerLoaded = true;
+ }*/
+
+ private synchronized void loadOptions() {
+ if(this.optionsLoaded) return;
+ EList options = super.getOptions();
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ String query = "SELECT OPTION, SETTING, REMARKS FROM SYSCAT.SERVEROPTIONS WHERE SERVERNAME='" + LUWUtil.getIdentifier(this.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+ final String name = r.getString(1);
+ final String value = r.getString(2);
+ final String remarks = r.getString(3);
+ LUWOption option = LUWFactory.eINSTANCE.createLUWOption();
+ option.setName(name);
+ option.setValue(value);
+ option.setDescription(remarks);
+ options.add(option);
+ }
+ }
+ catch (Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ }
+ this.optionsLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogFederatedServer.getImpacteNicknames(connection, this));
+ impacts.addAll(LUWCatalogFederatedServer.getImpacteFederatedProcedure(connection, this));
+ return impacts;
+ }
+
+ protected static Collection getImpacteNicknames(Connection connection, LUWGenericServer remoteServer) {
+ Collection impacts = new ArrayList();
+ impacts.addAll(remoteServer.getNicknames());
+ return impacts;
+ }
+
+ protected static Collection getImpacteFederatedProcedure(Connection connection, LUWGenericServer remoteServer) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT ROUTINENAME, ROUTINESCHEMA " +
+ " FROM SYSCAT.ROUTINESFEDERATED " +
+ " WHERE ROUTINETYPE='P'" +
+ " AND SERVERNAME='" + LUWUtil.getIdentifier(remoteServer.getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String routinName = r.getString("ROUTINENAME").trim();
+ final String schemaName = r.getString("ROUTINESCHEMA").trim();
+ FederatedProcedure proc = LUWCatalogFederatedServer.getFederatedProcedure(schemaName, routinName, remoteServer);
+ if (r != null) {
+ impacts.add(proc);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ private static LUWNickname getNickName(String schema, String table,LUWGenericServer server) {
+ Schema s = getSchema(schema,server);
+ Iterator it = s.getTables().iterator();
+ while(it.hasNext()) {
+ Table t = (Table) it.next();
+ if(t.getName().equals(table)) return (LUWCatalogNickname)t;
+ }
+
+ LUWNickname nickName = new LUWCatalogNickname();
+ nickName.setName(table);
+ nickName.setSchema(s);
+
+ return nickName;
+ }
+
+ private static Schema getSchema(String schemaName,LUWGenericServer server) {
+ Database d = server.getLUWDatabase();
+ Iterator it = d.getSchemas().iterator();
+ while(it.hasNext()) {
+ Schema s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(d);
+
+ return schema;
+ }
+
+ private static FederatedProcedure getFederatedProcedure(String schema, String federatedproc,LUWGenericServer server) {
+ Schema s = LUWCatalogFederatedServer.getSchema(schema,server);
+ Iterator it = s.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine r = (Routine) it.next();
+ if (r instanceof FederatedProcedure
+ && r.getName().equals(federatedproc)
+ && ((FederatedProcedure)r).getRemoteServer().equals(server.getName())) {
+ return (FederatedProcedure)r;
+ }
+ }
+
+ return null;
+ }
+
+ private synchronized void loadWrapper() { //@gsauere
+ if(this.wrapperLoaded) return ;
+ this.wrapperLoaded = true;
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ for (Iterator it=this.getLUWDatabase().getWrappers().iterator(); it.hasNext(); )
+ {
+ LUWWrapper m_wrapper = (LUWWrapper)it.next();
+ if (m_wrapper.getName().equalsIgnoreCase(wrapperName)) {
+ this.setWrapper(m_wrapper);
+ break;
+ }
+ }
+ }
+ catch(Exception e) {
+ System.out.println(e.toString());
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadUserMappings() { //@gsauere
+ if(this.userMappingsLoaded) return ;
+ EList userMappings = super.getUserMappings();
+ // clear userMappings before we load to avoid dups
+ userMappings.clear();
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ String query = "SELECT DISTINCT AUTHID FROM SYSCAT.USEROPTIONS WHERE SERVERNAME='" + LUWUtil.getIdentifier(this.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String localAuthId = r.getString("AUTHID"); //$NON-NLS-1$
+ LUWCatalogUserMapping userMapping = new LUWCatalogUserMapping();
+ userMapping.setLocalAuthId(localAuthId);
+ userMapping.setName(localAuthId);
+ userMappings.add(userMapping);
+ }
+ }
+ catch(Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+ catch(Exception e) {
+ }
+ userMappingsLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+
+ /**
+ * @gsauere
+ * @return Returns the wrapperName.
+ */
+ public String getWrapperName() {
+ return wrapperName;
+ }
+ /**
+ * @gsauere
+ * @param wrapperName The wrapperName to set.
+ */
+ public void setWrapperName(String wrapperName) {
+ this.wrapperName = wrapperName;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogForeignKey.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogForeignKey.java
new file mode 100644
index 0000000..82e93e3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogForeignKey.java
@@ -0,0 +1,356 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.ForeignKeyImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+
+public class LUWCatalogForeignKey extends ForeignKeyImpl implements ICatalogObject {
+ public void refresh() {
+ if(this.memberLoaded) {
+ this.members.clear();
+ this.memberLoaded = false;
+ }
+
+ this.uniqueConstraintLoaded = false;
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public EList getMembers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getMembers();
+ } else {
+ if(!this.memberLoaded) this.loadMembers();
+ return this.members;
+ }
+ }
+
+ public UniqueConstraint getUniqueConstraint() {
+ if(!this.uniqueConstraintLoaded) this.loadUniqueConstraint();
+ return this.uniqueConstraint;
+ }
+
+ public ReferentialActionType getOnDelete() {
+ if(!this.uniqueConstraintLoaded) this.loadUniqueConstraint();
+ return this.onDelete;
+ }
+
+ public ReferentialActionType getOnUpdate() {
+ if(!this.uniqueConstraintLoaded) this.loadUniqueConstraint();
+ return this.onUpdate;
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLConstraintsPackage.FOREIGN_KEY__MEMBERS) {
+ this.getMembers();
+ }
+ else if(id == SQLConstraintsPackage.FOREIGN_KEY__ON_DELETE) {
+ this.getOnDelete();
+ }
+ else if(id == SQLConstraintsPackage.FOREIGN_KEY__ON_UPDATE) {
+ this.getOnUpdate();
+ }
+ else if(id == SQLConstraintsPackage.FOREIGN_KEY__UNIQUE_CONSTRAINT) {
+ this.getUniqueConstraint();
+ }
+ else if(id == SQLConstraintsPackage.FOREIGN_KEY__DEPENDENCIES) {
+ this.getDependencies();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getBaseTable().getSchema().getDatabase();
+ }
+
+ private synchronized void loadMembers() {
+ if(this.memberLoaded) return;
+ this.memberLoaded = true;
+
+ EList memberList = super.getMembers();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT COLNAME FROM SYSCAT.KEYCOLUSE" + this.getWhereClause() + " ORDER BY COLSEQ"); //$NON-NLS-1$ //$NON-NLS-2$
+ while(r.next()) {
+ final String colName = r.getString(1);
+ memberList.add(this.getColumn(colName));
+ }
+
+ r.close();
+ s.close();
+ setAsIdentifyingRelatinship(this, this.isIdentifyingRelationship(memberList));
+
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+ public static void setAsIdentifyingRelatinship(ForeignKey fk,boolean identifying){
+ EAnnotation eAnnotation = fk.addEAnnotation(RDBCorePlugin.FK_MODELING_RELATIONSHIP);
+ fk.addEAnnotationDetail(eAnnotation,RDBCorePlugin.FK_IS_IDENTIFYING_RELATIONSHIP,new Boolean(identifying).toString());
+
+ fk.addEAnnotationDetail(eAnnotation, RDBCorePlugin.FK_CHILD_MULTIPLICITY, RDBCorePlugin.MANY);
+ fk.addEAnnotationDetail(eAnnotation, RDBCorePlugin.FK_CHILD_ROLE_NAME, new String ());
+ fk.addEAnnotationDetail(eAnnotation, RDBCorePlugin.FK_PARENT_MULTIPLICITY, (fk.getMembers().size() > 0) ? RDBCorePlugin.ZERO_TO_ONE : RDBCorePlugin.ONE);
+ fk.addEAnnotationDetail(eAnnotation, RDBCorePlugin.FK_PARENT_ROLE_NAME, new String ());
+ }
+
+ private synchronized void loadUniqueConstraint() {
+ if(this.uniqueConstraintLoaded) return;
+ this.uniqueConstraintLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT REFKEYNAME, REFTABSCHEMA, REFTABNAME, DELETERULE, UPDATERULE FROM SYSCAT.REFERENCES" + this.getWhereClause()); //$NON-NLS-1$
+ while (r.next()) {
+ final String refKeyName = r.getString(1);
+ final String refTabSchema = r.getString(2).trim();
+ final String refTabName = r.getString(3);
+ this.setParentConstraint(refTabSchema, refTabName, refKeyName);
+ final String onDeleteStr = r.getString(4);
+ final String onUpdateStr = r.getString(5);
+ if(onDeleteStr.equals("A")) //$NON-NLS-1$
+ {
+ this.onDelete = ReferentialActionType.NO_ACTION_LITERAL;
+ }
+ else if(onDeleteStr.equals("C")) //$NON-NLS-1$
+ {
+ this.onDelete = ReferentialActionType.CASCADE_LITERAL;
+ }
+ else if(onDeleteStr.equals("N")) //$NON-NLS-1$
+ {
+ this.onDelete = ReferentialActionType.SET_NULL_LITERAL;
+ }
+ else if(onDeleteStr.equals("R")) //$NON-NLS-1$
+ {
+ this.onDelete = ReferentialActionType.RESTRICT_LITERAL;
+ }
+ if(onUpdateStr.equals("A")) //$NON-NLS-1$
+ {
+ this.onUpdate = ReferentialActionType.NO_ACTION_LITERAL;
+ }
+ else if(onUpdateStr.equals("R")) //$NON-NLS-1$
+ {
+ this.onUpdate = ReferentialActionType.RESTRICT_LITERAL;
+ }
+ }
+ r.close();
+ s.close();
+ loadMembers();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogPrimaryKey.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private String getWhereClause() {
+ Table table = this.getBaseTable();
+ return " WHERE CONSTNAME='" + LUWUtil.getIdentifier(this.getName()) + "' AND TABSCHEMA='" + LUWUtil.getIdentifier(this.getBaseTable().getSchema().getName()) //$NON-NLS-1$ //$NON-NLS-2$
+ + "' AND TABNAME='" + LUWUtil.getIdentifier(this.getBaseTable().getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ private Column getColumn(String columnName) {
+ BaseTable table = this.getBaseTable();
+ if (table instanceof LUWCatalogTable) {
+ Column c = ((LUWCatalogTable)table).getColumn(columnName);
+ if (c!= null) return c;
+ }
+
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ if(c.getName().equals(columnName)) return c;
+ }
+ Column column = new LUWCatalogColumn();
+ column.setName(columnName);
+ column.setTable(table);
+ Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition def = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ CharacterStringDataType dataType = (CharacterStringDataType) def.getPredefinedDataType("Char"); //$NON-NLS-1$
+ dataType.setLength(5);
+ column.setContainedType(dataType);
+
+ return column;
+ }
+
+ private Schema getSchema(String schemaName) {
+ Schema s = this.getBaseTable().getSchema();
+ if(s.getName().equals(schemaName)) return s;
+ Database d = s.getDatabase();
+
+ if (d instanceof LUWCatalogDatabase){
+ s = ((LUWCatalogDatabase)d).getSchema(schemaName);
+ if (s != null) return s;
+ }
+ Iterator it = d.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(d);
+
+ if (d instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)d).cacheSchema(schema);
+ }
+ return schema;
+ }
+
+ private Table getTable(String schemaName, String tableName) {
+ Schema schema = this.getSchema(schemaName);
+
+ if(schema instanceof LUWCatalogSchema){
+ Table t = ((LUWCatalogSchema)schema).getTable(schemaName,tableName);
+ if (t != null) return t;
+ }
+
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+
+ Table table = new LUWCatalogTable();
+ table.setName(tableName);
+ table.setSchema(schema);
+
+ return table;
+ }
+
+ private void setParentConstraint(String schemaName, String tableName, String constraintName) {
+ BaseTable table = (BaseTable) this.getTable(schemaName, tableName);
+ this.setReferencedTable(table);
+ Iterator it = table.getConstraints().iterator();
+ while(it.hasNext()) {
+ Constraint constraint = (Constraint) it.next();
+ if(constraint.getName().equals(constraintName)) {
+ this.setUniqueConstraint((UniqueConstraint) constraint);
+ return;
+ }
+ }
+
+ Iterator iter = table.getIndex().iterator();
+ while(iter.hasNext()) {
+ Index index = (Index) iter.next();
+ if(index.getName().equals(constraintName)) {
+ this.setUniqueIndex((Index) index);
+ return;
+ }
+ }
+
+ UniqueConstraint uniqueConstrain = new LUWCatalogUniqueConstraint();
+ uniqueConstrain.setName(constraintName);
+ uniqueConstrain.setBaseTable(table);
+ this.setUniqueConstraint(uniqueConstrain);
+
+ }
+
+ private boolean isIdentifyingRelationship(EList memberList){
+ boolean isIdentifying= true;
+ Iterator it = memberList.iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ if (!column.isPartOfPrimaryKey()) {
+ isIdentifying = false;
+ }
+ }
+ return isIdentifying;
+ }
+
+ private boolean memberLoaded = false;
+ private boolean uniqueConstraintLoaded = false;
+ private boolean dependencyLoaded = false;
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogGlobalVariable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogGlobalVariable.java
new file mode 100644
index 0000000..42f4302
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogGlobalVariable.java
@@ -0,0 +1,171 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+
+public class LUWCatalogGlobalVariable extends LUWGlobalVariableImpl implements ICatalogObject{
+
+ public void refresh() {
+ this.privilegeLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ return ((ICatalogObject) this.getCatalogDatabase()).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_GLOBAL_VARIABLE__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogGlobalVariable.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ protected static void loadPrivileges(Connection connection, EList privilegeList,LUWGlobalVariable variable, String granteeFilter) throws SQLException {
+ final Schema schema = variable.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "SELECT GRANTOR,GRANTORTYPE,GRANTEE,GRANTEETYPE" +
+ ",READAUTH,WRITEAUTH" +
+ " FROM SYSCAT.VARIABLEAUTH" +
+ " WHERE VARSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" +
+ " AND VARNAME='" + LUWUtil.getIdentifier(variable.getName()) + "'" ;
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " AND " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+
+ final String grantorType = r.getString("GRANTORTYPE");
+ boolean isSystemGranted = "S".equals(grantorType)? true:false;
+
+ final String readAuth = r.getString("READAUTH");
+ if (readAuth.equals("N")) {
+ } else {
+ LUWCatalogPrivilege privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_READ);
+ if (readAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+
+ }
+
+ final String writeAuth = r.getString("WRITEAUTH");
+ if (writeAuth.equals("N")) {
+ } else {
+ LUWCatalogPrivilege privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_WRITE);
+ if (writeAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ private boolean privilegeLoaded = false;
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogGroup.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogGroup.java
new file mode 100644
index 0000000..6163534
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogGroup.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.GroupImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.datatools.enablement.ibm.catalog.ICatalogAuthorizationIdentifier;
+
+public class LUWCatalogGroup extends GroupImpl implements ICatalogObject,ICatalogAuthorizationIdentifier {
+
+ public void refresh() {
+
+ if (this.receivedPrivilegesLoaded) {
+ this.receivedPrivilegesLoaded = false;
+ this.getReceivedPrivilege().clear();
+ }
+ if (this.receivedRoleAuthorizationLoaded) {
+ this.receivedRoleAuthorization.clear();
+ this.receivedRoleAuthorizationLoaded = false;
+ }
+ this.getGrantedPrivilege().clear();
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getDatabase();
+ }
+
+ /*
+ public EList getReceivedPrivilege(){
+ if (!this.receivedPrivilegesLoaded) this.loadReceivedPrivilege();
+ return this.receivedPrivilege;
+ }
+ */
+ public EList getReceivedRoleAuthorization(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getReceivedRoleAuthorization();
+ } else {
+ if (!this.receivedRoleAuthorizationLoaded) this.loadReceivedRoleAuthorization();
+ return this.receivedRoleAuthorization;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLAccessControlPackage.GROUP__RECEIVED_PRIVILEGE) {
+ this.getReceivedPrivilege();
+ } else if (id == SQLAccessControlPackage.GROUP__RECEIVED_ROLE_AUTHORIZATION) {
+ this.getReceivedRoleAuthorization();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadReceivedPrivilege() {
+ if(this.receivedPrivilegesLoaded) return;
+ this.receivedPrivilegesLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogUser.loadReceivedPrivilege(this.getConnection(),super.getReceivedPrivilege(), this,"G");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadReceivedRoleAuthorization() {
+ if(this.receivedRoleAuthorizationLoaded) return;
+ this.receivedRoleAuthorizationLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ LUWCatalogUser.loadReceivedRoleAuthorization(this.getConnection(),super.getReceivedRoleAuthorization(), this);
+
+ this.eSetDeliver(deliver);
+
+ }
+
+ //API for PB
+ public EList getCatalogReceivedPrivileges(){
+ this.loadReceivedPrivilege();
+ return this.receivedPrivilege;
+ }
+
+
+ private boolean receivedPrivilegesLoaded = false;
+ private boolean receivedRoleAuthorizationLoaded = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogIndex.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogIndex.java
new file mode 100644
index 0000000..2c5326a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogIndex.java
@@ -0,0 +1,928 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.math.BigInteger;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogStatistics;
+//bgp import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.CatalogCache;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWCatalogMessages;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.constraints.IncrementType;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogIndex extends LUWIndexImpl implements ICatalogObject,IDatabaseObject {
+ public void refresh() {
+ if (this.memberLoaded) {
+ this.members.clear();
+ this.memberLoaded = false;
+ }
+ this.privilegeLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getTable().getSchema().getDatabase();
+ }
+
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ }
+ }
+
+ public EList getMembers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getMembers();
+ } else {
+ if(!this.memberLoaded) this.loadMembers();
+ return this.members;
+ }
+ }
+
+ public EList getIncludedMembers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getIncludedMembers();
+ } else {
+ if(!this.memberLoaded) this.loadMembers();
+ return this.includedMembers;
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogIndex.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public LUWTableSpace getTablespace() {
+ if (!this.tablespaceLoaded)
+ loadTablespace();
+ return this.tablespace;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == DB2ModelPackage.DB2_INDEX__MEMBERS) {
+ this.getMembers();
+ }
+ else if(id == DB2ModelPackage.DB2_INDEX__INCLUDED_MEMBERS) {
+ this.getIncludedMembers();
+ }
+ else if(id == DB2ModelPackage.DB2_INDEX__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private void loadMembers() {
+ if(this.memberLoaded) return;
+ this.memberLoaded = true;
+ EList memberList = super.getMembers();
+ EList includedMemberList = super.getIncludedMembers();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogIndex.loadMembers(this.getConnection(),memberList,includedMemberList, this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogIndex.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadTablespace() {
+ if( this.tablespaceLoaded ) {
+ return;
+ }
+
+ this.tablespaceLoaded = true;
+
+ // Only supported for LUW 9.x and above
+ try
+ {
+ String version = getSchema().getDatabase().getVersion().substring( 1 );
+
+ if ( Float.parseFloat( version ) < 9.1 )
+ {
+ return;
+ }
+ }
+ catch ( Exception e )
+ {
+ return;
+ }
+
+ EList tablespaces = ((LUWDatabase)getCatalogDatabase()).getTablespaces();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogIndex.loadTablespace( getConnection(), tablespaces, this );
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ /**
+ * Load the members of an index
+ *
+ * @param connection
+ * @param members
+ * @param includedMembers
+ * @param index
+ * @throws SQLException
+ */
+ protected static void loadMembers(Connection connection, EList members, EList includedMembers,Index index)throws SQLException {
+ final Schema schema = index.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+ String propkey = schema.getName() + "." + index.getName(); //$NON-NLS-1$
+
+//<bgp // TODO N.B. With very large databases, this uses excessive memory
+// // we need a way to detect that and throttle the cache
+// boolean caching = false && cache.isBatchLoading();
+//
+// if ( caching ) {
+// if ( cache.isPropertyCacheLoaded( PROP_INDEX_MEMBERS )) {
+// loadMembersFromCache( cache, index, propkey, members, includedMembers );
+// return;
+// }
+//
+// cache.setPropertyCacheLoaded( PROP_INDEX_MEMBERS );
+//bgp> }
+
+ String query = "SELECT COLNAME, COLORDER, INDSCHEMA, INDNAME" //$NON-NLS-1$
+ + " FROM SYSCAT.INDEXCOLUSE"; //$NON-NLS-1$
+
+//bgp if ( !caching ) {
+ query += " WHERE INDSCHEMA='" + LUWUtil.getIdentifier(index.getSchema().getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND INDNAME='" + LUWUtil.getIdentifier(index.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp }
+
+ query += " ORDER BY"; //$NON-NLS-1$
+
+//<bgp if ( caching ) {
+// query += " INDSCHEMA, INDNAME,"; //$NON-NLS-1$
+//bgp> }
+
+ query += " COLSEQ"; //$NON-NLS-1$
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ MembersInfo info = null;
+
+ try {
+ while(r.next()) {
+ final String schemaName = r.getString( "INDSCHEMA" ).trim(); //$NON-NLS-1$
+ final String indexName = r.getString( "INDNAME" ).trim(); //$NON-NLS-1$
+
+ if ( info == null
+ || !info.idxSchemaName.equals( schemaName )
+ || !info.indexName.equals( indexName ) ) {
+ info = new MembersInfo();
+ info.idxSchemaName = schemaName;
+ info.indexName = indexName;
+
+//<bgp if ( caching ) {
+// cache.cacheProperty( PROP_INDEX_MEMBERS, info.getKey(), info );
+//bgp> }
+ }
+
+ final String colName = r.getString(1);
+ final String order = r.getString(2);
+
+ info.addMember( colName, order );
+ }
+
+//bgp if ( !caching && info != null ) {
+//bgp info.setMembers( cache, index, members, includedMembers );
+ if (info != null ) {
+ info.setMembers(index, members, includedMembers );
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+
+//<bgp if ( caching ) {
+// loadMembersFromCache( cache, index, propkey, members, includedMembers );
+//bgp> }
+ }
+
+ /** Object for caching information about index members */
+ private static class MembersInfo {
+ /** Object for caching information about one index member */
+ private static class MemberInfo {
+ /** The column name */
+ String colName;
+ /** The sort order */
+ String order;
+
+ /**
+ * Constructor
+ *
+ * @param colName
+ * @param order
+ */
+ public MemberInfo( String colName, String order ) {
+ this.colName = colName;
+ this.order = order;
+ }
+ }
+
+ /** The schema containing the index */
+ String idxSchemaName;
+ /** The index we are caching members of */
+ String indexName;
+ /** Index members */
+ List<MemberInfo> members = new ArrayList<MemberInfo>();
+
+ /**
+ * Get the key for cache lookup
+ *
+ * @return The key
+ */
+ public String getKey() {
+ return this.idxSchemaName + "." + this.indexName; //$NON-NLS-1$
+ }
+
+ /**
+ * Add a member to the index
+ *
+ * @param colName
+ * @param order
+ */
+ public void addMember( String colName, String order ) {
+ this.members.add( new MemberInfo( colName, order ) );
+ }
+
+ /**
+ * Update an index
+ *
+ * @param index
+ * @param members
+ * @param includedMembers
+ */
+ public void setMembers(Index index, List<IndexMember> members, List<IndexMember> includedMembers ) {
+ Database database = index.getSchema().getDatabase();
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Object[] memberList = members.toArray();
+ members.clear();
+ Object[] includedMemberList = includedMembers.toArray();
+ includedMembers.clear();
+
+ for ( MemberInfo minfo : this.members ) {
+ IndexMember member = LUWCatalogIndex.findIndexMember( memberList, minfo.colName );
+
+ if ( member == null ) {
+ member = LUWCatalogIndex.findIndexMember( includedMemberList, minfo.colName );
+
+ if ( member == null ) {
+ member = (IndexMember)factory.create(
+ SQLConstraintsPackage.eINSTANCE.getIndexMember() );
+ Column col = LUWCatalogIndex.getColumn( index, minfo.colName );
+ member.setColumn( col );
+ }
+ }
+
+ if ( minfo.order.equals( "A" ) ) { //$NON-NLS-1$
+ member.setIncrementType( IncrementType.ASC_LITERAL );
+ members.add(member);
+ }
+ else if ( minfo.order.equals( "D" ) ) { //$NON-NLS-1$
+ member.setIncrementType( IncrementType.DESC_LITERAL );
+ members.add(member);
+ }
+ else if ( minfo.order.equals( "I" ) ) { //$NON-NLS-1$
+ includedMembers.add( member );
+ }
+ }
+ }
+ }
+
+//<bgp /**
+// * Set an index members from the cache
+// *
+// * @param cache
+// * @param index
+// * @param key
+// * @param members
+// * @param includedMembers
+// */
+// private static void loadMembersFromCache( CatalogCache cache, Index index, String key,
+// List<IndexMember> members, List<IndexMember> includedMembers ) {
+// MembersInfo info = (MembersInfo)cache.getCachedProperty( PROP_INDEX_MEMBERS, key );
+//
+// if ( info != null ) {
+// info.setMembers( cache, index, members, includedMembers );
+// }
+//bgp> }
+
+ public static void loadPrivileges(Connection connection, EList privilegeList,Index index,String granteeFilter) throws SQLException {
+ final Schema schema = index.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",CONTROLAUTH" +
+ " FROM SYSCAT.INDEXAUTH" +
+ " WHERE INDSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" +
+ " AND INDNAME='" + LUWUtil.getIdentifier(index.getName()) + "'" ;
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " AND " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ try {
+ String userName = connection.getMetaData().getUserName();
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+
+ boolean isSystemGranted = granteeId.equalsIgnoreCase(userName);
+ final String alterAuth = r.getString("CONTROLAUTH");
+ if (alterAuth.equals("N")) {
+ } else {
+ LUWCatalogPrivilege privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CONTROL);
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static void loadTablespace(Connection connection, EList tablespaceList, Index index) throws SQLException {
+ final LUWIndex luwindex = (LUWIndex)index;
+ Statement s = connection.createStatement();
+ String query = "SELECT T.TBSPACE" + //$NON-NLS-1$
+ " FROM SYSIBM.SYSINDEXES I, SYSIBM.SYSTABLESPACES T" + //$NON-NLS-1$
+ " WHERE I.NAME='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(luwindex.getName())
+ + "' AND I.CREATOR='" //$NON-NLS-1$
+ + luwindex.getTable().getSchema().getName().trim()
+ + "' AND I.TBSPACEID=T.TBSPACEID"; //$NON-NLS-1$
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while (r.next())
+ {
+ final String tbspaceName = r.getString("TBSPACE"); //$NON-NLS-1$
+
+ for (Iterator iter = tablespaceList.iterator(); iter.hasNext(); ) {
+ LUWTableSpace tbspace = (LUWTableSpace)iter.next();
+
+ if (tbspace.getName().equals( tbspaceName ))
+ {
+ luwindex.setTablespace( tbspace );
+ tbspace.getIndexes().add( luwindex );
+ break;
+ }
+ }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ private DatabaseDefinition getDatabaseDefinition() {
+ Database d = this.getSchema().getDatabase();
+ return RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(d);
+ }
+
+ private static Column getColumn(Index index, String columnName) {
+ Table table = index.getTable();
+ if (table instanceof LUWCatalogTable) {
+ Column c = ((LUWCatalogTable)table).getColumn(columnName);
+ if (c!= null) return c;
+ }
+
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ if(c.getName().equals(columnName)) return c;
+ }
+
+ Column column = new LUWCatalogColumn();
+ column.setName(columnName);
+ column.setTable(table);
+ Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition def = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ CharacterStringDataType dataType = (CharacterStringDataType) def.getPredefinedDataType("Char"); //$NON-NLS-1$
+ dataType.setLength(5);
+ column.setContainedType(dataType);
+
+ return column;
+
+ }
+
+ private static IndexMember findIndexMember(Object[] list, String colName){
+ IndexMember member = null;
+ for (int i = 0; i < list.length; i++){
+ Column column = ((IndexMember)list[i]).getColumn();
+ if (column.getName().equals(colName)){
+ member = (IndexMember)list[i];
+ break;
+ }
+ }
+ return member;
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogIndex.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogIndex.getImpactedConstraints(connection, this));
+ impacts.addAll(LUWCatalogIndex.getImpactedPackages(connection, this));
+
+ return impacts;
+ }
+
+
+ protected static Collection getImpactedTables(Connection connection, Index index) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT TABNAME,TABSCHEMA" +
+ " FROM SYSCAT.TABDEP" +
+ " where BTYPE='I'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(index.getName())+"'" +
+ " AND BSCHEMA ='" + LUWUtil.getIdentifier(index.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Table t = LUWCatalogView.getTable(index.getTable(), schemaName, tabName);
+ if (t != null) {
+ impacts.add(t);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedConstraints(Connection connection, Index index) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT CONSTNAME,TABNAME,TABSCHEMA" +
+ " FROM SYSCAT.CONSTDEP" +
+ " WHERE BTYPE='I'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(index.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(index.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String constName = r.getString("CONSTNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ TableConstraint constraint = LUWCatalogView.getTableConstraint(index.getTable(), schemaName, tabName, constName);
+ if (constraint != null) {
+ impacts.add(constraint);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedPackages(Connection connection, Index index) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT PKGNAME, PKGSCHEMA, HEX(UNIQUE_ID) AS UID" +
+ " FROM SYSCAT.PACKAGEDEP" +
+ " WHERE BTYPE = 'I'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(index.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(index.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String pkgName = r.getString("PKGNAME").trim();
+ final String schemaName = r.getString("PKGSCHEMA").trim();
+ final String pkgUniqueID = r.getString("UID").trim();
+ DB2Package pkg = LUWCatalogView.getDb2Package(index.getTable(), schemaName, pkgName, pkgUniqueID);
+ if (pkg != null) {
+ impacts.add(pkg);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+
+ public static Collection getStatistics(Connection connection, Index index){
+ Collection statistics = new ArrayList();
+ try {
+
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(index.getTable().getSchema().getDatabase());
+ String version = definition.getVersion();
+ float ver = 8.0f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+
+ String query = "";
+ if (ver < 9.0f) {
+ query = "SELECT I.STATS_TIME,S.NLEAF, S.NLEVELS,S.FIRSTKEYCARD,S.FIRST2KEYCARD,S.FIRST3KEYCARD" +
+ ",S.FIRST4KEYCARD,S.FULLKEYCARD,S.CLUSTERRATIO,S.CLUSTERFACTOR,S.SEQUENTIAL_PAGES,S.DENSITY,S.PAGE_FETCH_PAIRS" +
+ ",S.NUMRIDS,S.NUMRIDS_DELETED,S.NUM_EMPTY_LEAFS,S.AVERAGE_RANDOM_FETCH_PAGES" +
+ ",S.AVERAGE_RANDOM_PAGES,S.AVERAGE_SEQUENCE_GAP,S.AVERAGE_SEQUENCE_FETCH_GAP" +
+ ",S.AVERAGE_SEQUENCE_PAGES,S.AVERAGE_SEQUENCE_FETCH_PAGES" +
+ ",-1 AS AVGPARTITION_CLUSTERRATIO, -1 AS AVGPARTITION_CLUSTERFACTOR, '' AS AVGPARTITION_PAGE_FETCH_PAIRS" +
+ ",-1 AS DATAPARTITION_CLUSTERFACTOR, -1 AS INDCARD" +
+ " FROM SYSSTAT.INDEXES S, SYSCAT.INDEXES I" +
+ " WHERE S.INDSCHEMA = I.INDSCHEMA" +
+ " AND S.INDNAME = I.INDNAME" +
+ " AND S.INDSCHEMA='" + LUWUtil.getIdentifier(index.getSchema().getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND S.INDNAME='" + LUWUtil.getIdentifier(index.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " FOR FETCH ONLY";
+ } else {
+ query = "SELECT I.STATS_TIME,S.NLEAF, S.NLEVELS,S.FIRSTKEYCARD,S.FIRST2KEYCARD,S.FIRST3KEYCARD" +
+ ",S.FIRST4KEYCARD,S.FULLKEYCARD,S.CLUSTERRATIO,S.CLUSTERFACTOR,S.SEQUENTIAL_PAGES,S.DENSITY,S.PAGE_FETCH_PAIRS" +
+ ",S.NUMRIDS,S.NUMRIDS_DELETED,S.NUM_EMPTY_LEAFS,S.AVERAGE_RANDOM_FETCH_PAGES" +
+ ",S.AVERAGE_RANDOM_PAGES,S.AVERAGE_SEQUENCE_GAP,S.AVERAGE_SEQUENCE_FETCH_GAP" +
+ ",S.AVERAGE_SEQUENCE_PAGES,S.AVERAGE_SEQUENCE_FETCH_PAGES" +
+ ",S.AVGPARTITION_CLUSTERRATIO,S.AVGPARTITION_CLUSTERFACTOR,S.AVGPARTITION_PAGE_FETCH_PAIRS" +
+ ",S.DATAPARTITION_CLUSTERFACTOR,S.INDCARD" +
+ " FROM SYSSTAT.INDEXES S, SYSCAT.INDEXES I" +
+ " WHERE S.INDSCHEMA = I.INDSCHEMA" +
+ " AND S.INDNAME = I.INDNAME" +
+ " AND S.INDSCHEMA='" + LUWUtil.getIdentifier(index.getSchema().getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND S.INDNAME='" + LUWUtil.getIdentifier(index.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " FOR FETCH ONLY";
+ }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ CatalogStatistics stats = null;
+
+ final Timestamp stats_time = r.getTimestamp("STATS_TIME");
+ if (stats_time != null) {
+ stats = new CatalogStatistics("STATS_TIME",LUWCatalogMessages.STAT_TIME,LUWCatalogMessages.STAT_TIME_DES,stats_time,"");
+ statistics.add(stats);
+ }
+
+ final int nLeaf = r.getInt("NLEAF");
+ if (nLeaf != -1) {
+ stats = new CatalogStatistics("NLEAF",LUWCatalogMessages.STAT_NLEAF,LUWCatalogMessages.STAT_NLEAF_DES,nLeaf,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final int nLevel = r.getInt("NLEVELS");
+ if (nLevel != -1) {
+ stats = new CatalogStatistics("NLEVELS",LUWCatalogMessages.STAT_NLEVELS,LUWCatalogMessages.STAT_NLEVELS_DES,nLevel,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger firstKeyCard = r.getBigDecimal("FIRSTKEYCARD").toBigInteger();
+ if (firstKeyCard.intValue() != -1) {
+ stats = new CatalogStatistics("FIRSTKEYCARD",LUWCatalogMessages.STAT_FIRST_KEYCARD,LUWCatalogMessages.STAT_FIRST_KEYCARD_DES,firstKeyCard,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger first2KeyCard = r.getBigDecimal("FIRST2KEYCARD").toBigInteger();
+ if (firstKeyCard.intValue() != -1) {
+ stats = new CatalogStatistics("FIRST2KEYCARD",LUWCatalogMessages.STAT_FIRST2_KEYCARD,LUWCatalogMessages.STAT_FIRST2_KEYCARD_DES,first2KeyCard,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger first3KeyCard = r.getBigDecimal("FIRST3KEYCARD").toBigInteger();;
+ if (first3KeyCard.intValue() != -1) {
+ stats = new CatalogStatistics("FIRST3KEYCARD",LUWCatalogMessages.STAT_FIRST3_KEYCARD,LUWCatalogMessages.STAT_FIRST3_KEYCARD_DES,first3KeyCard,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger first4KeyCard = r.getBigDecimal("FIRST4KEYCARD").toBigInteger();;
+ if (first4KeyCard.intValue() != -1) {
+ stats = new CatalogStatistics("FIRST4KEYCARD",LUWCatalogMessages.STAT_FIRST4_KEYCARD,LUWCatalogMessages.STAT_FIRST4_KEYCARD_DES,first4KeyCard,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger fullKeyCard = r.getBigDecimal("FULLKEYCARD").toBigInteger();;
+ if (fullKeyCard.intValue() != -1) {
+ stats = new CatalogStatistics("FULLKEYCARD",LUWCatalogMessages.STAT_FULL_KEYCARD,LUWCatalogMessages.STAT_FULL_KEYCARD_DES,fullKeyCard,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final int clusterRatio = r.getInt("CLUSTERRATIO");
+ if (clusterRatio != -1) {
+ stats = new CatalogStatistics("CLUSTERRATIO",LUWCatalogMessages.STAT_CLUSTER_RATIO,LUWCatalogMessages.STAT_CLUSTER_RATIO_DES,clusterRatio,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float clusterFactor = r.getFloat("CLUSTERFACTOR");
+ if (clusterFactor != -1) {
+ stats = new CatalogStatistics("CLUSTERFACTOR",LUWCatalogMessages.STAT_CLUSTER_FACTOR,LUWCatalogMessages.STAT_CLUSTER_FACTOR_DES,clusterFactor,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final int sequentialPages = r.getInt("SEQUENTIAL_PAGES");
+ if (sequentialPages != -1) {
+ stats = new CatalogStatistics("SEQUENTIAL_PAGES",LUWCatalogMessages.STAT_SEQUENTIAL_PAGES,LUWCatalogMessages.STAT_SEQUENTIAL_PAGES_DES,sequentialPages,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final int density = r.getInt("DENSITY");
+ if (density != -1) {
+ stats = new CatalogStatistics("DENSITY",LUWCatalogMessages.STAT_DENSITY,LUWCatalogMessages.STAT_DENSITY_DES,density,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final String fetchPair = r.getString("PAGE_FETCH_PAIRS");
+ if (fetchPair != null && !"".equals(fetchPair)) {
+ stats = new CatalogStatistics("PAGE_FETCH_PAIRS",LUWCatalogMessages.STAT_PAGE_FETCH_PAIRS,LUWCatalogMessages.STAT_PAGE_FETCH_PAIRS_DES,LUWUtil.getSingleQuotedString(fetchPair),"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger numberRID = r.getBigDecimal("NUMRIDS").toBigInteger();;
+ if (numberRID.intValue() != -1) {
+ stats = new CatalogStatistics("NUMRIDS",LUWCatalogMessages.STAT_NUMRIDS,LUWCatalogMessages.STAT_NUMRIDS_DES,numberRID,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger numberRIDDeleted = r.getBigDecimal("NUMRIDS_DELETED").toBigInteger();;
+ if (numberRIDDeleted.intValue() != -1) {
+ stats = new CatalogStatistics("NUMRIDS_DELETED",LUWCatalogMessages.STAT_NUMRIDS_DELETED,LUWCatalogMessages.STAT_NUMRIDS_DELETED_DES,numberRIDDeleted,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger numEmptyLeafs = r.getBigDecimal("NUM_EMPTY_LEAFS").toBigInteger();;
+ if (numEmptyLeafs.intValue() != -1) {
+ stats = new CatalogStatistics("NUM_EMPTY_LEAFS",LUWCatalogMessages.STAT_NUM_EMPTY_LEAFS,LUWCatalogMessages.STAT_NUM_EMPTY_LEAFS_DES,numEmptyLeafs,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float avgRandomFetchPages = r.getFloat("AVERAGE_RANDOM_FETCH_PAGES");
+ if (avgRandomFetchPages != -1) {
+ stats = new CatalogStatistics("AVERAGE_RANDOM_FETCH_PAGES",LUWCatalogMessages.STAT_AVERAGE_RANDOM_FETCH_PAGES,LUWCatalogMessages.STAT_AVERAGE_RANDOM_FETCH_PAGES_DES,avgRandomFetchPages,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float avgRandomPages = r.getFloat("AVERAGE_RANDOM_PAGES");
+ if (avgRandomPages != -1) {
+ stats = new CatalogStatistics("AVERAGE_RANDOM_PAGES",LUWCatalogMessages.STAT_AVERAGE_RANDOM_PAGES,LUWCatalogMessages.STAT_AVERAGE_RANDOM_PAGES_DES,avgRandomPages,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float avgSequenceGap = r.getFloat("AVERAGE_SEQUENCE_GAP");
+ if (avgSequenceGap != -1) {
+ stats = new CatalogStatistics("AVERAGE_SEQUENCE_GAP",LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_GAP,LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_GAP_DES,avgSequenceGap,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float avgSequenceFetchGap = r.getFloat("AVERAGE_SEQUENCE_FETCH_GAP");
+ if (avgSequenceFetchGap != -1) {
+ stats = new CatalogStatistics("AVERAGE_SEQUENCE_FETCH_GAP",LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_FETCH_GAP,LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_FETCH_GAP_DES,avgSequenceFetchGap,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float avgSequencePage = r.getFloat("AVERAGE_SEQUENCE_PAGES");
+ if (avgSequencePage != -1) {
+ stats = new CatalogStatistics("AVERAGE_SEQUENCE_PAGES",LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_PAGES,LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_PAGES_DES,avgSequencePage,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float avgSequenceFetchPage = r.getFloat("AVERAGE_SEQUENCE_FETCH_PAGES");
+ if (avgSequenceFetchPage != -1) {
+ stats = new CatalogStatistics("AVERAGE_SEQUENCE_FETCH_PAGES",LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_FETCH_PAGES,LUWCatalogMessages.STAT_AVERAGE_SEQUENCE_FETCH_PAGES_DES,avgSequenceFetchPage,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final int partClusterRatio= r.getInt("AVGPARTITION_CLUSTERRATIO");
+ if (partClusterRatio != -1) {
+ stats = new CatalogStatistics("AVGPARTITION_CLUSTERRATIO",LUWCatalogMessages.STAT_AVERAGE_PARTITION_CLUSTERRATIO,LUWCatalogMessages.STAT_AVERAGE_PARTITION_CLUSTERRATIO_DES,partClusterRatio,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float partClusterFactor = r.getFloat("AVGPARTITION_CLUSTERFACTOR");
+ if (partClusterFactor != -1) {
+ stats = new CatalogStatistics("AVGPARTITION_CLUSTERFACTOR",LUWCatalogMessages.STAT_AVERAGE_PARTITION_CLUSTERFACTOR,LUWCatalogMessages.STAT_AVERAGE_PARTITION_CLUSTERFACTOR_DES,partClusterFactor,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final String partFetchPair = r.getString("AVGPARTITION_PAGE_FETCH_PAIRS");
+ if (partFetchPair != null && !"".equals(partFetchPair)) {
+ stats = new CatalogStatistics("AVGPARTITION_PAGE_FETCH_PAIRS",LUWCatalogMessages.STAT_AVERAGE_PARTITION_PAGE_FETCH_PAIRS,LUWCatalogMessages.STAT_AVERAGE_PARTITION_PAGE_FETCH_PAIRS_DES,partFetchPair,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final float dataClusterFactor = r.getFloat("DATAPARTITION_CLUSTERFACTOR");
+ if (dataClusterFactor != -1) {
+ stats = new CatalogStatistics("DATAPARTITION_CLUSTERFACTOR",LUWCatalogMessages.STAT_DATAPARTITION_CLUSTERFACTOR,LUWCatalogMessages.STAT_DATAPARTITION_CLUSTERFACTOR_DES,dataClusterFactor,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ final BigInteger indCard = r.getBigDecimal("INDCARD").toBigInteger();;
+ if (indCard.intValue() != -1) {
+ stats = new CatalogStatistics("INDCARD",LUWCatalogMessages.STAT_INDCARD,LUWCatalogMessages.STAT_INDCARD_DES,indCard,"SYSSTAT.INDEXES");
+ statistics.add(stats);
+ }
+
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return statistics;
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogIndex.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ protected void setIndexUniqueRule(IndexUniqueRule rule){
+ this.uniqueRule = rule;
+ }
+
+ protected IndexUniqueRule getIndexUniqueRule(){
+ return this.uniqueRule;
+ }
+
+ protected enum IndexUniqueRule {
+ DUPLICATE,
+ UNIQUE,
+ PRIMARYKEY
+ };
+
+ private static final String PROP_INDEX_MEMBERS = "PROP_INDEX_MEMBERS"; //$NON-NLS-1$
+
+ private boolean memberLoaded = false;
+ private boolean privilegeLoaded = false;
+ private boolean statisticsLoaded = false;
+ private boolean impactsLoaded = false;
+ private boolean tablespaceLoaded = false;
+
+ private IndexUniqueRule uniqueRule;
+
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogJar.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogJar.java
new file mode 100644
index 0000000..bde9313
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogJar.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl;
+
+/**
+ * @author cdchu
+ */
+public class LUWCatalogJar extends DB2JarImpl implements ICatalogObject {
+ private boolean loaded = false;
+ private boolean dependencyLoaded = false;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#refresh()
+ */
+ public void refresh() {
+ this.loaded = false;
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getConnection()
+ */
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getCatalogDatabase()
+ */
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogMaterializedQueryTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogMaterializedQueryTable.java
new file mode 100644
index 0000000..025c4cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogMaterializedQueryTable.java
@@ -0,0 +1,514 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWDdlParser;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl;
+import org.eclipse.datatools.enablement.ibm.util.IRowCountCache;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogMaterializedQueryTable extends LUWMaterializedQueryTableImpl implements IRowCountCache,ICatalogObject,IDatabaseObject {
+ public void refresh() {
+ this.columnsLoaded = false;
+ this.indexLoaded = false;
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ this.partitionKeyLoaded = false;
+
+ if (this.dataPartitionLoaded) {
+ this.dataPartitions.clear();
+ this.dataPartitionLoaded = false;
+ }
+
+ this.tablespaceLoaded = false;
+ this.loaded = false;
+ this.privilegeLoaded = false;
+ this.rowCountLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ this.rowCountLoaded = false;
+ }
+
+ }
+
+// public RefreshType getRefresh() {
+// if (!this.loaded) this.load();
+// return this.refresh;
+// }
+//
+// public MaintenanceType getMaintainedBy() {
+// if (!this.loaded) this.load();
+// return this.maintainedBy;
+// }
+//
+ public QueryExpression getQueryExpression() {
+ if (!this.loaded) this.load();
+ return this.queryExpression;
+ }
+
+ public EList getColumns() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getColumns();
+ } else {
+ if(!this.columnsLoaded) this.loadColumns();
+ return this.columns;
+ }
+ }
+
+ public EList getIndex() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getIndex();
+ } else {
+ if(!this.indexLoaded) this.loadIndexes();
+ return this.index;
+ }
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public LUWTableSpace getRegularDataTableSpace(){
+ if(!this.tablespaceLoaded) this.loadTablespace();
+ return this.regularDataTableSpace;
+ }
+
+ public LUWTableSpace getIndexDataTableSpace(){
+ if(!this.tablespaceLoaded) this.loadTablespace();
+ return this.indexDataTableSpace;
+ }
+
+ public LUWTableSpace getLOBDataTableSpace(){
+ if(!this.tablespaceLoaded) this.loadTablespace();
+ return this.lobDataTableSpace;
+ }
+
+ public LUWPartitionKey getPartitionKey() {
+ if (!this.partitionKeyLoaded) this.loadPartitionKey();
+ return this.partitionKey;
+ }
+
+ public EList getDataPartitions(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDataPartitions();
+ } else {
+ if (!this.dataPartitionLoaded) this.loadDataPartitions();
+ return this.dataPartitions;
+ }
+ }
+
+ public LUWDataPartitionKey getDataPartitionKey() {
+ if (!this.dataPartitionLoaded) this.loadDataPartitions();
+ return this.dataPartitionKey;
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogTable.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COLUMNS) {
+ this.getColumns();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX) {
+ this.getIndex();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DEPENDENCIES) {
+ this.getDependencies();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE) {
+ this.getRegularDataTableSpace();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE) {
+ this.getLOBDataTableSpace();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE) {
+ this.getIndexDataTableSpace();
+ }
+// else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__MAINTAINED_BY) {
+// this.getMaintainedBy();
+// }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__QUERY_EXPRESSION) {
+ this.getQueryExpression();
+ }
+// else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REFRESH) {
+// this.getRefresh();
+// }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY) {
+ this.getPartitionKey();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS) {
+ this.getDataPartitions();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY) {
+ this.getDataPartitionKey();
+ }
+ else if(id == LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PRIVILEGES) {
+ this.getPrivileges();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ public void setPartitionMode(String partitionMode) {
+ this.partitionMode = partitionMode;
+ }
+
+ public String getPartitionMode() {
+ return this.partitionMode;
+ }
+
+ /*
+ private synchronized void loadProperties() {
+ if(this.propertiesLoaded) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogTable.loadProperties(this.getConnection(),this);
+ }
+ catch (Exception e) {
+ }
+
+ this.propertiesLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+ */
+
+ private synchronized void loadColumns() {
+ if(this.columnsLoaded) return;
+ this.columnsLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadColumns(this.getConnection(), super.getColumns(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadIndexes() {
+ if(this.indexLoaded) return;
+ this.indexLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadIndexes(this.getConnection(), super.getIndex(), this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogView.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadTablespace() {
+ if(this.tablespaceLoaded) return;
+ this.tablespaceLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadTablespace(this.getConnection(),this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void load() {
+ if(this.loaded) return;
+ this.loaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+
+
+ DataModelElementFactory factory = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase()).getDataModelElementFactory();
+
+ String query = "SELECT REFRESH,PROPERTY " + //$NON-NLS-1$
+ " FROM SYSCAT.TABLES " + //$NON-NLS-1$
+ " WHERE TABSCHEMA ='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND TABNAME ='" + LUWUtil.getIdentifier(this.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND TYPE='S'"; //$NON-NLS-1$
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+
+// if (r.getString("REFRESH").trim().equalsIgnoreCase("D")) { //$NON-NLS-1$ //$NON-NLS-2$
+// this.setRefresh(RefreshType.DEFERRED_LITERAL);
+// } else {
+// this.setRefresh(RefreshType.IMMEDIATE_LITERAL);
+// }
+//
+// if (r.getString("PROPERTY").trim().equalsIgnoreCase("Y")) { //$NON-NLS-1$ //$NON-NLS-2$
+// this.setMaintainedBy(MaintenanceType.USER_LITERAL);
+// } else {
+// this.setMaintainedBy(MaintenanceType.SYSTEM_LITERAL);
+// }
+
+
+ }
+ r.close();
+
+
+ String querySQL = "SELECT TEXT " + //$NON-NLS-1$
+ " FROM SYSCAT.VIEWS" + //$NON-NLS-1$
+ " WHERE VIEWSCHEMA='" + this.getSchema().getName() + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND VIEWNAME='" + this.getName()+ "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ r = s.executeQuery(querySQL);
+
+ String text="";
+ while(r.next()) {
+
+ String expression = r.getString("TEXT").trim(); //$NON-NLS-1$
+ if (expression != null){
+ text += expression.trim() + " ";
+ //remove un-readable character
+ text = text.replaceAll("[\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000b\u000c\u000e\u000f" +
+ "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f]", " ");
+ }
+ }
+
+ QueryExpression queryExpression = (QueryExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getQueryExpressionDefault());
+ LUWDdlParser ddlParser = new LUWDdlParser(RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase()));
+ queryExpression.setSQL(ddlParser.parseMQT(text).getQueryExpression().getSQL());
+ this.setQueryExpression(queryExpression);
+
+ r.close();
+ s.close();
+
+
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPartitionKey() {
+ if(this.partitionKeyLoaded) return;
+ this.partitionKeyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPartitionKey(this.getConnection(), this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ private synchronized void loadDataPartitions() {
+ if(this.dataPartitionLoaded) return;
+ this.dataPartitionLoaded = true;
+
+ super.getDataPartitions();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadDataPartitions(this.getConnection(), this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogTable.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedPackages(connection, this));
+ return impacts;
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public String getRowCountString() {
+ if (!rowCountLoaded) {
+ this.rowCount = LUWCatalogTable.loadRowCount(this.getConnection(), this);
+ this.rowCountLoaded = true;
+ }
+ return this.rowCount;
+ }
+
+ public void setRowCountString(String count) {
+ rowCount = count;
+ rowCountLoaded = true;
+ }
+
+
+ private boolean columnsLoaded = false;
+ private boolean indexLoaded = false;
+ private boolean dependencyLoaded = false;
+ private boolean tablespaceLoaded = false;
+ private boolean partitionKeyLoaded = false;
+ private boolean dataPartitionLoaded = false;
+ private boolean loaded = false;
+ private boolean privilegeLoaded = false;
+ private boolean impactsLoaded = false;
+ private boolean statisticsLoaded = false;
+ private boolean rowCountLoaded = false;
+
+ private String partitionMode = "";
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+ private String rowCount = null;
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogMultidimensionalIndex.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogMultidimensionalIndex.java
new file mode 100644
index 0000000..ffc24f8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogMultidimensionalIndex.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MultidimensionalIndexImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+public class LUWCatalogMultidimensionalIndex extends DB2MultidimensionalIndexImpl implements ICatalogObject {
+ public void refresh() {
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogNickname.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogNickname.java
new file mode 100644
index 0000000..abb6f2a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogNickname.java
@@ -0,0 +1,664 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.CallableStatement;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.DatabaseConnectionRegistry;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericNicknameImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.util.TableToRemoteDataSetHelper;
+import org.eclipse.datatools.enablement.ibm.util.ConnectionProfileUtility;
+import org.eclipse.datatools.enablement.ibm.util.IRowCountCache;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogNickname extends LUWGenericNicknameImpl implements IRowCountCache,ICatalogObject,IDatabaseObject{
+
+ public void refresh() {
+ this.columnsLoaded = false;
+ this.constraintLoaded = false;
+ this.serverLoaded = false;
+ this.optionsLoaded = false;
+ this.indexLoaded = false;
+ this.remoteDataSetLoaded = false;
+ this.remoteTableDependencyLoaded = false;
+ this.remoteTableDependencyList.clear();
+ this.privilegeLoaded = false;
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ this.rowCountLoaded = false;
+ }
+ }
+
+ public EList getColumns() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getColumns();
+ } else {
+ if(!this.columnsLoaded) this.loadColumns();
+ return this.columns;
+ }
+ }
+
+ public LUWServer getServer() {
+ if(!this.serverLoaded) this.loadServer();
+ return this.server;
+ }
+
+ public EList getOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getOptions();
+ } else {
+ if(!this.optionsLoaded) this.loadOptions();
+ return super.getOptions();
+ }
+ }
+
+//temp disable
+// public RemoteDataSet getRemoteDataSet() {
+// if(!this.remoteDataSetLoaded) this.loadRemoteDataSet();
+// return this.remoteDataSet;
+// }
+
+ public EList getConstraints() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getConstraints();
+ } else {
+ if(!this.constraintLoaded) this.loadConstraints();
+ return this.constraints;
+ }
+ }
+
+ public EList getIndex() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getIndex();
+ } else {
+ if (!this.indexLoaded) this.loadIndexes();
+ return this.index;
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogTable.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_NICKNAME__COLUMNS) {
+ this.getColumns();
+ }
+ else if(id == LUWPackage.LUW_NICKNAME__SERVER) {
+ this.getServer();
+ }
+ else if(id == LUWPackage.LUW_NICKNAME__OPTIONS) {
+ this.getOptions();
+ }
+ else if(id == LUWPackage.LUW_NICKNAME__DESCRIPTION) {
+ this.getDescription();
+ }
+ else if(id == LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET) {
+ this.getRemoteDataSet();
+ }else if(id == LUWPackage.LUW_NICKNAME__CONSTRAINTS) {
+ this.getConstraints();
+ }else if(id == LUWPackage.LUW_NICKNAME__INDEX) {
+ this.getIndex();
+ }else if(id == LUWPackage.LUW_NICKNAME__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ else if(id == LUWPackage.LUW_NICKNAME__DEPENDENCIES) {
+ this.getDependencies();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadColumns() {
+ if(this.columnsLoaded) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadColumns(this.getConnection(), super.getColumns(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.columnsLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadOptions() {
+ if(this.optionsLoaded) return;
+ this.optionsLoaded = true;
+
+ EList options = super.getOptions();
+ options.clear();
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ String query = "SELECT OPTION, CAST(SUBSTR(SETTING, 1, 128) AS VARCHAR(128)) FROM SYSCAT.TABOPTIONS WHERE TABSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(this.getSchema().getName()) + "' AND TABNAME='" + LUWUtil.getIdentifier(this.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+ final String name = r.getString(1).trim();
+ String value = r.getString(2).trim();
+ LUWOption option = LUWFactory.eINSTANCE.createLUWOption();
+ option.setName(name);
+
+ // Check to see if the setting is 255 bytes. If it is, we need to get the rest
+ // of it from the pack descriptor
+ if (value.length() == 255 && getCatalogDatabase().getVersion().equalsIgnoreCase("V8.2")) {
+ value = getOptionFromPackDescriptor(name);
+ }
+ option.setValue(value);
+ options.add(option);
+ }
+ }
+ catch (Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ // This method will get the option value from the pack descriptor, which is a place that lies
+ // outside of the realm of the DB2 system catalogs.
+ private synchronized String getOptionFromPackDescriptor(String option) {
+
+ String value = new String("");
+ String stmtText;
+ int returnCode;
+
+ CallableStatement stmt=null;
+ ResultSet rs=null;
+
+ try {
+ stmtText = "{CALL SYSPROC.LIST_NN_LONG_OPTS(?,?,?,?)}";
+ stmt = this.getConnection().prepareCall(stmtText);
+ //register the IN parameters
+ stmt.setString(1,this.getName());
+ stmt.setString(2,this.getSchema().getName());
+ stmt.setString(3,option);
+ stmt.registerOutParameter(4,Types.INTEGER);
+
+ stmt.execute();
+ returnCode = stmt.getInt(4);
+ rs = stmt.getResultSet();
+
+ if (rs == null) {
+ // System.out.println("Result set is NULL...");
+ }
+ else {
+ while (rs.next()) {
+ value = rs.getString(1);
+ }
+ }
+ if ( rs != null ) rs.close();
+ if ( stmt != null ) stmt.close();
+ } // end try
+ catch (SQLException sqle) {
+// sqle.printStackTrace();
+ // Insure that we have closed the result set
+ try {
+ if (rs != null) {
+ rs.close(); // close result set
+ if ( stmt != null ) stmt.close();
+ }
+ } catch (Exception exc) {
+ exc.printStackTrace();
+ }
+ }
+
+ return value;
+ }
+
+ private synchronized void loadServer() {
+ if(this.serverLoaded) return;
+ this.serverLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ Iterator it = this.getOptions().iterator();
+ while(it.hasNext()) {
+ LUWOption option = (LUWOption) it.next();
+ if(option.getName().equals("SERVER")) { //$NON-NLS-1$
+ Iterator severIt = ((LUWCatalogDatabase) this.getCatalogDatabase()).getServers().iterator();
+ while(severIt.hasNext()) {
+ Object aServer = severIt.next();
+ //The list of servers are a combination of LUWDiscoveredSever and LUWCatalogFederatedServer
+ //Only the LUWCatalogFederatedServer should be casted.
+ if(aServer instanceof LUWCatalogFederatedServer) {
+ LUWCatalogFederatedServer remoteServer = (LUWCatalogFederatedServer) /*severIt.next()*/aServer;
+ if(remoteServer.getName().equals(option.getValue())) {
+ this.setGenericServer(remoteServer);
+ break;
+ }
+ }
+ }
+ break;
+ }
+ }
+
+ this.eSetDeliver(deliver);
+ }
+/*
+ private synchronized void loadRemoteDataSet() {
+
+ if(this.remoteDataSetLoaded) return;
+
+ RemoteServer rs = this.getServer().getRemoteServer();
+
+ if(rs instanceof RelationalRemoteServer) {
+ String remoteSchemaName = null;
+ String remoteTableName = null;
+
+ Iterator it = this.getOptions().iterator();
+ while(it.hasNext()) {
+ LUWOption option = (LUWOption) it.next();
+ if(option.getName().equals("REMOTE_SCHEMA")) {
+ remoteSchemaName = option.getValue();
+ }
+ else if(option.getName().equals("REMOTE_TABLE")) {
+ remoteTableName = option.getValue();
+ }
+ }
+ //here you want to load rrDataset object
+ Table remoteTable = getRemoteTable(((RelationalRemoteServer)rs).getDatabase(), remoteSchemaName, remoteTableName);
+ if(remoteTable instanceof RemoteDataSet) {
+ ((RemoteDataSet) remoteTable).getNickname();
+ }
+ }
+ }
+*/
+
+
+
+ private synchronized void loadRemoteDataSet() {
+ //TODO:Added by GEETIKA: new implementation of LoadRemoteDataSet
+ //if dataset isnt loaded, force load of remote table, this
+ //will create the dataset object. then get the dataset object
+ //and create link from dataset object to nickname.
+ if (this.remoteDataSetLoaded) {
+ return;
+ }
+ this.remoteDataSetLoaded = true;
+
+ LUWServer luwServer = this.getServer();
+
+ if (luwServer != null) {
+ RemoteServer rs = luwServer.getRemoteServer();
+
+ if (rs instanceof RelationalRemoteServer) {
+ String remoteSchemaName = null;
+ String remoteTableName = null;
+ RelationalRemoteServer relationalRS = (RelationalRemoteServer) rs;
+ Database db = relationalRS.getDatabase();
+
+ Iterator it = this.getOptions().iterator();
+ while (it.hasNext() && (remoteSchemaName == null || remoteTableName == null)) {
+ LUWOption option = (LUWOption) it.next();
+ if (option.getName().equals("REMOTE_SCHEMA")) { //$NON-NLS-1$
+ remoteSchemaName = option.getValue();
+ }
+ else if (option.getName().equals("REMOTE_TABLE")) { //$NON-NLS-1$
+ remoteTableName = option.getValue();
+ }
+ }
+
+ if (remoteSchemaName == null) {
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(luwServer.getWrapper().getLUWDatabase());
+ IConnectionProfile profile = connectionInfo.getConnectionProfile();
+ remoteSchemaName = ConnectionProfileUtility.getUID(profile);
+ }
+
+ if (remoteSchemaName != null && remoteTableName != null) {
+ //here you want to load rrDataset object
+ if (db != null) {
+ BaseTable remoteTable = getRemoteTable (relationalRS.getDatabase(),
+ remoteSchemaName, remoteTableName);
+ if (remoteTable != null) {
+ this.setRemoteDataSetFromTable(remoteTable);
+ }
+ else {
+ //shows a warning in the error log
+// String msg = DB2LUWPlugin.getResourceString("datatools.db2.luw.RemoteDataSetLoadingError");
+// String[] subs = new String[] {relationalRS.getName(), remoteSchemaName, remoteTableName,
+// this.getSchema().getName(), this.getName()};
+// DB2LUWPlugin.getDefault().log(MessageFormat.format(msg, subs), IStatus.WARNING, null);
+ }
+ }
+ }
+ }
+ }
+ else {
+ //nickname is defined on a non-relational datasource
+ }
+
+ //we set this variable to true even if the data set is not loaded, meaning we tried to load it.
+ //this avoids trying to load several times when there is a problem during the loading (eg, the remote
+ //server is down)
+ }
+
+ /**
+ * @param remoteTable
+ */
+ public void setRemoteDataSetFromTable(BaseTable remoteTable) {
+ LUWCatalogRelationalRemoteDataSet rds = (LUWCatalogRelationalRemoteDataSet) TableToRemoteDataSetHelper
+ .getRemoteDataSet(remoteTable);
+ if (rds == null) {
+ rds = new LUWCatalogRelationalRemoteDataSet();
+ rds.setName(this.getName());
+ rds.setRemoteSchemaName(remoteTable.getSchema().getName());
+ rds.setRemoteTableName(remoteTable.getName());
+ rds.setTable(remoteTable);
+ this.setRemoteDataSet(rds);
+ }
+ rds.getNickname().add(this);
+ }
+
+ private synchronized void loadConstraints() {
+ if(this.constraintLoaded) return;
+ this.constraintLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadConstraints(this.getConnection(), super.getConstraints(), this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadIndexes() {
+ if(this.indexLoaded) return;
+ this.indexLoaded = true;
+ EList indexes = super.getIndex();
+
+ if (this.batchLoad) return; //if batchload
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadIndexes(this.getConnection(), indexes, this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static Schema getRemoteSchema(Database database, String schemaName) {
+ Iterator it = database.getSchemas().iterator();
+ //try database.getSchemas != null, then do iterator();
+ while(it.hasNext()) {
+ Schema s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+ return null;
+ }
+
+ public static BaseTable getRemoteTable(Database database, String schemaName, String tableName) {
+ Schema schema = getRemoteSchema(database, schemaName);
+ //what if schema is excel? check if db vendor is excel, and then what?
+ if(schema == null) return null;
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return (BaseTable) table;
+ }
+ return null;
+ }
+
+ public List getRemoteTableDependencies() {
+ if(!this.remoteTableDependencyLoaded) this.loadRemoteTableDependencies();
+ return this.remoteTableDependencyList;
+ }
+
+ private synchronized void loadRemoteTableDependencies() {
+ if(this.remoteTableDependencyLoaded) return;
+ this.remoteTableDependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ final Database database = this.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ LUWCatalogRelationalRemoteDataSet rrds = (LUWCatalogRelationalRemoteDataSet) getRemoteDataSet();
+ if (rrds != null)
+ {
+ SQLObject obj = rrds.getTable();
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(obj);
+ remoteTableDependencyList.add(dep);
+ }
+ }
+ catch(Exception e) {
+// e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ EList dependencyList = super.getDependencies();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ if (this.getServer() != null) {
+ final Database database = this.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(this.getServer());
+ dependencyList.add(dep);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ protected void setAsBatchLoad(boolean batchLoad){
+ this.batchLoad = batchLoad;
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogTable.getImpactedAlias(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedPackages(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedConstraints(connection, this));
+ return impacts;
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public String getRowCountString() {
+ if (!rowCountLoaded) {
+ this.rowCount = LUWCatalogTable.loadRowCount(this.getConnection(), this);
+ this.rowCountLoaded = true;
+ }
+ return this.rowCount;
+ }
+
+ public void setRowCountString(String count) {
+ rowCount = count;
+ rowCountLoaded = true;
+ }
+
+ private List remoteTableDependencyList = new LinkedList ();
+ private boolean columnsLoaded = false;
+ private boolean serverLoaded = false;
+ private boolean remoteDataSetLoaded = false;
+ private boolean optionsLoaded = false;
+ private boolean constraintLoaded = false;
+ private boolean indexLoaded = false;
+ private boolean remoteTableDependencyLoaded = false;
+ private boolean batchLoad = false;
+ private boolean privilegeLoaded = false;
+ private boolean impactsLoaded = false;
+ private boolean statisticsLoaded = false;
+ private boolean rowCountLoaded = false;
+ private boolean dependencyLoaded = false;
+
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+ private String rowCount = null;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogParameter.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogParameter.java
new file mode 100644
index 0000000..8cafbc2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogParameter.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+public class LUWCatalogParameter extends ParameterImpl implements ICatalogObject{
+
+ public void refresh() {
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return ((Routine)this.eContainer()).getSchema().getDatabase();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogPrimaryKey.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogPrimaryKey.java
new file mode 100644
index 0000000..5688ab7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogPrimaryKey.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogIndex.IndexUniqueRule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.PrimaryKeyImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogPrimaryKey extends PrimaryKeyImpl implements ICatalogObject {
+ public void refresh() {
+ if(this.memberLoaded) {
+ this.members.clear();
+ this.memberLoaded = false;
+ }
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public EList getMembers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getMembers();
+ } else {
+ if(!this.memberLoaded) this.loadMembers();
+ return this.members;
+ }
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLConstraintsPackage.PRIMARY_KEY__MEMBERS) {
+ this.getMembers();
+ }
+ else if(id == SQLConstraintsPackage.PRIMARY_KEY__DEPENDENCIES) {
+ this.getDependencies();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getBaseTable().getSchema().getDatabase();
+ }
+
+ private synchronized void loadMembers() {
+ if(this.memberLoaded) return;
+ this.memberLoaded = true;
+
+ EList memberList = super.getMembers();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ LUWIndex index = this.getImplementIndex();
+ if (index != null) {
+ for (Iterator iterator=index.getMembers().iterator(); iterator.hasNext(); ){
+ IndexMember indexMemeber = (IndexMember)iterator.next();
+ memberList.add(indexMemeber.getColumn());
+ }
+ } else {
+ try {
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT COLNAME FROM SYSCAT.KEYCOLUSE" + this.getWhereClause()); //$NON-NLS-1$
+ while(r.next()) {
+ final String colName = r.getString(1);
+ memberList.add(this.getColumn(colName));
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogPrimaryKey.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private String getWhereClause() {
+ Table table = this.getBaseTable();
+ return " WHERE CONSTNAME='" + LUWUtil.getIdentifier(this.getName()) + "' AND TABSCHEMA='" + LUWUtil.getIdentifier(this.getBaseTable().getSchema().getName()) //$NON-NLS-1$ //$NON-NLS-2$
+ + "' AND TABNAME='" + LUWUtil.getIdentifier(this.getBaseTable().getName()) + "' ORDER BY COLSEQ"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ private Column getColumn(String columnName) {
+ BaseTable table = this.getBaseTable();
+ if (table instanceof LUWCatalogTable) {
+ Column c = ((LUWCatalogTable)table).getColumn(columnName);
+ if (c!= null) return c;
+ }
+
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ if(c.getName().equals(columnName)) return c;
+ }
+
+ Column column = new LUWCatalogColumn();
+ column.setName(columnName);
+ column.setTable(table);
+ Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition def = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ CharacterStringDataType dataType = (CharacterStringDataType) def.getPredefinedDataType("Char"); //$NON-NLS-1$
+ dataType.setLength(5);
+ column.setContainedType(dataType);
+
+ return column;
+ }
+
+ public static void loadDependencies(Connection connection, EList dependencyList, Constraint constraint) throws SQLException {
+ final Table table = (Table) constraint.eContainer();
+ final Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT BSCHEMA, BNAME, BTYPE FROM SYSCAT.CONSTDEP WHERE CONSTNAME='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(constraint.getName()) + "' AND TABSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(table.getSchema().getName()) + "' AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ try {
+ while(r.next()) {
+ final String bschema = r.getString(1).trim();
+ final String bname = r.getString(2);
+ final String btype = r.getString(3);
+ SQLObject obj = null;
+ if(btype.equals("F")) { //function //$NON-NLS-1$
+ obj = LUWCatalogView.getRountine(table, bschema, bname);
+ }
+ if(btype.equals("I")) { //index //$NON-NLS-1$
+ obj = LUWCatalogView.getIndex(table, bschema, bname);
+ }
+ if(btype.equals("R")) { //structured type //$NON-NLS-1$
+ obj = LUWCatalogView.getUserDefinedType(table, bschema, bname);
+ }
+ else {
+ continue;
+ }
+
+ if(obj == null) continue;
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(obj);
+ dependencyList.add(dep);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+
+ private LUWIndex getImplementIndex(){
+ for (Iterator iter = this.getBaseTable().getIndex().iterator(); iter.hasNext();) {
+ LUWIndex index = (LUWIndex) iter.next();
+ if (index instanceof LUWCatalogIndex
+ && ((LUWCatalogIndex)index).getIndexUniqueRule() == IndexUniqueRule.PRIMARYKEY) {
+ return index;
+ }
+ }
+ return null;
+ }
+ private boolean memberLoaded = false;
+ private boolean dependencyLoaded = false;
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogPrivilege.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogPrivilege.java
new file mode 100644
index 0000000..b775b20
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogPrivilege.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.PrivilegeImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EcoreFactory;
+
+public class LUWCatalogPrivilege extends PrivilegeImpl implements ICatalogObject {
+
+ public void refresh() {
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getGrantee().getDatabase();
+ }
+
+ public static void setAsSystemGranted(Privilege privilege, boolean value) {
+ EAnnotation eAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
+ eAnnotation.setSource(IBMPluginActivator.PRIVILEGE_PROPERTY);
+ eAnnotation.getDetails().put(IBMPluginActivator.PRIVILEGE_SYSTEM_GRANT, new Boolean (value).toString());
+ privilege.getEAnnotations().add(eAnnotation);
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogProcedure.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogProcedure.java
new file mode 100644
index 0000000..ef5ec0b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogProcedure.java
@@ -0,0 +1,1307 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.math.BigInteger;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogStatistics;
+import org.eclipse.datatools.enablement.ibm.db2.catalog.JavaProcedureInfo;
+import org.eclipse.datatools.enablement.ibm.db2.catalog.util.JavaProcedureProviderRegistry;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWCatalogMessages;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelFactory;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Source;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogProcedure extends DB2ProcedureImpl implements ICatalogObject,IDatabaseObject {
+ public void refresh() {
+ this.loaded = false;
+ if (this.parameterLoaded){
+ this.parameters.clear();
+ this.parameterLoaded = false;
+ }
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+ if (this.sourceLoaded) {
+ this.source = null;
+ this.extendedOptions.clear();
+ this.sourceLoaded = false;
+ }
+
+ this.javaProcedureLoaded = false;
+ this.privilegeLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ }
+ }
+
+ public String getLanguage() {
+ //if(!this.loaded) this.load();
+ return super.getLanguage();
+ }
+
+ public boolean isDeterministic() {
+ //if(!this.loaded) this.load();
+ return super.isDeterministic();
+ }
+
+ public String getParameterStyle() {
+ //if(!this.loaded) this.load();
+ return super.getParameterStyle();
+ }
+
+ public String getFenced() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getFenced();
+ } else {
+ if(!this.loaded) this.load();
+ return super.getFenced();
+ }
+ }
+
+ public boolean isFederated() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.isFederated();
+ } else {
+ if(!this.loaded) this.load();
+ return super.isFederated();
+ }
+ }
+
+ public int getMaxResultSets() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getMaxResultSets();
+ } else {
+ if(!this.loaded) this.load();
+ return super.getMaxResultSets();
+ }
+ }
+
+ public boolean isImplicitSchema() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.isImplicitSchema();
+ } else {
+ if ( !this.loaded ) this.load();
+ return super.implicitSchema;
+ }
+ }
+
+
+ public Source getSource() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getSource();
+ } else {
+ if(!this.loaded) this.load();
+ loadSource();
+ return super.getSource();
+ }
+ }
+
+ public DB2JavaOptions getJavaOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getJavaOptions();
+ } else {
+ loadJavaProcedure();
+ return super.getJavaOptions();
+ }
+ }
+
+ /**
+ * Get db2 package name from the Java procedure info provider.
+ * @return db2 package name if the language is JAVA.
+ */
+ private String getJavaSPDb2Package() {
+ String javaSPDb2Package = "";
+ if ("JAVA".equals(getLanguage())) { //$NON-NLS-1$
+ JavaProcedureInfo javaProcedureInfo = getJavaProcedureInfo();
+ if (javaProcedureInfo != null) {
+ javaSPDb2Package = javaProcedureInfo.getDB2Package();
+ }
+ else {
+ javaSPDb2Package = "";
+ }
+ }
+ return javaSPDb2Package;
+ }
+
+ /**
+ * This method is not in the super. It is provided
+ * here as an alternative to finding the db2Package
+ * name from the source list through getSource()
+ * which would trigger a download of the source from the catalog.
+ * @return The DB2 package name if the language is JAVA.
+ */
+ public String getDb2Package() {
+ if (!db2PackageLoaded) {
+ if ("JAVA".equals(getLanguage())) { //$NON-NLS-1$
+ JavaProcedureInfo javaProcedureInfo = getJavaProcedureInfo();
+ if (javaProcedureInfo != null) {
+ db2Package = javaProcedureInfo.getDB2Package();
+ }
+ else {
+ db2Package = "";
+ }
+ }
+ else {
+ load();
+ }
+ db2PackageLoaded = true;
+ }
+ return db2Package;
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public EList getParameters() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getParameters();
+ } else {
+ if(!this.parameterLoaded) this.loadParameters();
+ return this.parameters;
+ }
+ }
+
+ public DataAccess getSqlDataAccess() {
+ //if(!this.loaded) this.load();
+ return this.sqlDataAccess;
+ }
+
+ public String getThreadsafe() {
+ if(!this.loaded) this.load();
+ return this.threadsafe;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.models.sql.routines.Routine#getExternalName()
+ */
+ public String getExternalName() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getExternalName();
+ } else {
+ if("JAVA".equals(this.getLanguage()) && !this.externalNameLoaded) this.loadExternalName(); //$NON-NLS-1$
+ return super.getExternalName();
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public EList getExtendedOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getExtendedOptions();
+ } else {
+ if(!this.loaded) this.load();
+ loadSource();
+ return super.extendedOptions;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogProcedure.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == DB2ModelPackage.DB2_PROCEDURE__LANGUAGE) {
+ this.getLanguage();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__FEDERATED) {
+ this.isFederated();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__FENCED) {
+ this.getFenced();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__MAX_RESULT_SETS) {
+ this.getMaxResultSets();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__SOURCE) {
+ this.getSource();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS) {
+ this.getJavaOptions();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__PARAMETER_STYLE) {
+ this.getParameterStyle();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__DETERMINISTIC) {
+ this.isDeterministic();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__DEPENDENCIES) {
+ this.getDependencies();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__PARAMETERS) {
+ this.getParameters();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__SQL_DATA_ACCESS) {
+ this.getSqlDataAccess();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__THREADSAFE) {
+ this.getThreadsafe();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ else if(id == DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS) {
+ this.getExtendedOptions();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void load() {
+ if(this.loaded) return;
+ this.loaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ Connection connection = this.getConnection();
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase());
+ String version = definition.getVersion();
+ float ver = 8.0f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+
+ final DataModelElementFactory factory = definition.getDataModelElementFactory();
+
+ //this query is for LUW V8. it is taken from DBAPIUNOImpl and a few are added
+ //the outer join is for obtaining the DB2 package name for SQL SP.
+ final String describe_sp_query_v8 = "WITH PP(PROCSCHEMA, PROCNAME, SPECIFICNAME, DEFINER, " + //$NON-NLS-1$
+ "PARM_COUNT, DETERMINISTIC, FENCED, LANGUAGE, IMPLEMENTATION, " + //$NON-NLS-1$
+ "CLASS, JAR_ID, JAR_SCHEMA, PARM_STYLE, CONTAINS_SQL, " + //$NON-NLS-1$
+ "PROGRAM_TYPE, RESULT_SETS, THREADSAFE, FEDERATED, REMARKS) AS " + //$NON-NLS-1$
+ "(SELECT ROUTINESCHEMA, ROUTINENAME, SPECIFICNAME, DEFINER, " + //$NON-NLS-1$
+ "PARM_COUNT, DETERMINISTIC, FENCED, LANGUAGE, IMPLEMENTATION, " + //$NON-NLS-1$
+ "CLASS, JAR_ID, JARSCHEMA, PARAMETER_STYLE, SQL_DATA_ACCESS, " + //$NON-NLS-1$
+ "PROGRAMTYPE, RESULT_SETS, THREADSAFE, FEDERATED, REMARKS FROM SYSCAT.ROUTINES WHERE " + //$NON-NLS-1$
+ "ROUTINETYPE = 'P') " + //$NON-NLS-1$
+ "SELECT PROCSCHEMA, PROCNAME, SPECIFICNAME, DEFINER, " + //$NON-NLS-1$
+ "PARM_COUNT, DETERMINISTIC, FENCED, LANGUAGE, IMPLEMENTATION, " + //$NON-NLS-1$
+ "CLASS, JAR_ID, JAR_SCHEMA, PARM_STYLE, CONTAINS_SQL, " + //$NON-NLS-1$
+ "PROGRAM_TYPE, RESULT_SETS, THREADSAFE, FEDERATED, REMARKS, BNAME AS PACKAGENAME " + //$NON-NLS-1$
+ "FROM PP LEFT OUTER JOIN SYSIBM.SYSDEPENDENCIES PD ON " + //$NON-NLS-1$
+ "(PD.DSCHEMA = PP.PROCSCHEMA AND PD.DNAME = PP.SPECIFICNAME " + //$NON-NLS-1$
+ "AND PD.BTYPE = 'K') "; //$NON-NLS-1$
+
+ try {
+ Statement s = connection.createStatement();
+ //LUW V7
+ //ResultSet r = s.executeQuery("SELECT LANGUAGE, DETERMINISTIC, SQL_DATA_ACCESS, PARAMETER_STYLE, FENCED, THREADSAFE, FEDERATED, RESULT_SETS, TEXT"
+ // + " FROM SYSCAT.ROUTINES"
+ // + " WHERE ROUTINESCHEMA='" + this.getSchema().getName() + "' AND ROUTINENAME='" + this.getName() + "'"
+ // + " AND SPECIFICNAME='" + this.getSpecificName() + "'");
+
+ ResultSet r = s.executeQuery(describe_sp_query_v8
+ + " WHERE PROCSCHEMA='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "' AND PROCNAME='" + LUWUtil.getIdentifier(this.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ + " AND SPECIFICNAME='" + LUWUtil.getIdentifier(this.getSpecificName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ while(r.next()) {
+
+ final String deterministic = r.getString("DETERMINISTIC"); //$NON-NLS-1$
+ if(deterministic.equals("Y")) this.setDeterministic(true); //$NON-NLS-1$
+ else this.setDeterministic(false);
+ final String sql_data_access = r.getString("CONTAINS_SQL"); //$NON-NLS-1$
+ // 'C' - CONTAINS SQL, 'M' - MODIFIES SQL DATA, 'N' - No SQL, 'R' - READS SQL DATA
+ if (sql_data_access.equals("C")) this.sqlDataAccess = DataAccess.CONTAINS_SQL_LITERAL; //$NON-NLS-1$
+ else if (sql_data_access.equals("M")) this.sqlDataAccess = DataAccess.MODIFIES_SQL_DATA_LITERAL; //$NON-NLS-1$
+ else if (sql_data_access.equals("N")) this.sqlDataAccess = DataAccess.NO_SQL_LITERAL; //$NON-NLS-1$
+ else this.sqlDataAccess = DataAccess.READS_SQL_DATA_LITERAL;
+
+ final String paramStyle = r.getString("PARM_STYLE"); //$NON-NLS-1$
+ if (paramStyle.equals("DB2SQL")) {
+ this.setParameterStyle("DB2SQL");
+ } else if (paramStyle.equals("DB2GENRL")) {
+ this.setParameterStyle("DB2GENRAL");
+ } else if (paramStyle.equals("GENERAL")) {
+ this.setParameterStyle("GENERAL");
+ } else if (paramStyle.equals("GNRLNULL")) {
+ this.setParameterStyle("GENERAL WITH NULLS");
+ } else if (paramStyle.equals("JAVA")) {
+ this.setParameterStyle("JAVA");
+ } else {
+ this.setParameterStyle("SQL");
+ }
+ this.parameterStyle = paramStyle.trim();
+
+// fenced in metamodel should be boolean - wait for the fix
+ final String fenced = r.getString("FENCED"); //$NON-NLS-1$
+ //if(fenced.equals("Y")) this.fenced = true;
+ //TODO: hard-coded the constants for now.
+ //if the method is not changed, we need to define the string constants
+ if (fenced.equals("Y")) //$NON-NLS-1$
+ this.fenced = "FENCED"; //$NON-NLS-1$
+ else
+ this.fenced = "NOT FENCED"; //$NON-NLS-1$
+
+ //TODO: hard-coded the constants for now.
+ //if the method is not changed, we need to define the string constants
+ final String threadsafe = r.getString("THREADSAFE"); //$NON-NLS-1$
+ if (threadsafe.equals("Y")) //$NON-NLS-1$
+ this.threadsafe = "THREADSAFE"; //$NON-NLS-1$
+ else
+ this.threadsafe = "NOT THREADSAFE"; //$NON-NLS-1$
+
+ final String federated = r.getString("FEDERATED"); //$NON-NLS-1$
+ if(federated.equals("Y")) this.federated = true; //$NON-NLS-1$
+ else this.federated = false;
+
+ final int resultSets = r.getInt("RESULT_SETS"); //$NON-NLS-1$
+ this.maxResultSets = resultSets;
+
+ final String packagename = r.getString("PACKAGENAME"); //$NON-NLS-1$
+ if (!"JAVA".equals(getLanguage())) { //$NON-NLS-1$
+ db2Package = packagename;
+ db2PackageLoaded = true;
+ }
+
+ final String externalName = r.getString("IMPLEMENTATION"); //$NON-NLS-1$
+ if (!"JAVA".equals(getLanguage()) && !"SQL".equals(getLanguage()) ) { //$NON-NLS-1$
+ setExternalName(externalName);
+ }
+
+ updateImplicitSchemaFlag();
+// final String text = r.getString("TEXT");
+// if (text != null) {
+// //Source source = (Source) factory.create(SQLRoutinesPackage.eINSTANCE.getSource());
+// //The data development project needs DB2Source.
+// DB2Source source = DB2ModelFactory.eINSTANCE.createDB2Source();
+// source.setBody(text);
+// if (packagename != null) {
+// source.setDb2PackageName(packagename);
+// }
+// super.getSource().add(source);
+// }
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ //Tt's appropriate to load source and java sp so that the object is completely loaded.
+ //There are situations (drop sp) when getJavaSP is called after the JAVA SP has
+ //been dropped from the DB and the query does not return any information. -- yehsh
+ //loadSource() needs to know the jar schema and jar id
+ //call loadJavaProcedure() first to avoid querying the catalog twice. -- yehsh
+// loadJavaProcedure();
+// loadSource();
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized JavaProcedureInfo getJavaProcedureInfo() {
+ if (myJavaProcedureInfo != null) return myJavaProcedureInfo;
+ final Database database = this.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin
+ .getDefault().getDatabaseDefinitionRegistry().getDefinition(
+ database);
+
+ myJavaProcedureInfo = JavaProcedureProviderRegistry.INSTANCE.getProvider(
+ databaseDefinition).getProviderInstance(this,
+ this.getConnection());
+ return myJavaProcedureInfo;
+ }
+
+ private synchronized void loadSource() {
+ if(this.sourceLoaded) return;
+ this.sourceLoaded = true;
+
+ EList extList = super.getExtendedOptions();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ String lang = getLanguage();
+ if("JAVA".equals(lang)) { //$NON-NLS-1$
+ JavaProcedureInfo javaProcedureInfo = getJavaProcedureInfo();
+ Source s = null;
+ if (javaProcedureInfo != null) {
+ s = javaProcedureInfo.getSource();
+ }
+ else {
+ s = DB2ModelFactory.eINSTANCE.createDB2Source();
+ }
+ this.setSource(s);
+ //create extended options
+ DB2ExtendedOptions extOpts =DB2ModelFactory.eINSTANCE.createDB2ExtendedOptions();
+ if (javaProcedureInfo != null) {
+ extOpts.setColid(javaProcedureInfo.getCollectionName());
+ }
+ extList.add(extOpts);
+ }
+ else if ("SQL".equals(lang)) { //$NON-NLS-1$
+ final String query = "SELECT TEXT, DEBUG_MODE FROM SYSCAT.ROUTINES "; //$NON-NLS-1$
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query
+ + " WHERE ROUTINESCHEMA='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "' AND ROUTINENAME='" + LUWUtil.getIdentifier(this.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ + " AND SPECIFICNAME='" + LUWUtil.getIdentifier(this.getSpecificName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ String text = "";
+ String debugMode = "";
+ while (r.next()) {
+ String expression = r.getString("TEXT"); //$NON-NLS-1$
+ if (expression != null) {
+ text += expression.trim()+" ";
+ }
+ debugMode = r.getString("DEBUG_MODE");
+ }
+
+ //remove un-readable character
+ text = text.replaceAll("[\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000b\u000c\u000e\u000f" +
+ "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f]", " ");
+ DB2Source source = DB2ModelFactory.eINSTANCE.createDB2Source();
+ source.setBody(text);
+ if (getDb2Package() != null) {
+ source.setDb2PackageName(getDb2Package());
+ }
+ this.setSource(source);
+ r.close();
+ s.close();
+
+ //create extended options
+ DB2ExtendedOptions extOpts =DB2ModelFactory.eINSTANCE.createDB2ExtendedOptions();
+ if ("ALLOW".equalsIgnoreCase(debugMode.trim())) {
+ extOpts.setForDebug(true);
+ } else {
+ extOpts.setForDebug(false);
+ }
+
+ extList.add(extOpts);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadJavaProcedure() {
+ if(this.javaProcedureLoaded) return;
+ this.javaProcedureLoaded = true;
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ String lang = getLanguage();
+ if("JAVA".equals(lang)) { //$NON-NLS-1$
+ JavaProcedureInfo javaProcedureInfo = getJavaProcedureInfo();
+ if (javaProcedureInfo != null) {
+ setJavaOptions(javaProcedureInfo.getJavaProcedure());
+ }
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadExternalName() {
+ if (this.externalNameLoaded) return;
+ this.externalNameLoaded = true;
+// loadSource();
+// loadJavaProcedure();
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ JavaProcedureInfo javaProcedureInfo = getJavaProcedureInfo();
+ if (javaProcedureInfo != null) {
+ this.setExternalName(javaProcedureInfo.getExternalName());
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogProcedure.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadParameters() {
+ if(this.parameterLoaded) return;
+ this.parameterLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogProcedure.loadParameters(this.getConnection(), super.getParameters(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogProcedure.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ public static void loadDependencies(Connection connection, EList dependencyList, Routine routine) throws SQLException {
+ final Database database = routine.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT BSCHEMA, BNAME, BTYPE FROM SYSCAT.ROUTINEDEP WHERE ROUTINESCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(routine.getSchema().getName()) + "' AND ROUTINENAME='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ try {
+ while(r.next()) {
+ final String bschema = r.getString(1).trim();
+ final String bname = r.getString(2);
+ final String btype = r.getString(3);
+ SQLObject obj = null;
+ if(btype.equals("A")) { //alias //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getTable(routine, bschema, bname);
+ }
+ else if(btype.equals("F")) { //function //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getRountine(routine, bschema, bname);
+ }
+ else if(btype.equals("O")) { //privilege //$NON-NLS-1$
+ continue;
+ }
+ else if(btype.equals("R")) { //structure type //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getUserDefinedType(routine, bschema, bname);
+ }
+ else if(btype.equals("S")) { //MQT //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getTable(routine, bschema, bname);
+ }
+ else if(btype.equals("T")) { //table //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getTable(routine, bschema, bname);
+ }
+ else if(btype.equals("U")) { //typed table //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getTable(routine, bschema, bname);
+ }
+ else if(btype.equals("V")) { //view //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getTable(routine, bschema, bname);
+ }
+ else if(btype.equals("W")) { //typed view //$NON-NLS-1$
+ obj = LUWCatalogProcedure.getTable(routine, bschema, bname);
+ }
+ else if(btype.equals("X")) { //index extension //$NON-NLS-1$
+ continue;
+ }
+ else if(btype.equals("N")) { //Alias//$NON-NLS-1$
+ obj = LUWCatalogProcedure.getTable(routine, bschema, bname);
+ }
+ else {
+ continue;
+ }
+
+ if(obj == null) continue;
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(obj);
+ dependencyList.add(dep);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static void loadParameters(Connection connection, EList parameterList, Routine routine) throws SQLException {
+ final Database database = routine.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ String query="SELECT PARMNAME,ROWTYPE,LOCATOR,TYPESCHEMA,TYPENAME,LENGTH,SCALE,CODEPAGE,REMARKS,TARGET_TYPESCHEMA,TARGET_TYPENAME" + //$NON-NLS-1$
+ " FROM SYSCAT.ROUTINEPARMS" + //$NON-NLS-1$
+ " WHERE ROUTINESCHEMA='" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND ROUTINENAME='" + LUWUtil.getIdentifier(routine.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND SPECIFICNAME='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " ORDER BY ORDINAL"; //$NON-NLS-1$
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+
+ LUWCatalogParameter parameter = new LUWCatalogParameter();
+ final String name = r.getString("PARMNAME"); //$NON-NLS-1$
+ parameter.setName(name);
+
+ final String rowtype = r.getString("ROWTYPE").trim(); //$NON-NLS-1$
+ if (rowtype.equals("B")){ //$NON-NLS-1$
+ parameter.setMode(ParameterMode.INOUT_LITERAL);
+ } else if (rowtype.equals("O")) { //$NON-NLS-1$
+ parameter.setMode(ParameterMode.OUT_LITERAL);
+ } else if (rowtype.equals("P")) { //$NON-NLS-1$
+ parameter.setMode(ParameterMode.IN_LITERAL);
+ }
+
+ final String locator = r.getString("LOCATOR"); //$NON-NLS-1$
+ if (locator.equals("Y")) //$NON-NLS-1$
+ parameter.setLocator(true);
+ else
+ parameter.setLocator(false);
+
+ String typeName = r.getString("TYPENAME"); //$NON-NLS-1$
+ if (typeName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length = r.getInt("LENGTH"); //$NON-NLS-1$
+ if (length ==4) typeName="REAL"; //$NON-NLS-1$
+ else typeName="DOUBLE"; //$NON-NLS-1$
+ }
+ PredefinedDataTypeDefinition typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(typeName);
+ if(typeDefinition != null) {
+
+ if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt(8);
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt(8);
+ if(codePage == 0) {
+ if (typeName.equals("LONG VARCHAR")){
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("LONG VARCHAR FOR BIT DATA"); //$NON-NLS-1$
+ } else {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+
+ }
+
+
+ PredefinedDataType type = databaseDefinition.getPredefinedDataType(typeDefinition);
+ if(typeDefinition.isLengthSupported()) {
+ final int length = r.getInt("LENGTH"); //$NON-NLS-1$
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else if(typeDefinition.isPrecisionSupported()) {
+ if (typeName.equals("TIMESTAMP")) {
+ int length = r.getInt("SCALE");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("fractionalSecondsPrecision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else {
+ int length = r.getInt("LENGTH");
+ if (typeName.equals("DECFLOAT")) {
+ if (length == 8) length = 16;
+ else length = 34;
+ }
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ }
+
+ if(typeDefinition.isScaleSupported()) {
+ final int length = r.getInt("SCALE"); //$NON-NLS-1$
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+
+ parameter.setContainedType(type);
+ }
+ else {
+ if (typeName.equals("REFERENCE")){ //$NON-NLS-1$
+ final String typeSchemaName = r.getString("TARGET_TYPESCHEMA").trim(); //$NON-NLS-1$
+ final String udtName = r.getString("TARGET_TYPENAME"); //$NON-NLS-1$
+ parameter.setReferencedType(LUWCatalogProcedure.getUserDefinedType(routine,typeSchemaName,udtName));
+ } else {
+ final String typeSchemaName = r.getString("TYPESCHEMA").trim(); //$NON-NLS-1$
+ parameter.setReferencedType(LUWCatalogProcedure.getUserDefinedType(routine,typeSchemaName,typeName));
+ }
+ }
+
+ parameter.setDescription(r.getString("REMARKS")); //$NON-NLS-1$
+
+ parameterList.add(parameter);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static void loadPrivileges(Connection connection, EList privilegeList,Routine routine, String granteeFilter) throws SQLException {
+ final Schema schema = routine.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",EXECUTEAUTH" +
+ " FROM SYSCAT.ROUTINEAUTH" +
+ " WHERE SCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" +
+ " AND SPECIFICNAME='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" ;
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " AND " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ try {
+ String userName = connection.getMetaData().getUserName();
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+ boolean isSystemGranted = granteeId.equalsIgnoreCase(userName);
+ final String alterAuth = r.getString("EXECUTEAUTH");
+ if (alterAuth.equals("N")) {
+ } else {
+ LUWCatalogPrivilege privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_EXECUTE);
+ if (alterAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+
+ public static Schema getSchema(Routine routine, String schemaName) {
+ Schema s = routine.getSchema();
+ if(s.getName().equals(schemaName)) return s;
+ Database db = s.getDatabase();
+ if (db instanceof LUWCatalogDatabase){
+ s = ((LUWCatalogDatabase)db).getSchema(schemaName);
+ if (s != null) return s;
+ }
+ Iterator it = db.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(db);
+
+ if (db instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)db).cacheSchema(schema);
+ }
+
+ return schema;
+
+
+ }
+
+ public static Table getTable(Routine routine, String schemaName, String tableName) {
+ Schema schema = LUWCatalogProcedure.getSchema(routine, schemaName);
+ if(schema instanceof LUWCatalogSchema){
+ Table t = ((LUWCatalogSchema)schema).getTable(schemaName,tableName);
+ if (t != null) return t;
+ }
+
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+
+ return null;
+
+ }
+
+ public static Routine getRountine(Routine routine, String schemaName, String specificName) {
+ Schema schema = LUWCatalogProcedure.getSchema(routine, schemaName);
+ Iterator it = schema.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine r = (Routine) it.next();
+ if(specificName.equals(r.getSpecificName())) return r;
+ }
+ return null;
+ }
+
+ public static UserDefinedType getUserDefinedType(Routine routine, String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogProcedure.getSchema(routine, schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+ return null;
+ }
+
+
+ public static Trigger getTrigger(Routine routine, String schemaName, String tabName, String triggerName) {
+ Table table = LUWCatalogProcedure.getTable(routine, schemaName,tabName);
+ if (table != null) {
+ Iterator it = table.getTriggers().iterator();
+ while(it.hasNext()) {
+ Trigger r = (Trigger) it.next();
+ if(r.getName().equals(triggerName)) return r;
+ }
+ }
+ return null;
+ }
+
+ public static TableConstraint getTableConstraint(Routine routine, String schemaName,String tableName, String constName) {
+ Table t = LUWCatalogProcedure.getTable(routine, schemaName,tableName);
+ if (!(t instanceof BaseTable)) return null;
+ Iterator it = ((BaseTable)t).getConstraints().iterator();
+ while(it.hasNext()) {
+ TableConstraint constraint = (TableConstraint) it.next();
+ if(constraint.getName().equals(constName)) return constraint;
+ }
+
+ return null;
+ }
+
+ public static DB2Package getDb2Package(Routine routine, String schemaName, String pkgName, String pkgUniqueID) {
+ Schema schema = LUWCatalogProcedure.getSchema(routine, schemaName);
+ if(schema instanceof LUWCatalogSchema){
+ return ((LUWCatalogSchema)schema).getDB2Package(pkgName, pkgUniqueID);
+ }
+
+ return null;
+ }
+
+ /**
+ * If the routine is SQL, discover if the routine has been created without
+ * a schema qualifier.
+ * <p>
+ * @param aRoutine The routine to analyze
+ * @return <code>true</code> if the routine was created without a schema qualifier.
+ */
+ private void updateImplicitSchemaFlag() {
+ boolean b = false;
+ if (this != null) {
+ b = this.isImplicitSchema();
+ if (!b && this.getLanguage().equalsIgnoreCase("SQL")) { //$NON-NLS-1$
+ Source src = this.getSource();
+ String body = src.getBody();
+ if (body != null) {
+ String[] tokens = body.split(" "); //$NON-NLS-1$
+ for (int i = 0; i < tokens.length; i++) {
+ if (tokens[i].indexOf('.') > -1) {
+ break; // the implicit flag is false by default
+ }
+ else if (tokens[i].indexOf('(') > -1) {
+ b = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+ setImplicitSchema(b);
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+
+ impacts.addAll(LUWCatalogProcedure.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedConstraints(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedPackages(connection, this));
+
+ return impacts;
+ }
+
+ protected static Collection getImpactedTriggers(Connection connection, Routine routine) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT DISTINCT A.TABSCHEMA, A.TABNAME, A.TRIGNAME" +
+ " FROM SYSCAT.TRIGGERS A, SYSCAT.TRIGDEP B" +
+ " WHERE (B.BNAME='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" +
+ " AND B.BSCHEMA='" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" +
+ " AND B.BTYPE='F'" +
+ " AND A.TRIGNAME=B.TRIGNAME" +
+ " AND A.TRIGSCHEMA=B.TRIGSCHEMA)" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String trigName = r.getString("TRIGNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Trigger trigger = LUWCatalogProcedure.getTrigger(routine, schemaName, tabName, trigName);
+ if (trigger != null) {
+ impacts.add(trigger);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+// e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedTables(Connection connection, Routine routine) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT DISTINCT TABNAME, TABSCHEMA" +
+ " FROM SYSCAT.TABDEP" +
+ " WHERE BTYPE='F'" +
+ " AND BNAME ='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" +
+ " AND BSCHEMA = '" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Table t = LUWCatalogProcedure.getTable(routine, schemaName, tabName);
+ if (t != null) {
+ impacts.add(t);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+// e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedConstraints(Connection connection, Routine routine) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT CONSTNAME,TABNAME,TABSCHEMA" +
+ " FROM SYSCAT.CONSTDEP" +
+ " WHERE BTYPE='F'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String constName = r.getString("CONSTNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ TableConstraint constraint = LUWCatalogProcedure.getTableConstraint(routine, schemaName, tabName, constName);
+ if (constraint != null) {
+ impacts.add(constraint);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+// e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedRoutines(Connection connection, Routine routine) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT ROUTINENAME,ROUTINESCHEMA" +
+ " FROM SYSCAT.ROUTINEDEP" +
+ " WHERE BTYPE='F'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String routineName = r.getString("ROUTINENAME").trim();
+ final String schemaName = r.getString("ROUTINESCHEMA").trim();
+ Routine p = LUWCatalogProcedure.getRountine(routine, schemaName, routineName);
+ if (p != null) {
+ impacts.add(p);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+// e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedPackages(Connection connection, Routine routine) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT PKGNAME, PKGSCHEMA, HEX(UNIQUE_ID) AS UID" +
+ " FROM SYSCAT.PACKAGEDEP" +
+ " WHERE BTYPE = 'F'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String pkgName = r.getString("PKGNAME").trim();
+ final String schemaName = r.getString("PKGSCHEMA").trim();
+ final String pkgUniqueID = r.getString("UID").trim();
+ DB2Package p = LUWCatalogProcedure.getDb2Package(routine, schemaName, pkgName, pkgUniqueID);
+ if (p != null) {
+ impacts.add(p);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ //e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ public static Collection getStatistics(Connection connection, Routine routine){
+ Collection statistics = new ArrayList();
+ try {
+ String query = "SELECT IOS_PER_INVOC,INSTS_PER_INVOC,IOS_PER_ARGBYTE,INSTS_PER_ARGBYTE" +
+ ",PERCENT_ARGBYTES,INITIAL_IOS,INITIAL_INSTS,CARDINALITY,SELECTIVITY" +
+ " FROM SYSSTAT.ROUTINES" +
+ " WHERE ROUTINESCHEMA='" + LUWUtil.getIdentifier(routine.getSchema().getName()) + "'" +
+ " AND ROUTINENAME ='" + LUWUtil.getIdentifier(routine.getName()) + "'" +
+ " AND SPECIFICNAME ='" + LUWUtil.getIdentifier(routine.getSpecificName()) + "'" +
+ " FOR FETCH ONLY";
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ CatalogStatistics stats = null;
+
+ final float ios_per_Invoc = r.getFloat("IOS_PER_INVOC");
+ if (ios_per_Invoc != -1) {
+ stats = new CatalogStatistics("IOS_PER_INVOC",LUWCatalogMessages.STAT_IOS_PER_INVOC,LUWCatalogMessages.STAT_IOS_PER_INVOC_DES,ios_per_Invoc,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float insts_per_Invoc = r.getFloat("INSTS_PER_INVOC");
+ if (insts_per_Invoc != -1) {
+ stats = new CatalogStatistics("INSTS_PER_INVOC",LUWCatalogMessages.STAT_INSTS_PER_INVOC,LUWCatalogMessages.STAT_INSTS_PER_INVOC_DES,insts_per_Invoc,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float ios_per_Argbyte = r.getFloat("IOS_PER_ARGBYTE");
+ if (ios_per_Argbyte != -1) {
+ stats = new CatalogStatistics("IOS_PER_ARGBYTE",LUWCatalogMessages.STAT_IOS_PER_ARGBYTE,LUWCatalogMessages.STAT_IOS_PER_ARGBYTE_DES,ios_per_Argbyte,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float insts_per_Argbyte = r.getFloat("INSTS_PER_ARGBYTE");
+ if (insts_per_Argbyte != -1) {
+ stats = new CatalogStatistics("INSTS_PER_ARGBYTE",LUWCatalogMessages.STAT_INSTS_PER_ARGBYTE,LUWCatalogMessages.STAT_INSTS_PER_ARGBYTE_DES,insts_per_Argbyte,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final int percent_Argbyte = r.getInt("PERCENT_ARGBYTES");
+ if (percent_Argbyte != -1) {
+ stats = new CatalogStatistics("PERCENT_ARGBYTES",LUWCatalogMessages.STAT_PERCENT_ARGBYTE,LUWCatalogMessages.STAT_PERCENT_ARGBYTE_DES,percent_Argbyte,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+
+ final float initial_ios = r.getFloat("INITIAL_IOS");
+ if (initial_ios != -1) {
+ stats = new CatalogStatistics("INITIAL_IOS",LUWCatalogMessages.STAT_INITIAL_IOS,LUWCatalogMessages.STAT_INITIAL_IOS_DES,initial_ios,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float initial_insts = r.getFloat("INITIAL_INSTS");
+ if (initial_insts != -1) {
+ stats = new CatalogStatistics("INITIAL_INSTS",LUWCatalogMessages.STAT_INITIAL_INSTS,LUWCatalogMessages.STAT_INITIAL_INSTS_DES,initial_insts,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final BigInteger card = r.getBigDecimal("CARDINALITY").toBigInteger();
+ if (card.intValue() != -1) {
+ stats = new CatalogStatistics("CARDINALITY",LUWCatalogMessages.STAT_ROUTINE_CARDINALITY,LUWCatalogMessages.STAT_ROUTINE_CARDINALITY_DES,card,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+
+ final float selectivity= r.getFloat("SELECTIVITY");
+ if (selectivity != -1) {
+ stats = new CatalogStatistics("SELECTIVITY",LUWCatalogMessages.STAT_SELECTIVITY,LUWCatalogMessages.STAT_SELECTIVITY_DES,selectivity,"SYSSTAT.ROUTINES");
+ statistics.add(stats);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ //e.printStackTrace();
+ }
+ return statistics;
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogProcedure.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private boolean loaded = false;
+ private boolean dependencyLoaded = false;
+ private boolean parameterLoaded = false;
+ private boolean sourceLoaded = false;
+ private boolean javaProcedureLoaded = false;
+ private boolean externalNameLoaded = false;
+ private boolean privilegeLoaded = false;
+ private JavaProcedureInfo myJavaProcedureInfo;
+ private boolean db2PackageLoaded = false;
+ protected String db2Package;
+ private boolean statisticsLoaded = false;
+ private boolean impactsLoaded = false;
+
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogProvider.java
new file mode 100644
index 0000000..27abb1a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogProvider.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogProvider;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+public class LUWCatalogProvider implements ICatalogProvider, IExecutableExtension {
+ public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
+ this.product = config.getAttribute("product"); //$NON-NLS-1$
+ this.version = config.getAttribute("version"); //$NON-NLS-1$
+ }
+
+ public Database getCatalogDatabase(Connection connection) {
+ Database database = new LUWCatalogDatabase(connection);
+ database.setVendor(this.product);
+ database.setVersion(this.version);
+ return database;
+ }
+
+ private String product;
+ private String version;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRelationalRemoteDataSet.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRelationalRemoteDataSet.java
new file mode 100644
index 0000000..5623530
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRelationalRemoteDataSet.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteDataSetImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.util.TableToRemoteDataSetHelper;
+
+/**
+ * @author Geetika
+ *
+ **/
+public class LUWCatalogRelationalRemoteDataSet extends RelationalRemoteDataSetImpl{
+ String remoteSchemaName = null;
+ String remoteTableName = null;
+
+ public LUWCatalogRelationalRemoteDataSet() {
+ super();
+ this.eAdapters().add(TableToRemoteDataSetHelper.INVERSE_TABLE_ADAPTER);
+
+ // A side effect of the add is to set the target of the INVERSE_TABLE_ADAPTER
+ // to point back to <<this>>. This causes garbage collection problems because
+ // INVERSE_TABLE_ADAPTER is a singleton. Need to unset the target reference...
+ TableToRemoteDataSetHelper.INVERSE_TABLE_ADAPTER.setTarget(null);
+ }
+
+
+ //only created if ecattable is created, in which case it will get set
+ //nothing to do to help - I can't get up to the right nickname to force a table load of the remote table
+ /**
+ * @return Returns the remoteSchemaName.
+ */
+ public String getRemoteSchemaName() {
+ return remoteSchemaName;
+ }
+ /**
+ * @param remoteSchemaName The remoteSchemaName to set.
+ */
+ public void setRemoteSchemaName(String remoteSchemaName) {
+ this.remoteSchemaName = remoteSchemaName;
+ }
+ /**
+ * @return Returns the remoteTableName.
+ */
+ public String getRemoteTableName() {
+ return remoteTableName;
+ }
+ /**
+ * @param remoteTableName The remoteTableName to set.
+ */
+ public void setRemoteTableName(String remoteTableName) {
+ this.remoteTableName = remoteTableName;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRelationalRemoteServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRelationalRemoteServer.java
new file mode 100644
index 0000000..a44031b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRelationalRemoteServer.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteServerImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.util.DatabaseToRemoteServerHelper;
+
+/**
+ * @author Geetika
+ */
+public class LUWCatalogRelationalRemoteServer extends RelationalRemoteServerImpl{
+ private static RemoteCatalogProvider remoteCatalogProvider = null;
+ private static boolean remoteCatalogProviderLoaded = false;
+ private boolean remoteServerLoaded = false;
+
+ public LUWCatalogRelationalRemoteServer() {
+ super();
+ this.eAdapters().add(DatabaseToRemoteServerHelper.INVERSE_DATABASE_ADAPTER);
+
+ // A side effect of the add is to set the target of the INVERSE_DATABASE_ADAPTER
+ // to point back to <<this>>. This causes garbage collection problems because
+ // INVERSE_DATABASE_ADAPTER is a singleton. Need to unset the target reference...
+ DatabaseToRemoteServerHelper.INVERSE_DATABASE_ADAPTER.setTarget(null);
+
+ }
+ public static RemoteCatalogProvider getRemoteCatalogProvider() {
+ if(!remoteCatalogProviderLoaded) {
+ remoteCatalogProviderLoaded = true;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2.luw", "remoteCatalog"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+ if(extensions.length == 1) {
+ IConfigurationElement[] configElements = extensions[0].getConfigurationElements();
+ try {
+ remoteCatalogProvider = (RemoteCatalogProvider) configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(Exception e) {
+ }
+ }
+ }
+ return remoteCatalogProvider;
+ }
+ public Database getDatabase() {
+ if(!databaseLoaded) this.loadDatabase();
+ return this.database;
+ }
+
+ private synchronized void loadDatabase() {
+ if(this.databaseLoaded) return;
+ RemoteCatalogProvider p = getRemoteCatalogProvider();
+ if(p!= null) {
+ this.database = p.getDatabase(this);
+ }
+ this.databaseLoaded = true;
+ }
+
+ private boolean databaseLoaded = false;
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRole.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRole.java
new file mode 100644
index 0000000..53bccfa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRole.java
@@ -0,0 +1,251 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.ICatalogAuthorizationIdentifier;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.RoleImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogRole extends RoleImpl implements ICatalogObject,ICatalogAuthorizationIdentifier,IDatabaseObject {
+
+ public void refresh() {
+
+ if (roleAuthorizationLoaded) {
+ this.roleAuthorization.clear();
+ this.roleAuthorizationLoaded = false;
+ }
+ if (this.receivedPrivilegesLoaded) {
+ this.receivedPrivilege.clear();
+ this.receivedPrivilegesLoaded = false;
+ }
+ if (this.receivedRoleAuthorizationLoaded) {
+ this.receivedRoleAuthorization.clear();
+ this.receivedRoleAuthorizationLoaded = false;
+ }
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+ public EList getRoleAuthorization() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getRoleAuthorization();
+ } else {
+ if (!this.roleAuthorizationLoaded) this.loadRoleAuthorization();
+ return super.roleAuthorization;
+ }
+ }
+ /*
+ public EList getReceivedPrivilege(){
+ if (!this.receivedPrivilegesLoaded) this.loadReceivedPrivilege();
+ return this.receivedPrivilege;
+ }
+ */
+
+ public EList getReceivedRoleAuthorization(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getReceivedRoleAuthorization();
+ } else {
+ if (!this.receivedRoleAuthorizationLoaded) this.loadReceivedRoleAuthorization();
+ return this.receivedRoleAuthorization;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLAccessControlPackage.ROLE__ROLE_AUTHORIZATION) {
+ this.getRoleAuthorization();
+ } else if(id == SQLAccessControlPackage.ROLE__RECEIVED_PRIVILEGE) {
+ this.getReceivedPrivilege();
+ } else if(id == SQLAccessControlPackage.ROLE__RECEIVED_ROLE_AUTHORIZATION) {
+ this.getReceivedRoleAuthorization();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadRoleAuthorization() {
+ if(this.roleAuthorizationLoaded) return;
+ this.roleAuthorizationLoaded = true;
+
+ EList roleAuths = super.getRoleAuthorization();
+
+ final Database database = this.getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ String query = "SELECT GRANTOR,GRANTORTYPE,GRANTEE,GRANTEETYPE,ADMIN" +
+ " FROM SYSCAT.ROLEAUTH" +
+ " WHERE ROLENAME ='" + LUWUtil.getIdentifier(this.getName()) + "'";
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ RoleAuthorization roleAuth = (RoleAuthorization) factory.create(SQLAccessControlPackage.eINSTANCE.getRoleAuthorization());
+
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)){
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = null;
+ final String grantorType = r.getString("GRANTORTYPE");
+ if ("G".equals(grantorType)) {
+ grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId, "G");
+ } else if ("R".equals(grantorType)){
+ grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId, "R");
+ } else {
+ grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId, "U");
+ }
+
+ final String admin = r.getString("ADMIN");
+ if ("Y".equals(admin)){
+ roleAuth.setGrantable(true);
+ } else {
+ roleAuth.setGrantable(false);
+ }
+ roleAuth.setGrantee(grantee);
+ roleAuth.setGrantor(grantor);
+ roleAuths.add(roleAuth);
+ }
+ r.close();
+ s.close();
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+
+
+ this.eSetDeliver(deliver);
+
+ }
+
+ private synchronized void loadReceivedRoleAuthorization() {
+ if(this.receivedRoleAuthorizationLoaded) return;
+ this.receivedRoleAuthorizationLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ LUWCatalogUser.loadReceivedRoleAuthorization(this.getConnection(), super.getReceivedRoleAuthorization(),this);
+
+ this.eSetDeliver(deliver);
+
+ }
+
+ private synchronized void loadReceivedPrivilege() {
+ if(this.receivedPrivilegesLoaded) return;
+ this.receivedPrivilegesLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogUser.loadReceivedPrivilege(this.getConnection(),super.getReceivedPrivilege(), this,"R");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogRole.getImpactedAuthorizationIdentifier(connection, this));
+ return impacts;
+ }
+
+
+ protected static Collection getImpactedAuthorizationIdentifier(Connection connection, Role role) {
+ Collection impacts = new ArrayList();
+ for (Iterator iter = role.getRoleAuthorization().iterator();iter.hasNext();){
+ impacts.add(((RoleAuthorization )iter.next()).getGrantee());
+ }
+ return impacts;
+ }
+
+
+ //API for PB
+ public EList getCatalogReceivedPrivileges(){
+ this.loadReceivedPrivilege();
+ return this.receivedPrivilege;
+ }
+
+ private boolean receivedPrivilegesLoaded = false;
+ private boolean roleAuthorizationLoaded = false;
+ private boolean receivedRoleAuthorizationLoaded = false;
+ private boolean impactsLoaded = false;
+ private Collection impacts = new ArrayList();
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRowDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRowDataType.java
new file mode 100644
index 0000000..3dc4bcc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogRowDataType.java
@@ -0,0 +1,191 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRowDataTypeImpl;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.Field;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogRowDataType extends LUWRowDataTypeImpl implements ICatalogObject {
+ public void refresh() {
+ this.fieldsLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public EList getFields() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getFields();
+ } else {
+ if(!this.fieldsLoaded) this.loadFileds();
+ return this.fields;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_ROW_DATA_TYPE__FIELDS) {
+ this.getFields();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadFileds() {
+ if(this.fieldsLoaded) return;
+ this.fieldsLoaded = true;
+
+ EList fieldList = super.getFields();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase());
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT FIELDNAME, FIELDTYPESCHEMA, FIELDTYPEMODULENAME, FIELDTYPENAME" + //$NON-NLS-1$
+ ", LENGTH, SCALE, CODEPAGE" //$NON-NLS-1$
+ + " FROM SYSCAT.ROWFIELDS" //$NON-NLS-1$
+ + " WHERE TYPENAME = '" + LUWUtil.getIdentifier(this.getName()) + "'" //$NON-NLS-1$
+ + " AND TYPESCHEMA='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND TYPEMODULENAME IS NULL"
+ + " ORDER BY ORDINAL "); //$NON-NLS-1$
+ while(r.next()) {
+ Field field = (Field) factory.create(SQLDataTypesPackage.eINSTANCE.getField());
+
+ final String fieldName = r.getString("FIELDNAME");
+ field.setName(fieldName);
+
+ String typeName = r.getString("FIELDTYPENAME");
+ if (typeName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length =r.getInt(4);
+ if (length ==4) typeName="REAL"; //$NON-NLS-1$
+ else typeName="DOUBLE"; //$NON-NLS-1$
+ }
+ PredefinedDataTypeDefinition typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(typeName);
+ if(typeDefinition != null) {
+ if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt("CODEPAGE");
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt("CODEPAGE");
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+
+ PredefinedDataType type = databaseDefinition.getPredefinedDataType(typeDefinition);
+ if(typeDefinition.isLengthSupported()) {
+ final int length = r.getInt("LENGTH");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else if(typeDefinition.isPrecisionSupported()) {
+ if (typeName.equals("TIMESTAMP")) {
+ int length = r.getInt("LENGTH");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("fractionalSecondsPrecision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else {
+ int length = r.getInt("LENGTH");
+ if (typeName.equals("DECFLOAT")) {
+ if (length == 8) length = 16;
+ else length = 34;
+ }
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ }
+
+ if(typeDefinition.isScaleSupported()) {
+ final int scale = r.getInt("SCALE");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(scale));
+ }
+
+ field.setContainedType(type);
+ }
+ else {
+ final String typeSchemaName = r.getString("FIELDTYPESCHEMA").trim();
+ final String typeModuleName = r.getString("FIELDTYPEMODULENAME");
+ field.setReferencedType(LUWCatalogRowDataType.getUserDefinedType(this,typeSchemaName,typeName));
+ }
+
+
+ fieldList.add(field);
+ }
+
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private static UserDefinedType getUserDefinedType(UserDefinedType type,String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogStructuredUserDefinedType.getSchema(type,schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+
+ UserDefinedType userDefinedType = new LUWCatalogDistinctUserDefinedType();
+ userDefinedType.setName(userDefinedTypeName);
+ userDefinedType.setSchema(schema);
+
+ return userDefinedType;
+ }
+
+ private boolean fieldsLoaded = false;
+}
+
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogSchema.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogSchema.java
new file mode 100644
index 0000000..dc9ce2e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogSchema.java
@@ -0,0 +1,2211 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.io.File;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionFilter;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.DatabaseConnectionRegistry;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWPluginActivator;
+//import com.ibm.datatools.db2.luw.DB2LUWPlugin;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogIndex.IndexUniqueRule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus;
+import org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType;
+import org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType;
+import org.eclipse.datatools.enablement.ibm.db2.model.OriginType;
+import org.eclipse.datatools.enablement.ibm.db2.model.ReoptType;
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl;
+import org.eclipse.datatools.enablement.ibm.db2.util.DB2Version;
+import org.eclipse.datatools.enablement.ibm.util.IConnectionFilter;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.GenerateType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+//bgp import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.CatalogCache;
+
+public class LUWCatalogSchema extends DB2SchemaImpl implements ICatalogObject {
+ private static OlapCatalogProvider olapCatalogProvider = null;
+ private boolean tablesLoaded = false;
+ private boolean routinesLoaded = false;
+ private boolean jarsLoaded = false;
+ private boolean xsrObjsLoaded = false;
+ private boolean sequencesLoaded = false;
+ private boolean userDefinedTypesLoaded = false;
+ private boolean indicesLoaded = false;
+ private boolean triggersLoaded = false;
+ private boolean olapobjectLoaded = false;
+ private boolean privilegeLoaded = false;
+ private boolean packagesLoaded = false;
+ private boolean moduleLoaded = false;
+ private boolean globalVariableLoaded = false;
+ private HashMap cachedTables = new HashMap();
+ private HashMap cachedDB2Packages = new HashMap();
+
+ public static OlapCatalogProvider getOlapCatalogProvider() {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2.luw", "luwolapProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+ if(extensions.length == 1) {
+ IConfigurationElement[] configElements = extensions[0].getConfigurationElements();
+ try {
+ olapCatalogProvider = (OlapCatalogProvider) configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(Exception e) {
+ }
+ }
+ return olapCatalogProvider;
+ }
+
+
+ public synchronized void refresh() {
+ // set to unloaded status to force reload next time
+ this.tablesLoaded = false;
+ this.routinesLoaded = false;
+ this.jarsLoaded = false;
+ this.indicesLoaded = false;
+ this.triggersLoaded = false;
+ this.sequencesLoaded = false;
+ this.userDefinedTypesLoaded = false;
+ if (this.olapobjectLoaded) {
+ this.olapObjects.clear();
+ this.olapobjectLoaded = false;
+ }
+ this.xsrObjsLoaded = false;
+ this.privilegeLoaded = false;
+ if (this.packagesLoaded) {
+ this.packages.clear();
+ this.packagesLoaded = false;
+ }
+
+ this.moduleLoaded = false;
+ this.globalVariableLoaded = false;
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getDatabase();
+ }
+
+ public EList getTables() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getTables();
+ } else {
+ if(!this.tablesLoaded) this.loadTables();
+ return this.tables;
+ }
+ }
+
+ public EList getRoutines() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getRoutines();
+ } else {
+ if(!this.routinesLoaded) this.loadRoutines();
+ return this.routines;
+ }
+ }
+
+ public EList getFederatedStoredProcedures() {
+ if(!this.routinesLoaded) this.loadRoutines();
+ return this.routines;
+ }
+
+// TODO Jar support: add check for additional vendors after RDA ships:
+// public EList getJars() {
+// DB2Version db2Version = new DB2Version(this.getConnection());
+// if(!this.jarsLoaded &&
+// db2Version.isUNO() && db2Version.isAtLeast(9))
+// this.loadJars();
+// else
+// jars = super.getJars();
+// this.jarsLoaded = true;
+// return this.jars;
+// }
+
+ public EList getXsrObjects() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getXsrObjects();
+ } else {
+ DB2Version db2Version = new DB2Version(this.getConnection());
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getDatabase());
+ if(!this.xsrObjsLoaded &&
+ !getName().toUpperCase().startsWith("SYS") && //$NON-NLS-1$
+ db2Version.isUNO() && databaseDefinition.supportsXML())
+ this.loadXsrObjects();
+ else
+ xsrObjects = super.getXsrObjects();
+ this.xsrObjsLoaded = true;
+ return this.xsrObjects;
+ }
+ }
+
+ public EList getSequences() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getSequences();
+ } else {
+ if(!this.sequencesLoaded) this.loadSequences();
+ return this.sequences;
+ }
+ }
+
+ public EList getUserDefinedTypes() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getUserDefinedTypes();
+ } else {
+ if(!this.userDefinedTypesLoaded) this.loadUserDefinedTypes();
+ return this.userDefinedTypes;
+ }
+ }
+
+ public synchronized EList getTriggers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getTriggers();
+ } else {
+ if(!this.triggersLoaded) this.loadTriggers();
+ return this.triggers;
+ }
+ }
+
+ public EList getIndices(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getIndices();
+ } else {
+ if (!this.indicesLoaded) this.loadIndices();
+ return this.indices;
+ }
+ }
+
+ public synchronized EList getOlapObjects() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getOlapObjects();
+ } else {
+ if(!this.olapobjectLoaded) this.loadOlapobjects();
+ return this.olapObjects;
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public EList getPackages() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPackages();
+ } else {
+ if (!this.packagesLoaded) this.loadPackages();
+ return this.packages;
+ }
+ }
+
+ public EList getModules() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getModules();
+ } else {
+ if (!this.moduleLoaded) this.loadModules();
+ return this.modules;
+ }
+ }
+
+ public EList getGlobalVariables(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getGlobalVariables();
+ } else {
+ if (!this.globalVariableLoaded) this.loadGlobaleVaraibles();
+ return this.globalVariables;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == DB2ModelPackage.DB2_SCHEMA__TABLES) {
+ this.getTables();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__ROUTINES) {
+ this.getRoutines();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__JARS) {
+ this.getJars();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS) {
+ this.getXsrObjects();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__SEQUENCES) {
+ this.getSequences();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__USER_DEFINED_TYPES) {
+ this.getUserDefinedTypes();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__TRIGGERS) {
+ this.getTriggers();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__INDICES) {
+ this.getIndices();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS) {
+ this.getOlapObjects();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__PACKAGES) {
+ this.getPackages();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__MODULES) {
+ this.getModules();
+ }
+ else if(id == DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES) {
+ this.getGlobalVariables();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ public static void loadTables(Connection connection, EList tableList, LUWCatalogSchema schema, int options) throws SQLException {
+ LUWCatalogDatabase database = (LUWCatalogDatabase)schema.getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+ HashMap cachedElement = schema.getCachedTable();
+ schema.iniCachedTable();
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( cache.isLoaded( CatalogCache.TABLES ) ) {
+// return;
+// }
+//
+// cache.setLoaded( CatalogCache.TABLES );
+//bgp> }
+
+ Object[] oldList = tableList.toArray();
+
+ tableList.clear();
+
+ boolean isBatchLoad = database.isBatchLoad();
+
+ if ((options & DatabaseREProvider.EXCLUDE_TABLES)== DatabaseREProvider.EXCLUDE_TABLES
+ && (options & DatabaseREProvider.EXCLUDE_VIEWS) == DatabaseREProvider.EXCLUDE_VIEWS
+ && (options & DatabaseREProvider.EXCLUDE_SYNONYMS)== DatabaseREProvider.EXCLUDE_SYNONYMS){
+ return;
+ }
+
+ boolean hasFilter = false;
+ String filterStr = ""; //$NON-NLS-1$
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(ModelHelper.getDatabase(schema));
+ ConnectionFilter tableFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.TABLE_FILTER); //$NON-NLS-1$
+ if (tableFilter == null) { //default table filter
+ tableFilter = connectionInfo.getFilter(ConnectionFilter.TABLE_FILTER);
+ }
+ ConnectionFilter viewFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.VIEW_FILTER); //$NON-NLS-1$
+ if (viewFilter == null) { //default view filter
+ viewFilter = connectionInfo.getFilter(ConnectionFilter.VIEW_FILTER);
+ }
+ ConnectionFilter aliasFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.ALIAS_FILTER); //$NON-NLS-1$
+ if (aliasFilter == null) { //default alias filter
+ aliasFilter = connectionInfo.getFilter(ConnectionFilter.ALIAS_FILTER);
+ }
+ ConnectionFilter mqtFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.MQT_FILTER); //$NON-NLS-1$
+ if (mqtFilter == null) { //default mqt filter
+ mqtFilter = connectionInfo.getFilter(ConnectionFilter.MQT_FILTER);
+ }
+ ConnectionFilter nicknameFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.NICKNAME_FILTER); //$NON-NLS-1$
+ if (nicknameFilter == null) { //default nickname filter
+ nicknameFilter = connectionInfo.getFilter(ConnectionFilter.NICKNAME_FILTER);
+ }
+
+ hasFilter = tableFilter != null || viewFilter != null || aliasFilter != null || mqtFilter != null || nicknameFilter != null;
+ if (hasFilter) {
+ if ((options & DatabaseREProvider.EXCLUDE_TABLES)!= DatabaseREProvider.EXCLUDE_TABLES){
+ if (tableFilter != null) {
+ filterStr += CatalogLoadUtil.getFilterString(tableFilter.getPredicate(), "TABNAME") + " AND TYPE='T' "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += "TYPE='T' "; //$NON-NLS-1$
+ }
+ }
+
+ if ((options & DatabaseREProvider.EXCLUDE_VIEWS)!= DatabaseREProvider.EXCLUDE_VIEWS){
+ if (viewFilter != null) {
+ if (filterStr.length() >0) filterStr += " OR "; //$NON-NLS-1$
+ filterStr += CatalogLoadUtil.getFilterString(viewFilter.getPredicate(), "TABNAME") + " AND TYPE='V' "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += " OR TYPE='V' "; //$NON-NLS-1$
+ }
+ }
+
+ if ((options & DatabaseREProvider.EXCLUDE_SYNONYMS)!= DatabaseREProvider.EXCLUDE_SYNONYMS){
+ if (aliasFilter != null) {
+ if (filterStr.length() >0) filterStr += " OR "; //$NON-NLS-1$
+ filterStr += CatalogLoadUtil.getFilterString(aliasFilter.getPredicate(), "TABNAME") + " AND TYPE='A' "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += " OR TYPE='A' "; //$NON-NLS-1$
+ }
+ }
+ if ((options & DatabaseREProvider.EXCLUDE_VIEWS)!= DatabaseREProvider.EXCLUDE_VIEWS){
+ if (mqtFilter != null) {
+ if (filterStr.length() >0) filterStr += " OR "; //$NON-NLS-1$
+ filterStr += CatalogLoadUtil.getFilterString(mqtFilter.getPredicate(), "TABNAME") + " AND TYPE='S' "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += " OR TYPE='S' "; //$NON-NLS-1$
+ }
+ }
+ if ((options & DatabaseREProvider.EXCLUDE_TABLES)!= DatabaseREProvider.EXCLUDE_TABLES){
+ if (nicknameFilter != null) {
+ if (filterStr.length() >0) filterStr += " OR "; //$NON-NLS-1$
+ filterStr += CatalogLoadUtil.getFilterString(nicknameFilter.getPredicate(), "TABNAME") + " AND TYPE='N' "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += " OR TYPE='N' "; //$NON-NLS-1$
+ }
+ }
+ filterStr = filterStr.length()>0? (" AND (" + filterStr+")"):""; //$NON-NLS-1$
+ }
+
+ String query = "SELECT TABNAME, TYPE,REMARKS ,PARTITION_MODE,TBSPACE, INDEX_TBSPACE,LONG_TBSPACE,DATACAPTURE, COMPRESSION" +
+ ", TABSCHEMA" +
+ " FROM SYSCAT.TABLES";
+
+//<bgp if ( cache.isBatchLoading() ) {
+// query += " WHERE 1=1";
+// }
+//bgp> else {
+ query += " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp }
+
+ if (hasFilter) {
+ query += filterStr;
+ } else {
+ String types ="";
+ if ((options & DatabaseREProvider.EXCLUDE_TABLES)!= DatabaseREProvider.EXCLUDE_TABLES)
+ types += "'T','N','G'";
+ if ((options & DatabaseREProvider.EXCLUDE_VIEWS) != DatabaseREProvider.EXCLUDE_VIEWS)
+ types += (types.length() > 0) ? ",'V','S'" : "'V','S'";
+ if ((options & DatabaseREProvider.EXCLUDE_SYNONYMS)!= DatabaseREProvider.EXCLUDE_SYNONYMS)
+ types += (types.length() > 0) ? ",'A'" : "'A'";
+
+ query += " AND TYPE IN(" + ((types.length() > 0) ? types : "") + ")";
+ }
+
+ Statement s = null;
+ ResultSet r = null;
+ try {
+ s = connection.createStatement();
+ r = s.executeQuery(query);
+ while(r.next()) {
+ final String schemaName = r.getString( "TABSCHEMA" ).trim();
+
+//<bgp if ( cache.isBatchLoading() && !schemaName.equals( schema.getName()) ) {
+// if ( null == cache.findSchema( database, schemaName ) ) {
+// // The container is filtered out, so go on
+// continue;
+// }
+//
+// // Get the right schema so we can populate the old cache below
+// schema = (LUWCatalogSchema)database.getSchema( schemaName );
+//bgp> }
+
+ final String tableName = r.getString(1);
+ final String type = r.getString(2);
+
+ EClass metaclass=null;
+ if (type.equals("T")){ //$NON-NLS-1$
+ metaclass = LUWPackage.eINSTANCE.getLUWTable();
+ } else if (type.equals("V")){ //$NON-NLS-1$
+ metaclass = LUWPackage.eINSTANCE.getLUWView();
+ }else if(type.equals("A")) { //$NON-NLS-1$
+ metaclass = DB2ModelPackage.eINSTANCE.getDB2Alias();
+ }else if(type.equals("S")) { //$NON-NLS-1$
+ metaclass = LUWPackage.eINSTANCE.getLUWMaterializedQueryTable();
+ }else if(type.equals("N")) { //$NON-NLS-1$
+ metaclass = LUWPackage.eINSTANCE.getLUWGenericNickname();
+ }
+
+ Object element = LUWCatalogSchema.findTable( cachedElement, oldList, tableName,metaclass );
+ Table table;
+
+ if (element != null) {
+ table = (Table) element;
+ tableList.add(table);
+ ((ICatalogObject)table).refresh();
+ } else {
+ if(type.equals("T")) { //$NON-NLS-1$
+ table = new LUWCatalogTable();
+
+ final String partitionMode = r.getString(4);
+ ((LUWCatalogTable)table).setPartitionMode(partitionMode);
+
+ final String tspName = r.getString(5);
+ ((LUWCatalogTable)table).setTablespaceName(tspName);
+
+ final String indexTbspaceName = r.getString(6);
+ ((LUWCatalogTable)table).setIndexTbspaceName(indexTbspaceName);
+
+ final String longTbspaceName = r.getString(7);
+ ((LUWCatalogTable)table).setlongTbspaceName(longTbspaceName);
+
+ final String dataCapture = r.getString("DATACAPTURE");
+ if (dataCapture.equals("N")) {
+ ((LUWCatalogTable)table).setDataCapture(DataCaptureType.NONE_LITERAL);
+ } else {
+ ((LUWCatalogTable)table).setDataCapture(DataCaptureType.CHANGES_LITERAL);
+ }
+
+ final String compression = r.getString("COMPRESSION");
+ if ("V".equals(compression)) {
+ ((LUWCatalogTable)table).setValueCompression(true);
+ } else if ("R".equals(compression)) {
+ ((LUWCatalogTable)table).setRowCompression(true);
+ } else if ("B".equals(compression)) {
+ ((LUWCatalogTable)table).setValueCompression(true);
+ ((LUWCatalogTable)table).setRowCompression(true);
+ } else {
+ ((LUWCatalogTable)table).setValueCompression(false);
+ ((LUWCatalogTable)table).setRowCompression(false);
+ }
+
+ }
+ else if(type.equals("V")) { //$NON-NLS-1$
+ table = new LUWCatalogView();
+ }
+ else if(type.equals("A")) { //$NON-NLS-1$
+ table = new LUWCatalogAlias();
+ }
+ else if(type.equals("S")) { //$NON-NLS-1$
+ table = new LUWCatalogMaterializedQueryTable();
+ final String partitionMode = r.getString(4);
+ ((LUWCatalogMaterializedQueryTable)table).setPartitionMode(partitionMode);
+
+ final String compression = r.getString("COMPRESSION");
+ if ("V".equals(compression)) {
+ ((LUWCatalogMaterializedQueryTable)table).setValueCompression(true);
+ ((LUWCatalogMaterializedQueryTable)table).setRowCompression(false);
+ } else if ("R".equals(compression)) {
+ ((LUWCatalogMaterializedQueryTable)table).setRowCompression(true);
+ ((LUWCatalogMaterializedQueryTable)table).setValueCompression(false);
+ } else if ("B".equals(compression)) {
+ ((LUWCatalogMaterializedQueryTable)table).setValueCompression(true);
+ ((LUWCatalogMaterializedQueryTable)table).setRowCompression(true);
+ } else {
+ ((LUWCatalogMaterializedQueryTable)table).setValueCompression(false);
+ ((LUWCatalogMaterializedQueryTable)table).setRowCompression(false);
+ }
+
+
+ }
+ else if(type.equals("N")) { //$NON-NLS-1$
+ table = new LUWCatalogNickname();
+ ((LUWCatalogNickname)table).setAsBatchLoad(isBatchLoad);
+ }
+ else continue;
+
+ table.setName(tableName);
+
+ final String description = r.getString("REMARKS"); //$NON-NLS-1$
+ table.setDescription(description);
+
+//<bgp if ( cache.isBatchLoading() ) {
+// cache.cacheSchemaTable( schemaName, tableName, table );
+// }
+//bgp> else {
+ tableList.add(table);
+ schema.cacheTable(tableName, table);
+//bgp }
+
+ }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ finally {
+ if (r != null) {
+ r.close();
+ }
+ if (s != null) {
+ s.close();
+ }
+ }
+ }
+
+ private synchronized void loadTables() {
+ if(this.tablesLoaded) return;
+ this.tablesLoaded = true;
+
+ EList tableList = super.getTables();
+ Connection connection = this.getConnection();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogSchema.loadTables(connection,tableList,this, ((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ } catch(Exception e){
+ e.printStackTrace();
+ }
+
+ LUWCatalogDatabase database = (LUWCatalogDatabase)getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() ) {
+// Collection<SQLObject> tables = CatalogCache.getCache( database ).getTables( this );
+//
+// tableList.clear();
+// tableList.addAll( tables );
+//bgp> }
+
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadRoutines(Connection connection, EList routineList, Schema schema, int options) throws SQLException {
+ String version = connection.getMetaData().getDatabaseProductVersion();
+ if (version.startsWith("SQL07")) return; //don't support v7
+
+ Object[] oldList = routineList.toArray();
+ routineList.clear();
+
+ if ((options & DatabaseREProvider.EXCLUDE_ROUTINES)== DatabaseREProvider.EXCLUDE_ROUTINES) return;
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(ModelHelper.getDatabase(schema));
+ ConnectionFilter spFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.STORED_PROCEDURE_FILTER); //$NON-NLS-1$
+ if (spFilter == null) { //default sp filter
+ spFilter = connectionInfo.getFilter(ConnectionFilter.STORED_PROCEDURE_FILTER);
+ }
+
+ ConnectionFilter fedspFilter = connectionInfo.getFilter(schema.getName()+"::"+IConnectionFilter.FEDERATED_STORED_PROCEDURE_FILTER); //$NON-NLS-1$
+ if (fedspFilter == null) { //default sp filter
+ fedspFilter = connectionInfo.getFilter(IConnectionFilter.FEDERATED_STORED_PROCEDURE_FILTER);
+ }
+
+ ConnectionFilter udfFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.USER_DEFINED_FUNCTION_FILTER); //$NON-NLS-1$
+ if (udfFilter == null) { //default udf filter
+ udfFilter = connectionInfo.getFilter(ConnectionFilter.USER_DEFINED_FUNCTION_FILTER);
+ }
+ String filterStr = ""; //$NON-NLS-1$
+ boolean hasFilter = spFilter != null || udfFilter != null || fedspFilter != null;
+ if (hasFilter) {
+ if (spFilter != null) {
+ filterStr += "( " + CatalogLoadUtil.getFilterString(spFilter.getPredicate(), "ROUTINENAME") + " AND ROUTINETYPE='P' AND ORIGIN<>'F') "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += "(ROUTINETYPE='P' and ORIGIN<>'F')"; //$NON-NLS-1$
+ }
+
+ if (fedspFilter != null) {
+ filterStr += " OR (" + CatalogLoadUtil.getFilterString(fedspFilter.getPredicate(), "ROUTINENAME") + " AND ROUTINETYPE='P' AND ORIGIN='F') "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += "OR (ROUTINETYPE='P' and ORIGIN='F')"; //$NON-NLS-1$
+ }
+
+ if (udfFilter != null) {
+ if (filterStr.length() >0) filterStr += " OR "; //$NON-NLS-1$
+ filterStr += "(" + CatalogLoadUtil.getFilterString(udfFilter.getPredicate(), "ROUTINENAME") + " AND ROUTINETYPE='F') "; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else
+ {
+ filterStr += " OR ROUTINETYPE='F' "; //$NON-NLS-1$
+ }
+
+ filterStr = " AND (" + filterStr; //$NON-NLS-1$
+ filterStr += ") "; //$NON-NLS-1$
+
+ }
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(schema));
+
+ String query = "SELECT ROUTINENAME, ROUTINETYPE,FUNCTIONTYPE,SPECIFICNAME,LANGUAGE,PARAMETER_STYLE,"
+ + "\"DETERMINISTIC\" as D, SQL_DATA_ACCESS, EXTERNAL_ACTION," //$NON-NLS-1$
+ + " CHAR(CREATE_TIME) AS CT, CHAR(ALTER_TIME) AS AT, REMARKS, ROUTINEID, ORIGIN ";
+ if (ModelHelper.isSupportPL_SQL(databaseDefinition)){
+ query += " ,DIALECT ";
+ } else {
+ query += " ,'' AS DIALECT ";
+ }
+
+ query += " FROM SYSCAT.ROUTINES" //$NON-NLS-1$
+ + " WHERE ROUTINESCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND ORIGIN<>'S'"; //$NON-NLS-1$
+
+ if (ModelHelper.isSupportModule(databaseDefinition)){
+ query += " AND ROUTINEMODULENAME IS NULL";
+ }
+
+ if (hasFilter) {
+ query += filterStr;
+ }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String routineName = r.getString(1);
+
+ final String routineType = r.getString(2);
+
+ final String origin = r.getString("ORIGIN");
+
+ final String dialect = r.getString("DIALECT");
+ boolean isPlsql = false;
+ if (dialect != null && dialect.trim().equals("PL/SQL")) {
+ isPlsql = true;
+ }
+
+ Routine routine;
+
+ EClass metaclass=null;
+ if (routineType.equals("P")){ //$NON-NLS-1$
+ metaclass = SQLRoutinesPackage.eINSTANCE.getProcedure();
+ } else if (routineType.equals("F")){ //$NON-NLS-1$
+ metaclass = SQLRoutinesPackage.eINSTANCE.getUserDefinedFunction();
+ }else if(routineType.equals("M")) { //$NON-NLS-1$
+ metaclass = SQLRoutinesPackage.eINSTANCE.getMethod();
+ }
+
+ Object element = LUWCatalogSchema.findElement(oldList,routineName,metaclass);
+ if (element != null) {
+ routine = (Routine) element;
+ ((ICatalogObject)routine).refresh();
+ } else {
+ if(routineType.equals("F")) { //$NON-NLS-1$
+ routine = new LUWCatalogUserDefinedFunction();
+ final String funcType= r.getString("FUNCTIONTYPE"); //$NON-NLS-1$
+ if (funcType.equals("T")) //$NON-NLS-1$
+ ((LUWCatalogUserDefinedFunction)routine).setLUWFunctionType(LUWCatalogUserDefinedFunction.FunctionTypeEnumeration.TABLE_FUNCTION);
+ else if (funcType.equals("C")) //$NON-NLS-1$
+ ((LUWCatalogUserDefinedFunction)routine).setLUWFunctionType(LUWCatalogUserDefinedFunction.FunctionTypeEnumeration.COLUMN_FUNCTION);
+ else if (funcType.equals("R")) //$NON-NLS-1$
+ ((LUWCatalogUserDefinedFunction)routine).setLUWFunctionType(LUWCatalogUserDefinedFunction.FunctionTypeEnumeration.ROW_FUNCTION);
+ else
+ ((LUWCatalogUserDefinedFunction)routine).setLUWFunctionType(LUWCatalogUserDefinedFunction.FunctionTypeEnumeration.SCALAR_FUNCTION);
+
+ if (origin.equals("M")){
+ ((LUWCatalogUserDefinedFunction)routine).setOrigin(OriginType.TEMPLATE_LITERAL);
+ } else if (origin.equals("U")){
+ ((LUWCatalogUserDefinedFunction)routine).setOrigin(OriginType.SOURCE_LITERAL);
+ } else {
+ ((LUWCatalogUserDefinedFunction)routine).setOrigin(OriginType.NONE_LITERAL);
+ }
+
+ if (isPlsql) {
+ ((LUWCatalogUserDefinedFunction)routine).setDialect(SourceDialect.PLSQL_LITERAL);
+ } else {
+ ((LUWCatalogUserDefinedFunction)routine).setDialect(SourceDialect.DB2SQLPL_LITERAL);
+ }
+
+ }
+ else if(routineType.equals("P")) { //$NON-NLS-1$
+ if(!origin.equals("F")){
+ routine = new LUWCatalogProcedure();
+
+ if (isPlsql) {
+ ((LUWCatalogProcedure)routine).setDialect(SourceDialect.PLSQL_LITERAL);
+ } else {
+ ((LUWCatalogProcedure)routine).setDialect(SourceDialect.DB2SQLPL_LITERAL);
+ }
+ }else{
+ //federated SP
+ routine = new LUWCatalogFederatedProcedure();
+ LUWCatalogFederatedProcedure fedRoutine = (LUWCatalogFederatedProcedure)routine;
+
+ int routineID = r.getInt("ROUTINEID");
+ fedRoutine.setRoutineID(routineID);
+
+ String deterministic = r.getString("D");
+ if(deterministic.equals("Y")) routine.setDeterministic(true); //$NON-NLS-1$
+ else routine.setDeterministic(false);
+
+ final String sql_data_access = r.getString("SQL_DATA_ACCESS"); //$NON-NLS-1$
+ // 'C' - CONTAINS SQL, 'M' - MODIFIES SQL DATA, 'N' - No SQL, 'R' - READS SQL DATA
+ if (sql_data_access.equals("C")) fedRoutine.setSQLDataAccess(DataAccess.CONTAINS_SQL_LITERAL); //$NON-NLS-1$
+ else if (sql_data_access.equals("M")) fedRoutine.setSQLDataAccess(DataAccess.MODIFIES_SQL_DATA_LITERAL); //$NON-NLS-1$
+ else if (sql_data_access.equals("N")) fedRoutine.setSQLDataAccess(DataAccess.NO_SQL_LITERAL); //$NON-NLS-1$
+ else fedRoutine.setSQLDataAccess(DataAccess.READS_SQL_DATA_LITERAL);
+
+ String externalAction = r.getString("EXTERNAL_ACTION");
+ fedRoutine.setExternalAction(externalAction);
+
+
+ }
+ }
+ else if(routineType.equals("M")) { //$NON-NLS-1$
+ continue;
+ }
+ else {
+ continue;
+ }
+ routine.setName(routineName);
+ }
+ final String language = r.getString("LANGUAGE").trim(); //$NON-NLS-1$
+ routine.setLanguage(language);
+ final String paramStyle = r.getString("PARAMETER_STYLE").trim(); //$NON-NLS-1$
+ routine.setParameterStyle(paramStyle);
+ final String createdTS = r.getString("CT"); //$NON-NLS-1$
+ routine.setCreationTS(createdTS);
+ final String alteredTS = r.getString("AT"); //$NON-NLS-1$
+ routine.setLastAlteredTS(alteredTS);
+
+ final String remarks = r.getString("REMARKS"); //$NON-NLS-1$
+ routine.setDescription(remarks);
+
+ final String specificName= r.getString("SPECIFICNAME"); //$NON-NLS-1$
+ routine.setSpecificName(specificName);
+ if(!origin.equals("F")){
+ routineList.add(routine);
+ }else{
+ routineList.add(routine);
+ }
+ }
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+ r.close();
+ s.close();
+ }
+
+ private synchronized void loadRoutines() {
+ if(this.routinesLoaded) return;
+ this.routinesLoaded = true;
+
+ EList routineList = super.getRoutines();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ Connection connection = this.getConnection();
+ try {
+ LUWCatalogSchema.loadRoutines(connection,routineList,this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadJars(Connection connection, EList jarList, Schema schema, int options) throws SQLException {
+ Object[] oldList = jarList.toArray();
+ jarList.clear();
+
+ if ((options & DatabaseREProvider.EXCLUDE_ROUTINES)== DatabaseREProvider.EXCLUDE_ROUTINES) return;
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(ModelHelper.getDatabase(schema));
+ ConnectionFilter jarFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.JAR_FILTER); //$NON-NLS-1$
+ if (jarFilter == null) { //default jar filter
+ jarFilter = connectionInfo.getFilter(ConnectionFilter.JAR_FILTER);
+ }
+ String filterStr = ""; //$NON-NLS-1$
+ if (jarFilter != null) {
+ filterStr += " AND " + CatalogLoadUtil.getFilterString(jarFilter.getPredicate(), "JAR_ID") ;
+ }
+
+ String query = "SELECT JAR_ID, DEFINER, ALTEREDTS, CREATEDTS" //$NON-NLS-1$
+ + " FROM SYSIBM.SYSJAROBJECTS" //$NON-NLS-1$
+ + " WHERE JARSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ if (jarFilter != null) {
+ // TODO implement jar filters
+// query += filterStr;
+ }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String jarID = r.getString("JAR_ID"); //$NON-NLS-1$
+
+ final String definer = r.getString("DEFINER"); //$NON-NLS-1$
+
+ DB2Jar jar;
+
+ EClass metaclass=DB2ModelPackage.eINSTANCE.getDB2Jar();
+ Object element = LUWCatalogSchema.findElement(oldList,jarID,metaclass);
+ if (element != null) {
+ // we already have the model object in the schema
+ jar = (DB2Jar) element;
+ ((ICatalogObject)jar).refresh();
+ } else {
+ // create the model object
+ jar = new LUWCatalogJar();
+ jar.setName(jarID);
+ }
+ // populate the model object
+ jar.setOwner(definer);
+ final String createdTS = r.getString("CREATEDTS"); //$NON-NLS-1$
+ jar.setCreatedTS(createdTS);
+ final String alteredTS = r.getString("ALTEREDTS"); //$NON-NLS-1$
+ jar.setAlteredTS(alteredTS);
+
+ jarList.add(jar);
+ }
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+ r.close();
+ s.close();
+ }
+
+ public static void loadXMLSchemas(Connection connection, EList xsrObjList, Schema schema) throws SQLException {
+ Object[] oldList = xsrObjList.toArray();
+ xsrObjList.clear();
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(ModelHelper.getDatabase(schema));
+
+ // delete all previously cached xsd sources in this schema recursively.
+ // this way all cached xsd files will be deleted even if the actual objects on the database
+ // have been deleted outside of the tooling.
+ // TODO sschaer
+ // not yet implemented: if a whole schema is deleted outside of the tooling, then the
+ // cached xsd sources of that schema are not deleted because this LUWCatalogSchema is not created.
+ String rootPath = getXSDSourceCacheRoot(connectionInfo, schema);
+ deleteXSDSourceCache(rootPath);
+
+ ConnectionFilter xsrObjectFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.XSR_OBJECTS_FILTER); //$NON-NLS-1$
+ if (xsrObjectFilter == null) { //default jar filter
+ xsrObjectFilter = connectionInfo.getFilter(ConnectionFilter.XSR_OBJECTS_FILTER);
+ }
+ String filterStr = ""; //$NON-NLS-1$
+ if (xsrObjectFilter != null) {
+ filterStr += CatalogLoadUtil.getFilterString(xsrObjectFilter.getPredicate(), "OBJECTNAME") + " AND OBJECTTYPE='S' "; //$NON-NLS-1$ //$NON-NLS-2$
+ filterStr = " AND (" + filterStr; //$NON-NLS-1$
+ filterStr += ") "; //$NON-NLS-1$
+ }
+
+ String query = "SELECT OBJECTNAME, OBJECTTYPE, DECOMPOSITION, REMARKS, STATUS" //$NON-NLS-1$
+ + " FROM SYSCAT.XSROBJECTS" //$NON-NLS-1$
+ + " WHERE OBJECTSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ if (xsrObjectFilter != null) {
+ query += filterStr;
+ }
+
+ Statement s = null;
+ ResultSet r = null;
+
+ try {
+ s = connection.createStatement();
+ r = s.executeQuery(query);
+
+ while(r.next()) {
+ final String xsrObjectName = r.getString("OBJECTNAME"); //$NON-NLS-1$
+ final String objectType = r.getString("OBJECTTYPE"); //$NON-NLS-1$
+
+ DB2XMLSchema xmlSchema;
+
+ EClass metaclass=null;
+
+ if (objectType.equals("S")) //$NON-NLS-1$
+ metaclass = DB2ModelPackage.eINSTANCE.getDB2XMLSchema();
+
+ if (metaclass != null)
+ {
+ Object element = LUWCatalogSchema.findElement(oldList,xsrObjectName,metaclass);
+ if (element != null) {
+ // we already have the model object in the schema
+ xmlSchema = (DB2XMLSchema) element;
+ ((ICatalogObject)xmlSchema).refresh();
+ } else {
+ // create the model object
+ xmlSchema = new LUWCatalogXmlSchema();
+ xmlSchema.setName(xsrObjectName);
+ }
+ // populate the model object
+ final String decomposition = r.getString("DECOMPOSITION"); //$NON-NLS-1$
+ if (decomposition.equalsIgnoreCase("Y")) //$NON-NLS-1$
+ xmlSchema.setDecomposition(DB2XMLSchemaDecomposition.ENABLED_LITERAL);
+ else if (decomposition.equalsIgnoreCase("N")) //$NON-NLS-1$
+ xmlSchema.setDecomposition(DB2XMLSchemaDecomposition.NOT_ENABLED_LITERAL);
+ else if (decomposition.equalsIgnoreCase("X")) //$NON-NLS-1$
+ xmlSchema.setDecomposition(DB2XMLSchemaDecomposition.INOPERATIVE_LITERAL);
+
+ final String status = r.getString("STATUS"); //$NON-NLS-1$
+ if (status.equalsIgnoreCase("C")) //$NON-NLS-1$
+ xmlSchema.setStatus(DB2XMLSchemaStatus.COMPLETE_LITERAL);
+ else if (status.equalsIgnoreCase("I")) //$NON-NLS-1$
+ xmlSchema.setStatus(DB2XMLSchemaStatus.INCOMPLETE_LITERAL);
+ else if (status.equalsIgnoreCase("R")) //$NON-NLS-1$
+ xmlSchema.setStatus(DB2XMLSchemaStatus.REPLACE_LITERAL);
+ else if (status.equalsIgnoreCase("T")) //$NON-NLS-1$
+ xmlSchema.setStatus(DB2XMLSchemaStatus.TEMPORARY_LITERAL);
+
+ final String comment = r.getString("REMARKS"); //$NON-NLS-1$
+ xmlSchema.setDescription(comment);
+
+ xsrObjList.add(xmlSchema);
+ }
+ }
+ }catch (Exception e) {
+ DB2LUWPluginActivator.getInstance().log("LUWCatalogSchema.loadXMLSchemas()",IStatus.ERROR,e); //$NON-NLS-1$
+ }
+ finally
+ {
+ r.close();
+ s.close();
+ }
+ }
+
+ private synchronized void loadJars() {
+ if(this.jarsLoaded) return;
+ this.jarsLoaded = true;
+
+ EList jarList = super.getJars();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ Connection connection = this.getConnection();
+ try {
+
+ LUWCatalogSchema.loadJars(connection,jarList,this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadXsrObjects() {
+ if(this.xsrObjsLoaded) return;
+ EList xsrObjList = super.getXsrObjects();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ Connection connection = this.getConnection();
+ try {
+
+ LUWCatalogSchema.loadXMLSchemas(connection,xsrObjList,this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadSequences(Connection connection, EList sequenceList, Schema schema, int options) throws SQLException {
+ Object[] oldList = sequenceList.toArray();
+ sequenceList.clear();
+
+ if ((options & DatabaseREProvider.EXCLUDE_SEQUENCE)== DatabaseREProvider.EXCLUDE_SEQUENCE) return;
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(schema));
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(ModelHelper.getDatabase(schema));
+ ConnectionFilter sequenceFilter = connectionInfo.getFilter(schema.getName()+"::" +ConnectionFilter.SEQUENCE_FILTER); //$NON-NLS-1$
+ if (sequenceFilter == null) { //default sequence filter
+ sequenceFilter = connectionInfo.getFilter(ConnectionFilter.SEQUENCE_FILTER);
+ }
+
+ String filterStr = ""; //$NON-NLS-1$
+ boolean hasFilter = sequenceFilter != null;
+ if (hasFilter) {
+ filterStr = " AND " + CatalogLoadUtil.getFilterString(sequenceFilter.getPredicate(), "SEQNAME") ;
+ }
+
+ // The SYSCAT.SEQUENCES catalog table not only contains Sequences
+ // but also contains Sequence Alias's. These Alias's should not be
+ // loaded and handled as part of Sequences.
+ // Column SEQTYPE - A = Alias, I = Identity sequence, S = Sequence
+ // WHERE clause will be added to only load I and S and omit A
+ String query = "SELECT SEQNAME, REMARKS, DATATYPEID, PRECISION, INCREMENT, START, MAXVALUE, MINVALUE, CYCLE, CACHE" //$NON-NLS-1$
+ + " FROM SYSCAT.SEQUENCES " //$NON-NLS-1$
+ + " WHERE SEQSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND ORIGIN='U'" //$NON-NLS-1$
+ + " AND (SEQTYPE = 'S' OR SEQTYPE = 'I')"; //$NON-NLS-1$
+
+ if (hasFilter) {
+ query += filterStr;
+ }
+
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ LUWCatalogSequence sequence;
+ final String seqName = r.getString(1);
+
+ EClass metaclass=SQLSchemaPackage.eINSTANCE.getSequence();
+
+ Object element = LUWCatalogSchema.findElement(oldList, seqName,metaclass);
+ if (element != null){
+ sequence = (LUWCatalogSequence) element;
+ sequence.refresh();
+ } else {
+ sequence = new LUWCatalogSequence();
+ sequence.setName(seqName);
+ }
+
+ final String remarks = r.getString(2);
+ sequence.setDescription(remarks);
+ final int dataTypeId = r.getInt(3);
+ sequence.setDataTypeId(dataTypeId);
+ final int precision = r.getInt(4);
+ sequence.setPrecision(precision);
+ DB2IdentitySpecifier identity = (DB2IdentitySpecifier) factory.create(DB2ModelPackage.eINSTANCE.getDB2IdentitySpecifier());
+ identity.setGenerationType(GenerateType.ALWAYS_GENERATED_LITERAL);
+ identity.setIncrement(r.getBigDecimal(5).toBigInteger());
+ identity.setStartValue(r.getBigDecimal(6).toBigInteger());
+ identity.setMaximum(r.getBigDecimal(7).toBigInteger());
+ identity.setMinimum(r.getBigDecimal(8).toBigInteger());
+ final String cycle = r.getString(9);
+ if(cycle.equals("Y")) identity.setCycleOption(true); //$NON-NLS-1$
+ else identity.setCycleOption(false);
+
+ final int cache = r.getInt(10);
+ identity.setCache(cache);
+
+ sequence.setIdentity(identity);
+ sequenceList.add(sequence);
+ }
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ r.close();
+ s.close();
+
+ }
+ private synchronized void loadSequences() {
+ if(this.sequencesLoaded) return;
+ this.sequencesLoaded = true;
+
+ EList sequenceList = super.getSequences();
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogSchema.loadSequences(connection,sequenceList,this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadTriggers() {
+ if(this.triggersLoaded) return;
+ this.triggersLoaded = true;
+ super.getTriggers();
+
+ LUWCatalogDatabase database = (LUWCatalogDatabase)getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() ) {
+// return;
+//bgp> }
+
+ Connection connection = this.getConnection();
+
+ int options = ((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_TRIGGERS)== DatabaseREProvider.EXCLUDE_TRIGGERS) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT DISTINCT TABSCHEMA, TABNAME FROM SYSCAT.TRIGGERS WHERE TRIGSCHEMA='" + LUWUtil.getIdentifier(this.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ while(r.next()) {
+ final String tabSchema = r.getString(1).trim();
+ final String tabName = r.getString(2);
+ Table table = this.getTable(tabSchema, tabName);
+ if (table!= null)table.getTriggers();
+ }
+ r.close();
+ s.close();
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadIndices() {
+ if(this.indicesLoaded) return;
+ this.indicesLoaded = true;
+
+ super.getIndices().clear();
+
+ LUWCatalogDatabase database = (LUWCatalogDatabase) this.getCatalogDatabase();
+ if (!database.isBatchLoad()) return;
+
+ int options = ((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_INDEXES)== DatabaseREProvider.EXCLUDE_INDEXES) return;
+
+ Connection connection = this.getConnection();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ String query = "SELECT INDEXTYPE, INDSCHEMA,TABNAME, INDNAME, REMARKS, UNIQUERULE, PCTFREE, SYSTEM_REQUIRED, USER_DEFINED "
+ + "FROM SYSCAT.INDEXES" //$NON-NLS-1$
+ + " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(this.getName()) + "'";
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(database);
+ ConnectionFilter tableFilter = connectionInfo.getFilter(this.getName()+"::"+ConnectionFilter.TABLE_FILTER); //$NON-NLS-1$
+ if (tableFilter == null) { //default table filter
+ tableFilter = connectionInfo.getFilter(ConnectionFilter.TABLE_FILTER);
+ }
+
+ String filterStr = ""; //$NON-NLS-1$
+ if (tableFilter != null) {
+ query += " AND " + CatalogLoadUtil.getFilterString(tableFilter.getPredicate(), "TABNAME");
+ }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ int typeOrdinal = r.findColumn("INDEXTYPE"); //$NON-NLS-1$
+ int idxSchemOrdinal = r.findColumn("INDSCHEMA"); //$NON-NLS-1$
+ int tableOrdinal = r.findColumn("TABNAME"); //$NON-NLS-1$
+ int nameOrdinal = r.findColumn("INDNAME"); //$NON-NLS-1$
+ int remarkOrdinal = r.findColumn("REMARKS"); //$NON-NLS-1$
+ int ruleOrdinal = r.findColumn("UNIQUERULE"); //$NON-NLS-1$
+ int pctfreeOrdinal = r.findColumn("PCTFREE"); //$NON-NLS-1$
+ int systemRequiredOrdinal = r.findColumn("SYSTEM_REQUIRED"); //$NON-NLS-1$
+ int userDefinedOrdinal = r.findColumn("USER_DEFINED");
+
+ while(r.next()) {
+ final String indName = r.getString(nameOrdinal);
+
+ Index index = null;
+ final String type = r.getString(typeOrdinal);
+ if(type.equals("REG ")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+
+ }
+ else if(type.equals("CLUS")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+ index.setClustered(true);
+
+ }
+ else if(type.equals("DIM ")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+ ((LUWCatalogIndex)index).setIndexType(DB2IndexType.DIMENSION_LITERAL);
+ }
+ else if(type.equals("BLOK")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+ ((LUWCatalogIndex)index).setIndexType(DB2IndexType.BLOCK_LITERAL);
+ }
+ else {
+ continue;
+ }
+
+ index.setName(indName);
+
+ final String remarks = r.getString(remarkOrdinal);
+ index.setDescription(remarks);
+
+ final String uniqueRule = r.getString(ruleOrdinal);
+ if(!uniqueRule.equals("D")) index.setUnique(true); //$NON-NLS-1$
+ if ("P".equalsIgnoreCase(uniqueRule)) ((LUWCatalogIndex)index).setIndexUniqueRule(IndexUniqueRule.PRIMARYKEY);
+
+
+ final int pctfree = r.getInt(pctfreeOrdinal);
+ if(pctfree == -1) index.setFillFactor(10);
+ else index.setFillFactor(pctfree);
+
+
+ final int systemRequred = r.getInt(systemRequiredOrdinal);
+ if (index instanceof LUWIndex) {
+ if (systemRequred != 0) {
+ ((LUWIndex)index).setSystemRequired(true);
+ } else {
+ ((LUWIndex)index).setSystemRequired(false);
+ }
+ }
+
+ final int userDefined = r.getInt(userDefinedOrdinal);
+ if (userDefined == 0) {
+ index.setSystemGenerated(true);
+ }
+ else {
+ index.setSystemGenerated(false);
+ }
+
+ final String tabName = r.getString(tableOrdinal).trim();
+ Table table = this.getTable(this.getName(),tabName);
+ if (table != null) {
+ index.setTable(table);
+ }
+
+ final String schemaName = r.getString(idxSchemOrdinal).trim();
+ Schema indexSchema =LUWCatalogSchema.getSchema(this,schemaName);
+ if (indexSchema != null) {
+ index.setSchema(indexSchema);
+ }
+
+ }
+ r.close();
+ s.close();
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadOlapobjects() {
+ if(this.olapobjectLoaded) return;
+ this.olapobjectLoaded = true;
+
+ EList olapList = super.getOlapObjects();
+ Connection connection = this.getConnection();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ OlapCatalogProvider provider = getOlapCatalogProvider();
+ if (provider != null){
+ Iterator it = provider.getOlapobjects(connection,this).iterator();
+ while(it.hasNext()) {
+ Object bp = it.next();
+ olapList.add(bp);
+ }
+ }
+ } catch(Exception e){
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadUserDefinedTypes() {
+ if(this.userDefinedTypesLoaded) return;
+ this.userDefinedTypesLoaded = true;
+
+ EList userDefinedTypeList = super.getUserDefinedTypes();
+ Connection connection = this.getConnection();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogSchema.loadUserDefinedTypes(connection,userDefinedTypeList,this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ } catch(Exception e){
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+
+
+ public static void loadUserDefinedTypes(Connection connection, EList userDefinedTypeList, Schema schema, int options) throws SQLException {
+ Object[] oldList = userDefinedTypeList.toArray();
+ userDefinedTypeList.clear();
+
+ if ((options & DatabaseREProvider.EXCLUDE_USER_DEFINED_TYPE)== DatabaseREProvider.EXCLUDE_USER_DEFINED_TYPE) return;
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(schema));
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(ModelHelper.getDatabase(schema));
+ ConnectionFilter udtFilter = connectionInfo.getFilter(schema.getName()+"::"+ConnectionFilter.USER_DEFINED_TYPE_FILTER); //$NON-NLS-1$
+ if (udtFilter == null) { //default udt filter
+ udtFilter = connectionInfo.getFilter(ConnectionFilter.USER_DEFINED_TYPE_FILTER);
+ }
+ String filterStr = ""; //$NON-NLS-1$
+ boolean hasFilter = udtFilter != null;
+ if (hasFilter) {
+ filterStr += " AND " + CatalogLoadUtil.getFilterString(udtFilter.getPredicate(), "TYPENAME");
+ }
+
+ String query = "";
+ if (ModelHelper.isSupportArrayDataType(databaseDefinition)){
+ query = "SELECT TYPENAME, METATYPE, REMARKS, SOURCESCHEMA, SOURCENAME, LENGTH" + //$NON-NLS-1$
+ ",SCALE, CODEPAGE, INSTANTIABLE, FINAL, ARRAY_LENGTH "; //$NON-NLS-1$
+ } else {
+ query = "SELECT TYPENAME, METATYPE, REMARKS, SOURCESCHEMA, SOURCENAME, LENGTH" + //$NON-NLS-1$
+ ",SCALE, CODEPAGE, INSTANTIABLE, FINAL, 0 AS ARRAY_LENGTH ";//$NON-NLS-1$
+ }
+
+ query += " FROM SYSCAT.DATATYPES " + //$NON-NLS-1$
+ " WHERE TYPESCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ if (hasFilter) {
+ query += filterStr;
+ }
+
+ if (ModelHelper.isSupportModule(databaseDefinition)){
+ query += " AND TYPEMODULENAME IS NULL";
+ }
+
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+
+ String typeName = r.getString(1);
+ UserDefinedType type = null;
+
+ EClass metaclass=SQLDataTypesPackage.eINSTANCE.getUserDefinedType();
+
+ Object element = LUWCatalogSchema.findElement(oldList, typeName,metaclass);
+
+ if (element != null){
+ type = (UserDefinedType) element;
+ ((ICatalogObject)type).refresh();
+
+ } else {
+ String metaType = r.getString(2);
+ if(metaType.equals("T") ) { //$NON-NLS-1$
+ type = LUWCatalogSchema.constructDistintUserDefinedType(r,schema);
+ }
+ else if(metaType.equals("R")) { //$NON-NLS-1$
+ type = LUWCatalogSchema.constructStructuredUserDefinedType(r);
+ }
+ else if(metaType.equals("A")) { //$NON-NLS-1$
+ type = LUWCatalogSchema.constructArrayDataType(r,schema);
+ }
+ else if(metaType.equals("F")) { //$NON-NLS-1$
+ type = new LUWCatalogRowDataType();
+ }
+ else if(metaType.equals("C")) { //$NON-NLS-1$
+ type = new LUWCatalogCursorDataType();
+ }
+ else if(metaType.equals("S")) { //$NON-NLS-1$
+ continue;
+ }
+ else {
+ continue;
+ }
+
+ type.setName(typeName);
+ }
+
+ String remarks = r.getString(3);
+ type.setDescription(remarks);
+ userDefinedTypeList.add(type);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ r.close();
+ s.close();
+ }
+
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogSchema.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ public static void loadPrivileges(Connection connection, EList privilegeList,Schema schema,String granteeFilter) throws SQLException {
+ final Database database = ModelHelper.getDatabase(schema);
+
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",ALTERINAUTH,CREATEINAUTH,DROPINAUTH" +
+ " FROM SYSCAT.SCHEMAAUTH" +
+ " WHERE SCHEMANAME='" + LUWUtil.getIdentifier(schema.getName()) + "'";
+
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " AND " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ try {
+ String userName = connection.getMetaData().getUserName();
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+
+ LUWCatalogPrivilege privilege = null;
+ boolean isSystemGranted = granteeId.equalsIgnoreCase(userName);
+ final String alterAuth = r.getString("ALTERINAUTH");
+ if (alterAuth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_ALTERIN);
+ if (alterAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String deleteAuth = r.getString("CREATEINAUTH");
+ if (deleteAuth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CREATEIN);
+ if (deleteAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String indexAuth = r.getString("DROPINAUTH");
+ if (indexAuth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_DROPIN);
+ if (indexAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ private synchronized void loadPackages() {
+ if(this.packagesLoaded) return;
+ this.packagesLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogSchema.loadPackages(this.getConnection(),super.getPackages(), this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadPackages(Connection connection, EList packageList,LUWCatalogSchema schema) throws SQLException {
+ schema.iniCachedDb2Package();
+
+ //do not RE package
+ if(((LUWCatalogDatabase)schema.getCatalogDatabase()).isBatchLoad()) return;
+
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(schema.getCatalogDatabase());
+ String version = definition.getVersion();
+ float ver = 8.0f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+
+ String query = "SELECT PKGNAME, VALID, PKGVERSION, DEFAULT_SCHEMA, FUNC_PATH," + //$NON-NLS-1$
+ " REOPTVAR, ISOLATION, HEX(UNIQUE_ID) AS UID, CHAR(LAST_BIND_TIME) AS LBTS," + //$NON-NLS-1$
+ " BOUNDBY, BLOCKING, TOTAL_SECT, QUERYOPT, EXPLAIN_SNAPSHOT, REMARKS"; //$NON-NLS-1$
+ if (ver <9.0) {
+ query += " ,DEFINER AS OWNER";
+ } else {
+ query += " ,OWNER";
+ }
+
+
+ // PKGVERSION has been available since V8.1 and we don't support connections to V7
+ query += " FROM SYSCAT.PACKAGES" + //$NON-NLS-1$
+ " WHERE PKGSCHEMA=" + LUWUtil.getSingleQuotedString(schema.getName()) + //$NON-NLS-1$
+ " FOR FETCH ONLY WITH UR"; //$NON-NLS-1$
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ try {
+ while(r.next()) {
+ LUWCatalogDatabasePackage dbpackage = new LUWCatalogDatabasePackage();
+
+ final String pkgName = r.getString("PKGNAME").trim(); //$NON-NLS-1$
+ dbpackage.setName(pkgName);
+ final String pkgValid = r.getString("VALID").trim(); //$NON-NLS-1$
+ dbpackage.setValid(pkgValid);
+ final String pkgVersion = r.getString("PKGVERSION").trim(); //$NON-NLS-1$
+ dbpackage.setVersion(pkgVersion);
+ final String pkgDefaultSchema = r.getString("DEFAULT_SCHEMA").trim(); //$NON-NLS-1$
+ dbpackage.setDefaultSchema(pkgDefaultSchema);
+ final String pkgSqlPath = r.getString("FUNC_PATH").trim(); //$NON-NLS-1$
+ dbpackage.setSqlPath(pkgSqlPath);
+ final String pkgReoptVar = r.getString("REOPTVAR"); //$NON-NLS-1$
+ if ("A".equals(pkgReoptVar)){ //$NON-NLS-1$
+ dbpackage.setReoptVar(ReoptType.ALWAYS_LITERAL);
+ } else if ("N".equals(pkgReoptVar)) { //$NON-NLS-1$
+ dbpackage.setReoptVar(ReoptType.NONE_LITERAL);
+ } else if ("O".equals(pkgReoptVar)) { //$NON-NLS-1$
+ dbpackage.setReoptVar(ReoptType.ONCE_LITERAL);
+ }
+ final String pkgIsolation = r.getString("ISOLATION"); //$NON-NLS-1$
+ if ("CS".equals(pkgIsolation)){ //$NON-NLS-1$
+ dbpackage.setIsolation(IsolationLevelType.CURSOR_STABILITY_LITERAL);
+ } else if ("RR".equals(pkgIsolation)) { //$NON-NLS-1$
+ dbpackage.setIsolation(IsolationLevelType.REPEATABLE_READ_LITERAL);
+ } else if ("RS".equals(pkgIsolation)) { //$NON-NLS-1$
+ dbpackage.setIsolation(IsolationLevelType.READ_STABILITY_LITERAL);
+ } else if ("UR".equals(pkgIsolation)) { //$NON-NLS-1$
+ dbpackage.setIsolation(IsolationLevelType.UNCOMMITTED_READ_LITERAL);
+ } else {
+ // The isolation level was not set at the package level
+ dbpackage.setIsolation(null);
+ }
+
+ final String pkgUniqueID = r.getString("UID").trim(); //$NON-NLS-1$
+ dbpackage.setUniqueID(pkgUniqueID);
+ final String pkgLastBindTS = r.getString("LBTS").trim(); //$NON-NLS-1$
+ dbpackage.setLastBindTS(pkgLastBindTS);
+
+ final String pkgBoundBy = r.getString("BOUNDBY");
+ dbpackage.setBinder(pkgBoundBy);
+ final String pkgOwner = r.getString("OWNER");
+ dbpackage.setCreator(pkgOwner);
+ final String pkgBlocking = r.getString("BLOCKING");
+ if ("B".equals(pkgBlocking)) {
+ dbpackage.setCursorBlock(CursorBlockType.BLOCK_ALL_CURSORS_LITERAL);
+ }
+ else if ("N".equals(pkgBlocking)) {
+ dbpackage.setCursorBlock(CursorBlockType.NO_BLOCKING_LITERAL);
+ }
+ else if ("U".equals(pkgBlocking)) {
+ dbpackage.setCursorBlock(CursorBlockType.BLOCK_UNAMBIGUOUS_CURSORS_LITERAL);
+ }
+
+ final String pkgTotalSect = r.getString("TOTAL_SECT");
+ dbpackage.setNumberOfSections(Integer.parseInt(pkgTotalSect));
+ final String pkgQueryOpt = r.getString("QUERYOPT");
+ dbpackage.setOptimizationClass(Integer.parseInt(pkgQueryOpt));
+ final String pkgExplainSnapShot = r.getString("EXPLAIN_SNAPSHOT");
+ if ("A".equals(pkgExplainSnapShot)) {
+ dbpackage.setExplainSnapshot(ExplainSnaphotType.ALL_LITERAL);
+ }
+ else if ("N".equals(pkgExplainSnapShot)) {
+ dbpackage.setExplainSnapshot(ExplainSnaphotType.NO_LITERAL);
+ }
+ else if ("R".equals(pkgExplainSnapShot)) {
+ dbpackage.setExplainSnapshot(ExplainSnaphotType.REOPT_LITERAL);
+ }
+ else if ("Y".equals(pkgExplainSnapShot)) {
+ dbpackage.setExplainSnapshot(ExplainSnaphotType.REOPT_LITERAL);
+ }
+
+ final String remarks = r.getString("REMARKS");
+ dbpackage.setDescription(remarks);
+
+ // Add and cache the package
+ packageList.add(dbpackage);
+ schema.cacheDB2Package(pkgName, pkgUniqueID, dbpackage);
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ r.close();
+ s.close();
+ }
+
+ private synchronized void loadModules() {
+ if(this.moduleLoaded) return;
+ this.moduleLoaded = true;
+
+ EList modules = super.getModules();
+ modules.clear();
+
+ final Database database = this.getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+
+ if (!ModelHelper.isSupportModule(databaseDefinition)) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ ModuleCatalogProvider moduleProvider = ((LUWCatalogDatabase)this.getCatalogDatabase()).getCatalogModuleProvider();
+ if (moduleProvider != null){
+ Iterator it = moduleProvider.getModules(this.getConnection(), this).iterator();
+ while(it.hasNext()) {
+ LUWModule module = (LUWModule) it.next();
+ modules.add(module);
+ }
+ }
+
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadGlobaleVaraibles() {
+ if(this.globalVariableLoaded) return;
+ this.globalVariableLoaded = true;
+
+ EList varaibles = super.getGlobalVariables();
+ varaibles.clear();
+
+ final Database database = this.getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+
+ if (!ModelHelper.isSupportGlobalVariable(databaseDefinition)) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+
+ String query = "SELECT VARNAME,TYPESCHEMA,TYPENAME,LENGTH,SCALE,CODEPAGE,READONLY,REMARKS,DEFAULT"
+ + " FROM SYSCAT.VARIABLES " //$NON-NLS-1$
+ + " WHERE VARSCHEMA='" + LUWUtil.getIdentifier(this.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND VARMODULENAME is NULL"; //$NON-NLS-1$
+
+ Statement s = this.getConnection().createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ LUWCatalogGlobalVariable var = new LUWCatalogGlobalVariable();
+ final String name = r.getString("VARNAME");
+ var.setName(name);
+
+ final String remarks = r.getString("REMARKS");
+ var.setDescription(remarks);
+
+ String typeName = r.getString("TYPENAME");
+
+ if (typeName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length = r.getInt("LENGTH");
+ if (length ==4) typeName="REAL"; //$NON-NLS-1$
+ else typeName="DOUBLE"; //$NON-NLS-1$
+
+ }
+
+ PredefinedDataTypeDefinition typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(typeName);
+ if(typeDefinition != null) {
+
+ if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt("CODEPAGE");
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt("CODEPAGE");
+ if(codePage == 0) {
+ if (typeName.equals("LONG VARCHAR")){
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("LONG VARCHAR FOR BIT DATA"); //$NON-NLS-1$
+ } else {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ }
+
+
+ PredefinedDataType type = databaseDefinition.getPredefinedDataType(typeDefinition);
+ if(typeDefinition.isLengthSupported()) {
+ final int length = r.getInt("LENGTH");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else if(typeDefinition.isPrecisionSupported()) {
+ if (typeName.equals("TIMESTAMP")) {
+ int length = r.getInt("SCALE");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("fractionalSecondsPrecision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else {
+ int length = r.getInt("LENGTH");
+ if (typeName.equals("DECFLOAT")) {
+ if (length == 8) length = 16;
+ else length = 34;
+ }
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ }
+
+ if(typeDefinition.isScaleSupported()) {
+ final int length = r.getInt("SCALE");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+
+ var.setContainedType(type);
+ }
+ else {
+ if (typeName.equals("REFERENCE")){ //$NON-NLS-1$
+ final String typeSchemaName = r.getString("TARGET_TYPESCHEMA").trim(); //$NON-NLS-1$
+ final String udtName = r.getString("TARGET_TYPENAME"); //$NON-NLS-1$
+ var.setReferencedType(LUWCatalogSchema.getUserDefinedType(this,typeSchemaName,udtName));
+ } else {
+ final String typeSchemaName = r.getString("TYPESCHEMA").trim();
+ var.setReferencedType(LUWCatalogSchema.getUserDefinedType(this,typeSchemaName,typeName));
+ }
+ }
+
+ final String readOnly = r.getString("READONLY");
+ if ("C".equalsIgnoreCase(readOnly)) var.setIsConstant(true);
+
+ final String defaultValue = r.getString("DEFAULT");
+ var.setDefaultValue(defaultValue);
+
+
+ varaibles.add(var);
+ }
+ r.close();
+ s.close();
+
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private static DistinctUserDefinedType constructDistintUserDefinedType(ResultSet r,Schema schema) throws SQLException {
+ DistinctUserDefinedType type = new LUWCatalogDistinctUserDefinedType();
+ String sourceName = r.getString(5);
+ if (sourceName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length = r.getInt(6);
+ if (length ==4) sourceName="REAL"; //$NON-NLS-1$
+ else sourceName="DOUBLE"; //$NON-NLS-1$
+ }
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(schema));
+ PredefinedDataTypeDefinition sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(sourceName);
+
+ if (sourceTypeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt(8);
+ if(codePage == 0) {
+ sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (sourceTypeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt(8);
+ if(codePage == 0) {
+ if (sourceName.equals("LONG VARCHAR")){
+ sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("LONG VARCHAR FOR BIT DATA"); //$NON-NLS-1$
+ } else {
+ sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+
+
+ }
+ }
+
+
+ PredefinedDataType sourceType = databaseDefinition.getPredefinedDataType(sourceTypeDefinition);
+ if(sourceTypeDefinition.isLengthSupported()) {
+ final int length = r.getInt(6);
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(length));
+ }
+ else if(sourceTypeDefinition.isPrecisionSupported()) {
+ if (sourceName.equals("TIMESTAMP")) {
+ int length = r.getInt(7);
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("fractionalSecondsPrecision"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(length));
+ }
+ else {
+ int length = r.getInt(6);
+ if (sourceName.equals("DECFLOAT")) {
+ if (length == 8) length = 16;
+ else length = 34;
+ }
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(length));
+ }
+ }
+
+ if(sourceTypeDefinition.isScaleSupported()) {
+ final int length = r.getInt(7);
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(length));
+ }
+
+ type.setPredefinedRepresentation(sourceType);
+ return type;
+ }
+
+ private static StructuredUserDefinedType constructStructuredUserDefinedType(ResultSet r) throws SQLException {
+ StructuredUserDefinedType type = new LUWCatalogStructuredUserDefinedType();
+ final String instantiable = r.getString(9);
+ if(instantiable.equals("Y")) type.setInstantiable(true); //$NON-NLS-1$
+ else type.setInstantiable(false);
+
+ final String f = r.getString(10);
+ if(f.equals("Y")) type.setFinal(true); //$NON-NLS-1$
+ else type.setFinal(false);
+
+ return type;
+ }
+
+ private static LUWArrayDataType constructArrayDataType(ResultSet r,Schema schema) throws SQLException {
+ LUWArrayDataType arrayType = new LUWCatalogArrayDataType();
+ String sourceName = r.getString("SOURCENAME");
+ if (sourceName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length = r.getInt("LENGTH");
+ if (length ==4) sourceName="REAL"; //$NON-NLS-1$
+ else sourceName="DOUBLE"; //$NON-NLS-1$
+ }
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition((schema.getDatabase()));
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ ElementType elmentType = (ElementType) factory.create(SQLDataTypesPackage.eINSTANCE.getElementType());
+
+ PredefinedDataTypeDefinition sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(sourceName);
+
+ if (sourceTypeDefinition != null) {
+ if (sourceTypeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt("CODEPAGE");
+ if(codePage == 0) {
+ sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (sourceTypeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt("CODEPAGE");
+ if(codePage == 0) {
+ if (sourceName.equals("LONG VARCHAR")){
+ sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("LONG VARCHAR FOR BIT DATA"); //$NON-NLS-1$
+ } else {
+ sourceTypeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ }
+
+ PredefinedDataType sourceType = databaseDefinition.getPredefinedDataType(sourceTypeDefinition);
+ if(sourceTypeDefinition.isLengthSupported()) {
+ final int length = r.getInt("LENGTH");
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(length));
+ }
+ else if(sourceTypeDefinition.isPrecisionSupported()) {
+ if (sourceName.equals("TIMESTAMP")) {
+ int length = r.getInt("SCALE");
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("fractionalSecondsPrecision"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(length));
+ }
+ else {
+ int length = r.getInt("LENGTH");
+ if (sourceName.equals("DECFLOAT")) {
+ if (length == 8) length = 16;
+ else length = 34;
+ }
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(length));
+ }
+ }
+
+ if(sourceTypeDefinition.isScaleSupported()) {
+ final int scale = r.getInt("SCALE");
+ EStructuralFeature feature = sourceType.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ sourceType.eSet(feature, new Integer(scale));
+ }
+ elmentType.setDataType(sourceType);
+ }
+ else {
+ final String typeSchemaName = r.getString("SOURCESCHEMA").trim();
+ DataType sourceType = LUWCatalogSchema.getUserDefinedType(schema,typeSchemaName,sourceName);
+ elmentType.setDataType(sourceType);
+ }
+
+ arrayType.setElementType(elmentType);
+
+ final int arrayLen = r.getInt("ARRAY_LENGTH");
+ arrayType.setMaxCardinality(arrayLen);
+
+ return arrayType;
+ }
+
+ private String getWhereClause() {
+ return " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(this.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public Table getTable(String schema, String tableName) {
+ Schema s = LUWCatalogSchema.getSchema(this,schema);
+ EList tables = s.getTables();
+
+ if (s instanceof LUWCatalogSchema) {
+ Table table = ((LUWCatalogSchema) s).getCachedTable(tableName);
+ if (table != null) return table;
+ }
+
+ Iterator it = tables.iterator();
+ while(it.hasNext()) {
+ Table t = (Table) it.next();
+ if(t.getName().equals(tableName)) return t;
+ }
+
+ return null;
+ }
+
+ public DB2Package getDB2Package(String name, String uniqueID) {
+ if (!this.packagesLoaded) {
+ this.getPackages();
+ }
+ DB2Package pkg = (DB2Package) this.cachedDB2Packages.get(getDB2PackageHashKey(name, uniqueID));
+ return pkg;
+ }
+
+ private static Schema getSchema(Schema schema, String schemaName) {
+ if(schema.getName().equals(schemaName)) return schema;
+ Database d = schema.getDatabase();
+ if (d instanceof LUWCatalogDatabase){
+ Schema s = ((LUWCatalogDatabase)d).getSchema(schemaName);
+ if (s != null) return s;
+ } else {
+ Iterator it = d.getSchemas().iterator();
+ while(it.hasNext()) {
+ Schema s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+ }
+
+ Schema newSchema = new LUWCatalogSchema();
+ newSchema.setName(schemaName);
+ newSchema.setDatabase(d);
+
+ if (d instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)d).cacheSchema(newSchema);
+ }
+ return newSchema;
+ }
+
+ private void cacheTable(String name, Table table){
+ this.cachedTables.put(name,table);
+ }
+
+ private Table getCachedTable(String name){
+ return (Table)this.cachedTables.get(name);
+ }
+
+ private HashMap getCachedTable(){
+ return this.cachedTables;
+ }
+
+ private void iniCachedTable(){
+ this.cachedTables.clear();
+ }
+
+ private void cacheDB2Package(String name, String uniqueID, DB2Package pkg) {
+ this.cachedDB2Packages.put(getDB2PackageHashKey(name, uniqueID), pkg);
+ }
+
+ private void iniCachedDb2Package() {
+ this.cachedDB2Packages.clear();
+ }
+
+ private String getDB2PackageHashKey(String name, String uniqueID) {
+ // It is important to quote the name to make the key unique
+ name = LUWUtil.getSingleQuotedString(name);
+ return (name + uniqueID);
+ }
+
+ protected static Object findElement(Object[] list, String name,EClass metaclass){
+ Object object = null;
+ for (int i = 0; i < list.length; i++){
+ SQLObject sqlObject = (SQLObject) list[i];
+ if (sqlObject.getName().equals(name) && sqlObject.eClass() == metaclass && sqlObject instanceof ICatalogObject){
+ object = list[i];
+ break;
+ }
+ }
+ return object;
+ }
+
+ private static Object findTable(HashMap cachedElements,Object[] list, String name,EClass metaclass){
+ SQLObject sqlObject = (SQLObject)cachedElements.get(name);
+ if (sqlObject != null && sqlObject.eClass() == metaclass && sqlObject instanceof ICatalogObject) return sqlObject;
+ return LUWCatalogSchema.findElement(list,name,metaclass);
+ }
+
+ /**
+ * constructs path for cached xsd sources.
+ * the path is unique for connection,db,dbschema
+ * @param connectionInfo
+ * @param schema
+ * @return the rootpath of where xsd sources for this schema will be cached
+ */
+ public static String getXSDSourceCacheRoot(ConnectionInfo connectionInfo, Schema schema){
+ StringBuffer rootPath = new StringBuffer(DB2LUWPluginActivator.getInstance().getStateLocation().toOSString()).append(File.separator);
+ rootPath.append(connectionInfo.getName()).append(File.separator);
+ rootPath.append(ModelHelper.getDatabase(schema).getName()).append(File.separator);
+ rootPath.append(schema.getName()).append(File.separator);
+ return rootPath.toString();
+ }
+
+ /**
+ * deletes the cached xsd sources recursively starting from the
+ * given rootPath.
+ * Deletes also all empty directories.
+ * @param rootPath the path to start deleting from
+ */
+ private static void deleteXSDSourceCache(String rootPath){
+ File file = new File(rootPath);
+ File[] files = files = file.listFiles();
+ deleteFiles(files);
+ }
+
+ /**
+ * deletes all existing xsd sources (with XSD_EXTENSION file extension) and empty directories
+ * for the given array of files.
+ * @param files
+ */
+ private static void deleteFiles(File[] files){
+ if (files == null) return;
+ int length = files.length;
+ for (int i=0;i<length;i++){
+ File file = files[i];
+ if (file.isFile() && file.getName().endsWith(LUWCatalogXmlSchema.XSD_EXTENSION)){
+ file.delete();
+ } else if(file.isDirectory()){
+ deleteFiles(file.listFiles());
+ if (file.listFiles().length == 0){
+ file.delete();
+ }
+ }
+ }
+ }
+
+ public void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogSchema.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private static UserDefinedType getUserDefinedType(Schema currentSchema, String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogSchema.getSchema(currentSchema,schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+
+ UserDefinedType userDefinedType = new LUWCatalogDistinctUserDefinedType();
+ userDefinedType.setName(userDefinedTypeName);
+ userDefinedType.setSchema(schema);
+
+ return userDefinedType;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogSequence.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogSequence.java
new file mode 100644
index 0000000..9cebbf9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogSequence.java
@@ -0,0 +1,263 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SequenceImpl;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+
+public class LUWCatalogSequence extends SequenceImpl implements ICatalogObject {
+
+ public void refresh() {
+ this.dataTypeLoaded = false;
+ this.privilegeLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public UserDefinedType getReferencedType() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getReferencedType();
+ } else {
+ if(!this.dataTypeLoaded) this.loadDataType();
+ return super.getReferencedType();
+ }
+ }
+
+ public SQLDataType getContainedType() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getContainedType();
+ } else {
+ if(!this.dataTypeLoaded) this.loadDataType();
+ return super.getContainedType();
+ }
+ }
+
+ public DataType getDataType() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDataType();
+ } else {
+ if(!this.dataTypeLoaded) this.loadDataType();
+ return super.getDataType();
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLSchemaPackage.SEQUENCE__CONTAINED_TYPE) {
+ this.getContainedType();
+ }
+ else if(id == SQLSchemaPackage.SEQUENCE__REFERENCED_TYPE) {
+ this.getReferencedType();
+ }
+ else if(id == SQLSchemaPackage.SEQUENCE__PRIVILEGES) {
+ this.getPrivileges();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ public void setDataTypeId(int id) {
+ this.dataTypeId = id;
+ }
+
+ public void setPrecision(int p) {
+ this.precision = p;
+ }
+
+ private synchronized void loadDataType() {
+ if(this.dataTypeLoaded) return;
+ this.dataTypeLoaded = true;
+ try {
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT TYPENAME FROM SYSCAT.DATATYPES WHERE TYPEID=" + Integer.toString(this.dataTypeId)); //$NON-NLS-1$
+ while (r.next()) {
+ final String typeName = r.getString(1);
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase());
+ PredefinedDataTypeDefinition typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(typeName);
+ if(typeDefinition != null) {
+ PredefinedDataType type = databaseDefinition.getPredefinedDataType(typeDefinition);
+ if(typeDefinition.isPrecisionSupported()) {
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(this.precision));
+ }
+ this.setContainedType(type);
+ }
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogSequence.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadPrivileges(Connection connection, EList privilegeList,Sequence sequence,String granteeFilter) throws SQLException {
+ final Schema schema = sequence.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",USAGEAUTH,ALTERAUTH" +
+ " FROM SYSCAT.SEQUENCEAUTH" +
+ " WHERE SEQSCHEMA='" + LUWUtil.getIdentifier(schema.getName()) + "'" +
+ " AND SEQNAME='" + LUWUtil.getIdentifier(sequence.getName()) + "'" ;
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " AND " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ try {
+ String userName = connection.getMetaData().getUserName();
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+ boolean isSystemGranted = granteeId.equalsIgnoreCase(userName);
+ LUWCatalogPrivilege privilege = null;
+
+ final String alterAuth = r.getString("USAGEAUTH");
+ if (alterAuth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_USAGE);
+ if (alterAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String deleteAuth = r.getString("ALTERAUTH");
+ if (deleteAuth.equals("N")) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_ALTER);
+ if (deleteAuth.equals("G")) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogSequence.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private int dataTypeId;
+ private int precision;
+ private boolean dataTypeLoaded = false;
+ private boolean privilegeLoaded = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogStructuredUserDefinedType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogStructuredUserDefinedType.java
new file mode 100644
index 0000000..f17708d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogStructuredUserDefinedType.java
@@ -0,0 +1,554 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.StructuredUserDefinedTypeImpl;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogStructuredUserDefinedType extends StructuredUserDefinedTypeImpl implements ICatalogObject,IDatabaseObject {
+ public void refresh() {
+ if (this.attributesLoaded) {
+ this.attributes.clear();
+ this.attributesLoaded = false;
+ }
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ }
+
+ public EList getAttributes() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getAttributes();
+ } else {
+ if(!this.attributesLoaded) this.loadAttributes();
+ return this.attributes;
+ }
+ }
+
+ public StructuredUserDefinedType getSuper() {
+ if (!this.superLoaded) this.loadSuper();
+ return this.super_;
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__ATTRIBUTES) {
+ this.getAttributes();
+ }
+ else if(id == SQLDataTypesPackage.STRUCTURED_USER_DEFINED_TYPE__SUPER) {
+ this.getSuper();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadAttributes() {
+ if(this.attributesLoaded) return;
+ EList attributeList = super.getAttributes();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT ATTR_NAME, ATTR_TYPESCHEMA, ATTR_TYPENAME" + //$NON-NLS-1$
+ ", LENGTH, SCALE, CODEPAGE, TARGET_TYPESCHEMA,TARGET_TYPENAME,LOGGED,COMPACT" //$NON-NLS-1$
+ + " FROM SYSCAT.ATTRIBUTES" //$NON-NLS-1$
+ + " WHERE TYPENAME = SOURCE_TYPENAME" //$NON-NLS-1$
+ + " AND TYPESCHEMA = SOURCE_TYPESCHEMA" //$NON-NLS-1$
+ + " AND TYPESCHEMA='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND TYPENAME='" + LUWUtil.getIdentifier(this.getName()) //$NON-NLS-1$ //$NON-NLS-2$
+ + "' ORDER BY ORDINAL "); //$NON-NLS-1$
+ while(r.next()) {
+ LUWCatalogAttribute attribute = new LUWCatalogAttribute();
+
+ final String attrName = r.getString(1);
+ attribute.setName(attrName);
+
+ final DatabaseDefinition databaseDefinition = this.getDatabaseDefinition();
+ String attrTypeName = r.getString(3);
+ if (attrTypeName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length =r.getInt(4);
+ if (length ==4) attrTypeName="REAL"; //$NON-NLS-1$
+ else attrTypeName="DOUBLE"; //$NON-NLS-1$
+ }
+ PredefinedDataTypeDefinition typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(attrTypeName);
+ if(typeDefinition != null) {
+
+ if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt(6);
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt(6);
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+
+ PredefinedDataType type = databaseDefinition.getPredefinedDataType(typeDefinition);
+ if(typeDefinition.isLengthSupported()) {
+ final int length = r.getInt(4);
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else if(typeDefinition.isPrecisionSupported()) {
+ if (attrTypeName.equals("TIMESTAMP")) {
+ int length = r.getInt(4);
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("fractionalSecondsPrecision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else {
+ int length = r.getInt(4);
+ if (attrTypeName.equals("DECFLOAT")) {
+ if (length == 8) length = 16;
+ else length = 34;
+ }
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ }
+
+ if(typeDefinition.isScaleSupported()) {
+ final int scale = r.getInt(5);
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(scale));
+ }
+
+ attribute.setContainedType(type);
+ }
+ else {
+ if (attrTypeName.equals("REFERENCE")){ //$NON-NLS-1$
+ final String typeSchemaName = r.getString("TARGET_TYPESCHEMA").trim(); //$NON-NLS-1$
+ final String udtName = r.getString("TARGET_TYPENAME"); //$NON-NLS-1$
+ attribute.setReferencedType(LUWCatalogStructuredUserDefinedType.getUserDefinedType(this,typeSchemaName,udtName));
+ } else {
+ final String attrTypeSchemaName = r.getString(2).trim();
+ Schema attrTypeSchema = LUWCatalogStructuredUserDefinedType.getSchema(this,attrTypeSchemaName);
+ attribute.setReferencedType(LUWCatalogStructuredUserDefinedType.getUserDefinedType(this,attrTypeSchemaName,attrTypeName));
+ }
+ }
+
+ final String logged = r.getString("LOGGED");
+ if (logged.equals("Y")) {
+ attribute.setLOBLogged(true);
+ } else {
+ attribute.setLOBLogged(false);
+ }
+
+ final String compact = r.getString("COMPACT");
+ if (compact.equals("Y")) {
+ attribute.setLOBCompacted(true);
+ } else {
+ attribute.setLOBCompacted(false);
+ }
+
+
+ attributeList.add(attribute);
+ }
+ this.attributesLoaded = true;
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadSuper() {
+ if(this.superLoaded) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ String query = "SELECT SOURCE_TYPESCHEMA,SOURCE_TYPENAME" //$NON-NLS-1$
+ + " FROM SYSCAT.ATTRIBUTES" //$NON-NLS-1$
+ + " WHERE TYPESCHEMA='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND TYPENAME='" + LUWUtil.getIdentifier(this.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND TYPENAME <> SOURCE_TYPENAME" //$NON-NLS-1$
+ + " ORDER BY ORDINAL DESC"; //$NON-NLS-1$
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ LUWCatalogAttribute attribute = new LUWCatalogAttribute();
+
+ final String sourceSchemaName = r.getString("SOURCE_TYPESCHEMA").trim(); //$NON-NLS-1$
+ final String sourceTypeName = r.getString("SOURCE_TYPENAME"); //$NON-NLS-1$
+
+ this.setSuper(LUWCatalogStructuredUserDefinedType.getStructuredUserDefinedType(this,sourceSchemaName,sourceTypeName));
+
+ break;
+ }
+
+ this.superLoaded = true;
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ private DatabaseDefinition getDatabaseDefinition() {
+ return RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase());
+ }
+
+ protected static Schema getSchema(UserDefinedType type, String schemaName) {
+ Schema s = type.getSchema();
+ if(s.getName().equals(schemaName)) return s;
+
+ Database db = s.getDatabase();
+ if (db instanceof LUWCatalogDatabase){
+ s = ((LUWCatalogDatabase)db).getSchema(schemaName);
+ if (s != null) return s;
+ }
+ Iterator it = db.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(db);
+
+ if (db instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)db).cacheSchema(schema);
+ }
+
+ return schema;
+ }
+ private static UserDefinedType getUserDefinedType(UserDefinedType type,String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogStructuredUserDefinedType.getSchema(type,schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+
+ UserDefinedType userDefinedType = new LUWCatalogDistinctUserDefinedType();
+ userDefinedType.setName(userDefinedTypeName);
+ userDefinedType.setSchema(schema);
+
+ return userDefinedType;
+ }
+
+ private static StructuredUserDefinedType getStructuredUserDefinedType(UserDefinedType type ,String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogStructuredUserDefinedType.getSchema(type,schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType instanceof StructuredUserDefinedType
+ && userDefinedType.getName().equals(userDefinedTypeName)) {
+ return (StructuredUserDefinedType)userDefinedType;
+ }
+ }
+
+ StructuredUserDefinedType userDefinedType = new LUWCatalogStructuredUserDefinedType();
+ userDefinedType.setName(userDefinedTypeName);
+ userDefinedType.setSchema(schema);
+
+ return userDefinedType;
+ }
+
+ private static Table getTable(UserDefinedType type,String schemaName, String tableName) {
+ Schema schema = LUWCatalogStructuredUserDefinedType.getSchema(type,schemaName);
+ if (schema instanceof LUWCatalogSchema) {
+ return ((LUWCatalogSchema)schema).getTable(schema.getName(),tableName);
+ }
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+ return null;
+ }
+
+ public static Routine getRountine(UserDefinedType type,String schemaName, String specificName) {
+ Schema schema = LUWCatalogStructuredUserDefinedType.getSchema(type,schemaName);
+ Iterator it = schema.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine routine = (Routine) it.next();
+ if(specificName.equals(routine.getSpecificName())) return routine;
+ }
+ return null;
+ }
+
+ public static TableConstraint getTableConstraint(UserDefinedType type, String schemaName,String tableName, String constName) {
+ Table t = LUWCatalogStructuredUserDefinedType.getTable(type, schemaName,tableName);
+ if (!(t instanceof BaseTable)) return null;
+ Iterator it = ((BaseTable)t).getConstraints().iterator();
+ while(it.hasNext()) {
+ TableConstraint constraint = (TableConstraint) it.next();
+ if(constraint.getName().equals(constName)) return constraint;
+ }
+
+ return null;
+ }
+
+ public static Trigger getTrigger(UserDefinedType type, String schemaName, String tabName, String triggerName) {
+ Table table = LUWCatalogStructuredUserDefinedType.getTable(type, schemaName,tabName);
+ if (table != null) {
+ Iterator it = table.getTriggers().iterator();
+ while(it.hasNext()) {
+ Trigger r = (Trigger) it.next();
+ if(r.getName().equals(triggerName)) return r;
+ }
+ }
+ return null;
+ }
+
+ public static DB2Package getDb2Package(UserDefinedType type,String schemaName, String pkgName, String pkgUniqueID) {
+ Schema schema = LUWCatalogStructuredUserDefinedType.getSchema(type,schemaName);
+ if (schema instanceof LUWCatalogSchema) {
+ return ((LUWCatalogSchema)schema).getDB2Package(pkgName, pkgUniqueID);
+ }
+ return null;
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedConstraints(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogStructuredUserDefinedType.getImpactedPackages(connection, this));
+
+ return impacts;
+ }
+
+ protected static Collection getImpactedTables(Connection connection, UserDefinedType type) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT DISTINCT TABNAME, TABSCHEMA" +
+ " FROM SYSCAT.TABDEP" +
+ " WHERE BTYPE='R'" +
+ " AND BNAME ='" + LUWUtil.getIdentifier(type.getName()) + "'" +
+ " AND BSCHEMA = '" + LUWUtil.getIdentifier(type.getSchema().getName()) + "'" +
+ " UNION ALL" +
+ " SELECT DISTINCT TABNAME,TABSCHEMA" +
+ " FROM SYSCAT.COLUMNS" +
+ " WHERE TYPESCHEMA = '" + LUWUtil.getIdentifier(type.getSchema().getName()) + "'" +
+ " AND TYPENAME ='" + LUWUtil.getIdentifier(type.getName()) + "'"
++ " FOR FETCH ONLY";
+
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Table t = LUWCatalogStructuredUserDefinedType.getTable(type, schemaName, tabName);
+ if (t != null) {
+ impacts.add(t);
+ }
+ }
+ r.close();
+ s.close();
+
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+
+
+ protected static Collection getImpactedConstraints(Connection connection, UserDefinedType type) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT CONSTNAME,TABNAME,TABSCHEMA" +
+ " FROM SYSCAT.CONSTDEP" +
+ " WHERE BTYPE='R'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(type.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(type.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String constName = r.getString("CONSTNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ TableConstraint constraint = LUWCatalogStructuredUserDefinedType.getTableConstraint(type, schemaName, tabName, constName);
+ if (constraint != null) {
+ impacts.add(constraint);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedTriggers(Connection connection, UserDefinedType type) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT DISTINCT A.TABSCHEMA, A.TABNAME, A.TRIGNAME" +
+ " FROM SYSCAT.TRIGGERS A, SYSCAT.TRIGDEP B" +
+ " WHERE (B.BNAME='" + LUWUtil.getIdentifier(type.getName()) + "'" +
+ " AND B.BSCHEMA='" + LUWUtil.getIdentifier(type.getSchema().getName()) + "'" +
+ " AND B.BTYPE='R'" +
+ " AND A.TRIGNAME=B.TRIGNAME" +
+ " AND A.TRIGSCHEMA=B.TRIGSCHEMA)" +
+ " FOR FETCH ONLY";
+
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String trigName = r.getString("TRIGNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Trigger trigger = LUWCatalogStructuredUserDefinedType.getTrigger(type, schemaName, tabName, trigName);
+ if (trigger != null) {
+ impacts.add(trigger);
+ }
+
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedRoutines(Connection connection, UserDefinedType type) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT ROUTINENAME,ROUTINESCHEMA" +
+ " FROM SYSCAT.ROUTINEDEP" +
+ " WHERE BTYPE='R'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(type.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(type.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String routineName = r.getString("ROUTINENAME").trim();
+ final String schemaName = r.getString("ROUTINESCHEMA").trim();
+ Routine p = LUWCatalogStructuredUserDefinedType.getRountine(type, schemaName, routineName);
+ if (p != null) {
+ impacts.add(p);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedPackages(Connection connection, UserDefinedType type) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT PKGNAME, PKGSCHEMA, HEX(UNIQUE_ID) AS UID" +
+ " FROM SYSCAT.PACKAGEDEP" +
+ " WHERE BTYPE = 'R'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(type.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(type.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String pkgName = r.getString("PKGNAME").trim();
+ final String schemaName = r.getString("PKGSCHEMA").trim();
+ final String pkgUniqueID = r.getString("UID").trim();
+ DB2Package p = LUWCatalogStructuredUserDefinedType.getDb2Package(type, schemaName, pkgName, pkgUniqueID);
+ if (p != null) {
+ impacts.add(p);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ e.printStackTrace();
+ }
+ return impacts;
+ }
+
+
+ private boolean attributesLoaded = false;
+ private boolean superLoaded = false;
+ private boolean impactsLoaded = false;
+ private Collection impacts = new ArrayList();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogTable.java
new file mode 100644
index 0000000..54d9494
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogTable.java
@@ -0,0 +1,2123 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.math.BigInteger;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Timestamp;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogStatistics;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogIndex.IndexUniqueRule;
+//bgp import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.CatalogCache;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.DatabaseREProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWDdlParser;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWCatalogMessages;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.GenerateType;
+import org.eclipse.datatools.enablement.ibm.util.IRowCountCache;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType;
+import org.eclipse.datatools.modelbase.sql.tables.ActionTimeType;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogTable extends LUWTableImpl implements IRowCountCache,ICatalogObject,IDatabaseObject {
+
+ public void refresh() {
+ this.columnsLoaded = false;
+ this.constraintLoaded = false;
+ this.indexLoaded = false;
+ this.triggerLoaded = false;
+ this.partitionKeyLoaded = false;
+
+ this.dataPartitionLoaded = false;
+ this.tablespaceLoaded = false;
+
+ this.privilegeLoaded = false;
+ this.rowCountLoaded = false;
+
+ this.reset();
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ this.rowCountLoaded = false;
+ }
+ }
+
+ public EList getColumns() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getColumns();
+ } else {
+ if(!this.columnsLoaded) this.loadColumns();
+ return this.columns;
+ }
+ }
+
+ public synchronized EList getConstraints() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getConstraints();
+ } else {
+ if(!this.constraintLoaded) this.loadConstraints();
+ return this.constraints;
+ }
+ }
+
+ public EList getIndex() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getIndex();
+ } else {
+ if(!this.indexLoaded) this.loadIndexes();
+ return this.index;
+ }
+ }
+
+ public EList getTriggers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getTriggers();
+ } else {
+ if(!this.triggerLoaded) this.loadTriggers();
+ return this.triggers;
+ }
+ }
+
+ public LUWPartitionKey getPartitionKey() {
+ if (!this.partitionKeyLoaded) this.loadPartitionKey();
+ return this.partitionKey;
+ }
+
+ public LUWTableSpace getRegularDataTableSpace(){
+ if(!this.tablespaceLoaded) this.loadTablespace();
+ return this.regularDataTableSpace;
+ }
+
+ public LUWTableSpace getIndexDataTableSpace(){
+ if(!this.tablespaceLoaded) this.loadTablespace();
+ return this.indexDataTableSpace;
+ }
+
+ public LUWTableSpace getLOBDataTableSpace(){
+ if(!this.tablespaceLoaded) this.loadTablespace();
+ return this.lobDataTableSpace;
+ }
+
+ public EList getDataPartitions(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDataPartitions();
+ } else {
+ if (!this.dataPartitionLoaded) this.loadDataPartitions();
+ return this.dataPartitions;
+ }
+ }
+
+ public LUWDataPartitionKey getDataPartitionKey() {
+ if (!this.dataPartitionLoaded) this.loadDataPartitions();
+ return this.dataPartitionKey;
+ }
+
+ /**
+ * This override includes the TableSpaces used in Data Partitions
+ * in the associated Table Spaces list
+ */
+ @Override
+ public List getTableSpaces() {
+ Vector tableSpaces = new Vector();
+ tableSpaces.addAll(super.getTableSpaces()); //General table spaces are added in to list with this method ( calls LUWTableImpl.getTableSpaces() )
+ if (this.getDataPartitions().size() != 0){ // For DB2 version <9, DataPartitions size will be 0
+ Iterator it = this.getDataPartitions().iterator();
+ while(it.hasNext()){
+ LUWDataPartition dataPartition = (LUWDataPartition)it.next();
+ if(!tableSpaces.contains(dataPartition.getRegularDataTableSpace()))
+ tableSpaces.add(dataPartition.getRegularDataTableSpace());
+ if(!tableSpaces.contains(dataPartition.getLOBDataTableSpace()))
+ tableSpaces.add(dataPartition.getLOBDataTableSpace());
+ }
+ }
+ return tableSpaces;
+ }
+
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogTable.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_TABLE__COLUMNS) {
+ this.getColumns();
+ }
+ else if(id == LUWPackage.LUW_TABLE__CONSTRAINTS) {
+ this.getConstraints();
+ }
+ else if(id == LUWPackage.LUW_TABLE__INDEX) {
+ this.getIndex();
+ }
+ else if(id == LUWPackage.LUW_TABLE__TRIGGERS) {
+ this.getTriggers();
+ }
+ else if(id == LUWPackage.LUW_TABLE__PARTITION_KEY) {
+ this.getPartitionKey();
+ }
+ else if(id == LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE) {
+ this.getRegularDataTableSpace();
+ }
+ else if(id == LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE) {
+ this.getIndexDataTableSpace();
+ }
+ else if(id == LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE) {
+ this.getLOBDataTableSpace();
+ }
+ else if(id == LUWPackage.LUW_TABLE__DATA_PARTITIONS) {
+ this.getDataPartitions();
+ }
+ else if(id == LUWPackage.LUW_TABLE__DATA_PARTITION_KEY) {
+ this.getDataPartitionKey();
+ }
+ else if(id == LUWPackage.LUW_TABLE__PRIVILEGES) {
+ this.getPrivileges();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadColumns() {
+ if(this.columnsLoaded) return;
+ this.columnsLoaded = true;
+
+ EList columns = super.getColumns();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadColumns(this.getConnection(), columns, this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.cacheColumn(columns);
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadConstraints() {
+ if(this.constraintLoaded) return;
+ this.constraintLoaded = true;
+
+ EList constraintList = super.getConstraints();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadConstraints(this.getConnection(), constraintList, this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ LUWCatalogDatabase database = (LUWCatalogDatabase)getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() && cache.isLoaded( CatalogCache.CONSTRAINTS ) ) {
+// Collection<Constraint> constraints = cache.getConstraints( this );
+//
+// constraintList.clear();
+// constraintList.addAll( constraints );
+//bgp> }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadIndexes() {
+ if(this.indexLoaded) return;
+ this.indexLoaded = true;
+
+ EList indexes = super.getIndex();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadIndexes(this.getConnection(), indexes, this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ LUWCatalogDatabase database = (LUWCatalogDatabase)getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() && cache.isLoaded( CatalogCache.INDEXES ) ) {
+// Collection<Index> idxs = cache.getIndexes( this );
+//
+// indexes.clear();
+//
+// for ( Index index : idxs ) {
+// DB2IndexType indexType = ((LUWCatalogIndex)index).getIndexType();
+// switch (indexType.getValue()) {
+// case DB2IndexType.BLOCK:
+// case DB2IndexType.DIMENSION:
+// indexes.add(0,index);
+// break;
+// default:
+// indexes.add(index);
+// }
+// }
+//bgp> }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadTriggers() {
+ if(this.triggerLoaded) return;
+ this.triggerLoaded = true;
+
+ EList triggerList = super.getTriggers();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadTriggers(this.getConnection(), triggerList, this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ LUWCatalogDatabase database = (LUWCatalogDatabase)getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() && cache.isLoaded( CatalogCache.TRIGGERS ) ) {
+// Collection<Trigger> triggers = cache.getTriggers( this );
+//
+// triggerList.clear();
+// triggerList.addAll( triggers );
+//bgp> }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPartitionKey() {
+ if(this.partitionKeyLoaded) return;
+ this.partitionKeyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPartitionKey(this.getConnection(), this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadTablespace() {
+ if(this.tablespaceLoaded) return;
+ this.tablespaceLoaded = true;
+
+ Database database = getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+//bgp if ( !cache.isBatchLoading() &&
+ if (this.tbspaceName != null || this.indexTbspaceName != null || this.longTbspaceName != null) {
+ this.setAssociatedTablespace();
+ } else {
+ LUWCatalogTable.loadTablespace(this.getConnection(), this);
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadDataPartitions() {
+ if(this.dataPartitionLoaded) return;
+ this.dataPartitionLoaded = true;
+
+ super.getDataPartitions().clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadDataPartitions(this.getConnection(), this);
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ /** Class for caching column information for one table */
+ private static class TableColumnInfo {
+ /** The table's schema */
+ String schemaName;
+ /** The name of the table */
+ String tableName;
+ /** Info about each column in the table */
+ List<ColumnInfo> columns = new ArrayList<ColumnInfo>();
+
+ /**
+ * Get the key for cache lookup
+ *
+ * @return The key
+ */
+ public String getKey() {
+ return this.schemaName + "." + this.tableName; //$NON-NLS-1$
+ }
+
+ /**
+ * Update a table with its columns using information found here
+ *
+ * @param table
+ * @param columnList
+ */
+ public void setColumnInfoIn( Table table, List<Column> columnList ) {
+ Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition =
+ RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Object[] list = columnList.toArray();
+ columnList.clear();
+
+ for ( ColumnInfo info : this.columns ) {
+ Object element = LUWCatalogTable.findElement(
+ list, info.columnName, LUWPackage.eINSTANCE.getLUWColumn() );
+
+ LUWCatalogColumn column;
+
+ if ( element != null ) {
+ column = (LUWCatalogColumn)element;
+ column.refresh();
+ } else {
+ column = new LUWCatalogColumn();
+ }
+
+ column.setName( info.columnName );
+ column.setDescription( info.remarks );
+
+ if ( info.generated.equals("A") ) { //$NON-NLS-1$
+ column.setGenerationType( GenerateType.ALWAYS_LITERAL );
+ column.setGenerated( true );
+ }
+ else if ( info.generated.equals("D") ) { //$NON-NLS-1$
+ column.setGenerationType( GenerateType.BY_DEFAULT_LITERAL );
+ column.setGenerated( true );
+ }
+
+ if ( info.isIdentity.equals("Y") ) { //$NON-NLS-1$
+ DB2IdentitySpecifier identitySpecifier = (DB2IdentitySpecifier)factory.create(
+ DB2ModelPackage.eINSTANCE.getDB2IdentitySpecifier() );
+ column.setIdentitySpecifier( identitySpecifier );
+ }
+ else {
+ column.setIdentitySpecifier( null );
+ }
+
+ column.setNullable( info.nulls.equals("Y") ); //$NON-NLS-1$
+
+ if ( info.typeName.equalsIgnoreCase( "FLOAT" ) ) { //$NON-NLS-1$
+ if ( info.length == 4 ) {
+ info.typeName = "REAL"; //$NON-NLS-1$
+ }
+ else {
+ info.typeName = "DOUBLE"; //$NON-NLS-1$
+ }
+ }
+
+ PredefinedDataTypeDefinition typeDefinition =
+ databaseDefinition.getPredefinedDataTypeDefinition( info.typeName );
+
+ if ( typeDefinition != null ) {
+ if ( typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER ) {
+ if ( info.codePage == 0 ) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(
+ "CHAR () FOR BIT DATA" ); //$NON-NLS-1$
+ }
+ }
+ else if ( typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING ) {
+ if ( info.codePage == 0 ) {
+ if ( info.typeName.equals( "LONG VARCHAR" ) ) { //$NON-NLS-1$
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(
+ "LONG VARCHAR FOR BIT DATA" ); //$NON-NLS-1$
+ }
+ else {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(
+ "VARCHAR () FOR BIT DATA" ); //$NON-NLS-1$
+ }
+ }
+ }
+
+ PredefinedDataType type = databaseDefinition.getPredefinedDataType(typeDefinition);
+
+ if ( typeDefinition.isLengthSupported() ) {
+ EStructuralFeature feature = type.eClass().getEStructuralFeature( "length" ); //$NON-NLS-1$
+ type.eSet( feature, new Integer( info.length ) );
+ }
+ else if ( typeDefinition.isPrecisionSupported() ) {
+ if ( info.typeName.equals("TIMESTAMP") ) { //$NON-NLS-1$
+ EStructuralFeature feature = type.eClass().getEStructuralFeature( "fractionalSecondsPrecision"); //$NON-NLS-1$
+ type.eSet( feature, new Integer( info.scale ) );
+ }
+ else {
+ if ( info.typeName.equals("DECFLOAT") ) { //$NON-NLS-1$
+ if ( info.length == 8 ) {
+ info.length = 16;
+ }
+ else {
+ info.length = 34;
+ }
+ }
+
+ EStructuralFeature feature = type.eClass().getEStructuralFeature( "precision" ); //$NON-NLS-1$
+ type.eSet( feature, new Integer( info.length ) );
+ }
+ }
+
+ if ( typeDefinition.isScaleSupported() ) {
+ EStructuralFeature feature = type.eClass().getEStructuralFeature( "scale" ); //$NON-NLS-1$
+ type.eSet( feature, new Integer( info.scale ) );
+ }
+
+ column.setContainedType(type);
+ }
+ else {
+ if ( info.typeName.equals( "REFERENCE" ) ) { //$NON-NLS-1$
+ column.setReferencedType( LUWCatalogTable.getUserDefinedType(
+ table, info.targetTypeSchemaName, info.targetUdtName ) );
+ }
+ else {
+ column.setReferencedType( LUWCatalogTable.getUserDefinedType(
+ table, info.typeSchemaName, info.typeName ) );
+ }
+ }
+
+ if ( info.generated.equals( " " ) ) { //$NON-NLS-1$
+ column.setDefaultValue( info.dflt );
+ }
+
+ column.setLobLogged( !info.logged.equals("N") ); //$NON-NLS-1$
+ column.setLobCompacted( info.compact.equals("Y") ); //$NON-NLS-1$
+
+ // Check for row change timestamp
+ if ( info.rowChangeTimestamp.equals("Y") ) { //$NON-NLS-1$
+ column.setRowChangeTimestamp( true );
+ }
+
+ columnList.add(column);
+ }
+ }
+ }
+
+ /** Class to cache details about a column */
+ private static class ColumnInfo {
+ String columnName;
+ String remarks;
+ String generated;
+ String isIdentity;
+ String nulls;
+ String typeSchemaName;
+ String typeName;
+ int length;
+ int scale;
+ int codePage;
+ String dflt;
+ String targetTypeSchemaName;
+ String targetUdtName;
+ String logged;
+ String compact;
+ String rowChangeTimestamp = "";
+ }
+
+//<bgp /**
+// * Update a table with cached column information
+// *
+// * @param cache
+// * @param table
+// * @param columnList
+// */
+// private static void loadColumnsFromCache( CatalogCache cache, Table table, String key, List<Column> columnList ) {
+// TableColumnInfo tinfo = (TableColumnInfo)cache.getCachedProperty( PROP_TABLE_COLUMNS, key );
+//
+// if ( tinfo != null ) {
+// tinfo.setColumnInfoIn( table, columnList );
+// }
+//bgp> }
+
+ /**
+ * Load the columns for a table
+ *
+ * @param connection
+ * @param columnList
+ * @param table
+ * @throws SQLException
+ */
+ public static void loadColumns(Connection connection, EList columnList, Table table) throws SQLException {
+ final Schema schema = table.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+ final String propkey = schema.getName() + "." + table.getName(); //$NON-NLS-1$
+
+//<bgp // N.B. for large numbers of tables/columns, caching the columns uses too much memory
+// // So at least for now, this caching is disabled
+//bgp> boolean caching = false && cache.isBatchLoading();
+
+//<bgp if ( caching ) {
+// if ( cache.isPropertyCacheLoaded( PROP_TABLE_COLUMNS ) ) {
+// loadColumnsFromCache( cache, table, propkey, columnList );
+// return;
+// }
+//
+// cache.setPropertyCacheLoaded( PROP_TABLE_COLUMNS );
+//bgp> }
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ String version = databaseDefinition.getVersion();
+ float ver = 9.0f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ // Ignore
+ }
+
+ String query = "SELECT COLNAME, REMARKS, GENERATED, IDENTITY, NULLS," //$NON-NLS-1$
+ + " TYPESCHEMA, TYPENAME, LENGTH, SCALE, CODEPAGE, DEFAULT, TARGET_TYPESCHEMA, TARGET_TYPENAME," //$NON-NLS-1$
+ + " LOGGED, COMPACT,"; //$NON-NLS-1$
+
+ if (ver >= 9.5f) {
+ query += " ROWCHANGETIMESTAMP,"; //$NON-NLS-1$
+ }
+
+ query += " TABSCHEMA, TABNAME" //$NON-NLS-1$
+ + " FROM SYSCAT.COLUMNS"; //$NON-NLS-1$
+
+//bgp if ( !caching ) {
+ query += " WHERE TABSCHEMA='" +LUWUtil.getIdentifier(table.getSchema().getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+ + " AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp }
+
+ query += " ORDER BY TABSCHEMA, TABNAME, COLNO"; //$NON-NLS-1$
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ TableColumnInfo tinfo = null;
+
+ try {
+ while(r.next()) {
+ final String schemaName = r.getString( "TABSCHEMA" ).trim(); //$NON-NLS-1$
+ final String tableName = r.getString( "TABNAME" ).trim(); //$NON-NLS-1$
+
+ if ( tinfo == null || !tinfo.schemaName.equals( schemaName )
+ || !tinfo.tableName.equals( tableName )) {
+ tinfo = new TableColumnInfo();
+
+ tinfo.schemaName = schemaName;
+ tinfo.tableName = tableName;
+
+//<bgp if ( caching ) {
+// String key = tinfo.getKey();
+// cache.cacheProperty( PROP_TABLE_COLUMNS, key, tinfo );
+//bgp> }
+ }
+
+ ColumnInfo info = new ColumnInfo();
+ info.columnName = r.getString(1);
+ info.remarks = r.getString(2);
+ info.generated = r.getString(3);
+ info.isIdentity = r.getString(4);
+ info.nulls = r.getString(5);
+ info.typeSchemaName = r.getString(6).trim();
+ info.typeName = r.getString(7);
+ info.length = r.getInt(8);
+ info.scale = r.getInt(9);
+ info.codePage = r.getInt(10);
+ info.dflt = r.getString(11);
+ String str = r.getString("TARGET_TYPESCHEMA"); //$NON-NLS-1$
+ if ( str != null ) {
+ info.targetTypeSchemaName = str.trim();
+ }
+ info.targetUdtName = r.getString("TARGET_TYPENAME"); //$NON-NLS-1$
+ info.logged = r.getString("LOGGED"); //$NON-NLS-1$
+ info.compact = r.getString("COMPACT"); //$NON-NLS-1$
+
+ if (ver >= 9.5f) {
+ info.rowChangeTimestamp = r.getString( "ROWCHANGETIMESTAMP" ); //$NON-NLS-1$
+ }
+
+ tinfo.columns.add( info );
+ }
+
+//bgp if ( tinfo != null && !caching ) {
+ if ( tinfo != null) {
+ tinfo.setColumnInfoIn( table, columnList );
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+
+//<bgp if ( caching ) {
+// loadColumnsFromCache( cache, table, propkey, columnList );
+//bgp> }
+ }
+
+ public static void loadProperties(Connection connection, Table table) throws SQLException {
+
+ final String schemaname = table.getSchema().getName();
+ final String tablename = table.getName();
+ String key = schemaname + "." + tablename; //$NON-NLS-1$
+ LUWCatalogDatabase database = (LUWCatalogDatabase)table.getSchema().getDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( cache.isPropertyCacheLoaded( PROP_TABLE_PROPERTIES ) ) {
+// Object propobj = cache.getCachedProperty( PROP_TABLE_PROPERTIES, key );
+//
+// if (propobj != null) {
+// table.setDescription( (String)propobj );
+// }
+//
+// return;
+// }
+//
+// cache.setPropertyCacheLoaded( PROP_TABLE_PROPERTIES );
+//bgp> }
+
+ String query = "SELECT TABSCHEMA, TABNAME, REMARKS FROM SYSCAT.TABLES"; //$NON-NLS-1$
+
+//bgp if ( !cache.isBatchLoading() ) {
+ query += " WHERE TABSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier( schemaname )
+ + "' AND TABNAME='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier( tablename ) + "'"; //$NON-NLS-1$
+//bgp }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String sname = r.getString( "TABSCHEMA" ).trim(); //$NON-NLS-1$
+ final String tname = r.getString( "TABNAME" ).trim(); //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading()
+// && null == cache.findTable( sname, tname, null )) {
+// // The container is filtered out, so go on
+// continue;
+//bgp> }
+
+ final String description = r.getString( "REMARKS" ); //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading() ) {
+// key = sname + "." + tname; //$NON-NLS-1$
+// cache.cacheProperty(
+// PROP_TABLE_PROPERTIES, key, description );
+//
+// if ( sname.equals( schemaname ) && tname.equals( tablename ))
+// {
+// table.setDescription( description );
+// }
+// }
+//bgp> else {
+ table.setDescription( description );
+//bgp }
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+
+ public static void loadTriggers(Connection connection, EList triggerList, Table table, int options) throws SQLException {
+ final Schema schema = table.getSchema();
+ LUWCatalogDatabase database = (LUWCatalogDatabase)ModelHelper.getDatabase(schema);
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if (cache.isLoaded( CatalogCache.TRIGGERS ) ) {
+// return;
+// }
+//
+// cache.setLoaded( CatalogCache.TRIGGERS );
+//bgp> }
+
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+
+ Object[] list = triggerList.toArray();
+ triggerList.clear();
+
+ if ((options & DatabaseREProvider.EXCLUDE_TRIGGERS)== DatabaseREProvider.EXCLUDE_TRIGGERS) return;
+
+ String query = "SELECT TRIGSCHEMA, TRIGNAME, REMARKS, TRIGTIME, TRIGEVENT, GRANULARITY, TEXT,"
+ + " TABSCHEMA, TABNAME"
+ + " FROM SYSCAT.TRIGGERS"; //$NON-NLS-1$
+
+//bgp if ( !cache.isBatchLoading() ) {
+ query +=
+ " WHERE TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) //$NON-NLS-1$
+ + "' AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery( query );
+
+ try{
+ while(r.next()) {
+ final String schemaName = r.getString( "TABSCHEMA" ).trim(); //$NON-NLS-1$
+ final String tableName = r.getString( "TABNAME" ).trim(); //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading()
+// && null == cache.findTable( schemaName, tableName, null )) {
+// // The container is filtered out, go on
+// continue;
+//bgp> }
+
+ LUWCatalogTrigger trigger;
+ final String trigName = r.getString(2);
+
+ EClass metaclass= SQLTablesPackage.eINSTANCE.getTrigger();
+
+ Object element = LUWCatalogTable.findElement(list, trigName,metaclass);
+
+ if (element != null){
+ trigger = (LUWCatalogTrigger) element;
+ triggerList.add(trigger);
+ ((ICatalogObject)element).refresh();
+ } else {
+ trigger = new LUWCatalogTrigger();
+ trigger.setName(trigName);
+
+//<bgp if ( cache.isBatchLoading() ) {
+// cache.cacheTrigger(
+// schemaName, tableName, trigName, trigger );
+// }
+//bgp> else {
+ triggerList.add(trigger);
+//bgp }
+ }
+
+ String text = r.getString(7);
+ if (text != null) {
+ //remove un-readable character
+ text = text.replaceAll("[\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000b\u000c\u000e\u000f" +
+ "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f]", " ");
+ }
+ final String trigSchema = r.getString(1).trim();
+ trigger.setSchema(LUWCatalogTable.getSchema(table, trigSchema));
+
+ final String remarks = r.getString(3);
+ trigger.setDescription(remarks);
+
+ final String trigTime = r.getString(4);
+ if(trigTime.equals("A")) trigger.setActionTime(ActionTimeType.AFTER_LITERAL); //$NON-NLS-1$
+ else if(trigTime.equals("B")) trigger.setActionTime(ActionTimeType.BEFORE_LITERAL); //$NON-NLS-1$
+ else if(trigTime.equals("I")) trigger.setActionTime(ActionTimeType.INSTEADOF_LITERAL); //$NON-NLS-1$
+ else continue;
+
+ final String trigEvent = r.getString(5);
+ if(trigEvent.equals("I")) trigger.setInsertType(true); //$NON-NLS-1$
+ else if(trigEvent.equals("D")) trigger.setDeleteType(true); //$NON-NLS-1$
+ else if(trigEvent.equals("U")) trigger.setUpdateType(true); //$NON-NLS-1$
+ else continue;
+
+ final String granularity = r.getString(6);
+ if(granularity.equals("S")) trigger.setActionGranularity(ActionGranularityType.STATEMENT_LITERAL); //$NON-NLS-1$
+ else if(granularity.equals("R")) trigger.setActionGranularity(ActionGranularityType.ROW_LITERAL); //$NON-NLS-1$
+ else continue;
+
+
+ LUWDdlParser ddlParser = new LUWDdlParser(RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(table.getSchema().getDatabase()));
+ ddlParser.parseTrigger(trigger,text);
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static void loadIndexes(Connection connection, EList indexList, Table table, int options) throws SQLException {
+ LUWCatalogDatabase database = (LUWCatalogDatabase)table.getSchema().getDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( cache.isLoaded( CatalogCache.INDEXES ) ) {
+// return;
+// }
+//
+// cache.setLoaded( CatalogCache.INDEXES );
+//bgp> }
+
+ Object[] list = indexList.toArray();
+ indexList.clear();
+
+ if (database.isBatchLoad()) return;
+
+ if ((options & DatabaseREProvider.EXCLUDE_INDEXES)== DatabaseREProvider.EXCLUDE_INDEXES) return;
+
+ final String sname = table.getSchema().getName();
+ final String tname = table.getName();
+
+ String q = "SELECT INDEXTYPE, INDSCHEMA, INDNAME, REMARKS, UNIQUERULE, PCTFREE,SYSTEM_REQUIRED,USER_DEFINED," //$NON-NLS-1$
+ + " TABSCHEMA, TABNAME" //$NON-NLS-1$
+ + " FROM SYSCAT.INDEXES"; //$NON-NLS-1$
+
+//bgp if ( !cache.isBatchLoading() ) {
+ q += " WHERE TABSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(sname)
+ + "' AND TABNAME='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(tname)
+ + "'"; //$NON-NLS-1$
+//bgp }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery( q );
+
+ try {
+ while(r.next()) {
+ final String tableSchemaName = r.getString( "TABSCHEMA" ).trim(); //$NON-NLS-1$
+ final String tableName = r.getString( "TABNAME" ).trim(); //$NON-NLS-1$
+ final String indSchema = r.getString(2).trim();
+
+//<bgp if ( cache.isBatchLoading()
+// && null == cache.findTable( tableSchemaName, tableName, null ) ) {
+// // The index's table is filtered out, so we omit the
+// // index as well
+// continue;
+//bgp> }
+
+ Schema schema = LUWCatalogTable.getSchema(table, indSchema);
+
+ final String indName = r.getString(3);
+
+ Index index = null;
+ Object element = LUWCatalogTable.findElement(list,indName,SQLConstraintsPackage.eINSTANCE.getIndex());
+
+ if (element != null){
+ index = (Index) element;
+ ((ICatalogObject)element).refresh();
+ } else {
+ final String type = r.getString(1).trim();
+ if(type.equals("REG")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+ }
+ else if(type.equals("CLUS")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+ index.setClustered(true);
+ }
+ else if(type.equals("DIM")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+ ((LUWCatalogIndex)index).setIndexType(DB2IndexType.DIMENSION_LITERAL);
+ }
+ else if(type.equals("BLOK")) { //$NON-NLS-1$
+ index = new LUWCatalogIndex();
+ ((LUWCatalogIndex)index).setIndexType(DB2IndexType.BLOCK_LITERAL);
+ }
+ else {
+ continue;
+ }
+
+ index.setSchema(schema);
+ index.setName(indName);
+ }
+
+
+ final String remarks = r.getString(4);
+ index.setDescription(remarks);
+
+ final String uniqueRule = r.getString(5);
+ if(!uniqueRule.equals("D")) index.setUnique(true); //$NON-NLS-1$
+ if ("P".equalsIgnoreCase(uniqueRule)) ((LUWCatalogIndex)index).setIndexUniqueRule(IndexUniqueRule.PRIMARYKEY);
+
+
+ final int pctfree = r.getInt(6);
+ if(pctfree == -1) index.setFillFactor(10);
+ else index.setFillFactor(pctfree);
+
+
+ final int userDefined = r.getInt("USER_DEFINED");
+ if (userDefined == 0) {
+ index.setSystemGenerated(true);
+ }
+ else {
+ index.setSystemGenerated(false);
+ }
+
+
+ final int systemRequred = r.getInt("SYSTEM_REQUIRED");
+ if (index instanceof LUWIndex) {
+ if (systemRequred != 0) {
+ ((LUWIndex)index).setSystemRequired(true);
+ } else {
+ ((LUWIndex)index).setSystemRequired(false);
+ }
+ }
+
+//<bgp if ( cache.isBatchLoading() ) {
+// cache.cacheIndex( tableSchemaName, tableName, index.getSchema().getName(), indName, index );
+// }
+//bgp> else {
+ DB2IndexType indexType = ((LUWCatalogIndex)index).getIndexType();
+ switch (indexType.getValue()) {
+ case DB2IndexType.BLOCK:
+ case DB2IndexType.DIMENSION:
+ indexList.add(0,index);
+ break;
+ default:
+ indexList.add(index);
+//bgp }
+ }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static void loadConstraints(Connection connection, EList constraintList, Table table) throws SQLException {
+ Database database = table.getSchema().getDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( cache.isLoaded( CatalogCache.CONSTRAINTS ) ) {
+// return;
+// }
+//
+// cache.setLoaded( CatalogCache.CONSTRAINTS );
+//bgp> }
+
+ Object[] list = constraintList.toArray();
+ constraintList.clear();
+
+ String query = "SELECT DISTINCT A.CONSTNAME, A.REMARKS, A.TYPE, A.ENFORCED, B.TYPE CHECKTYPE," //$NON-NLS-1$
+ + " A.TABSCHEMA, A.TABNAME" //$NON-NLS-1$
+ + " FROM SYSCAT.TABCONST A LEFT OUTER JOIN SYSCAT.CHECKS B " //$NON-NLS-1$
+ + " ON A.CONSTNAME = B.CONSTNAME"; //$NON-NLS-1$
+
+//bgp if ( !cache.isBatchLoading() ) {
+ query +=
+ " WHERE A.TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) //$NON-NLS-1$
+ + "' AND A.TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp }
+
+ query += " ORDER BY TYPE DESC"; //$NON-NLS-1$
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String schemaName = r.getString( "TABSCHEMA" ).trim(); //$NON-NLS-1$
+ final String tableName = r.getString( "TABNAME" ).trim(); //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( null == cache.findTable( schemaName, tableName, null ) ) {
+// // The container is filtered out, so go on
+// continue;
+// }
+//bgp> }
+
+ final String constName = r.getString(1);
+
+ Constraint constraint = null;
+
+ final String type = r.getString(3);
+ EClass metaclass=null;
+ if (type.equals("K")){ //$NON-NLS-1$
+ metaclass = SQLConstraintsPackage.eINSTANCE.getCheckConstraint();
+ } else if (type.equals("P")){ //$NON-NLS-1$
+ metaclass = SQLConstraintsPackage.eINSTANCE.getPrimaryKey();
+ }else if(type.equals("U")) { //$NON-NLS-1$
+ metaclass = SQLConstraintsPackage.eINSTANCE.getUniqueConstraint();
+ }else if(type.equals("F")) { //$NON-NLS-1$
+ metaclass = SQLConstraintsPackage.eINSTANCE.getForeignKey();
+ }
+
+
+ Object sqlElement = LUWCatalogTable.findElement(list,constName,metaclass);
+ if (sqlElement != null) {
+ constraint = (Constraint)sqlElement;
+ ((ICatalogObject)constraint).refresh();
+ } else {
+ if(type.equals("K")) { //$NON-NLS-1$
+ final String checktype = r.getString("CHECKTYPE"); //$NON-NLS-1$
+ if (checktype != null && checktype.equals("C")) //$NON-NLS-1$
+ constraint = new LUWCatalogCheckConstraint();
+ else
+ continue;
+ }
+ else if(type.equals("P")) { //$NON-NLS-1$
+ constraint = new LUWCatalogPrimaryKey();
+ }
+ else if(type.equals("U")) { //$NON-NLS-1$
+ constraint = new LUWCatalogUniqueConstraint();
+ }
+ else if(type.equals("F")) { //$NON-NLS-1$
+ constraint = new LUWCatalogForeignKey();
+ }
+ else {
+ continue;
+ }
+
+ constraint.setName(constName);
+ }
+
+ final String remarks = r.getString(2);
+ constraint.setDescription(remarks);
+
+ final String enforced = r.getString(4);
+ if (enforced.equals("Y")){ //$NON-NLS-1$
+ constraint.setEnforced(true);
+ } else {
+ constraint.setEnforced(false);
+ }
+
+//<bgp if ( cache.isBatchLoading() ) {
+// cache.cacheConstraint(
+// schemaName, tableName, constName, constraint );
+// }
+//bgp> else {
+ constraintList.add(constraint);
+//bgp }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static void loadPartitionKey(Connection connection, LUWStorageTable table) throws SQLException {
+ try {
+ StorageProvider provider = LUWCatalogDatabase.getCatalogStorageProvider();
+ if (provider != null){
+ LUWPartitionKey partitionKey = provider.getPartitionKey(table);
+ table.setPartitionKey(partitionKey);
+ }
+ } catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ /** Information about a table's tablespaces for caching */
+ private static class TablespaceInfo {
+ /** The table's schema */
+ String schemaName;
+ /** The table's name */
+ String tableName;
+ /** The tablespace used for regular data */
+ String tbspaceName;
+ /** The tablespace used for indexes */
+ String indexTbspaceName;
+ /** The tablespace used for LOBs */
+ String longTbspaceName;
+
+ /**
+ * Get the key for cache lookup
+ *
+ * @return The key
+ */
+ public String getKey() {
+ return this.schemaName + "." + this.tableName;
+ }
+
+ /**
+ * Update a table with information from here (actually update the
+ * tablespaces with this table)
+ *
+ * @param table
+ */
+ public void setInfoInTable( Table table ) {
+//bgp public void setInfoInTable( CatalogCache cache, Table table ) {
+ if ( this.tbspaceName != null ) {
+ LUWTableSpace tbSpace = LUWCatalogTable.getTablespace( table, this.tbspaceName );
+ if ( tbSpace != null ) {
+ tbSpace.getRegularDataTables().add( table );
+ }
+ }
+
+ if ( this.indexTbspaceName != null ) {
+ LUWTableSpace tbSpace = LUWCatalogTable.getTablespace( table, this.indexTbspaceName );
+ if ( tbSpace != null ) {
+ tbSpace.getIndexDataTables().add( table );
+ }
+ }
+
+ if ( this.longTbspaceName != null ) {
+ LUWTableSpace tbSpace = LUWCatalogTable.getTablespace( table, this.longTbspaceName );
+ if ( tbSpace != null ) {
+ tbSpace.getLOBDataTables().add( table );
+ }
+ }
+ }
+ }
+
+//<bgp /**
+// * Update a table with cached tablespace info
+// *
+// * @param cache
+// * @param table
+// * @param key
+// */
+// private static void loadTablespaceFromCache(
+// CatalogCache cache, Table table, String key ) {
+// TablespaceInfo info = (TablespaceInfo)cache.getCachedProperty( PROP_TABLE_TABLESPACE, key );
+//
+// if ( info != null ) {
+// info.setInfoInTable( cache, table );
+// }
+//bgp> }
+
+ /**
+ * Load the tablespaces used for a table's data/indexes
+ *
+ * @param connection
+ * @param table
+ * @throws SQLException
+ */
+ public static void loadTablespace(Connection connection, Table table) throws SQLException {
+ if (!(table instanceof LUWStorageTable)) return;
+
+ Table luwtable = (Table)table;
+ Database database = luwtable.getSchema().getDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+ String schemaName = LUWUtil.getIdentifier( luwtable.getSchema().getName() );
+ String tableName = LUWUtil.getIdentifier( luwtable.getName() );
+ String propkey = schemaName + "." + tableName; //$NON-NLS-1$
+
+//bgp boolean caching = cache.isBatchLoading();
+
+//<bgp if ( caching ) {
+// if ( cache.isPropertyCacheLoaded( PROP_TABLE_TABLESPACE ) ) {
+// loadTablespaceFromCache( cache, luwtable, propkey );
+// return;
+// }
+//
+// cache.setPropertyCacheLoaded( PROP_TABLE_TABLESPACE );
+//bgp> }
+
+ String query = "SELECT TBSPACE, INDEX_TBSPACE,LONG_TBSPACE, TABSCHEMA, TABNAME" + //$NON-NLS-1$
+ " FROM SYSCAT.TABLES"; //$NON-NLS-1$
+
+//bgp if ( !caching ) {
+ query += " WHERE TABSCHEMA='" + schemaName + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND TABNAME='" + tableName + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String tbspaceName = r.getString("TBSPACE"); //$NON-NLS-1$
+ final String indexTbspaceName = r.getString("INDEX_TBSPACE"); //$NON-NLS-1$
+ final String longTbspaceName = r.getString("LONG_TBSPACE"); //$NON-NLS-1$
+
+ if ( tbspaceName == null && indexTbspaceName == null && longTbspaceName == null ) {
+ continue;
+ }
+
+ TablespaceInfo info = new TablespaceInfo();
+ info.tbspaceName = tbspaceName;
+ info.indexTbspaceName = indexTbspaceName;
+ info.longTbspaceName = longTbspaceName;
+
+//bgp if ( !caching ) {
+// info.setInfoInTable( cache, luwtable );
+ info.setInfoInTable(luwtable );
+//<bgp }
+// else {
+// info.schemaName = r.getString( "TABSCHEMA" ).trim(); //$NON-NLS-1$
+// info.tableName = r.getString( "TABNAME" ).trim(); //$NON-NLS-1$
+//
+// cache.cacheProperty( PROP_TABLE_TABLESPACE, info.getKey(), info );
+//bgp> }
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+
+//<bgp if ( caching ) {
+// loadTablespaceFromCache( cache, luwtable, propkey );
+//bgp> }
+ }
+
+ public static void loadDataPartitions(Connection connection, LUWStorageTable table) throws SQLException {
+ try {
+ EList partList = table.getDataPartitions();
+ StorageProvider provider = LUWCatalogDatabase.getCatalogStorageProvider();
+ if (provider != null){
+ Iterator it = provider.getDataPartition(table).iterator();
+ while(it.hasNext()) {
+ LUWDataPartition part = (LUWDataPartition) it.next();
+ partList.add(part);
+ }
+ }
+ } catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+
+ public static void loadPrivileges(Connection connection, EList privilegeList,Table table, String granteeFilter) throws SQLException {
+
+ final Schema schema = table.getSchema();
+ final Database database = ModelHelper.getDatabase(schema);
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ int options = ((LUWCatalogDatabase)database).getLoadOptions();
+ if ((options & DatabaseREProvider.EXCLUDE_ACCESS_CONTROL)== DatabaseREProvider.EXCLUDE_ACCESS_CONTROL) return;
+
+ Statement s = connection.createStatement();
+ String query = "SELECT GRANTOR,GRANTEE,GRANTEETYPE" +
+ ",CONTROLAUTH,ALTERAUTH,DELETEAUTH,INDEXAUTH,INSERTAUTH,SELECTAUTH" +
+ ",REFAUTH,UPDATEAUTH" +
+ " FROM SYSCAT.TABAUTH" +
+ " WHERE GRANTOR <> GRANTEE " +
+ " AND TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'";
+ if (granteeFilter != null && !"".equals(granteeFilter)) query += " AND " + granteeFilter;
+
+ ResultSet r = s.executeQuery(query);
+ try {
+ String userName = connection.getMetaData().getUserName();
+ while(r.next()) {
+ final String grantorId = r.getString("GRANTOR").trim();
+ AuthorizationIdentifier grantor = LUWCatalogDatabase.getAuthorizationId(database, grantorId,null);
+ final String granteeId = r.getString("GRANTEE").trim();
+ AuthorizationIdentifier grantee = null;
+ final String granteeType = r.getString("GRANTEETYPE");
+ if ("G".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "G");
+ } else if ("R".equals(granteeType)) {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "R");
+ } else {
+ grantee = LUWCatalogDatabase.getAuthorizationId(database, granteeId, "U");
+ }
+
+ LUWCatalogPrivilege privilege = null;
+ boolean isSystemGranted = granteeId.equalsIgnoreCase(userName);
+ final String controlAuth = r.getString("CONTROLAUTH");
+ if ("Y".equals(controlAuth)) {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_CONTROL);
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String alterAuth = r.getString("ALTERAUTH");
+ if ("N".equals(alterAuth)) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_ALTER);
+ if ("G".equals(alterAuth)) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String deleteAuth = r.getString("DELETEAUTH");
+ if ("N".equals(deleteAuth)) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_DELETE);
+ if ("G".equals(deleteAuth)) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String indexAuth = r.getString("INDEXAUTH");
+ if ("N".equals(indexAuth)) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_INDEX);
+ if ("G".equals(indexAuth)) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String insertAuth = r.getString("INSERTAUTH");
+ if ("N".equals(insertAuth)) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_INSERT);
+ if ("G".equals(insertAuth)) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String selectAuth = r.getString("SELECTAUTH");
+ if ("N".equals(selectAuth)) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_SELECT);
+ if ("G".equals(selectAuth)) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String refAuth = r.getString("REFAUTH");
+ if ("N".equals(refAuth)) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_REFERENCES);
+ if ("G".equals(refAuth)) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ final String updateAuth = r.getString("UPDATEAUTH");
+ if ("N".equals(updateAuth)) {
+ } else {
+ privilege = new LUWCatalogPrivilege();
+ privilege.setAction(LUWCatalogConstant.PRIVILEGE_UPDATE);
+ if ("G".equals(updateAuth)) {
+ privilege.setGrantable(true);
+ }
+ privilegeList.add(privilege);
+ privilege.setGrantor(grantor);
+ privilege.setGrantee(grantee);
+ LUWCatalogPrivilege.setAsSystemGranted(privilege,isSystemGranted);
+ }
+
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ protected static Schema getSchema(Table table, String schemaName) {
+ Schema s = table.getSchema();
+ if(s.getName().equals(schemaName)) return s;
+
+ Database db = s.getDatabase();
+ if (db instanceof LUWCatalogDatabase){
+ s = ((LUWCatalogDatabase)db).getSchema(schemaName);
+ if (s != null) return s;
+ }
+ Iterator it = db.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(db);
+
+ if (db instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)db).cacheSchema(schema);
+ }
+
+ return schema;
+ }
+
+
+ public static UserDefinedType getUserDefinedType(Table table, String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogTable.getSchema(table, schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+
+ UserDefinedType userDefinedType = new LUWCatalogDistinctUserDefinedType();
+ userDefinedType.setName(userDefinedTypeName);
+ userDefinedType.setSchema(schema);
+
+ return userDefinedType;
+ }
+
+ private static LUWTableSpace getTablespace(Table table, String tsNameName) {
+ if (! (table instanceof LUWStorageTable))
+ return null;
+
+ LUWDatabase db = (LUWCatalogDatabase) table.getSchema().getDatabase();
+ StorageProvider provider = LUWCatalogDatabase.getCatalogStorageProvider();
+ if (provider != null){
+ return provider.getTablespace(db,tsNameName);
+ }
+ return null;
+ }
+
+ private static Object findElement(Object[] list, String name,EClass metaclass){
+ Object object = null;
+ for (int i = 0; i < list.length; i++){
+ SQLObject sqlObject = (SQLObject) list[i];
+ if (sqlObject.getName().equals(name) && sqlObject.eClass() == metaclass && sqlObject instanceof ICatalogObject){
+ object = list[i];
+ break;
+ }
+ }
+ return object;
+ }
+
+ private void cacheColumn(EList columns){
+ Iterator iter = columns.iterator();
+ while (iter.hasNext()) {
+ Column column = (Column) iter.next();
+ this.cachedColumn.put(column.getName(),column);
+ }
+ }
+
+ private void setAssociatedTablespace(){
+ if (this.tbspaceName != null){
+ LUWTableSpace tbSpace = LUWCatalogTable.getTablespace(this,this.tbspaceName);
+ if (tbSpace != null) {
+ tbSpace.getRegularDataTables().add(this);
+ }
+ }
+
+ //Index tablespace
+ if (this.indexTbspaceName != null) {
+ LUWTableSpace tbSpace = LUWCatalogTable.getTablespace(this,this.indexTbspaceName);
+ if (tbSpace != null) {
+ tbSpace.getIndexDataTables().add(this);
+ }
+ }
+
+ if (this.longTbspaceName != null) {
+ LUWTableSpace tbSpace = LUWCatalogTable.getTablespace(this,this.longTbspaceName);
+ if (tbSpace != null) {
+ tbSpace.getLOBDataTables().add(this);
+ }
+ }
+ }
+
+ private void reset(){
+ this.cachedColumn.clear();
+ this.tbspaceName =null;
+ this.indexTbspaceName =null;
+ this.longTbspaceName =null;
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogTable.getImpactedAlias(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedConstraints(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedPackages(connection, this));
+ return impacts;
+ }
+
+ protected static Collection getImpactedAlias(Connection connection, Table table) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT TABNAME, TABSCHEMA " +
+ " FROM SYSCAT.TABLES" +
+ " WHERE TYPE='A'" +
+ " AND BASE_TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND BASE_TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Table t = LUWCatalogView.getTable(table, schemaName, tabName);
+ if (t != null) {
+ impacts.add(t);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedTables(Connection connection, Table table) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT TABNAME, TABSCHEMA" +
+ " FROM SYSCAT.TABDEP" +
+ " WHERE DTYPE in ('V','S')" +
+ " AND BTYPE in ('T','V','S','A','N')" +
+ " AND BNAME='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ "FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Table t = LUWCatalogView.getTable(table, schemaName, tabName);
+ if (t != null) {
+ impacts.add(t);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedRoutines(Connection connection, Table table) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT ROUTINENAME, ROUTINESCHEMA" +
+ " FROM SYSCAT.ROUTINEDEP" +
+ " WHERE BTYPE in ('T','S','V','A','N')" +
+ " AND BNAME='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String routineName = r.getString("ROUTINENAME").trim();
+ final String schemaName = r.getString("ROUTINESCHEMA").trim();
+ Routine routine = LUWCatalogView.getRountine(table, schemaName, routineName);
+ if (routine != null) {
+ impacts.add(routine);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedTriggers(Connection connection, Table table) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+
+ String query = "SELECT DISTINCT A.TABSCHEMA, A.TABNAME, A.TRIGNAME" +
+ " FROM SYSCAT.TRIGGERS A, SYSCAT.TRIGDEP B" +
+ " WHERE (B.BNAME='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND B.BSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " AND BTYPE in ('T','S','V','A','N')" +
+ " AND A.TRIGNAME=B.TRIGNAME" +
+ " AND A.TRIGSCHEMA=B.TRIGSCHEMA)" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String trigName = r.getString("TRIGNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Trigger trigger = LUWCatalogView.getTrigger(table, schemaName, tabName,trigName);
+ if (trigger != null) {
+ impacts.add(trigger);
+ }
+ }
+ r.close();
+ s.close();
+
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedConstraints(Connection connection, Table table) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT CONSTNAME,TABNAME,TABSCHEMA" +
+ " FROM SYSCAT.REFERENCES" +
+ " WHERE REFTABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND REFTABSCHEMA ='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String constName = r.getString("CONSTNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ TableConstraint constraint = LUWCatalogView.getTableConstraint(table, schemaName, tabName, constName);
+ if (constraint != null) {
+ impacts.add(constraint);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+
+ protected static Collection getImpactedPackages(Connection connection, Table table) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT PKGNAME, PKGSCHEMA, HEX(UNIQUE_ID) AS UID" +
+ " FROM SYSCAT.PACKAGEDEP" +
+ " WHERE BTYPE IN ('T','V','S','A','N')" +
+ " AND BNAME='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String pkgName = r.getString("PKGNAME").trim();
+ final String schemaName = r.getString("PKGSCHEMA").trim();
+ final String pkgUniqueID = r.getString("UID").trim();
+ DB2Package pkg = LUWCatalogView.getDb2Package(table, schemaName, pkgName, pkgUniqueID);
+ if (pkg != null) {
+ impacts.add(pkg);
+ }
+
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ public static Collection getStatistics(Connection connection, Table table){
+ Collection statistics = new ArrayList();
+ try {
+
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(table.getSchema().getDatabase());
+ String version = definition.getVersion();
+ float ver = 8.0f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+
+ String query = "";
+ if (ver < 9.0f) {
+ query = "SELECT T.STATS_TIME,S.CARD,S.NPAGES, S.FPAGES, S.OVERFLOW, S.ACTIVE_BLOCKS" +
+ " ,-1 AS AVGCOMPRESSEDROWSIZE,-1 AS AVGROWCOMPRESSIONRATIO, -1 AS AVGROWSIZE" +
+ " ,-1 AS PCTROWSCOMPRESSED, -1 AS PCTPAGESSAVED" +
+ " FROM SYSSTAT.TABLES S, SYSCAT.TABLES T" +
+ " WHERE S.TABSCHEMA = T.TABSCHEMA" +
+ " AND S.TABNAME = T.TABNAME " +
+ " AND S.TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " AND S.TABNAME ='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " FOR FETCH ONLY";
+ } else {
+ query = "SELECT T.STATS_TIME,S.CARD,S.NPAGES, S.FPAGES, S.OVERFLOW, S.ACTIVE_BLOCKS" +
+ " ,S.AVGCOMPRESSEDROWSIZE,S.AVGROWCOMPRESSIONRATIO, S.AVGROWSIZE" +
+ " ,S.PCTROWSCOMPRESSED,S.PCTPAGESSAVED" +
+ " FROM SYSSTAT.TABLES S, SYSCAT.TABLES T" +
+ " WHERE S.TABSCHEMA = T.TABSCHEMA" +
+ " AND S.TABNAME = T.TABNAME " +
+ " AND S.TABSCHEMA='" + LUWUtil.getIdentifier(table.getSchema().getName()) + "'" +
+ " AND S.TABNAME ='" + LUWUtil.getIdentifier(table.getName()) + "'" +
+ " FOR FETCH ONLY";
+ }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ CatalogStatistics stats = null;
+
+ final Timestamp stats_time = r.getTimestamp("STATS_TIME");
+ if (stats_time != null) {
+ stats = new CatalogStatistics("STATS_TIME",LUWCatalogMessages.STAT_TIME,LUWCatalogMessages.STAT_TIME_DES,stats_time,"");
+ statistics.add(stats);
+ }
+
+ final BigInteger card = r.getBigDecimal("CARD").toBigInteger();
+ if (card.intValue() != -1) {
+ stats = new CatalogStatistics("CARD",LUWCatalogMessages.STAT_CARD,LUWCatalogMessages.STAT_CARD_DES,card,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final BigInteger npages = r.getBigDecimal("NPAGES").toBigInteger();
+ if (npages.intValue() != -1) {
+ stats = new CatalogStatistics("NPAGES",LUWCatalogMessages.STAT_NPAGES,LUWCatalogMessages.STAT_NPAGES_DES,npages,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final BigInteger fpages = r.getBigDecimal("FPAGES").toBigInteger();
+ if (fpages.intValue() != -1) {
+ stats = new CatalogStatistics("FPAGES",LUWCatalogMessages.STAT_FPAGES,LUWCatalogMessages.STAT_FPAGES_DES,fpages,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final BigInteger overflow = r.getBigDecimal("OVERFLOW").toBigInteger();
+ if (overflow.intValue() != -1) {
+ stats = new CatalogStatistics("OVERFLOW",LUWCatalogMessages.STAT_OVERFLOW,LUWCatalogMessages.STAT_OVERFLOW_DES,overflow,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final BigInteger activeBlocks = r.getBigDecimal("ACTIVE_BLOCKS").toBigInteger();;
+ if (activeBlocks.intValue() != -1) {
+ stats = new CatalogStatistics("ACTIVE_BLOCKS",LUWCatalogMessages.STAT_ACTIVE_BLOCKS,LUWCatalogMessages.STAT_ACTIVE_BLOCKS_DES,activeBlocks,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final int avgCompressedRowSize = r.getInt("AVGCOMPRESSEDROWSIZE");
+ if (avgCompressedRowSize != -1) {
+ stats = new CatalogStatistics("AVGCOMPRESSEDROWSIZE",LUWCatalogMessages.STAT_AVG_COMPRESSEDROWSIZE,LUWCatalogMessages.STAT_AVG_COMPRESSEDROWSIZE_DES,avgCompressedRowSize,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final float avgRowCompressionRatio = r.getFloat("AVGROWCOMPRESSIONRATIO");
+ if (avgRowCompressionRatio != -1) {
+ stats = new CatalogStatistics("AVGROWCOMPRESSIONRATIO",LUWCatalogMessages.STAT_AVG_ROW_COMPRESSION_RATIO,LUWCatalogMessages.STAT_AVG_ROW_COMPRESSION_RATIO_DES,avgRowCompressionRatio,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final int avgRowSize = r.getInt("AVGROWSIZE");
+ if (avgRowSize != -1) {
+ stats = new CatalogStatistics("AVGROWSIZE",LUWCatalogMessages.STAT_AVG_ROW_SIZE,LUWCatalogMessages.STAT_AVG_ROW_SIZE_DES,avgRowSize,"");
+ statistics.add(stats);
+ }
+
+ final float pctRowsCompressed = r.getFloat("PCTROWSCOMPRESSED");
+ if (pctRowsCompressed != -1) {
+ stats = new CatalogStatistics("PCTROWSCOMPRESSED",LUWCatalogMessages.STAT_PCT_ROWS_COMPRESSED,LUWCatalogMessages.STAT_PCT_ROWS_COMPRESSED_DES,pctRowsCompressed,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ final float pctPagesSaved = r.getFloat("PCTPAGESSAVED");
+ if (pctPagesSaved != -1) {
+ stats = new CatalogStatistics("PCTPAGESSAVED",LUWCatalogMessages.STAT_PCT_PCT_PAGES_SAVED,LUWCatalogMessages.STAT_PCT_PCT_PAGES_SAVED_DES,pctPagesSaved,"SYSSTAT.TABLES");
+ statistics.add(stats);
+ }
+
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return statistics;
+ }
+
+ protected Column getColumn(String columnName){
+ return (Column)this.cachedColumn.get(columnName);
+ }
+
+ void setTablespaceName(String tbspaceName){
+ this.tbspaceName = tbspaceName;
+ }
+
+ void setIndexTbspaceName(String indexTbspaceName){
+ this.indexTbspaceName = indexTbspaceName;
+ }
+
+ void setlongTbspaceName(String longTbspaceName){
+ this.longTbspaceName = longTbspaceName;
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public String getRowCountString() {
+ if (!rowCountLoaded) {
+ this.rowCount = LUWCatalogTable.loadRowCount(this.getConnection(), this);
+ this.rowCountLoaded = true;
+ }
+
+ return this.rowCount;
+ }
+
+ public void setRowCountString(String count) {
+ rowCount = count;
+ rowCountLoaded = true;
+ }
+
+ public static String loadRowCount(Connection connection, Table table) {
+ Database database = table.getSchema().getDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+ String schemaname = LUWUtil.getIdentifier(table.getSchema().getName());
+ String tablename = LUWUtil.getIdentifier(table.getName());
+ String propkey = schemaname + "." + tablename; //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( cache.isPropertyCacheLoaded( PROP_TABLE_ROWCOUNT ) ) {
+// Object propobj = cache.getCachedProperty(
+// PROP_TABLE_ROWCOUNT, propkey );
+//
+// return (String)propobj;
+// }
+//
+// cache.setPropertyCacheLoaded( PROP_TABLE_ROWCOUNT );
+//bgp> }
+
+ String rowCount = null;
+
+ try {
+ String query = "SELECT T.STATS_TIME,S.CARD,T.TABSCHEMA,T.TABNAME" +
+ " FROM SYSSTAT.TABLES S, SYSCAT.TABLES T" +
+ " WHERE S.TABSCHEMA = T.TABSCHEMA" +
+ " AND S.TABNAME = T.TABNAME ";
+
+//bgp if ( !cache.isBatchLoading() ) {
+ query += " AND S.TABSCHEMA='" + schemaname + "'" +
+ " AND S.TABNAME ='" + tablename + "'";
+//bgp }
+
+ query += " FOR FETCH ONLY";
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ while(r.next()) {
+ String sname = r.getString( "TABSCHEMA" ).trim();
+ String tname = r.getString( "TABNAME" ).trim();
+
+//<bgp if ( cache.isBatchLoading()
+// && null == cache.findTable( sname, tname, null ) ) {
+// // The container is filtered out, go on
+// continue;
+//bgp> }
+
+ String rc = "";
+ final BigInteger card = r.getBigDecimal( "CARD" ).toBigInteger();
+
+ if (card.intValue() != -1) {
+ final Timestamp stats_time = r.getTimestamp( "STATS_TIME" );
+
+ if ( stats_time != null ) {
+ DateFormat date = DateFormat.getDateInstance();
+ rc = date.format( stats_time ) + " " + card;
+ }
+ }
+
+//<bgp if ( cache.isBatchLoading() ) {
+// propkey = sname + "." + tname; //$NON-NLS-1$
+// cache.cacheProperty( PROP_TABLE_ROWCOUNT, propkey, rc );
+//
+// if ( sname.equals( schemaname ) && tname.equals( tablename ) ) {
+// // We need the proper return value for the table argument
+// rowCount = rc;
+// }
+// }
+//bgp> else {
+ rowCount = rc;
+//bgp }
+ }
+
+ r.close();
+ s.close();
+ } catch(SQLException e) {
+ }
+
+ return rowCount;
+ }
+
+
+ public static final String PROP_TABLE_PROPERTIES = "PROP_TABLE_PROPERTIES"; //$NON-NLS-1$
+ public static final String PROP_TABLE_ROWCOUNT = "PROP_TABLE_ROWCOUNT"; //$NON-NLS-1$
+ public static final String PROP_TABLE_TABLESPACE = "PROP_TABLE_TABLESPACE"; //$NON-NLS-1$
+ private static final String PROP_TABLE_COLUMNS = "PROP_TABLE_COLUMNS"; //$NON-NLS-1$
+
+
+// private boolean propertiesLoaded = false;
+ private boolean columnsLoaded = false;
+ private boolean constraintLoaded = false;
+ private boolean indexLoaded = false;
+ private boolean triggerLoaded = false;
+ private boolean partitionKeyLoaded = false;
+ private boolean dataPartitionLoaded = false;
+ private boolean tablespaceLoaded = false;
+ private boolean privilegeLoaded = false;
+ private boolean statisticsLoaded = false;
+ private boolean impactsLoaded = false;
+ private boolean rowCountLoaded = false;
+
+ private HashMap cachedColumn = new HashMap();
+ private String partitionMode ="";
+ private String tbspaceName=null;
+ private String indexTbspaceName =null;
+ private String longTbspaceName=null;
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+ private String rowCount = null;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogTrigger.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogTrigger.java
new file mode 100644
index 0000000..97366a9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogTrigger.java
@@ -0,0 +1,330 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TriggerImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogTrigger extends DB2TriggerImpl implements ICatalogObject,IDatabaseObject {
+
+ public void refresh() {
+
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ super.actionStatement.clear();
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ return ((ICatalogObject) this.getCatalogDatabase()).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSubjectTable().getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ Collection impacts = this.getImpactedObjects();
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+
+ if(id == DB2ModelPackage.DB2_TRIGGER__DEPENDENCIES) {
+ this.getDependencies();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogTrigger.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadDependencies(Connection connection, EList dependencyList, Trigger trigger) throws SQLException {
+ final Database database = trigger.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT BSCHEMA, BNAME, BTYPE FROM SYSCAT.TRIGDEP WHERE TRIGSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(trigger.getSchema().getName()) + "' AND TRIGNAME='" + LUWUtil.getIdentifier(trigger.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ try {
+ while(r.next()) {
+ final String bschema = r.getString(1).trim();
+ final String bname = r.getString(2);
+ final String btype = r.getString(3);
+ SQLObject obj = null;
+ if(btype.equals("A")) { //alias //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTable(trigger, bschema, bname);
+ }
+ else if(btype.equals("B")) { //trigger //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTrigger(trigger, bschema, bname);
+ }
+ else if(btype.equals("F")) { //function //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getRountine(trigger, bschema, bname);
+ }
+ else if(btype.equals("N")) { //nickname //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTable(trigger, bschema, bname);
+ }
+ else if(btype.equals("O")) { //privilege //$NON-NLS-1$
+ continue;
+ }
+ else if(btype.equals("R")) { //structure type //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getUserDefinedType(trigger, bschema, bname);
+ }
+ else if(btype.equals("S")) { //MQT //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTable(trigger, bschema, bname);
+ }
+ else if(btype.equals("T")) { //table //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTable(trigger, bschema, bname);
+ }
+ else if(btype.equals("U")) { //typed table //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTable(trigger, bschema, bname);
+ }
+ else if(btype.equals("V")) { //view //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTable(trigger, bschema, bname);
+ }
+ else if(btype.equals("W")) { //typed view //$NON-NLS-1$
+ obj = LUWCatalogTrigger.getTable(trigger, bschema, bname);
+ }
+ else if(btype.equals("X")) { //index extension //$NON-NLS-1$
+ continue;
+ }
+ else {
+ continue;
+ }
+
+ if(obj == null) continue;
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(obj);
+ dependencyList.add(dep);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ public static Schema getSchema(Trigger trigger, String schemaName) {
+ Schema s = trigger.getSchema();
+ if(s.getName().equals(schemaName)) return s;
+
+ Database d = s.getDatabase();
+ if (d instanceof LUWCatalogDatabase){
+ s = ((LUWCatalogDatabase)d).getSchema(schemaName);
+ if (s != null) return s;
+ }
+ Iterator it = d.getSchemas().iterator();
+ while(it.hasNext()) {
+ s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+ Schema schema = new LUWCatalogSchema();
+ schema.setName(schemaName);
+ schema.setDatabase(d);
+
+ if (d instanceof LUWCatalogDatabase){
+ ((LUWCatalogDatabase)d).cacheSchema(schema);
+ }
+ return schema;
+ }
+
+ public static Table getTable(Trigger trigger, String schemaName, String tableName) {
+ Schema schema = LUWCatalogTrigger.getSchema(trigger, schemaName);
+ if(schema instanceof LUWCatalogSchema){
+ Table t = ((LUWCatalogSchema)schema).getTable(schemaName,tableName);
+ if (t != null) return t;
+ }
+
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+
+ return null;
+ }
+
+ public static Routine getRountine(Trigger trigger, String schemaName, String specificName) {
+ Schema schema = LUWCatalogTrigger.getSchema(trigger, schemaName);
+ Iterator it = schema.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine r = (Routine) it.next();
+ if(specificName.equals(r.getSpecificName())) return r;
+ }
+
+ return null;
+ }
+
+ public static Trigger getTrigger(Trigger trigger, String schemaName, String triggerName) {
+ Schema schema = LUWCatalogTrigger.getSchema(trigger, schemaName);
+ Iterator it = schema.getTriggers().iterator();
+ while(it.hasNext()) {
+ Trigger r = (Trigger) it.next();
+ if(r.getName().equals(triggerName)) return r;
+ }
+
+ return null;
+ }
+
+ public static UserDefinedType getUserDefinedType(Trigger trigger, String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogTrigger.getSchema(trigger, schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+ return null;
+ }
+
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogTrigger.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogTrigger.getImpactedPackages(connection, this));
+
+ return impacts;
+ }
+
+ protected static Collection getImpactedTriggers(Connection connection, Trigger trigger) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT B.TRIGNAME,B.TABNAME,B.TABSCHEMA" +
+ " FROM SYSCAT.TRIGDEP A, SYSCAT.TRIGGERS B" +
+ " where BTYPE='B'" +
+ " AND A.TRIGSCHEMA = B.TRIGSCHEMA" +
+ " AND A.TRIGNAME = B.TRIGNAME" +
+ " AND A.BNAME='" + LUWUtil.getIdentifier(trigger.getName()) + "'" +
+ " AND A.BSCHEMA='" + LUWUtil.getIdentifier(trigger.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String trigName = r.getString("TRIGNAME").trim();
+ final String tabName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+
+ Trigger trig = LUWCatalogView.getTrigger(trigger.getSubjectTable(), schemaName,tabName, trigName);
+ if (trig != null) {
+ impacts.add(trig);
+ }
+
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ protected static Collection getImpactedPackages(Connection connection, Trigger trigger) {
+ Collection impacts = new ArrayList();
+ try {
+ Statement s = connection.createStatement();
+ String query = "SELECT PKGNAME, PKGSCHEMA, HEX(UNIQUE_ID) AS UID" +
+ " FROM SYSCAT.PACKAGEDEP" +
+ " WHERE BTYPE = 'B'" +
+ " AND BNAME='" + LUWUtil.getIdentifier(trigger.getName()) + "'" +
+ " AND BSCHEMA='" + LUWUtil.getIdentifier(trigger.getSchema().getName()) + "'" +
+ " FOR FETCH ONLY";
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String pkgName = r.getString("PKGNAME").trim();
+ final String schemaName = r.getString("PKGSCHEMA").trim();
+ final String pkgUniqueID = r.getString("UID").trim();
+ DB2Package pkg = LUWCatalogView.getDb2Package(trigger.getSubjectTable(), schemaName,pkgName, pkgUniqueID);
+ if (pkg != null) {
+ impacts.add(pkg);
+ }
+ }
+ r.close();
+ s.close();
+ }catch(SQLException e) {
+ // e.printStackTrace();
+ }
+ return impacts;
+ }
+
+ private boolean dependencyLoaded = false;}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUniqueConstraint.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUniqueConstraint.java
new file mode 100644
index 0000000..4cc66b9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUniqueConstraint.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.impl.UniqueConstraintImpl;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+
+public class LUWCatalogUniqueConstraint extends UniqueConstraintImpl implements ICatalogObject {
+ public synchronized void refresh() {
+ if(this.memberLoaded) {
+ this.members.clear();
+ this.memberLoaded = false;
+ }
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public EList getMembers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getMembers();
+ } else {
+ if(!this.memberLoaded) this.loadMembers();
+ return this.members;
+ }
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLConstraintsPackage.UNIQUE_CONSTRAINT__MEMBERS) {
+ this.getMembers();
+ }
+ else if(id == SQLConstraintsPackage.UNIQUE_CONSTRAINT__DEPENDENCIES) {
+ this.getDependencies();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getBaseTable().getSchema().getDatabase();
+ }
+
+ private synchronized void loadMembers() {
+ if(this.memberLoaded) return;
+ this.memberLoaded = true;
+
+ EList memberList = super.getMembers();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT COLNAME FROM SYSCAT.KEYCOLUSE" + this.getWhereClause()); //$NON-NLS-1$
+ while(r.next()) {
+ final String colName = r.getString(1);
+ memberList.add(this.getColumn(colName));
+ }
+ r.close();
+ s.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogPrimaryKey.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private String getWhereClause() {
+ Table table = this.getBaseTable();
+ return " WHERE CONSTNAME='" + this.getName() + "' AND TABSCHEMA='" + LUWUtil.getIdentifier(this.getBaseTable().getSchema().getName()) //$NON-NLS-1$ //$NON-NLS-2$
+ + "' AND TABNAME='" + LUWUtil.getIdentifier(this.getBaseTable().getName()) + "' ORDER BY COLSEQ"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ private Column getColumn(String columnName) {
+ BaseTable table = this.getBaseTable();
+ if (table instanceof LUWCatalogTable) {
+ Column c = ((LUWCatalogTable)table).getColumn(columnName);
+ if (c!= null) return c;
+ }
+
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ if(c.getName().equals(columnName)) return c;
+ }
+
+ Column column = new LUWCatalogColumn();
+ column.setName(columnName);
+ column.setTable(table);
+ Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition def = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ CharacterStringDataType dataType = (CharacterStringDataType) def.getPredefinedDataType("Char"); //$NON-NLS-1$
+ dataType.setLength(5);
+ column.setContainedType(dataType);
+
+ return column;
+ }
+
+ private boolean memberLoaded = false;
+ private boolean dependencyLoaded = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUser.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUser.java
new file mode 100644
index 0000000..17cd506
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUser.java
@@ -0,0 +1,318 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.impl.UserImpl;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.datatools.enablement.ibm.catalog.ICatalogAuthorizationIdentifier;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+
+public class LUWCatalogUser extends UserImpl implements ICatalogObject,ICatalogAuthorizationIdentifier {
+
+ public void refresh() {
+ if (this.receivedPrivilegesLoaded) {
+ this.getReceivedPrivilege().clear();
+ this.receivedPrivilegesLoaded = false;
+ }
+ if (this.receivedRoleAuthorizationLoaded){
+ this.receivedRoleAuthorization.clear();
+ this.receivedRoleAuthorizationLoaded = false; }
+ this.getGrantedPrivilege().clear();
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getDatabase();
+ }
+
+/*
+ public EList getReceivedPrivilege(){
+ if (!this.receivedPrivilegesLoaded) this.loadReceivedPrivilege();
+ return this.receivedPrivilege;
+ }
+*/
+ public EList getReceivedRoleAuthorization(){
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getReceivedRoleAuthorization();
+ } else {
+ if (!this.receivedRoleAuthorizationLoaded) this.loadReceivedRoleAuthorization();
+ return this.receivedRoleAuthorization;
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == SQLAccessControlPackage.USER__RECEIVED_PRIVILEGE) {
+ this.getReceivedPrivilege();
+ } else if (id== SQLAccessControlPackage.USER__RECEIVED_ROLE_AUTHORIZATION) {
+ this.getReceivedRoleAuthorization();
+ }
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadReceivedPrivilege() {
+ if(this.receivedPrivilegesLoaded) return;
+ this.receivedPrivilegesLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogUser.loadReceivedPrivilege(this.getConnection(),super.getReceivedPrivilege(), this,"U");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadReceivedRoleAuthorization() {
+ if(this.receivedRoleAuthorizationLoaded) return;
+ this.receivedRoleAuthorizationLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ LUWCatalogUser.loadReceivedRoleAuthorization(this.getConnection(), super.getReceivedRoleAuthorization(),this);
+
+ this.eSetDeliver(deliver);
+
+ }
+
+ protected static void loadReceivedPrivilege (Connection connection,EList privileges, AuthorizationIdentifier authId, String granteeType){
+ String query = "SELECT 'D' AS OBJECT_TYPE, '' AS OBJECT_NAME,'' AS OBJECT_OWNER, '' AS OBJECT_UID FROM SYSCAT.DBAUTH WHERE GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'"
+ + " UNION SELECT 'S' AS OBJECT_TYPE, SCHEMANAME AS OBJECT_NAME,'' AS OBJECT_OWNER, '' AS OBJECT_UID FROM SYSCAT.SCHEMAAUTH WHERE GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'"
+ + " UNION SELECT 'T' AS OBJECT_TYPE, TABNAME AS OBJECT_NAME, TABSCHEMA AS OBJECT_OWNER, '' AS OBJECT_UID FROM SYSCAT.TABAUTH WHERE GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'"
+ + " UNION SELECT 'P' AS OBJECT_TYPE, TBSPACE AS OBJECT_NAME, '' AS OBJECT_OWNER, '' AS OBJECT_UID FROM SYSCAT.TBSPACEAUTH WHERE GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'"
+ + " UNION SELECT 'R' AS OBJECT_TYPE, SPECIFICNAME AS OBJECT_NAME, SCHEMA AS OBJECT_OWNER, '' AS OBJECT_UID FROM SYSCAT.ROUTINEAUTH WHERE GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'"
+ + " UNION SELECT 'Q' AS OBJECT_TYPE, SEQNAME AS OBJECT_NAME, SEQSCHEMA AS OBJECT_OWNER, '' AS OBJECT_UID FROM SYSCAT.SEQUENCEAUTH WHERE GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'"
+ + " UNION SELECT 'K' AS OBJECT_TYPE, A.PKGNAME AS OBJECT_NAME, A.PKGSCHEMA AS OBJECT_OWNER, HEX(P.UNIQUE_ID) AS OBJECT_UID FROM SYSCAT.PACKAGEAUTH A, SYSCAT.PACKAGES P WHERE A.PKGSCHEMA = P.PKGSCHEMA AND A.PKGNAME = P.PKGNAME AND A.GRANTEE = '" + authId.getName() + "' AND A.GRANTEETYPE = '" + granteeType + "'";
+ String whereClause = " GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'";
+
+ try {
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String obj_type = r.getString("OBJECT_TYPE");
+ final String obj_name = r.getString("OBJECT_NAME") == null? "": r.getString("OBJECT_NAME").trim();
+ final String obj_owner = r.getString("OBJECT_OWNER") == null? "": r.getString("OBJECT_OWNER").trim();
+ final String obj_uid = r.getString("OBJECT_UID") == null? "": r.getString("OBJECT_UID").trim();
+ if (obj_type.equals("D")) {
+ Database database= authId.getDatabase();
+ if (database instanceof LUWCatalogDatabase) {
+ ((LUWCatalogDatabase)database).getPrivilegesWithFilter(whereClause);
+ }
+ } else if (obj_type.equals("S")){
+ Schema schema = LUWCatalogUser.getSchema(authId, obj_name);
+ if (schema instanceof LUWCatalogSchema ) ((LUWCatalogSchema)schema).getPrivilegesWithFilter(whereClause);
+ } else if (obj_type.equals("T")) {
+ Table table = LUWCatalogUser.getTable(authId, obj_owner, obj_name);
+ if (table instanceof LUWCatalogTable ) ((LUWCatalogTable)table).getPrivilegesWithFilter(whereClause);
+ else if (table instanceof LUWCatalogView ) ((LUWCatalogView)table).getPrivilegesWithFilter(whereClause);
+ else if (table instanceof LUWCatalogMaterializedQueryTable ) ((LUWCatalogMaterializedQueryTable)table).getPrivilegesWithFilter(whereClause);
+ else if (table instanceof LUWCatalogNickname ) ((LUWCatalogNickname)table).getPrivilegesWithFilter(whereClause);
+ } else if (obj_type.equals("P")) {
+ LUWTableSpace tablespace = LUWCatalogUser.getTableSpace(authId, obj_name);
+ if (tablespace != null) tablespace.getPrivileges();
+ } else if (obj_type.equals("R")) {
+ Routine routine = LUWCatalogUser.getRountine(authId,obj_owner,obj_name);
+ if (routine instanceof LUWCatalogProcedure ) ((LUWCatalogProcedure)routine).getPrivilegesWithFilter(whereClause);
+ if (routine instanceof LUWCatalogUserDefinedFunction) ((LUWCatalogUserDefinedFunction)routine).getPrivilegesWithFilter(whereClause);
+ } else if (obj_type.equals("Q")) {
+ Sequence sequence = LUWCatalogUser.getSequence(authId,obj_owner,obj_name);
+ if (sequence instanceof LUWCatalogSequence ) ((LUWCatalogSequence)sequence).getPrivilegesWithFilter(whereClause);
+ } else if (obj_type.equals("K")) {
+ DB2Package pkg = LUWCatalogUser.getDB2Package(authId,obj_owner,obj_name, obj_uid);
+ if (pkg instanceof LUWCatalogDatabasePackage ) ((LUWCatalogDatabasePackage)pkg).getPrivilegesWithFilter(whereClause);
+ }
+
+ }
+ r.close();
+
+ //load index from table side
+ query = "SELECT I.INDNAME, TABNAME, TABSCHEMA" +
+ " FROM SYSCAT.INDEXAUTH A, SYSCAT.INDEXES I" +
+ " WHERE A.INDNAME = I.INDNAME" +
+ " AND A.INDSCHEMA = I.INDSCHEMA" +
+ " AND GRANTEE = '" + authId.getName() + "' AND GRANTEETYPE = '" + granteeType + "'";
+ r = s.executeQuery(query);
+ while(r.next()) {
+ final String indexName = r.getString("INDNAME").trim();
+ final String tableName = r.getString("TABNAME").trim();
+ final String schemaName = r.getString("TABSCHEMA").trim();
+ Index index = LUWCatalogUser.getIndex(authId, schemaName, tableName, indexName);
+ if (index instanceof LUWCatalogIndex) ((LUWCatalogIndex)index).getPrivilegesWithFilter(whereClause);
+ }
+
+ r.close();
+ s.close();
+
+ } catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+ protected static void loadReceivedRoleAuthorization(Connection connection,EList receivedRoleAuth, AuthorizationIdentifier authid) {
+ try {
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(authid.getDatabase());
+ String version = definition.getVersion();
+ float ver = 9.1f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+ if (ver < 9.5) {
+ return;
+ }
+ String query = "SELECT ROLENAME" +
+ " FROM SYSCAT.ROLEAUTH" +
+ " WHERE GRANTEE ='" + authid.getName() + "'";
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+ while(r.next()) {
+ final String roleName = r.getString("ROLENAME").trim();
+ AuthorizationIdentifier role = LUWCatalogDatabase.getAuthorizationId(authid.getDatabase(), roleName, "R");
+ if (role instanceof Role) ((Role)role).getRoleAuthorization();
+ }
+ r.close();
+ s.close();
+
+ }catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+
+
+ private static Schema getSchema(AuthorizationIdentifier authId,String schemaName) {
+ Database d = authId.getDatabase();
+ if (d instanceof LUWCatalogDatabase){
+ Schema s = ((LUWCatalogDatabase)d).getSchema(schemaName);
+ if (s != null) return s;
+ } else {
+ Iterator it = d.getSchemas().iterator();
+ while(it.hasNext()) {
+ Schema s = (Schema) it.next();
+ if(s.getName().equals(schemaName)) return s;
+ }
+ }
+
+ return null;
+ }
+
+ private static Table getTable(AuthorizationIdentifier authId,String schemaName, String tableName) {
+ Schema schema = LUWCatalogUser.getSchema(authId, schemaName);
+ if (schema == null) return null;
+ if (schema instanceof LUWCatalogSchema) {
+ return ((LUWCatalogSchema)schema).getTable(schemaName,tableName);
+ }
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+ return null;
+ }
+
+ private static Index getIndex(AuthorizationIdentifier authId, String schemaName, String tableName,String indexName) {
+ Table table = LUWCatalogUser.getTable(authId, schemaName, tableName);
+ if (table == null) return null;
+ Iterator it = table.getIndex().iterator();
+ while(it.hasNext()) {
+ Index index = (Index) it.next();
+ if(index.getName().equals(indexName)) return index;
+ }
+
+ return null;
+ }
+
+ private static Routine getRountine(AuthorizationIdentifier authId, String schemaName, String specificName) {
+ Schema schema = LUWCatalogUser.getSchema(authId, schemaName);
+ if (schema == null) return null;
+ Iterator it = schema.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine routine = (Routine) it.next();
+ if(specificName.equals(routine.getSpecificName())) return routine;
+ }
+ return null;
+ }
+
+ private static Sequence getSequence(AuthorizationIdentifier authId, String schemaName, String sequenceName) {
+ Schema schema = LUWCatalogUser.getSchema(authId, schemaName);
+ if (schema == null) return null;
+ Iterator it = schema.getSequences().iterator();
+ while(it.hasNext()) {
+ Sequence sequence = (Sequence) it.next();
+ if(sequenceName.equals(sequence.getName())) return sequence;
+ }
+ return null;
+ }
+
+ private static LUWTableSpace getTableSpace(AuthorizationIdentifier authId, String spaceName) {
+ LUWDatabase d = (LUWDatabase) authId.getDatabase();
+ Iterator it = d.getTablespaces().iterator();
+ while(it.hasNext()) {
+ LUWTableSpace s = (LUWTableSpace) it.next();
+ if(s.getName().equals(spaceName)) return s;
+ }
+
+ return null;
+ }
+
+ private static DB2Package getDB2Package(AuthorizationIdentifier authId, String schemaName, String pkgName, String pkgUniqueID) {
+ Schema schema = LUWCatalogUser.getSchema(authId, schemaName);
+ if (schema instanceof LUWCatalogSchema) {
+ return ((LUWCatalogSchema)schema).getDB2Package(pkgName, pkgUniqueID);
+ }
+ return null;
+ }
+
+ //API for PB
+ public EList getCatalogReceivedPrivileges(){
+ this.loadReceivedPrivilege();
+ return this.receivedPrivilege;
+ }
+
+ private boolean receivedPrivilegesLoaded = false;
+ private boolean receivedRoleAuthorizationLoaded = false;
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUserDefinedFunction.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUserDefinedFunction.java
new file mode 100644
index 0000000..ab43488
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUserDefinedFunction.java
@@ -0,0 +1,807 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+//bgp import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.CatalogCache;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelFactory;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Source;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl;
+import org.eclipse.datatools.modelbase.dbdefinition.PredefinedDataTypeDefinition;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesFactory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogUserDefinedFunction extends DB2UserDefinedFunctionImpl implements ICatalogObject ,IDatabaseObject{
+
+ private static final long serialVersionUID = -9150711511025438670L;
+
+ public void refresh() {
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+ if (this.parameterLoaded) {
+ this.parameters.clear();
+ this.parameterLoaded = false;
+ }
+ this.privilegeLoaded = false;
+
+ if (loaded) {
+ this.extendedOptions.clear();
+ this.loaded = false;
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ if ((IDatabaseObject.STATISTICS & refreshType) == IDatabaseObject.STATISTICS) {
+ this.statistics.clear();
+ this.statisticsLoaded = false;
+ }
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public EList getParameters() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getParameters();
+ } else {
+ if(!this.parameterLoaded) this.loadParameters();
+ return this.parameters;
+ }
+ }
+
+ public RoutineResultTable getReturnTable(){
+ if(!this.parameterLoaded) this.loadParameters();
+ return this.returnTable;
+ }
+
+ public Parameter getReturnScalar(){
+ if(!this.parameterLoaded) this.loadParameters();
+ return this.returnScalar;
+ }
+
+ public Parameter getReturnCast(){
+ if(!this.parameterLoaded) this.loadParameters();
+ return this.returnCast;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isExternalAction()
+ */
+ public boolean isExternalAction() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.isExternalAction();
+ } else {
+ if(!this.loaded) this.load();
+ return super.isExternalAction();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.models.sql.routines.Routine#getSource()
+ */
+ public Source getSource() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getSource();
+ } else {
+ if(!this.loaded) this.load();
+ return super.getSource();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.models.sql.routines.Routine#getSqlDataAccess()
+ */
+ public DataAccess getSqlDataAccess() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getSqlDataAccess();
+ } else {
+ if(!this.loaded) this.load();
+ return super.getSqlDataAccess();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.models.sql.routines.Routine#getLanguage()
+ */
+ public String getLanguage() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getLanguage();
+ } else {
+ if(!this.loaded) this.load();
+ return super.getLanguage();
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public EList getExtendedOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getExtendedOptions();
+ } else {
+ if(!this.loaded) this.load();
+ return super.extendedOptions;
+ }
+ }
+
+ public String getExternalName() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getExternalName();
+ } else {
+ if(!this.loaded) this.load();
+ return super.externalName;
+ }
+ }
+
+ public boolean isImplicitSchema() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.isImplicitSchema();
+ } else {
+ if ( !this.loaded ) this.load();
+ return super.implicitSchema;
+ }
+ }
+
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ if (!this.statisticsLoaded) {
+ this.statistics = LUWCatalogProcedure.getStatistics(this.getConnection(), this);
+ this.statisticsLoaded = true;
+ }
+ return this.statistics;
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEPENDENCIES) {
+ this.getDependencies();
+ }
+ else if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARAMETERS) {
+ this.getParameters();
+ }
+ else if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_TABLE) {
+ this.getReturnTable();
+ }
+ else if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_SCALAR) {
+ this.getReturnScalar();
+ }
+ else if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CAST) {
+ this.getReturnCast();
+ }
+ else if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PRIVILEGES) {
+ this.getPrivileges();
+ }
+ else if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS) {
+ this.getExtendedOptions();
+ }
+ else if(id == DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_NAME) {
+ this.getExternalName();
+ }
+
+
+ return super.eIsSet(eFeature);
+ }
+
+ public byte getLUWFunctionType() {
+ return this.luwFunctionType;
+ }
+
+ public void setLUWFunctionType(byte type) {
+ this.luwFunctionType = type;
+ }
+
+ /**
+ * Load miscellaneous information about the UDF
+ */
+ private synchronized void load() {
+ if(this.loaded) return;
+ this.loaded = true;
+
+ Database database = getCatalogDatabase();
+//bgp CatalogCache cache = CatalogCache.getCache( database );
+
+ String propkey = getSchema().getName() + "." + getName(); //$NON-NLS-1$
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ // Make sure this collection is initialized so we can add to it later
+ super.getExtendedOptions();
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( cache.isPropertyCacheLoaded( PROP_UDF_VALUES ) ) {
+// loadInfoFromCache( cache, propkey );
+// this.eSetDeliver(deliver);
+//
+// return;
+// }
+//
+// cache.setPropertyCacheLoaded( PROP_UDF_VALUES );
+//bgp> }
+
+ Connection connection = this.getConnection();
+
+ final DatabaseDefinition definition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(this.getCatalogDatabase());
+ String version = definition.getVersion();
+ float ver = 8.0f;
+ try {
+ ver = Float.parseFloat(version.substring(1));
+ }
+ catch (NumberFormatException e) {
+ }
+
+ String query = null;
+ if (ver < 8.0f) {
+ query = "SELECT LANGUAGE," //$NON-NLS-1$
+ + " CASE VARIANT WHEN 'Y' THEN 'N' WHEN 'N' THEN 'Y' END AS DETERMINISTIC," //$NON-NLS-1$
+ + " SIDE_EFFECTS AS EXTERNAL_ACTION, CONTAINS_SQL AS SQL_DATA_ACCESS, TYPE AS FUNCTIONTYPE," //$NON-NLS-1$
+ + " BODY AS TEXT,PARALLELIZABLE AS PARALLEL, '' AS DEBUG_MODE,'' AS IMPLEMENTATION, '' AS CLASS," //$NON-NLS-1$
+ + " FUNCSCHEMA, FUNCNAME, SPECIFICNAME" //$NON-NLS-1$
+ + " FROM SYSCAT.FUNCTIONS"; //$NON-NLS-1$
+
+//<bgp if ( !cache.isBatchLoading() ) {
+// query += " WHERE FUNCSCHEMA='" + this.getSchema().getName() + "'" //$NON-NLS-1$ //$NON-NLS-2$
+// + " AND FUNCNAME='" + LUWUtil.getIdentifier(this.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$
+// + " AND SPECIFICNAME='" + this.getSpecificName() + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp> }
+ }
+ else {
+ query = "SELECT LANGUAGE, DETERMINISTIC, SQL_DATA_ACCESS, EXTERNAL_ACTION, FUNCTIONTYPE," //$NON-NLS-1$
+ + " TEXT, PARALLEL, DEBUG_MODE,IMPLEMENTATION, CLASS," //$NON-NLS-1$
+ + " ROUTINESCHEMA AS FUNCSCHEMA, ROUTINENAME AS FUNCNAME, SPECIFICNAME" //$NON-NLS-1$
+ + " FROM SYSCAT.ROUTINES"; //$NON-NLS-1$
+
+//<bgp if ( !cache.isBatchLoading() ) {
+// query += " WHERE ROUTINESCHEMA='" + LUWUtil.getIdentifier(this.getSchema().getName()) + "' AND ROUTINENAME='" + LUWUtil.getIdentifier(this.getName()) + "'" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+// + " AND SPECIFICNAME='" + LUWUtil.getIdentifier(this.getSpecificName()) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+//bgp> }
+ }
+
+ Statement s = null;
+ ResultSet r = null;
+
+ try {
+ s = connection.createStatement();
+ r = s.executeQuery(query);
+
+ while(r.next()) {
+ LoadInfo info = new LoadInfo();
+
+ info.schemaname = r.getString( "FUNCSCHEMA" ).trim(); //$NON-NLS-1$
+ info.funcname = r.getString( "FUNCNAME" ).trim(); //$NON-NLS-1$
+ info.DETERMINISTIC = r.getString("DETERMINISTIC"); //$NON-NLS-1$
+ info.SQL_DATA_ACCESS = r.getString("SQL_DATA_ACCESS"); //$NON-NLS-1$
+ info.EXTERNAL_ACTION = r.getString("EXTERNAL_ACTION"); //$NON-NLS-1$
+ info.FUNCTIONTYPE = r.getString("FUNCTIONTYPE"); //$NON-NLS-1$
+ info.TEXT = r.getString("TEXT"); //$NON-NLS-1$
+ info.PARALLEL = r.getString("PARALLEL"); //$NON-NLS-1$
+ info.DEBUG_MODE = r.getString("DEBUG_MODE"); //$NON-NLS-1$
+ info.IMPLEMENTATION = r.getString("IMPLEMENTATION"); //$NON-NLS-1$
+ info.CLASS = r.getString( "CLASS" ); //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading() ) {
+// cache.cacheProperty( PROP_UDF_VALUES, info.getKey(), info );
+// }
+//bgp> else {
+ info.setValues( this );
+//bgp }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ finally {
+ if (r != null) {
+ try { r.close(); }
+ catch (SQLException e) { }
+ r = null;
+ }
+ if (s != null) {
+ try { s.close(); }
+ catch (SQLException e) { }
+ s = null;
+ }
+ }
+
+//<bgp if ( cache.isBatchLoading() ) {
+// loadInfoFromCache( cache, propkey );
+//bgp> }
+
+ this.eSetDeliver(deliver);
+ }
+
+ /** Object containing UDF information for the cache */
+ private static class LoadInfo {
+ String schemaname;
+ String funcname;
+ String DETERMINISTIC;
+ String SQL_DATA_ACCESS;
+ String EXTERNAL_ACTION;
+ String FUNCTIONTYPE;
+ String TEXT;
+ String PARALLEL;
+ String DEBUG_MODE;
+ String IMPLEMENTATION;
+ String CLASS;
+
+ /**
+ * Get the key for cache lookup
+ *
+ * @return The key
+ */
+ public String getKey() {
+ return this.schemaname + "." + this.funcname; //$NON-NLS-1$
+ }
+
+ /**
+ * Update a UDF with values from the cache
+ *
+ * @param func
+ */
+ public void setValues( LUWCatalogUserDefinedFunction func ) {
+ func.setDeterministic( this.DETERMINISTIC.equals("Y") ); //$NON-NLS-1$
+ func.setExternalAction( this.EXTERNAL_ACTION .equals("E")); //$NON-NLS-1$
+ func.setFunctionType( this.FUNCTIONTYPE );
+ func.setAllowParallel( "Y".equals( this.PARALLEL ) ); //$NON-NLS-1$
+
+ DataAccess da;
+ // 'C' - CONTAINS SQL, 'M' - MODIFIES SQL DATA, 'N' - No SQL, 'R' - READS SQL DATA
+ if (this.SQL_DATA_ACCESS.equals("C")) da = DataAccess.CONTAINS_SQL_LITERAL; //$NON-NLS-1$
+ else if (this.SQL_DATA_ACCESS.equals("M")) da = DataAccess.MODIFIES_SQL_DATA_LITERAL; //$NON-NLS-1$
+ else if (this.SQL_DATA_ACCESS.equals("N")) da = DataAccess.NO_SQL_LITERAL; //$NON-NLS-1$
+ else da = DataAccess.READS_SQL_DATA_LITERAL;
+ func.setSqlDataAccess( da );
+
+ if ( this.TEXT != null )
+ {
+ // remove un-readable character
+ this.TEXT = this.TEXT
+ .replaceAll(
+ "[\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000b\u000c\u000e\u000f" //$NON-NLS-1$
+ + "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f]", //$NON-NLS-1$
+ " " ); //$NON-NLS-1$
+ DB2Source source = DB2ModelFactory.eINSTANCE.createDB2Source();
+ source.setBody( this.TEXT );
+ func.setSource( source );
+ }
+
+ DB2ExtendedOptions extOpts = DB2ModelFactory.eINSTANCE.createDB2ExtendedOptions();
+ extOpts.setForDebug( "ALLOW".equalsIgnoreCase( this.DEBUG_MODE ) ); //$NON-NLS-1$
+ EList extList = func.getExtendedOptions();
+ extList.add( extOpts );
+
+ if ( "JAVA".equals( func.getLanguage() ) ) //$NON-NLS-1$
+ {
+ func.setJavaExternalName( this.CLASS, this.IMPLEMENTATION );
+ }
+ else if ( !"SQL".equals( func.getLanguage() ) ) //$NON-NLS-1$
+ {
+ func.setExternalName( this.IMPLEMENTATION );
+ }
+
+ func.updateImplicitSchemaFlag();
+ }
+ }
+
+//<bgp /**
+// * Update this UDF with values from the cache
+// *
+// * @param cache
+// * @param propkey
+// */
+// private void loadInfoFromCache( CatalogCache cache, String propkey )
+// {
+// LoadInfo info = (LoadInfo)cache.getCachedProperty( PROP_UDF_VALUES, propkey );
+//
+// if ( info != null ) {
+// info.setValues( this );
+// }
+//bgp> }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogProcedure.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadParameters() {
+ if(this.parameterLoaded) return;
+ this.parameterLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogUserDefinedFunction.loadParameters(this.getConnection(), super.getParameters(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogProcedure.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadParameters(Connection connection, EList parameterList, LUWCatalogUserDefinedFunction function) throws SQLException {
+ final Database database = function.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ String version = databaseDefinition.getVersion();
+ float ver = 8.0f;
+ try {
+ ver = Float.parseFloat(version);
+ }
+ catch (NumberFormatException e) {
+ }
+
+ String query = null;
+ if (ver < 8.0f) {
+ query="SELECT PARMNAME,ROWTYPE,AS_LOCATOR AS LOCATOR,TYPESCHEMA,TYPENAME,LENGTH,SCALE,CODEPAGE, ' ' AS REMARKS,TARGET_TYPESCHEMA,TARGET_TYPENAME" + //$NON-NLS-1$
+ " FROM SYSCAT.FUNCPARMS" + //$NON-NLS-1$
+ " WHERE FUNCSCHEMA='" + LUWUtil.getIdentifier(function.getSchema().getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND FUNCNAME='" + LUWUtil.getIdentifier(function.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND SPECIFICNAME='" + function.getSpecificName() + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " ORDER BY ORDINAL"; //$NON-NLS-1$
+ }
+ else {
+ query="SELECT PARMNAME,ROWTYPE,LOCATOR,TYPESCHEMA,TYPENAME,LENGTH,SCALE,CODEPAGE,REMARKS,TARGET_TYPESCHEMA,TARGET_TYPENAME" + //$NON-NLS-1$
+ " FROM SYSCAT.ROUTINEPARMS" + //$NON-NLS-1$
+ " WHERE ROUTINESCHEMA='" + LUWUtil.getIdentifier(function.getSchema().getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND ROUTINENAME='" + LUWUtil.getIdentifier(function.getName()) + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " AND SPECIFICNAME='" + function.getSpecificName() + "'" + //$NON-NLS-1$ //$NON-NLS-2$
+ " ORDER BY ORDINAL"; //$NON-NLS-1$
+ }
+
+ Statement s = null;
+ ResultSet r = null;
+ try {
+ s = connection.createStatement();
+ r = s.executeQuery(query);
+ while(r.next()) {
+ boolean isTableFunction = false;
+
+ final String name = r.getString("PARMNAME"); //$NON-NLS-1$
+
+ final String rowtype = r.getString("ROWTYPE").trim(); //$NON-NLS-1$
+
+ if (rowtype.equals("R") && function.getLUWFunctionType() == LUWCatalogUserDefinedFunction.FunctionTypeEnumeration.TABLE_FUNCTION) //$NON-NLS-1$
+ isTableFunction = true;
+
+ DataType type=null;
+ String typeName = r.getString("TYPENAME"); //$NON-NLS-1$
+ if (typeName.equalsIgnoreCase("FLOAT")){ //$NON-NLS-1$
+ int length = r.getInt("LENGTH"); //$NON-NLS-1$
+ if (length ==4) typeName="REAL"; //$NON-NLS-1$
+ else typeName="DOUBLE"; //$NON-NLS-1$
+ }
+
+ PredefinedDataTypeDefinition typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition(typeName);
+ if(typeDefinition != null) {
+
+ if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER) {
+ final int codePage = r.getInt("CODEPAGE"); //$NON-NLS-1$
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("CHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+ else if (typeDefinition.getPrimitiveType().getValue() == PrimitiveType.CHARACTER_VARYING) {
+ final int codePage = r.getInt("CODEPAGE"); //$NON-NLS-1$
+ if(codePage == 0) {
+ typeDefinition = databaseDefinition.getPredefinedDataTypeDefinition("VARCHAR () FOR BIT DATA"); //$NON-NLS-1$
+ }
+ }
+
+ type = databaseDefinition.getPredefinedDataType(typeDefinition);
+ if(typeDefinition.isLengthSupported()) {
+ int length = r.getInt("LENGTH"); //$NON-NLS-1$
+ if (length == 0) length = 1; EStructuralFeature feature = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else if(typeDefinition.isPrecisionSupported()) {
+ if (typeName.equals("TIMESTAMP")) {
+ int length = r.getInt("SCALE");
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("fractionalSecondsPrecision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ else {
+ int length = r.getInt("LENGTH");
+ if (typeName.equals("DECFLOAT")) {
+ if (length == 8) length = 16;
+ else length = 34;
+ }
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+ }
+
+ if(typeDefinition.isScaleSupported()) {
+ final int length = r.getInt("SCALE"); //$NON-NLS-1$
+ EStructuralFeature feature = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ type.eSet(feature, new Integer(length));
+ }
+
+ }
+ else {
+ if (typeName.equals("REFERENCE")){ //$NON-NLS-1$
+ final String typeSchemaName = r.getString("TARGET_TYPESCHEMA").trim(); //$NON-NLS-1$
+ final String udtName = r.getString("TARGET_TYPENAME"); //$NON-NLS-1$
+ type = LUWCatalogProcedure.getUserDefinedType(function,typeSchemaName,udtName);
+ } else {
+ final String typeSchemaName = r.getString("TYPESCHEMA").trim(); //$NON-NLS-1$
+ type = LUWCatalogProcedure.getUserDefinedType(function,typeSchemaName,typeName);
+ }
+ }
+
+
+ if (isTableFunction) {
+ RoutineResultTable resultTable = function.getReturnTable();
+ if (resultTable == null) {
+ resultTable = (RoutineResultTable)factory.create(SQLRoutinesPackage.eINSTANCE.getRoutineResultTable());
+ function.setReturnTable(resultTable);
+ }
+ Column column = SQLTablesFactory.eINSTANCE.createColumn();
+ column.setName(name);
+ column.setDescription(r.getString("REMARKS")); //$NON-NLS-1$
+ column.setDataType(type);
+ resultTable.getColumns().add(column);
+ }
+ else {
+ LUWCatalogParameter parameter = new LUWCatalogParameter();
+ parameter.setName(name);
+
+ if (rowtype.equals("B")){ //$NON-NLS-1$
+ parameter.setMode(ParameterMode.INOUT_LITERAL);
+ } else if (rowtype.equals("O")) { //$NON-NLS-1$
+ parameter.setMode(ParameterMode.OUT_LITERAL);
+ } else if (rowtype.equals("P")) { //$NON-NLS-1$
+ parameter.setMode(ParameterMode.IN_LITERAL);
+ }
+
+ final String locator = r.getString("LOCATOR"); //$NON-NLS-1$
+ if (locator.equals("Y")) //$NON-NLS-1$
+ parameter.setLocator(true);
+ else
+ parameter.setLocator(false);
+
+ parameter.setDescription(r.getString("REMARKS")); //$NON-NLS-1$
+ parameter.setDataType(type);
+
+ if (rowtype.equals("C")) //$NON-NLS-1$
+ function.setReturnScalar(parameter);
+ else if (rowtype.equals("R")) //$NON-NLS-1$
+ function.setReturnCast(parameter);
+ else
+ parameterList.add(parameter);
+
+ }
+
+
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ finally {
+ if (r != null) {
+ try { r.close(); }
+ catch (SQLException e) { }
+ r = null;
+ }
+ if (s != null) {
+ try { s.close(); }
+ catch (SQLException e) { }
+ s = null;
+ }
+ }
+ }
+
+ public interface FunctionTypeEnumeration {
+ public final static byte SCALAR_FUNCTION= 0;
+ public final static byte TABLE_FUNCTION= 1;
+ public final static byte ROW_FUNCTION= 2;
+ public final static byte COLUMN_FUNCTION= 3;
+ public final static byte ENUMERATION_LENGTH = 4;
+ }
+
+ /**
+ * If the routine is SQL, discover if the routine has been created without
+ * a schema qualifier.
+ * <p>
+ * @param aRoutine The routine to analyze
+ * @return <code>true</code> if the routine was created without a schema qualifier.
+ */
+ private void updateImplicitSchemaFlag() {
+ boolean b = false;
+ if (this != null) {
+ b = this.isImplicitSchema();
+ if (!b && this.getLanguage().equalsIgnoreCase("SQL")) { //$NON-NLS-1$
+ Source src = this.getSource();
+ if (src != null) {
+ String body = src.getBody();
+ if (body != null) {
+ String[] tokens = body.split(" "); //$NON-NLS-1$
+ for (int i = 0; i < tokens.length; i++) {
+ if (tokens[i].indexOf('.') > -1) {
+ break; // the implicit flag is false by default
+ }
+ else if (tokens[i].indexOf('(') > -1) {
+ b = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ setImplicitSchema(b);
+ }
+
+ private void setJavaExternalName(String className, String imple){
+ if (className == null || imple == null) return;
+ String exteranlName = className +".";
+ if (imple.indexOf("(") != -1) {
+ exteranlName += imple.substring(0,imple.indexOf("("));
+ } else {
+ exteranlName += imple;
+ }
+ super.externalName = exteranlName;
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+
+ impacts.addAll(LUWCatalogProcedure.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedConstraints(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogProcedure.getImpactedPackages(connection, this));
+
+ return impacts;
+ }
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogProcedure.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+
+ private static final String PROP_UDF_VALUES = "PROP_UDF_VALUES"; //$NON-NLS-1$
+
+ private boolean dependencyLoaded = false;
+ private boolean parameterLoaded = false;
+ private byte luwFunctionType = FunctionTypeEnumeration.SCALAR_FUNCTION;
+ private boolean loaded = false;
+ private boolean privilegeLoaded = false;
+ private boolean statisticsLoaded = false;
+ private boolean impactsLoaded = false;
+
+ private Collection impacts = new ArrayList();
+ private Collection statistics = new ArrayList();
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUserMapping.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUserMapping.java
new file mode 100644
index 0000000..ef95eb1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogUserMapping.java
@@ -0,0 +1,206 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericUserMappingImpl;
+
+/**
+ * @author gsauere
+ */
+public class LUWCatalogUserMapping extends LUWGenericUserMappingImpl implements ICatalogObject {
+
+ protected final static String REMOTE_AUTHID = "REMOTE_AUTHID"; //$NON-NLS-1$
+ protected final static String REMOTE_PASSWORD = "REMOTE_PASSWORD"; //$NON-NLS-1$
+ protected final static String ASTERISKS = "******"; //$NON-NLS-1$
+
+ private boolean optionsLoaded = false;
+ private boolean remoteUserLoaded = false;
+ private boolean remotePasswordLoaded = false;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#refresh()
+ */
+ public void refresh() {
+ remoteUserLoaded = false;
+ remotePasswordLoaded = false;
+
+ if (this.optionsLoaded) {
+ this.optionsLoaded = false;
+ this.getOptions().clear();
+ }
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getConnection()
+ */
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getCatalogDatabase()
+ */
+ public Database getCatalogDatabase() {
+ return this.getServer().getWrapper().getLUWDatabase();
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_GENERIC_USER_MAPPING__OPTIONS) {
+ this.getOptions();
+ } else if(id == LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_USER) {
+ this.getRemoteUser();
+ } else if(id == LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD) {
+ this.getRemotePassword();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ public EList getOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getOptions();
+ } else {
+ if(!this.optionsLoaded) this.loadOptions();
+ return super.getOptions();
+ }
+ }
+
+ public String getRemoteUser() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getRemoteUser();
+ } else {
+ if(!this.remoteUserLoaded) loadRemoteUser();
+ return super.getRemoteUser();
+ }
+ }
+
+ public String getRemotePassword() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getRemotePassword();
+ } else {
+ if(!this.remotePasswordLoaded) loadRemotePassword();
+ return super.getRemotePassword();
+ }
+ }
+
+ private synchronized void loadRemoteUser() {
+ if(this.remoteUserLoaded) return;
+ EList options = getOptions();
+ for (Iterator it = options.iterator(); it.hasNext(); ) {
+ LUWOption option = (LUWOption)it.next();
+ String name = option.getName();
+
+ if (name.equals(REMOTE_AUTHID)) {
+ this.setRemoteUser(option.getValue());
+ break;
+ }
+ }
+ }
+
+ private synchronized void loadRemotePassword() {
+ if(this.remotePasswordLoaded) return;
+ EList options = getOptions();
+ for (Iterator it = options.iterator(); it.hasNext(); ) {
+ LUWOption option = (LUWOption)it.next();
+ String name = option.getName();
+
+ if (name.equals(REMOTE_PASSWORD)) {
+ this.setRemotePassword(option.getValue());
+ break;
+ }
+ }
+ }
+
+ public void setRemoteUser(String value) {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ super.setRemoteUser(value);
+ } else {
+ super.setRemoteUser(value);
+ this.remoteUserLoaded = true;
+ }
+ }
+
+ public void setRemotePassword(String value) {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ super.setRemotePassword(value);
+ } else {
+ super.setRemotePassword(value);
+ this.remotePasswordLoaded = true;
+ }
+ }
+
+ private synchronized void loadOptions() {
+ if(this.optionsLoaded) return;
+ this.optionsLoaded = true;
+
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ EList options = super.getOptions();
+ options.clear();
+ LUWCatalogUserMapping.loadOptions(this.getConnection(),this, options);
+ }
+ catch (Exception e) {
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadOptions(Connection connection, LUWGenericUserMapping userMapping, EList options) throws SQLException {
+ String query = "SELECT OPTION, SETTING FROM SYSCAT.USEROPTIONS WHERE AUTHID='" //$NON-NLS-1$
+ + userMapping.getLocalAuthId() + "' AND SERVERNAME='" + userMapping.getServer().getName() + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String name = r.getString("OPTION"); //$NON-NLS-1$
+ final String value = r.getString("SETTING"); //$NON-NLS-1$
+ LUWOption option = LUWFactory.eINSTANCE.createLUWOption();
+ option.setName(name);
+
+ if (name.equals(REMOTE_PASSWORD)) //actual value when serialized might cause problems in the XML file
+ option.setValue(ASTERISKS);
+ else
+ option.setValue(value);
+ options.add(option);
+ }
+ }
+ catch(Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogView.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogView.java
new file mode 100644
index 0000000..08b9b2d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogView.java
@@ -0,0 +1,630 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinitionRegistry;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWDdlParser;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWUtil;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWViewImpl;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.CheckType;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWCatalogView extends LUWViewImpl implements ICatalogObject,IDatabaseObject {
+ public void refresh() {
+// this.propertiesLoaded = false;
+ this.columnsLoaded = false;
+ this.triggerLoaded = false;
+ this.viewLoaded = false;
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+ this.privilegeLoaded = false;
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ public boolean isSystemObject() {
+ return false;
+ }
+
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public void refresh(int refreshType){
+ if ((IDatabaseObject.IMPACTS & refreshType) == IDatabaseObject.IMPACTS) {
+ this.impacts.clear();
+ this.impactsLoaded = false;
+ }
+ }
+
+ public EList getColumns() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getColumns();
+ } else {
+ if(!this.columnsLoaded) this.loadColumns();
+ return this.columns;
+ }
+ }
+
+ public QueryExpression getQueryExpression() {
+ if(!this.viewLoaded) this.loadView();
+ return this.queryExpression;
+ }
+
+ public CheckType getCheckType() {
+ if(!this.viewLoaded) this.loadView();
+ return this.checkType;
+ }
+
+ public boolean isUpdatable() {
+ if(!this.viewLoaded) this.loadView();
+ return this.updatable;
+ }
+
+ public boolean isInsertable() {
+ if(!this.viewLoaded) this.loadView();
+ return this.updatable;
+ }
+
+ public EList getTriggers() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getTriggers();
+ } else {
+ if(!this.triggerLoaded) this.loadTriggers();
+ return this.triggers;
+ }
+ }
+
+ public EList getDependencies() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getDependencies();
+ } else {
+ if(!this.dependencyLoaded) this.loadDependencies();
+ return this.dependencies;
+ }
+ }
+
+ public EList getPrivileges() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getPrivileges();
+ } else {
+ if (!this.privilegeLoaded) this.loadPrivileges();
+ return this.privileges;
+ }
+ }
+
+ public ICatalogObject[] getImpacted(){
+ if (!this.impactsLoaded) {
+ this.impacts = this.getImpactedObjects();
+ this.impactsLoaded = true;
+ }
+ ICatalogObject[] objs = new ICatalogObject[impacts.size()];
+ impacts.toArray(objs);
+ return objs;
+ }
+
+ public Collection getStatistics(){
+ return new ArrayList();
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_VIEW__COLUMNS) {
+ this.getColumns();
+ }
+ else if(id == LUWPackage.LUW_VIEW__CHECK_TYPE) {
+ this.getCheckType();
+ }
+ else if(id == LUWPackage.LUW_VIEW__QUERY_EXPRESSION) {
+ this.getQueryExpression();
+ }
+ else if(id == LUWPackage.LUW_VIEW__TRIGGERS) {
+ this.getTriggers();
+ }
+ else if(id == LUWPackage.LUW_VIEW__DEPENDENCIES) {
+ this.getDependencies();
+ }
+ else if(id == LUWPackage.LUW_VIEW__UPDATABLE) {
+ this.isUpdatable();
+ }
+ else if(id == LUWPackage.LUW_VIEW__PRIVILEGES) {
+ this.getPrivileges();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ /*
+
+ private synchronized void loadProperties() {
+ if(this.propertiesLoaded) return;
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogTable.loadProperties(this.getConnection(),this);
+ }
+ catch (Exception e) {
+ }
+
+ this.propertiesLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+ */
+
+ private synchronized void loadColumns() {
+ if(this.columnsLoaded) return;
+ this.columnsLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadColumns(this.getConnection(), super.getColumns(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private synchronized void loadTriggers() {
+ if(this.triggerLoaded) return;
+ this.triggerLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadTriggers(this.getConnection(), super.getTriggers(), this,((LUWCatalogDatabase)this.getCatalogDatabase()).getLoadOptions());
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ /**
+ * Load miscellaneous info for this view
+ */
+ private synchronized void loadView() {
+ if(this.viewLoaded) return;
+ this.viewLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ final Database database = getCatalogDatabase();
+//bgp final CatalogCache cache = CatalogCache.getCache( database );
+ final String propkey = getSchema().getName() + "." + getName(); //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading() ) {
+// if ( cache.isPropertyCacheLoaded( PROP_VIEW_VIEWINFO ) ) {
+// setViewInfoFromCache( cache, propkey );
+//
+// this.eSetDeliver(deliver);
+// return;
+// }
+//
+// cache.setPropertyCacheLoaded( PROP_VIEW_VIEWINFO );
+//bgp> }
+
+ try {
+ Connection connection = this.getConnection();
+ Statement s = connection.createStatement();
+
+ String query = "SELECT VIEWCHECK, READONLY,VALID, TEXT, VIEWSCHEMA, VIEWNAME" //$NON-NLS-1$
+ + " FROM SYSCAT.VIEWS"; //$NON-NLS-1$
+
+//bgp if ( !cache.isBatchLoading() ) {
+ query += " WHERE VIEWSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(this.getSchema().getName())
+ + "' AND VIEWNAME='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(this.getName()) + "'"; //$NON-NLS-1$
+//bgp }
+
+ query += " ORDER BY"; //$NON-NLS-1$
+
+//<bgp if ( cache.isBatchLoading() ) {
+// query += " VIEWSCHEMA, VIEWNAME,"; //$NON-NLS-1$
+//bgp> }
+
+ query += " SEQNO"; //$NON-NLS-1$
+
+ ResultSet r = s.executeQuery(query);
+ ViewInfo info = null;
+
+ while (r.next()) {
+ final String sname = r.getString( "VIEWSCHEMA" ).trim(); //$NON-NLS-1$
+ final String vname = r.getString( "VIEWNAME" ).trim(); //$NON-NLS-1$
+
+ if ( info == null || sname != info.viewSchemaName || vname != info.viewSchemaName ) {
+ info = new ViewInfo();
+
+ info.viewSchemaName = sname;
+ info.viewName = vname;
+
+//<bgp if ( cache.isBatchLoading() ) {
+// cache.cacheProperty( PROP_VIEW_VIEWINFO, info.getKey(), info );
+//bgp> }
+
+ info.VIEWCHECK = r.getString(1);
+ info.READONLY = r.getString(2);
+ info.VALID = r.getString("VALID"); //$NON-NLS-1$
+
+ info.TEXT = new StringBuilder();
+ }
+
+ String text = r.getString("TEXT"); //$NON-NLS-1$
+
+ if ( text != null ) {
+ info.TEXT.append( text.trim() );
+ }
+ }
+
+ r.close();
+ s.close();
+
+ if ( info != null ) {
+//<bpg if ( cache.isBatchLoading() ) {
+// cache.cacheProperty( PROP_VIEW_VIEWINFO, info.getKey(), info );
+// }
+//bgp> else {
+ info.setViewInfo( this );
+//bgp }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+//<bgp if ( cache.isBatchLoading() ) {
+// setViewInfoFromCache( cache, propkey );
+//bgp> }
+
+ this.eSetDeliver(deliver);
+ }
+
+ /** Class for caching miscellaneous information about views */
+ private static class ViewInfo {
+ String viewSchemaName;
+ String viewName;
+ String VIEWCHECK;
+ String READONLY;
+ String VALID;
+ StringBuilder TEXT;
+
+ /**
+ * Get the key for cache lookup
+ *
+ * @return The key
+ */
+ public String getKey() {
+ return this.viewSchemaName + "." + this.viewName; //$NON-NLS-1$
+ }
+
+ /**
+ * Update a view with information contained here
+ *
+ * @param view
+ */
+ public void setViewInfo( LUWCatalogView view ) {
+ if ( "N".equals( this.VIEWCHECK) ) { //$NON-NLS-1$
+ view.setCheckType( CheckType.NONE_LITERAL );
+ }
+ else if ( "L".equals( this.VIEWCHECK) ) { //$NON-NLS-1$
+ view.setCheckType(CheckType.LOCAL_LITERAL);
+ }
+ else if ( "C".equals( this.VIEWCHECK) ) { //$NON-NLS-1$
+ view.setCheckType(CheckType.CASCADED_LITERAL);
+ }
+
+ view.updatable = "N".equals( this.READONLY ); //$NON-NLS-1$
+ view.operative = "X".equalsIgnoreCase( this.VALID ); //$NON-NLS-1$
+
+ //remove un-readable character
+ String text = this.TEXT.toString().replaceAll(
+ "[\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u000b\u000c\u000e\u000f" + //$NON-NLS-1$
+ "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f]", //$NON-NLS-1$
+ " "); //$NON-NLS-1$
+
+ DatabaseDefinitionRegistry dbregistry = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry();
+ DatabaseDefinition dbdef = dbregistry.getDefinition( view.getCatalogDatabase() );
+
+ if ( view.queryExpression == null ) {
+ DataModelElementFactory factory = dbdef.getDataModelElementFactory();
+ view.setQueryExpression( (QueryExpression)factory.create(SQLExpressionsPackage.eINSTANCE.getQueryExpressionDefault()) );
+ }
+
+ LUWDdlParser ddlParser = new LUWDdlParser( dbdef );
+ ddlParser.parseView( view, text );
+ }
+ }
+
+//<bgp /**
+// * Update this view with information contained in the cache
+// *
+// * @param cache
+// * @param key
+// */
+// private void setViewInfoFromCache( CatalogCache cache, String key ) {
+// ViewInfo info = (ViewInfo)cache.getCachedProperty( PROP_VIEW_VIEWINFO, key );
+//
+// if ( info != null ) {
+// info.setViewInfo( this );
+// }
+//bgp> }
+
+ private synchronized void loadDependencies() {
+ if(this.dependencyLoaded) return;
+ this.dependencyLoaded = true;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogView.loadDependencies(this.getConnection(), super.getDependencies(), this);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+
+ private synchronized void loadPrivileges() {
+ if(this.privilegeLoaded) return;
+ this.privilegeLoaded = true;
+
+ EList privileges = super.getPrivileges();
+ for (Iterator iter= privileges.iterator(); iter.hasNext();){
+ Privilege privilege = (Privilege) iter.next();
+ privilege.setGrantor(null);
+ privilege.setGrantee(null);
+ }
+
+ privileges.clear();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(),privileges, this,"");
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ public static Schema getSchema(Table table, String schemaName) {
+ return LUWCatalogTable.getSchema(table,schemaName);
+ }
+
+ public static Table getTable(Table t, String schemaName, String tableName) {
+ Schema schema = LUWCatalogView.getSchema(t, schemaName);
+
+ if (schema instanceof LUWCatalogSchema) {
+ return ((LUWCatalogSchema)schema).getTable(schemaName,tableName);
+ }
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table table = (Table) it.next();
+ if(table.getName().equals(tableName)) return table;
+ }
+ return null;
+ }
+
+ public static Routine getRountine(Table table, String schemaName, String specificName) {
+ Schema schema = LUWCatalogView.getSchema(table, schemaName);
+ Iterator it = schema.getRoutines().iterator();
+ while(it.hasNext()) {
+ Routine routine = (Routine) it.next();
+ if(specificName.equals(routine.getSpecificName())) return routine;
+ }
+ return null;
+ }
+
+ public static Index getIndex(Table table, String schemaName, String indexName) {
+ Schema schema = LUWCatalogView.getSchema(table, schemaName);
+ Iterator it = schema.getIndices().iterator();
+ while(it.hasNext()) {
+ Index index = (Index) it.next();
+ if(index.getName().equals(indexName)) return index;
+ }
+
+ return null;
+ }
+
+ public static UserDefinedType getUserDefinedType(Table table, String schemaName, String userDefinedTypeName) {
+ Schema schema = LUWCatalogView.getSchema(table, schemaName);
+ Iterator it = schema.getUserDefinedTypes().iterator();
+ while(it.hasNext()) {
+ UserDefinedType userDefinedType = (UserDefinedType) it.next();
+ if(userDefinedType.getName().equals(userDefinedTypeName)) return userDefinedType;
+ }
+
+ return null;
+ }
+
+ public static TableConstraint getTableConstraint(Table table, String schemaName,String tableName, String constName) {
+ Table t = LUWCatalogView.getTable(table, schemaName,tableName);
+ if (!(t instanceof BaseTable)) return null;
+ Iterator it = ((BaseTable)t).getConstraints().iterator();
+ while(it.hasNext()) {
+ TableConstraint constraint = (TableConstraint) it.next();
+ if(constraint.getName().equals(constName)) return constraint;
+ }
+
+ return null;
+ }
+
+ public static Trigger getTrigger(Table table, String schemaName, String tableName,String triggerName) {
+ Table t = LUWCatalogView.getTable(table, schemaName, tableName);
+ Iterator it = t.getTriggers().iterator();
+ while(it.hasNext()) {
+ Trigger r = (Trigger) it.next();
+ if(r.getName().equals(triggerName)) return r;
+ }
+
+ return null;
+ }
+
+ public static DB2Package getDb2Package(Table table, String schemaName, String pkgName, String pkgUniqueID) {
+ Schema schema = LUWCatalogView.getSchema(table, schemaName);
+ if (schema instanceof LUWCatalogSchema) {
+ return ((LUWCatalogSchema)schema).getDB2Package(pkgName, pkgUniqueID);
+ }
+ return null;
+ }
+
+
+ public static void loadDependencies(Connection connection, EList dependencyList, Table table) throws SQLException {
+ final Database database = table.getSchema().getDatabase();
+ final DatabaseDefinition databaseDefinition = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry().getDefinition(database);
+ final DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery("SELECT BSCHEMA, BNAME, BTYPE FROM SYSCAT.TABDEP WHERE TABSCHEMA='" //$NON-NLS-1$
+ + LUWUtil.getIdentifier(table.getSchema().getName()) + "' AND TABNAME='" + LUWUtil.getIdentifier(table.getName()) + "'"); //$NON-NLS-1$ //$NON-NLS-2$
+ try {
+ while(r.next()) {
+ final String bschema = r.getString(1).trim();
+ final String bname = r.getString(2);
+ final String btype = r.getString(3);
+ SQLObject obj = null;
+ if(btype.equals("A")) { //alias //$NON-NLS-1$
+ obj = LUWCatalogView.getTable(table, bschema, bname);
+ }
+ else if(btype.equals("F")) { //function //$NON-NLS-1$
+ obj = LUWCatalogView.getRountine(table, bschema, bname);
+ }
+ else if(btype.equals("N")) { //nickname //$NON-NLS-1$
+ obj = LUWCatalogView.getTable(table, bschema, bname);
+ }
+ else if(btype.equals("O")) { //privilege //$NON-NLS-1$
+ continue;
+ }
+ else if(btype.equals("I")) { //index //$NON-NLS-1$
+ obj = LUWCatalogView.getIndex(table, bschema, bname);
+ }
+ else if(btype.equals("R")) { //structure type //$NON-NLS-1$
+ obj = LUWCatalogView.getUserDefinedType(table, bschema, bname);
+ }
+ else if(btype.equals("S")) { //MQT //$NON-NLS-1$
+ obj = LUWCatalogView.getTable(table, bschema, bname);
+ }
+ else if(btype.equals("T")) { //table //$NON-NLS-1$
+ obj = LUWCatalogView.getTable(table, bschema, bname);
+ }
+ else if(btype.equals("U")) { //typed table //$NON-NLS-1$
+ obj = LUWCatalogView.getTable(table, bschema, bname);
+ }
+ else if(btype.equals("V")) { //view //$NON-NLS-1$
+ obj = LUWCatalogView.getTable(table, bschema, bname);
+ }
+ else if(btype.equals("W")) { //typed view //$NON-NLS-1$
+ obj = LUWCatalogView.getTable(table, bschema, bname);
+ }
+ else {
+ continue;
+ }
+
+ if(obj == null) continue;
+ Dependency dep = (Dependency) factory.create(SQLSchemaPackage.eINSTANCE.getDependency());
+ dep.setTargetEnd(obj);
+ dependencyList.add(dep);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ r.close();
+ s.close();
+ }
+
+ private Collection getImpactedObjects(){
+ Collection impacts = new ArrayList();
+ Connection connection = this.getConnection();
+ impacts.addAll(LUWCatalogTable.getImpactedAlias(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTables(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedRoutines(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedTriggers(connection, this));
+ impacts.addAll(LUWCatalogTable.getImpactedPackages(connection, this));
+ return impacts;
+ }
+
+
+ protected void getPrivilegesWithFilter(String granteeFilter) throws SQLException {
+ if (this.privilegeLoaded) return;
+ EList privileges = super.getPrivileges();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ LUWCatalogTable.loadPrivileges(this.getConnection(), privileges, this,granteeFilter);
+ }catch( Exception e){
+ }
+ this.eSetDeliver(deliver);
+ }
+
+ private static final String PROP_VIEW_VIEWINFO = "PROP_VIEW_VIEWINFO"; //$NON-NLS-1$
+
+ private boolean columnsLoaded = false;
+ private boolean viewLoaded = false;
+ private boolean triggerLoaded = false;
+ private boolean dependencyLoaded = false;
+ private boolean privilegeLoaded = false;
+ private boolean updatable;
+ private boolean impactsLoaded = false;
+ private Collection impacts = new ArrayList();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogWrapper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogWrapper.java
new file mode 100644
index 0000000..7dc2c7c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogWrapper.java
@@ -0,0 +1,214 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericWrapperImpl;
+
+/**
+ * @author gsauere
+ */
+public class LUWCatalogWrapper extends LUWGenericWrapperImpl implements ICatalogObject {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#refresh()
+ */
+ public void refresh() {
+ this.propertiesLoaded = false;
+
+ if (this.serversLoaded) {
+ this.serversLoaded = false;
+ this.servers.clear();
+ }
+
+ if (this.optionsLoaded) {
+ this.optionsLoaded = false;
+ this.getOptions().clear();
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getConnection()
+ */
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getCatalogDatabase()
+ */
+ public Database getCatalogDatabase() {
+ return this.getLUWDatabase();
+ }
+
+ public String getDescription(){
+ if (!this.propertiesLoaded) this.loadProperties();
+ return this.description;
+ }
+
+ public EList getOptions() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getOptions();
+ } else {
+ if(!this.optionsLoaded) this.loadOptions();
+ return super.getOptions();
+ }
+ }
+
+ public EList getServers(){ //@gsauere
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getServers();
+ } else {
+ if(!this.serversLoaded) this.loadServers();
+ return super.getServers();
+ }
+ }
+
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ int id = eDerivedStructuralFeatureID(eFeature);
+ if(id == LUWPackage.LUW_WRAPPER__DESCRIPTION) {
+ this.getDescription();
+ }
+ else if(id == LUWPackage.LUW_WRAPPER__OPTIONS) {
+ this.getOptions();
+ }
+ else if(id == LUWPackage.LUW_WRAPPER__SERVERS){ //@gsauere
+ this.getServers();
+ }
+
+ return super.eIsSet(eFeature);
+ }
+
+ private synchronized void loadOptions() {
+ if(this.optionsLoaded) return;
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ EList options = super.getOptions();
+ options.clear();
+ LUWCatalogWrapper.loadOptions(this.getConnection(),this,options);
+ this.optionsLoaded = true;
+ }
+ catch (Exception e) {
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadOptions(Connection connection, LUWGenericWrapper wrapper, EList options) throws SQLException {
+ String query = "SELECT OPTION, SETTING FROM SYSCAT.WRAPOPTIONS WHERE WRAPNAME ='" //$NON-NLS-1$
+ + wrapper.getName() + "'"; //$NON-NLS-1$
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String name = r.getString("OPTION"); //$NON-NLS-1$
+ final String value = r.getString("SETTING"); //$NON-NLS-1$
+ LUWOption option = LUWFactory.eINSTANCE.createLUWOption();
+ option.setName(name);
+ option.setValue(value);
+ options.add(option);
+ if (name != null && value != null && name.toUpperCase().equals( "DB2_FENCED" )) //$NON-NLS-1$
+ {
+ boolean bFenced = value.toUpperCase().equals( "Y" ) ? true : false; //$NON-NLS-1$
+ wrapper.setFenced( bFenced );
+ }
+ }
+ }
+ catch(Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+
+ private synchronized void loadProperties() {
+ if(this.propertiesLoaded) return;
+ Connection connection = this.getConnection();
+ if(connection == null) return;
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+
+ try {
+ LUWCatalogWrapper.loadProperties(this.getConnection(),this);
+ this.propertiesLoaded = true;
+ }
+ catch (Exception e) {
+ }
+
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadProperties(Connection connection, LUWGenericWrapper wrapper) throws SQLException {
+ String query = "SELECT REMARKS FROM SYSCAT.WRAPPERS" + //$NON-NLS-1$
+ " WHERE WRAPNAME='" + wrapper.getName() + "'"; //$NON-NLS-1$ //$NON-NLS-2$
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ final String description = r.getString("REMARKS"); //$NON-NLS-1$
+ wrapper.setDescription(description);
+ }
+ }
+ catch(Exception e) {
+ }
+ r.close();
+ s.close();
+ }
+
+ private synchronized void loadServers() { //@gsauere
+ if(this.serversLoaded) return ;
+ EList serversList = super.getServers();
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ try {
+ for (Iterator it=this.getLUWDatabase().getServers().iterator(); it.hasNext(); )
+ {
+ LUWCatalogFederatedServer server = (LUWCatalogFederatedServer)it.next();
+ if (server.getWrapperName().equalsIgnoreCase(this.getName())) {
+ serversList.add(server);
+ }
+ }
+ }
+ catch(Exception e) {
+ }
+ this.serversLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+
+ private boolean serversLoaded = false;
+ private boolean propertiesLoaded = false;
+ private boolean optionsLoaded = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXmlSchema.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXmlSchema.java
new file mode 100644
index 0000000..8a2b0a9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXmlSchema.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.sql.Blob;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionFilter;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.DatabaseConnectionRegistry;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl;
+
+/**
+ * @author debbani
+ */
+public class LUWCatalogXmlSchema extends DB2XMLSchemaImpl implements ICatalogObject {
+
+ private boolean dependencyLoaded = false;
+ private boolean xmlSchemaDocLoaded = false;
+
+ public static final String XSD_EXTENSION = ".xsd"; //$NON-NLS-1$
+ /**
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#refresh()
+ */
+ public void refresh() {
+
+ // set to unloaded status to force reload next time
+ if(this.xmlSchemaDocLoaded){
+ this.xmlSchemaDocs.clear();
+ this.xmlSchemaDocLoaded = false;
+ }
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ /**
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getConnection()
+ */
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ /**
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getCatalogDatabase()
+ */
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+ public EList getXmlSchemaDocs() {
+ if (LUWOverwriteStatus.IS_OVERWRITE) {
+ return super.getXmlSchemaDocs();
+ } else {
+ if(!this.xmlSchemaDocLoaded) this.loadXmlSchemaDocs();
+ return this.xmlSchemaDocs;
+ }
+ }
+
+ private synchronized void loadXmlSchemaDocs()
+ {
+ if(this.xmlSchemaDocLoaded) return;
+ EList xmlSchemaDocList = super.getXmlSchemaDocs();
+
+ boolean deliver = this.eDeliver();
+ this.eSetDeliver(false);
+ Connection connection = this.getConnection();
+ try {
+
+ LUWCatalogXmlSchema.loadXMLSchemaDocs(connection,xmlSchemaDocList, this);
+ }
+ catch (Exception e) {
+ }
+ this.xmlSchemaDocLoaded = true;
+ this.eSetDeliver(deliver);
+ }
+
+ public static void loadXMLSchemaDocs(Connection connection, EList xmlSchemaDocList, DB2XMLSchema xmlSchema) throws SQLException {
+ Object[] oldList = xmlSchemaDocList.toArray();
+ xmlSchemaDocList.clear();
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(xmlSchema.getSchema().getDatabase());
+ ConnectionFilter xmlSchemaDocFilter = connectionInfo.getFilter(xmlSchema.getName()+"::"+ConnectionFilter.XML_SCHEMA_DOC_FILTER); //$NON-NLS-1$
+ if (xmlSchemaDocFilter == null) { //default jar filter
+ xmlSchemaDocFilter = connectionInfo.getFilter(ConnectionFilter.XML_SCHEMA_DOC_FILTER);
+ }
+ String filterStr = ""; //$NON-NLS-1$
+ if (xmlSchemaDocFilter != null) {
+ filterStr += "SCHEMALOCATION " + xmlSchemaDocFilter.getPredicate(); //$NON-NLS-1$
+ filterStr = " AND (" + filterStr; //$NON-NLS-1$
+ filterStr += ") "; //$NON-NLS-1$
+ }
+
+ String query = "SELECT H.HTYPE, C.SCHEMALOCATION, C.TARGETNAMESPACE, C.COMPONENTID, C.STATUS, C.COMPONENT" //$NON-NLS-1$
+ + " FROM SYSCAT.XSROBJECTCOMPONENTS C, SYSCAT.XSROBJECTHIERARCHIES H" //$NON-NLS-1$
+ + " WHERE C.OBJECTNAME='" + xmlSchema.getName() + "' AND " //$NON-NLS-1$ //$NON-NLS-2$
+ + " C.OBJECTSCHEMA= '" + xmlSchema.getSchema().getName() + "' AND " //$NON-NLS-1$ //$NON-NLS-2$
+ + " C.COMPONENTID = H.COMPONENTID"; //$NON-NLS-1$
+
+ if (xmlSchemaDocFilter != null) {
+ query += filterStr;
+ }
+
+ Statement s = connection.createStatement();
+ ResultSet r = s.executeQuery(query);
+
+ try {
+ while(r.next()) {
+ DB2XMLSchemaDocument xmlSchemaDoc = null;
+
+ final String schemaLocation = r.getString("SCHEMALOCATION"); //$NON-NLS-1$
+
+ EClass metaclass = DB2ModelPackage.eINSTANCE.getDB2XMLSchemaDocument();
+
+ if (metaclass != null)
+ {
+ String docName = null;
+
+ if (schemaLocation != null && !schemaLocation.trim().equals(""))
+ {
+ if (schemaLocation.toLowerCase().endsWith(XSD_EXTENSION)) {
+ // if the schemaLocation ends in .xsd, throw the .xsd extension away from the display name
+ docName = schemaLocation.substring(schemaLocation.lastIndexOf("/") + 1, schemaLocation.lastIndexOf('.')); //$NON-NLS-1$
+ }
+ else {
+ // only take the last part of the name that doesn't contain slashes, retaining any other kind of extension
+ docName = schemaLocation.substring(schemaLocation.lastIndexOf("/") + 1); //$NON-NLS-1$;
+ }
+ }
+ else
+ {
+ // since we don't have a non-blank schema location, just use the component ID for display
+ final long componentId = r.getLong("COMPONENTID"); //$NON-NLS-1$
+ docName = String.valueOf(componentId); // doc name is without file extension
+ }
+
+
+ Object element = LUWCatalogXmlSchema.findElement(oldList,docName,metaclass);
+ if (element != null) {
+ // we already have the model object in the schema
+ xmlSchemaDoc = (DB2XMLSchemaDocument) element;
+ ((ICatalogObject)xmlSchema).refresh();
+ } else {
+ // create the model object
+ xmlSchemaDoc = new LUWCatalogXmlSchemaDocument();
+ xmlSchemaDoc.setName(docName);
+ xmlSchemaDoc.setSchemaLocation(schemaLocation);
+ }
+ // populate the model object
+ final String targetNamespace = r.getString("TARGETNAMESPACE"); //$NON-NLS-1$
+ xmlSchemaDoc.setTargetNamespace(targetNamespace);
+
+ final String htype = r.getString("HTYPE"); //$NON-NLS-1$
+ if (htype.equals("P")) //$NON-NLS-1$
+ xmlSchemaDoc.setPrimary(true);
+ }
+ xmlSchemaDocList.add(xmlSchemaDoc);
+
+ // get the xsd blob
+ Blob xsd = r.getBlob("COMPONENT"); //$NON-NLS-1$
+ if (xsd != null){
+
+ InputStream xsdStream = xsd.getBinaryStream();
+
+ // construct path and filename for cached file storage
+ // the path is unique for connection,db,dbscheman and xmlschema
+ String xmlschemaPath = xmlSchema.getName();
+ String path = LUWCatalogSchema.getXSDSourceCacheRoot(connectionInfo, xmlSchema.getSchema()) + xmlschemaPath;
+ // create directories and file
+ File dir = new File(path);
+ dir.mkdirs();
+ File xsdFile = new File(dir,xmlSchemaDoc.getName() + XSD_EXTENSION);
+
+ // copy file to system path (buffered)
+ FileOutputStream fos = new FileOutputStream(xsdFile);
+ BufferedOutputStream bos = new BufferedOutputStream(fos);
+ BufferedInputStream bis = new BufferedInputStream(xsdStream);
+ byte b[];
+ b = new byte[bis.available()];
+ bis.read(b);
+ bos.write(b);
+ bis.close();
+ bos.close();
+
+ // everything's fine, so set filename to xsd model object
+ xmlSchemaDoc.setFileName(path + File.separator + xmlSchemaDoc.getName() + XSD_EXTENSION);
+ }
+ }
+ }catch (Exception e) {
+ // nothing happening here
+ }finally{
+ r.close();
+ s.close();
+ }
+ }
+
+ private static Object findElement(Object[] list, String name,EClass metaclass){
+ Object object = null;
+ for (int i = 0; i < list.length; i++){
+ SQLObject sqlObject = (SQLObject) list[i];
+ if (sqlObject.getName().equals(name) && sqlObject.eClass() == metaclass && sqlObject instanceof ICatalogObject){
+ object = list[i];
+ break;
+ }
+ }
+ return object;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXmlSchemaDocument.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXmlSchemaDocument.java
new file mode 100644
index 0000000..3b3f4cd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXmlSchemaDocument.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl;
+
+/**
+ * @author debbani
+ */
+public class LUWCatalogXmlSchemaDocument extends DB2XMLSchemaDocumentImpl implements ICatalogObject {
+ private boolean loaded = false;
+ private boolean dependencyLoaded = false;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#refresh()
+ */
+ public void refresh() {
+ this.loaded = false;
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getConnection()
+ */
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getCatalogDatabase()
+ */
+ public Database getCatalogDatabase() {
+ return this.getXmlSchema().getSchema().getDatabase();
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXsrObject.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXsrObject.java
new file mode 100644
index 0000000..3b7fe97
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWCatalogXsrObject.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XSRObjectImpl;
+
+/**
+ * @author debbani
+ */
+public class LUWCatalogXsrObject extends DB2XSRObjectImpl implements ICatalogObject {
+ private boolean loaded = false;
+ private boolean dependencyLoaded = false;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#refresh()
+ */
+ public void refresh() {
+ this.loaded = false;
+
+ if (this.dependencyLoaded){
+ this.dependencies.clear();
+ this.dependencyLoaded = false;
+ }
+
+ RefreshManager.getInstance().referesh(this);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getConnection()
+ */
+ public Connection getConnection() {
+ Database database = this.getCatalogDatabase();
+ return ((LUWCatalogDatabase) database).getConnection();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.rdb.internal.core.rte.ICatalogObject#getCatalogDatabase()
+ */
+ public Database getCatalogDatabase() {
+ return this.getSchema().getDatabase();
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWOverwriteStatus.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWOverwriteStatus.java
new file mode 100644
index 0000000..99a8ee2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWOverwriteStatus.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+public class LUWOverwriteStatus {
+ public static boolean IS_OVERWRITE = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWServerCatalogProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWServerCatalogProvider.java
new file mode 100644
index 0000000..b910ddb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/LUWServerCatalogProvider.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.util.Collection;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+
+public interface LUWServerCatalogProvider {
+ Collection getLUWServers(LUWDatabase db);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/ModuleCatalogProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/ModuleCatalogProvider.java
new file mode 100644
index 0000000..bc04f35
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/ModuleCatalogProvider.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.util.Collection;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage;
+
+public interface ModuleCatalogProvider {
+ public Collection<LUWModule> getModules(Connection connection, DB2Schema schema);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/OlapCatalogProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/OlapCatalogProvider.java
new file mode 100644
index 0000000..9d9302d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/OlapCatalogProvider.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.sql.Connection;
+import java.util.Collection;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+
+
+public interface OlapCatalogProvider {
+ Collection getOlapobjects(Connection connection,DB2Schema schema);
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/RemoteCatalogProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/RemoteCatalogProvider.java
new file mode 100644
index 0000000..2c9c6e8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/RemoteCatalogProvider.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+
+public interface RemoteCatalogProvider {
+ RemoteServer getRemoteServer(LUWGenericServer federatedSever);
+//TODO: added getDatabase
+ Database getDatabase(RelationalRemoteServer rrSever);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/StorageProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/StorageProvider.java
new file mode 100644
index 0000000..8dcaf6c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/StorageProvider.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+
+public interface StorageProvider {
+ Collection getPartitionGroups(LUWCatalogDatabase db);
+ LUWPartitionKey getPartitionKey(LUWStorageTable table);
+ Collection getBufferPools(LUWCatalogDatabase db);
+ LUWTableSpace getTablespace(LUWDatabase db, String tspName);
+ Collection getDataPartition(LUWStorageTable table);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/DatabaseREProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/DatabaseREProvider.java
new file mode 100644
index 0000000..d23bf22
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/DatabaseREProvider.java
@@ -0,0 +1,490 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+import org.eclipse.datatools.enablement.ibm.db2.DB2PluginActivator;
+import org.eclipse.datatools.enablement.ibm.util.CloneUtil;
+import org.eclipse.datatools.enablement.ibm.util.DBReverseProvider;
+//bgp import org.eclipse.datatools.enablement.ibm.db2.util.ImplicitRelationshipHandler;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcoreFactory;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+
+public class DatabaseREProvider
+{
+ public static final int EXCLUDE_INDEXES = 1;
+ public static final int EXCLUDE_TRIGGERS = 2;
+ public static final int GENERATE_IMPLICIT_RELATIONSHIPS= 4;
+ public static final int EXCLUDE_TABLES = 8;
+ public static final int EXCLUDE_ROUTINES = 16;
+ public static final int EXCLUDE_USER_DEFINED_TYPE = 32;
+ public static final int EXCLUDE_SEQUENCE = 64;
+ public static final int EXCLUDE_TABLESPACE = 128;
+ public static final int EXCLUDE_VIEWS = 256;
+ public static final int EXCLUDE_SYNONYMS = 512;
+ public static final int GENERATE_IMPLICIT_PKS = 1024;
+ public static final int EXCLUDE_ACCESS_CONTROL = 2048;
+ public static final int EXCLUDE_FGAC = 4096;
+
+ public static final String LOAD_PROPERTY = "LOAD_PROPERTY"; //$NON-NLS-1$
+ public static final String IS_BATCH_LOAD = "BATCH_LOAD"; //$NON-NLS-1$
+ public static final String LOAD_OPTIONS = "LOAD_OPTIONS"; //$NON-NLS-1$
+ public static final String OWNER_LOAD_OPTION ="OWNER_LOAD_OPTION"; //$NON-NLS-1$
+ public static final String OwnerFilterSelected ="isOwnerFilterSelected"; //$NON-NLS-1$
+
+ private boolean isOwnerForRE;
+
+//<bgp public void reverseEngineer( //
+// Database db, int opts, List<String> colNamesToIgnore, //
+// EObject[] objsToRE, IProgressMonitor progMonitor)
+// {
+// this.database = db;
+// this.options = opts;
+// this.columnNamesToIgnore = colNamesToIgnore;
+// this.objectsToRE = objsToRE;
+// this.monitor = progMonitor;
+//
+// this.loadAndBuild();
+//bgp> }
+
+//<bgp public void loadAndBuild()
+// {
+// int len = objectsToRE.length;
+// if (len ==0)
+// return;
+//
+// ContainmentService service = RDBCorePlugin.getDefault().getContainmentService();
+// EObject db = service.getRootElement(objectsToRE[0]);
+//
+// this.setLoadProperties(db);
+//
+// //owner EAnnoation check
+// EAnnotation ownerEAnnoation=((SQLObject)objectsToRE[0]).getEAnnotation(OWNER_LOAD_OPTION);
+// if (ownerEAnnoation != null) {
+// EMap<String, String> ownerEmap = ownerEAnnoation.getDetails();
+// String ownerValue = ownerEmap.get(OwnerFilterSelected);
+// isOwnerForRE = Boolean.parseBoolean(ownerValue);
+// }
+//
+// //DBReverseProvider provider = DatabaseREProvider.getDBReverseProvider(database);
+// DBReverseProvider reProvider = getDBReverseProvider(database);
+// if (reProvider != null) {
+// reProvider.prepareLoader(database, options, objectsToRE);
+// }
+//
+// if(!isOwnerForRE) {
+// int count = 100 / len;
+//
+// for (int objCount = 0; objCount < objectsToRE.length; objCount++)
+// {
+// CatalogLoadUtil.load(objectsToRE[objCount], monitor, count >> 2);
+//
+// if (monitor.isCanceled())
+// {
+// return;
+// }
+// }
+// }
+//
+// this.handleDatabaseVendors();
+//
+// if ((this.options & GENERATE_IMPLICIT_PKS) == GENERATE_IMPLICIT_PKS && !monitor.isCanceled())
+// {
+// this.generateImplicitPK(this.database);
+// }
+//
+// if ((this.options & GENERATE_IMPLICIT_RELATIONSHIPS) == GENERATE_IMPLICIT_RELATIONSHIPS && !monitor.isCanceled())
+// {
+// this.generateExplicitRelationship(this.database);
+// }
+//
+// this.resetLoadProperties(db);
+//
+// this.resetOwnerProperties(objectsToRE[0]);
+//
+// copyAttribute(db,this.database);
+//bgp> }
+
+ protected void handleDatabaseVendors()
+ {
+ if (database.getVendor().equals("Derby")) { //$NON-NLS-1$
+ this.buildVertex(objectsToRE);
+ }
+ else {
+ this.cloneVertex(objectsToRE);
+ }
+
+ this.refresh(objectsToRE);
+ }
+
+ public void buildVertex(EObject[] objsToRE) {
+ EObject[] targets = new EObject[objsToRE.length];
+ for (int i = 0; i< objsToRE.length; i++){
+ targets[i] = this.database;
+ }
+
+ EObject[] cloned = this.buildVertex(targets,objsToRE);
+
+ for (int i = 0; i < cloned.length; i++) {
+ if ((cloned[i] instanceof Database)) {
+ Database db = (Database)cloned[i];
+
+ if ((this.options & EXCLUDE_ACCESS_CONTROL)== EXCLUDE_ACCESS_CONTROL) {
+ Iterator it = db.getAuthorizationIds().iterator();
+ while(it.hasNext()) {
+ AuthorizationIdentifier aId = (AuthorizationIdentifier) it.next();
+
+ aId.getReceivedPrivilege().clear();
+ aId.getReceivedRoleAuthorization().clear();
+ }
+
+ db.getAuthorizationIds().clear();
+ }
+ }
+ else if ((cloned[i] instanceof Schema)) {
+ Schema schema = (Schema)cloned[i];
+
+ if ( (this.options & (EXCLUDE_TRIGGERS|EXCLUDE_INDEXES)) != 0 ) {
+ Iterator it = schema.getTables().iterator();
+ while(it.hasNext()) {
+ Table t = (Table) it.next();
+
+ if ((this.options & EXCLUDE_TRIGGERS)== EXCLUDE_TRIGGERS) {
+ t.getTriggers().clear();
+ }
+
+ if ((this.options & EXCLUDE_INDEXES)== EXCLUDE_INDEXES) {
+ t.getIndex().clear();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ protected EObject[] buildVertex(EObject[] parent, EObject[] object){
+ EObject[] newObjects = CloneUtil.clone(parent, object);
+
+ return newObjects;
+ }
+
+//<bgp protected void generateExplicitRelationship(Database db) {
+// ImplicitRelationshipHandler handler = ImplicitRelationshipHandler.INSTANCE;
+// handler.setColumnNamesToIgnore(columnNamesToIgnore);
+//
+// Iterator it = db.getSchemas().iterator();
+// while(it.hasNext()) {
+// Schema s = (Schema) it.next();
+//
+// handler.FindAndCreate(s);
+// }
+//
+// // Clear out columnNamesToIgnore just to be sure
+// handler.setColumnNamesToIgnore(null);
+//bgp> }
+
+ protected void generateImplicitPK(Database db) {
+ CatalogLoadUtil.generateImplicitPK(db);
+ }
+
+ protected void cloneVertex(EObject[] objsToRE) {
+ EObject[] targets = new EObject[objsToRE.length];
+ EObject[] newObjects = new EObject[1];
+
+ for (int i = 0; i< objsToRE.length; i++){
+ targets[i] = this.database;
+ }
+
+ if(!isOwnerForRE){
+ newObjects = CloneUtil.clone(targets, objsToRE);
+ }
+
+ DBReverseProvider reProvider = getDBReverseProvider(database);
+
+ if (reProvider != null) {
+ reProvider.reverseEngineer(database, options, objsToRE, monitor);
+
+ //fix for wsdbu00679720, for some specific vendors eg. z/os,remove the needless object in the specific handler
+ if(newObjects != null){
+ reProvider.removeNeedlessObjects(newObjects,options);
+ }
+ }
+ else {
+ //fix for wsdbu00641207, remove the needless object from the model
+ if (newObjects != null) {
+ removeNeedlessObjects(newObjects);
+ }
+ }
+ }
+
+ protected void removeNeedlessObjects(EObject[] clonedObjects)
+ {
+ for (int i = 0; i < clonedObjects.length; i++) {
+ if ((clonedObjects[i] instanceof Database)) {
+ Database db = (Database) clonedObjects[i];
+
+ if ((this.options & EXCLUDE_ACCESS_CONTROL) == EXCLUDE_ACCESS_CONTROL) {
+ Iterator it = db.getAuthorizationIds().iterator();
+ while (it.hasNext()) {
+ AuthorizationIdentifier aId = (AuthorizationIdentifier)it.next();
+
+ aId.getReceivedPrivilege().clear();
+ aId.getReceivedRoleAuthorization().clear();
+ }
+
+ db.getAuthorizationIds().clear();
+ }
+ }
+ else if ((clonedObjects[i] instanceof Schema)) {
+ Schema schema = (Schema) clonedObjects[i];
+
+ if ((this.options & EXCLUDE_ROUTINES) == EXCLUDE_ROUTINES) {
+ schema.getRoutines().clear();
+ }
+
+ if ((this.options & EXCLUDE_USER_DEFINED_TYPE) == EXCLUDE_USER_DEFINED_TYPE) {
+ schema.getUserDefinedTypes().clear();
+ }
+
+ if ((this.options & EXCLUDE_SEQUENCE) == EXCLUDE_SEQUENCE) {
+ schema.getSequences().clear();
+ }
+
+ if ( (this.options & EXCLUDE_TABLES) == EXCLUDE_TABLES
+ || (this.options & EXCLUDE_VIEWS) == EXCLUDE_VIEWS
+ || (this.options & EXCLUDE_SYNONYMS) == EXCLUDE_SYNONYMS)
+ {
+ List<Table> needRemovedTables = new ArrayList<Table>();
+
+ Iterator it = schema.getTables().iterator();
+ while (it.hasNext()) {
+ Table t = (Table) it.next();
+
+ // TODO GLD odd that we don't actually look for synonyms?
+ if ((this.options & EXCLUDE_TABLES) == EXCLUDE_TABLES) {
+ if (t instanceof BaseTable) {
+ needRemovedTables.add(t);
+ }
+ }
+ else if ((this.options & EXCLUDE_VIEWS) == EXCLUDE_VIEWS) {
+ if (t instanceof ViewTable) {
+ needRemovedTables.add(t);
+ }
+ }
+ }
+
+ schema.getTables().removeAll( needRemovedTables );
+ }
+
+ if ((this.options & EXCLUDE_TABLES) != EXCLUDE_TABLES
+ && ((this.options & EXCLUDE_TRIGGERS) == EXCLUDE_TRIGGERS //
+ || (this.options & EXCLUDE_INDEXES) == EXCLUDE_INDEXES))
+ {
+ Iterator it = schema.getTables().iterator();
+ while (it.hasNext()) {
+ Table t = (Table) it.next();
+
+ if ((this.options & EXCLUDE_TRIGGERS) == EXCLUDE_TRIGGERS) {
+ t.getTriggers().clear();
+ }
+
+ if ((this.options & EXCLUDE_INDEXES) == EXCLUDE_INDEXES) {
+ t.getIndex().clear();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ protected void refresh(EObject[] objsToRE)
+ {
+ for (int i = 0; i < objsToRE.length; i++) {
+ EObject obj = objsToRE[i];
+
+ if (obj instanceof ICatalogObject)
+ ((ICatalogObject) obj).refresh();
+ }
+ }
+
+ protected void setLoadProperties(EObject db){
+ if (!(db instanceof SQLObject))
+ return;
+
+ EAnnotation eAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
+ eAnnotation.setSource(LOAD_PROPERTY);
+ eAnnotation.getDetails().put(IS_BATCH_LOAD, Boolean.TRUE.toString());
+ eAnnotation.getDetails().put(LOAD_OPTIONS, Integer.toString( this.options ));
+
+ ((SQLObject)db).getEAnnotations().add(eAnnotation);
+ }
+
+ protected void resetLoadProperties(EObject db)
+ {
+ if ( !(db instanceof SQLObject) )
+ return;
+
+ EList eAnnotations = ((SQLObject)db).getEAnnotations();
+ for (Iterator iter = eAnnotations.iterator(); iter.hasNext();){
+ EAnnotation eAnnotation = (EAnnotation)iter.next();
+
+ String source = eAnnotation.getSource();
+
+ if (source != null && source.equals(LOAD_PROPERTY)) {
+ eAnnotations.remove( eAnnotation);
+
+ return;
+ }
+ }
+ }
+
+ protected void resetOwnerProperties(EObject ownerObject)
+ {
+ if ( !(ownerObject instanceof SQLObject) )
+ return;
+
+ EList eAnnotations = ((SQLObject)ownerObject).getEAnnotations();
+ for (Iterator iter = eAnnotations.iterator(); iter.hasNext();){
+ EAnnotation eAnnotation = (EAnnotation)iter.next();
+
+ String source = eAnnotation.getSource();
+
+ if (source != null && source.equals(OWNER_LOAD_OPTION)) {
+ eAnnotations.remove( eAnnotation);
+ return;
+ }
+ }
+ }
+
+ private static void copyAttribute(EObject src,EObject target)
+ {
+ EClass c = src.eClass();
+
+ Iterator it = c.getEAllAttributes().iterator();
+ while(it.hasNext()) {
+ EAttribute a = (EAttribute) it.next();
+
+ if (a.isChangeable() && !a.isDerived())
+ copyAttribute(a, src, target);
+ }
+ }
+
+ private static void copyAttribute(EAttribute attribute, EObject src, EObject target)
+ {
+ if ( !src.eIsSet(attribute)) {
+ return;
+ }
+
+ if ( FeatureMapUtil.isFeatureMap(attribute) )
+ {
+ FeatureMap srcFeatureMap = (FeatureMap)src.eGet(attribute);
+ FeatureMap tgtFeatureMap = (FeatureMap)src.eGet(attribute);
+
+ Iterator i = srcFeatureMap.iterator();
+ while(i.hasNext()) {
+ FeatureMap.Entry entry = (FeatureMap.Entry)i.next();
+
+ EStructuralFeature feature = entry.getEStructuralFeature();
+
+ if ( !(feature instanceof EReference) ) {
+ tgtFeatureMap.add(entry);
+ }
+ }
+ }
+ else if(attribute.isMany()) {
+ ((Collection)target.eGet(attribute)).addAll( (Collection)src.eGet(attribute) );
+ }
+ else {
+ target.eSet(attribute, src.eGet(attribute));
+ }
+ }
+
+ protected DBReverseProvider getDBReverseProvider(Database db)
+ {
+ if ( this.provider != null)
+ return this.provider;
+
+ String dbProduct = db.getVendor();
+
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core","dbReverseProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+
+ for ( int j = 0; j < configElements.length; ++j ) {
+ if ( configElements[j].getName().equals("provider") ) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+
+ if ( !product.equals(dbProduct) )
+ continue;
+
+ String version = configElements[j].getAttribute("version"); //$NON-NLS-1$
+
+ try {
+ this.provider = (DBReverseProvider)configElements[j].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status( IStatus.ERROR, //
+ RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR, //
+ "The error was detected when creating the db reverse provider for " //$NON-NLS-1$
+ + product + " " + version, e ); //$NON-NLS-1$
+
+ DB2PluginActivator.getInstance().getLog().log(status);
+ }
+
+ break;
+ }
+ }
+ }
+
+ return this.provider;
+ }
+
+ protected Database database = null;
+ protected int options;
+ protected List<String> columnNamesToIgnore;
+ protected IProgressMonitor monitor;
+ protected EObject[] objectsToRE;
+ protected DBReverseProvider provider;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/GUIOption.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/GUIOption.java
new file mode 100644
index 0000000..3798a8a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/GUIOption.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.util.Vector;
+
+public class GUIOption
+{
+ public GUIOption(String aName, Vector theValues, String defVal,
+ boolean editable, boolean required, boolean multivalueAllowed,
+ boolean alter, String delimiter, String platform, String hints,
+ String description)
+ {
+ name = aName;
+ values = theValues;
+ defaultValue = defVal;
+ this.editable = editable;
+ this.required = required;
+ this.multivalueAllowed = multivalueAllowed;
+ this.alter = alter;
+ this.delimiter = delimiter;
+ this.platform = platform;
+ this.hints = hints;
+ this.description = description;
+ }
+ public void setName(String aName)
+ {
+ name = aName;
+ }
+ public String getName()
+ {
+ return name;
+ }
+ public void setValues(Vector vals)
+ {
+ values = vals;
+ }
+ public Vector getValues()
+ {
+ return values;
+ }
+ public void setDefaultValue(String defVal)
+ {
+ defaultValue = defVal;
+ }
+ public String getDefaultValue()
+ {
+ return defaultValue;
+ }
+ public void setEditable(boolean editable)
+ {
+ this.editable = editable;
+ }
+ public boolean isEditable()
+ {
+ return editable;
+ }
+ public void setRequired(boolean required)
+ {
+ this.required = required;
+ }
+ public boolean isRequired()
+ {
+ return required;
+ }
+ public boolean isMultiValueAllowed()
+ {
+ return multivalueAllowed;
+ }
+ public boolean isAlteringAllowed()
+ {
+ return alter;
+ }
+
+ public void setDelimiter(String d)
+ {
+ delimiter = d;
+ }
+ public String getDelimiter()
+ {
+ return delimiter;
+ }
+ public void setPlatform(String p)
+ {
+ platform = p;
+ }
+ public String getPlatform()
+ {
+ return platform;
+ }
+ public void setHints(String h)
+ {
+ hints = h;
+ }
+ public String getHints()
+ {
+ return hints;
+ }
+ public void setDescription(String d)
+ {
+ description = d;
+ }
+ public String getDescription()
+ {
+ return description;
+ }
+
+ /* Name of the column*/
+ private String name;
+ /* Possible values */
+ private Vector values;
+ /* Default Value */
+ private String defaultValue;
+ /*Is this GUI component editable*/
+ private boolean editable;
+ /* Is thins GUI component required*/
+ private boolean required;
+
+ private String delimiter;
+ private boolean multivalueAllowed;
+ private boolean alter;
+ private String platform;
+ private String hints;
+ private String description;
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWCatalogMessages.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWCatalogMessages.java
new file mode 100644
index 0000000..d946920
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWCatalogMessages.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import org.eclipse.osgi.util.NLS;
+
+public final class LUWCatalogMessages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util.LUWCatalogMessages";//$NON-NLS-1$
+
+ private LUWCatalogMessages() {
+ }
+
+ public static String STAT_TIME;
+ public static String STAT_TIME_DES;
+ public static String STAT_CARD;
+ public static String STAT_CARD_DES;
+ public static String STAT_NPAGES;
+ public static String STAT_NPAGES_DES;
+ public static String STAT_FPAGES;
+ public static String STAT_FPAGES_DES;
+ public static String STAT_OVERFLOW;
+ public static String STAT_OVERFLOW_DES;
+ public static String STAT_ACTIVE_BLOCKS;
+ public static String STAT_ACTIVE_BLOCKS_DES;
+ public static String STAT_AVG_COMPRESSEDROWSIZE;
+ public static String STAT_AVG_COMPRESSEDROWSIZE_DES;
+ public static String STAT_AVG_ROW_COMPRESSION_RATIO;
+ public static String STAT_AVG_ROW_COMPRESSION_RATIO_DES;
+ public static String STAT_AVG_ROW_SIZE;
+ public static String STAT_AVG_ROW_SIZE_DES;
+ public static String STAT_PCT_ROWS_COMPRESSED;
+ public static String STAT_PCT_ROWS_COMPRESSED_DES;
+ public static String STAT_PCT_PCT_PAGES_SAVED;
+ public static String STAT_PCT_PCT_PAGES_SAVED_DES;
+ public static String STAT_COL_CARD;
+ public static String STAT_COL_CARD_DES;
+ public static String STAT_HIGH2KEY;
+ public static String STAT_HIGH2KEY_DES;
+ public static String STAT_LOW2KEY;
+ public static String STAT_LOW2KEY_DES;
+ public static String STAT_AVG_COLLEN;
+ public static String STAT_AVG_COLLEN_DES;
+ public static String STAT_NUMNULLS;
+ public static String STAT_NUMNULLS_DES;
+ public static String STAT_SUB_COUNT;
+ public static String STAT_SUB_COUNT_DES;
+ public static String STAT_SUB_DELIM_LENGTH;
+ public static String STAT_SUB_DELIM_LENGTH_DES;
+ public static String STAT_NLEAF;
+ public static String STAT_NLEAF_DES;
+ public static String STAT_NLEVELS;
+ public static String STAT_NLEVELS_DES;
+ public static String STAT_FIRST_KEYCARD;
+ public static String STAT_FIRST_KEYCARD_DES;
+ public static String STAT_FIRST2_KEYCARD;
+ public static String STAT_FIRST2_KEYCARD_DES;
+ public static String STAT_FIRST3_KEYCARD;
+ public static String STAT_FIRST3_KEYCARD_DES;
+ public static String STAT_FIRST4_KEYCARD;
+ public static String STAT_FIRST4_KEYCARD_DES;
+ public static String STAT_FULL_KEYCARD;
+ public static String STAT_FULL_KEYCARD_DES;
+ public static String STAT_CLUSTER_RATIO;
+ public static String STAT_CLUSTER_RATIO_DES;
+ public static String STAT_CLUSTER_FACTOR;
+ public static String STAT_CLUSTER_FACTOR_DES;
+ public static String STAT_SEQUENTIAL_PAGES;
+ public static String STAT_SEQUENTIAL_PAGES_DES;
+ public static String STAT_DENSITY;
+ public static String STAT_DENSITY_DES;
+ public static String STAT_PAGE_FETCH_PAIRS;
+ public static String STAT_PAGE_FETCH_PAIRS_DES;
+ public static String STAT_NUMRIDS;
+ public static String STAT_NUMRIDS_DES;
+ public static String STAT_NUMRIDS_DELETED;
+ public static String STAT_NUMRIDS_DELETED_DES;
+ public static String STAT_NUM_EMPTY_LEAFS;
+ public static String STAT_NUM_EMPTY_LEAFS_DES;
+ public static String STAT_AVERAGE_RANDOM_FETCH_PAGES;
+ public static String STAT_AVERAGE_RANDOM_FETCH_PAGES_DES;
+ public static String STAT_AVERAGE_RANDOM_PAGES;
+ public static String STAT_AVERAGE_RANDOM_PAGES_DES;
+ public static String STAT_AVERAGE_SEQUENCE_GAP;
+ public static String STAT_AVERAGE_SEQUENCE_GAP_DES;
+ public static String STAT_AVERAGE_SEQUENCE_FETCH_GAP;
+ public static String STAT_AVERAGE_SEQUENCE_FETCH_GAP_DES;
+ public static String STAT_AVERAGE_SEQUENCE_PAGES;
+ public static String STAT_AVERAGE_SEQUENCE_PAGES_DES;
+ public static String STAT_AVERAGE_SEQUENCE_FETCH_PAGES;
+ public static String STAT_AVERAGE_SEQUENCE_FETCH_PAGES_DES;
+ public static String STAT_AVERAGE_PARTITION_CLUSTERRATIO;
+ public static String STAT_AVERAGE_PARTITION_CLUSTERRATIO_DES;
+ public static String STAT_AVERAGE_PARTITION_CLUSTERFACTOR;
+ public static String STAT_AVERAGE_PARTITION_CLUSTERFACTOR_DES;
+ public static String STAT_AVERAGE_PARTITION_PAGE_FETCH_PAIRS;
+ public static String STAT_AVERAGE_PARTITION_PAGE_FETCH_PAIRS_DES;
+ public static String STAT_DATAPARTITION_CLUSTERFACTOR;
+ public static String STAT_DATAPARTITION_CLUSTERFACTOR_DES;
+ public static String STAT_INDCARD;
+ public static String STAT_INDCARD_DES;
+ public static String STAT_IOS_PER_INVOC;
+ public static String STAT_IOS_PER_INVOC_DES;
+ public static String STAT_INSTS_PER_INVOC;
+ public static String STAT_INSTS_PER_INVOC_DES;
+ public static String STAT_IOS_PER_ARGBYTE;
+ public static String STAT_IOS_PER_ARGBYTE_DES;
+ public static String STAT_INSTS_PER_ARGBYTE;
+ public static String STAT_INSTS_PER_ARGBYTE_DES;
+ public static String STAT_PERCENT_ARGBYTE;
+ public static String STAT_PERCENT_ARGBYTE_DES;
+ public static String STAT_INITIAL_IOS;
+ public static String STAT_INITIAL_IOS_DES;
+ public static String STAT_INITIAL_INSTS;
+ public static String STAT_INITIAL_INSTS_DES;
+ public static String STAT_ROUTINE_CARDINALITY;
+ public static String STAT_ROUTINE_CARDINALITY_DES;
+ public static String STAT_SELECTIVITY;
+ public static String STAT_SELECTIVITY_DES;
+
+ //STAT COLDIST
+ public static String STAT_COLDIST;
+ public static String STAT_COLDIST_DES;
+ public static String STAT_COLDIST_TYPE;
+ public static String STAT_COLDIST_TYPE_DES;
+ public static String STAT_COLDIST_TYPE_F;
+ public static String STAT_COLDIST_TYPE_F_DES;
+ public static String STAT_COLDIST_TYPE_Q;
+ public static String STAT_COLDIST_TYPE_Q_DES;
+ public static String STAT_COLDIST_SEQNO;
+ public static String STAT_COLDIST_SEQNO_DES;
+ public static String STAT_COLDIST_COLVALUE;
+ public static String STAT_COLDIST_COLVALUE_DES;
+ public static String STAT_COLDIST_VALCOUNT;
+ public static String STAT_COLDIST_VALCOUNT_DES;
+ public static String STAT_COLDIST_DISTCOUNT;
+ public static String STAT_COLDIST_DISTCOUNT_DES;
+
+
+
+
+ //FE
+ public static String FE_TABLESPACE_NO_CONTAINER;
+ public static String FE_DATATYPE_IS_NULL;
+ public static String FE_REFERENCED_PARENT_KEY_DOES_NOT_EXIST;
+ public static String FE_REFERENCED_PARENT_TABLE_DOES_NOT_EXIST;
+ public static String FE_VIEW_HAS_NO_BODY;
+ public static String FE_MQT_HAS_NO_BODY;
+ public static String FE_BUFFERPOOL_INVAILD_SIZE_VALUE;
+ public static String FE_GENERATED_COLUMN_HAS_NO_EXPRESSION;
+ public static String FE_ALTER_TABLE_ADD_COLUMN_IDENTITY_OPTIONS;
+ public static String FE_INVALID_MODEL;
+ public static String FE_INDEX_MEMBERS_NOT_SPECIFIED;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, LUWCatalogMessages.class);
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWCatalogMessages.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWCatalogMessages.properties
new file mode 100644
index 0000000..4bfbfae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWCatalogMessages.properties
@@ -0,0 +1,160 @@
+# NLS_MESSAGEFORMAT_VAR needed to handle quotes correctly
+#
+#
+# Copyright (c) 2004, 2014 IBM Corporation and others.
+# 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:
+# IBM Corporation - initial API and implementation
+#
+
+STAT_TIME = Statistics time
+STAT_TIME_DES = Last time when any change was made to recorded statistics for this table.
+
+## Table
+STAT_CARD = Number of rows
+STAT_CARD_DES = Number of rows
+STAT_NPAGES = Number of pages with rows
+STAT_NPAGES_DES = Number of pages that contain rows
+STAT_FPAGES = Number of pages in use
+STAT_FPAGES_DES = Number of pages in use
+STAT_OVERFLOW = Number of rows that overflow
+STAT_OVERFLOW_DES = Number of rows that overflow
+STAT_ACTIVE_BLOCKS = Number of blocks that contain data
+STAT_ACTIVE_BLOCKS_DES = Number of blocks that contain data
+STAT_AVG_COMPRESSEDROWSIZE = Average length of compressed row
+STAT_AVG_COMPRESSEDROWSIZE_DES = Average length of compressed row
+STAT_AVG_ROW_COMPRESSION_RATIO = Average compression ratio
+STAT_AVG_ROW_COMPRESSION_RATIO_DES = Average compression ratio by row
+STAT_AVG_ROW_SIZE = Average row size
+STAT_AVG_ROW_SIZE_DES = Average length (in bytes) of both compressed and uncompressed rows in the table
+STAT_PCT_ROWS_COMPRESSED = Percentage of the compressed row
+STAT_PCT_ROWS_COMPRESSED_DES = Percentage of the compressed row
+STAT_PCT_PCT_PAGES_SAVED = Percentage of pages for row compression
+STAT_PCT_PCT_PAGES_SAVED_DES = Percentage of pages saved in the table as a result of row compression
+
+## Column
+STAT_COL_CARD = Number of distinct values
+STAT_COL_CARD_DES = Number of distinct values
+STAT_HIGH2KEY = Second highest data value
+STAT_HIGH2KEY_DES = Second highest data value
+STAT_LOW2KEY = Second lowest data value
+STAT_LOW2KEY_DES = Second lowest data value
+STAT_AVG_COLLEN = Average column length
+STAT_AVG_COLLEN_DES = Average space (in bytes) required for the column
+STAT_NUMNULLS = Number of null values
+STAT_NUMNULLS_DES = Contains the number of nulls in a column.
+STAT_SUB_COUNT = Average number of sub-elements
+STAT_SUB_COUNT_DES = Average number of sub-elements in the column
+STAT_SUB_DELIM_LENGTH = Average length of the delimiters
+STAT_SUB_DELIM_LENGTH_DES = Average length of the delimiters that separate each sub-element in the column
+
+## Index
+
+STAT_NLEAF = Number of leaf pages
+STAT_NLEAF_DES = Number of leaf pages
+STAT_NLEVELS = Number of index levels
+STAT_NLEVELS_DES = Number of index levels
+STAT_FIRST_KEYCARD = Number of distinct first key values
+STAT_FIRST_KEYCARD_DES = Number of distinct first key values
+STAT_FIRST2_KEYCARD = Number of distinct keys using the first two columns
+STAT_FIRST2_KEYCARD_DES = Number of distinct keys using the first two columns of the index
+STAT_FIRST3_KEYCARD = Number of distinct keys using the first three columns
+STAT_FIRST3_KEYCARD_DES = Number of distinct keys using the first three columns of the index
+STAT_FIRST4_KEYCARD = Number of distinct keys using the first four columns
+STAT_FIRST4_KEYCARD_DES = Number of distinct keys using the first four columns of the index
+STAT_FULL_KEYCARD = Number of distinct full key values
+STAT_FULL_KEYCARD_DES = Number of distinct full key values
+STAT_CLUSTER_RATIO = Cluster ratio
+STAT_CLUSTER_RATIO_DES = Degree of data clustering with the index
+STAT_CLUSTER_FACTOR = Cluster factor
+STAT_CLUSTER_FACTOR_DES = A finer measurement of degree of clustering
+STAT_SEQUENTIAL_PAGES = Sequential pages
+STAT_SEQUENTIAL_PAGES_DES = Number of leaf pages located on disk in index key order with few or no large gaps between them
+STAT_DENSITY = Density
+STAT_DENSITY_DES = Ratio of SEQUENTIAL_PAGES to number of pages in the range of pages occupied by the index
+STAT_PAGE_FETCH_PAIRS = Page fetch pairs
+STAT_PAGE_FETCH_PAIRS_DES = A list of pairs of integers. Each pair represents the number of pages in a hypothetical buffer, and the number of page fetches required to scan the index using that hypothetical buffer.
+STAT_NUMRIDS = Number of RIDs
+STAT_NUMRIDS_DES = Number of RIDs in the index
+STAT_NUMRIDS_DELETED = Number of RIDs marked deleted
+STAT_NUMRIDS_DELETED_DES = Number of RIDs marked deleted
+STAT_NUM_EMPTY_LEAFS = Number of empty leafs
+STAT_NUM_EMPTY_LEAFS_DES = Number of leaf pages in the index on which all RIDs are marked deleted
+STAT_AVERAGE_RANDOM_FETCH_PAGES = Average number of random table pages
+STAT_AVERAGE_RANDOM_FETCH_PAGES_DES = Average number of random table pages between sequential page accesses when fetching using the index
+STAT_AVERAGE_RANDOM_PAGES = Average number of random index pages
+STAT_AVERAGE_RANDOM_PAGES_DES = Average number of random index pages between sequential index page accesses
+STAT_AVERAGE_SEQUENCE_GAP = Average sequence gap
+STAT_AVERAGE_SEQUENCE_GAP_DES = Gap between index page sequences.
+STAT_AVERAGE_SEQUENCE_FETCH_GAP = Average sequence fetch gap
+STAT_AVERAGE_SEQUENCE_FETCH_GAP_DES = Gap between table page sequences when fetching using the index
+STAT_AVERAGE_SEQUENCE_PAGES = Average sequence pages
+STAT_AVERAGE_SEQUENCE_PAGES_DES = Average number of index pages accessible in sequence
+STAT_AVERAGE_SEQUENCE_FETCH_PAGES = Average sequence fetch pages
+STAT_AVERAGE_SEQUENCE_FETCH_PAGES_DES = Average number of table pages accessible in sequence when fetching using the index
+STAT_AVERAGE_PARTITION_CLUSTERRATIO = Average partition cluster ratio
+STAT_AVERAGE_PARTITION_CLUSTERRATIO_DES = Degree of data clustering within a single data partition
+STAT_AVERAGE_PARTITION_CLUSTERFACTOR = Average partition cluster factor
+STAT_AVERAGE_PARTITION_CLUSTERFACTOR_DES = Fine measurement of the degree of data clustering within a single data partition
+STAT_AVERAGE_PARTITION_PAGE_FETCH_PAIRS = Average partition page fetch pairs
+STAT_AVERAGE_PARTITION_PAGE_FETCH_PAIRS_DES = A list of paired integers representing a potential buffer pool size and the corresponding page fetches required to access a single data partition from the table
+STAT_DATAPARTITION_CLUSTERFACTOR = Data partition cluster factor
+STAT_DATAPARTITION_CLUSTERFACTOR_DES = Clustering of the index keys with regard to data partitions
+STAT_INDCARD = Cardinality of the index
+STAT_INDCARD_DES = Cardinality of the index
+
+##Routine
+STAT_IOS_PER_INVOC = Number of I/Os per invocation
+STAT_IOS_PER_INVOC_DES = Estimated number of I/Os per invocation
+STAT_INSTS_PER_INVOC = Number of instructions per invocation
+STAT_INSTS_PER_INVOC_DES = Estimated number of instructions per invocation
+STAT_IOS_PER_ARGBYTE = Number of I/Os per input argument byte
+STAT_IOS_PER_ARGBYTE_DES = Estimated number of I/Os per input argument byte
+STAT_INSTS_PER_ARGBYTE = Number of instructions per input argument byte
+STAT_INSTS_PER_ARGBYTE_DES = Estimated number of instructions per input argument byte
+STAT_PERCENT_ARGBYTE = Average percent of input argument bytes
+STAT_PERCENT_ARGBYTE_DES = Estimated average percent of input argument bytes that the routine will actually read
+STAT_INITIAL_IOS = Number of I/Os the first/last time the routine is invoked
+STAT_INITIAL_IOS_DES = Estimated number of I/Os performed the first/last time the routine is invoked
+STAT_INITIAL_INSTS = Number of instructions the first/last time the routine is invoked
+STAT_INITIAL_INSTS_DES = Estimated number of instructions executed the first/last time the routine is invoked
+STAT_ROUTINE_CARDINALITY = Predicted cardinality of a table function
+STAT_ROUTINE_CARDINALITY_DES = The predicted cardinality of a table function
+STAT_SELECTIVITY = Selectivity
+STAT_SELECTIVITY_DES = Used for user-defined predicates
+
+##COLDIST
+STAT_COLDIST = Distribution {0}
+STAT_COLDIST_DES = Distribution {0}
+STAT_COLDIST_TYPE = Type of statistic collected
+STAT_COLDIST_TYPE_F = Type of statistic collected
+STAT_COLDIST_TYPE_F_DES = Type of statistic collected -- Frequency
+STAT_COLDIST_TYPE_Q = Type of statistic collected
+STAT_COLDIST_TYPE_Q_DES = Type of statistic collected -- Quantile value
+STAT_COLDIST_TYPE_DES = Type of statistic collected. F = Frequency Q = Quantile value
+STAT_COLDIST_SEQNO = Nth Most frequent value
+STAT_COLDIST_SEQNO_DES = Nth Most frequent value or Nth quantile value
+STAT_COLDIST_COLVALUE = The data value
+STAT_COLDIST_COLVALUE_DES = The data value
+STAT_COLDIST_VALCOUNT = Occurrences of data value
+STAT_COLDIST_VALCOUNT_DES = Occurrences of data value in the column
+STAT_COLDIST_DISTCOUNT = Number of distinct values less then data value
+STAT_COLDIST_DISTCOUNT_DES = Number of distinct values less then data value
+
+
+#FE
+FE_TABLESPACE_NO_CONTAINER = The table space {0} has no container
+FE_DATATYPE_IS_NULL = The data type of the object {0} is null
+FE_REFERENCED_PARENT_KEY_DOES_NOT_EXIST = The parent keys referenced by foreign key {0} do not exist
+FE_REFERENCED_PARENT_TABLE_DOES_NOT_EXIST = The parent table referenced by foreign key {0} does not exist
+FE_VIEW_HAS_NO_BODY = The view {0} has no SELECT statement
+FE_MQT_HAS_NO_BODY = The MQT {0} has no SELECT statement
+FE_BUFFERPOOL_INVAILD_SIZE_VALUE = Invalid value specified for "SIZE" in bufferpool {0}
+FE_GENERATED_COLUMN_HAS_NO_EXPRESSION = The generated column {0} has no generation expression
+FE_ALTER_TABLE_ADD_COLUMN_IDENTITY_OPTIONS = Uncheck the identity checkbox for the new column {0} and try again
+FE_INVALID_MODEL = The model is invalid, please check the problem view to make the correction.
+FE_INDEX_MEMBERS_NOT_SPECIFIED = The key columns have not been specified for the index {0}.
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWDdlParser.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWDdlParser.java
new file mode 100644
index 0000000..65d020c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWDdlParser.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.enablement.ibm.db2.ddl.DB2DdlParser;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+
+public class LUWDdlParser extends DB2DdlParser {
+
+ public LUWDdlParser(DatabaseDefinition def){
+ super(def);
+ }
+
+ public DB2MaterializedQueryTable parseMQT(String mqtText) {
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+ DB2MaterializedQueryTable mqt = (DB2MaterializedQueryTable)factory.create(LUWPackage.eINSTANCE.getLUWMaterializedQueryTable());
+
+ String body = mqtText;
+ String[] tokens = mqtText.split("\\s[Aa][Ss]\\s",2);
+ if (tokens.length > 1) {
+ body = tokens[1].trim();
+ }
+ int pos = this.parseMQTFullStatement(body);
+ if (pos != -1) {
+ body = body.substring(1,pos);
+ }
+ QueryExpression queryExpression = (QueryExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getQueryExpressionDefault());
+ mqt.setQueryExpression(queryExpression);
+ queryExpression.setSQL(body);
+ return mqt;
+ }
+
+ public void parseTrigger (Trigger trigger,String triggerText){
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+
+ String body = triggerText;
+ String whenClause=""; //$NON-NLS-1$
+
+ Pattern pattern1 = java.util.regex.Pattern.compile("[\\s]*CREATE.*[\\s]+?TRIGGER(.*)ON(.*)[\\s]+?FOR[\\s]+?EACH[\\s]+?(.*)",java.util.regex.Pattern.CASE_INSENSITIVE|java.util.regex.Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher1 = pattern1.matcher(triggerText);
+ if (matcher1.matches()) {
+ this.parseUpdateColumns(matcher1.group(1).trim(),trigger);
+ this.parseReferencingCluase(matcher1.group(2).trim(),trigger);
+ body = matcher1.group(3).trim();
+ if (body.toUpperCase().startsWith("ROW")) {
+ body = body.substring("ROW".length() +1);
+ } else if (body.toUpperCase().startsWith("STATEMENT")) {
+ body = body.substring("STATEMENT".length() +1);
+ }
+ Pattern pattern = java.util.regex.Pattern.compile("[\\s]*MODE[\\s]+?DB2SQL(.*)",java.util.regex.Pattern.CASE_INSENSITIVE|java.util.regex.Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher = pattern.matcher(body);
+ if (matcher.matches()) {
+ body = matcher.group(1).trim();
+ int whenPos = this.parseWhenClause(body);
+ if (whenPos >= 0) {
+ whenClause = body.substring(body.indexOf("(")+1,whenPos); //$NON-NLS-1$
+ body = body.substring(whenPos+1).trim();
+ }
+ } else {
+ int whenPos = this.parseWhenClause(body);
+ if (whenPos >= 0) {
+ whenClause = body.substring(body.indexOf("(")+1,whenPos); //$NON-NLS-1$
+ body = body.substring(whenPos+1).trim();
+ }
+ }
+
+ }
+
+ SearchCondition searchCondition = (SearchCondition) factory.create(SQLExpressionsPackage.eINSTANCE.getSearchConditionDefault());
+ trigger.setWhen(searchCondition);
+ ((SearchConditionDefault)searchCondition).setSQL(whenClause);
+
+
+ SQLStatement sqlbody = (SQLStatement) factory.create(SQLStatementsPackage.eINSTANCE.getSQLStatementDefault());
+ ((SQLStatementDefault)sqlbody).setSQL(body);
+ trigger.getActionStatement().add(sqlbody);
+
+ }
+
+/* public void parseView (ViewTable view,String viewText){
+ try {
+ Database[] dbs = new Database[]{view.getSchema().getDatabase()};
+ Schema schema = view.getSchema();
+ DDLParser luwParser = this.def.getDdlParser();
+ if (luwParser == null) return;
+
+ File temp = File.createTempFile("luwview", ".ddl");
+
+ // Delete temp file when program exits.
+ temp.deleteOnExit();
+
+ // Write to temp file
+ BufferedWriter out = new BufferedWriter(new FileWriter(temp));
+ String currentSchema= "SET SCHEMA " + schema.getName() + ";" + System.getProperty("line.separator");
+ out.write(currentSchema);
+ out.write(viewText);
+ out.write(" ;");
+ out.close();
+
+ view.getSchema().getTables().remove(view);
+ ViewTable tempView = null;
+ luwParser.parse(temp.getAbsolutePath(), dbs, null);
+ for (Iterator iter = schema.getTables().iterator(); iter.hasNext();){
+ Table table = (Table) iter.next();
+ if (table.getName().equals(view.getName()) && table instanceof ViewTable) {
+ tempView = (ViewTable)table;
+ QueryExpression expression = ((ViewTable)table).getQueryExpression();
+ if (expression == null) break;
+ String sqlbody = expression.getSQL();
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+ QueryExpression queryExpression = (QueryExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getQueryExpressionDefault());
+ ((QueryExpressionDefault)queryExpression).setSQL(sqlbody);
+ view.setQueryExpression(queryExpression);
+
+ break;
+ }
+ }
+
+ if (tempView != null) {
+ schema.getTables().remove(tempView);
+ }
+
+ schema.getTables().add(view);
+
+ } catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+*/
+ private int parseMQTFullStatement(String body){
+ int pos = -1;
+ int matches = 0;
+ for (int i = 0; i < body.length(); i++) {
+ if (body.charAt(i)=='(') {
+ matches++;
+ } else if (body.charAt(i) ==')') {
+ matches--;
+ if (matches == 0) {
+ pos = i;
+ break;
+ }
+ }
+ }
+
+ return pos;
+
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWUtil.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWUtil.java
new file mode 100644
index 0000000..38d36db
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/LUWUtil.java
@@ -0,0 +1,129 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.DB2LUWPluginActivator;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+public class LUWUtil {
+
+ private final static String SINGLE_QUOTE = "'"; //$NON-NLS-1$
+
+ public static String getIdentifier(String name) {
+ String identifier = name;
+ identifier = identifier.replaceAll("'", "''");
+ return identifier;
+ }
+
+
+ public static String getSingleQuotedString(String orignal) {
+ if (orignal.startsWith(SINGLE_QUOTE) && orignal.endsWith(SINGLE_QUOTE)) {
+ return orignal;
+ }
+
+ StringTokenizer tokenizer = new StringTokenizer(orignal, SINGLE_QUOTE);
+ String result = orignal;
+ if (tokenizer.hasMoreTokens()) {
+ result = tokenizer.nextToken();
+ } else {
+ return result;
+ }
+ while(tokenizer.hasMoreTokens()) {
+ result = result + SINGLE_QUOTE + SINGLE_QUOTE + tokenizer.nextToken();
+ }
+ return SINGLE_QUOTE + result + SINGLE_QUOTE;
+ }
+
+ public Privilege findPrivileges (Object[] privilegelist, String grantee){
+ for (int i = 0; i < privilegelist.length; i++){
+ Privilege priv = (Privilege) privilegelist[i];
+ if (priv.getGrantee().getName().equals(grantee)){
+ return (Privilege) privilegelist[i];
+ }
+ }
+ return null;
+ }
+
+ public static List<String> getDiscoveredLibraries(LUWDatabase luwdb)
+ {
+ List<String> libraries = new ArrayList<String>();
+ Hashtable wrapperConfigs = new Hashtable();
+ WrapperConfigFile wrapperConfig;
+ Database database = (Database)luwdb;
+ LUWDatabaseImpl db = (LUWDatabaseImpl)database;
+ try
+ {
+ WrapperConfigManager wrapperConfigMgr = new WrapperConfigManager(db);
+ ServerKindsConfig serverKinds = wrapperConfigMgr.getServerKindsConfig();
+ //constructor initializes itself serverKinds.init(db, conn);
+ wrapperConfigs = serverKinds.getAllWCF();
+ }
+ catch (Exception e)
+ {
+ DB2LUWPluginActivator.getInstance().log(null,e);
+ }
+ //go through all the configuration files for each wrapper
+ //and get the configuration values (e.g. server type, version, etc.)
+ Enumeration configs = wrapperConfigs.keys();
+ // This is code where data sources are discovered and mentioned in DSE
+ while (configs.hasMoreElements())
+ {
+ String configID =(String)configs.nextElement();
+ wrapperConfig = (WrapperConfigFile)wrapperConfigs.get(configID);
+ try
+ {
+ String wrapperID = wrapperConfig.getWrapperID();
+ String folderName = new String();
+ if( wrapperID.equalsIgnoreCase("drda"))
+ {
+ libraries.add("DB2");
+ }
+ else if( wrapperID.equalsIgnoreCase("sqlnet") || wrapperID.equalsIgnoreCase("net8")) {
+ libraries.add("ORACLE");
+ }
+ else if( wrapperID.equalsIgnoreCase("dblib") || wrapperID.equalsIgnoreCase("ctlib")) {
+ libraries.add("SYBASE");
+ }
+ else if( wrapperID.equalsIgnoreCase("mssql3")) {
+ libraries.add("SQL_SERVER");
+ }
+ else if( wrapperID.equalsIgnoreCase("odbc")) {
+ libraries.add("ODBC");
+ }
+ else if( wrapperID.equalsIgnoreCase("informix")) {
+ libraries.add("INFORMIX");
+ }
+ else if( wrapperID.equalsIgnoreCase("teradata")) {
+ libraries.add("TERADATA");
+ }
+ else if( wrapperID.equalsIgnoreCase("jdbc")) {
+ libraries.add("JDBC");
+ }
+
+ }
+ catch (Exception e) {
+ DB2LUWPluginActivator.getInstance().log(null,e);
+ }
+ }
+ return libraries;
+ }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/ParseXMLFile.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/ParseXMLFile.java
new file mode 100644
index 0000000..5d9c2ad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/ParseXMLFile.java
@@ -0,0 +1,197 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+ /**
+ *
+ */
+ public class ParseXMLFile implements EntityResolver, ErrorHandler {
+
+ private Node rootNode = null;
+ private InputSource binDTDFile = null;
+ private InputSource binXMLFile = null;
+
+ public ParseXMLFile (InputSource DTDFile, InputSource XMLFile, String rootNodeName ) throws SAXException, IOException, ParserConfigurationException {
+ this.binDTDFile = DTDFile;
+ this.binXMLFile = XMLFile;
+
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ builder.setEntityResolver(this);
+ builder.setErrorHandler( this);
+ Document document = builder.parse(this.binXMLFile);
+ rootNode = document.getDocumentElement();
+ if (rootNodeName != null && !(rootNodeName.equals(rootNode.getNodeName())) ){
+ SAXException e = new SAXException("Not our XML file. Root is " + rootNode.getNodeName() + " but should be " + rootNodeName );
+ // ServerdiscoveryPlugin.getDefault().trace("SAX Exception: "+e.toString()); //$NON-NLS-1$
+
+ throw e;
+ }
+ }
+
+ /**
+ * Returns a DOM root node for navigating the DOM tree. The wrapperid idetifies
+ * the XML file the DOM was build from.
+ *
+ * @return a DOM root node
+ */
+ public Node getRootNode () {
+ return rootNode;
+ }
+
+ /**
+ * Set the DOM root node for navigating the DOM tree.
+ *
+ * @parm a DOM root node
+ */
+ public void setRootNode (Node n) {
+ rootNode = n;
+ }
+
+
+ /**
+ * Returns an InputSource binary stream with the XML file.
+ * This can be passed directly into the parser.
+ *
+ * @return InputSource bianry stream
+ */
+ public InputSource getBinaryXMLFile () {
+ return binXMLFile;
+ }
+
+
+ /**
+ * Returns an InputSource binary stream with the DTD file.
+ * This can be passed directly into the parser.
+ *
+ * @return InputSource bianry stream
+ */
+ public InputSource getBinaryDTDFile () {
+ return binDTDFile;
+ }
+
+ /**
+ * Sets the InputSource binary stream for the XML file.
+ *
+ * @parm InputSource bianry stream
+ */
+ public void setBinaryXMLFile (InputSource is) {
+ binXMLFile = is;
+ }
+
+
+ /**
+ * Sets the InputSource binary stream for the DTD file.
+ *
+ * @parm InputSource bianry stream
+ */
+ public void setBinaryDTDFile (InputSource is) {
+ binDTDFile = is;
+ }
+
+
+ /**
+ * Find the specified attribute in the specified node and return its value.
+ * If the attribute is not found, the default value is returned.
+ *
+ * @param node The node that contains the attribute.
+ * @param key The attribute name.
+ * @param defV The default value to return if the attribute is not found.
+ * @return a String that contains the attribute value if the attribute was
+ * found or the default value if the attribute was not found.
+ */
+ public String findAttribute( Node node, String key, String defV ) {
+ NamedNodeMap nnm = node.getAttributes();
+ if( nnm == null ) {
+ return defV;
+ }
+ for( int i = 0; i < nnm.getLength(); i++ ) {
+ Node attr = nnm.item( i );
+ if( key.equals( attr.getNodeName() ) ) {
+ return attr.getNodeValue().trim();
+ }
+ }
+ return defV;
+ }
+
+ //===========================ENTITY RESOLVER===========================
+ /**
+ * Use DTD binary InputSource for validation instead of trying to find file.
+ *
+ * @return binary DTD input source
+ */
+ public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId)
+ throws SAXException, java.io.IOException {
+ return binDTDFile;
+ }
+
+ //=================================ERROR HANDLER=============================
+ public void error( SAXParseException e ) throws SAXException {
+ //write parse error info to trace
+
+ String msg = new String("An XML Parser exception occured. Exception Text: "+e.getMessage());
+ //String msg = MessageFormat.format( WTStringPool.get(WTStringPool.DJ_WCF_PARSE_ERROR), new Object[]{e.getMessage()} );
+
+ SAXException err = new SAXException( msg);
+ //dump info to standard out
+ // ServerdiscoveryPlugin.getDefault().trace("parse error. line number:"+e.getLineNumber()+" .column number:"+e.getColumnNumber()+". message:"+e.getMessage()); //$NON-NLS-1$
+
+ //dump stack to trace
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintStream errOut = new PrintStream(baos, true);
+ e.printStackTrace(errOut);
+// System.out.println("error: "+new String(baos.toByteArray()));
+ // ServerdiscoveryPlugin.getDefault().trace("parse error: "+new String(baos.toByteArray())+err); //$NON-NLS-1$
+ throw err;
+ }
+
+ public void fatalError( SAXParseException e ) throws SAXException {
+ //write fatal parse error info to trace
+
+ String msg = new String("An XML Parser exception occured. Exception Text: "+e.getMessage());
+ SAXException err = new SAXException( msg);
+//dump info to standard out
+ // ServerdiscoveryPlugin.getDefault().trace("fatal parse error. line number:"+e.getLineNumber()+" .column number:"+e.getColumnNumber()+". message:"+e.getMessage()); //$NON-NLS-1$
+
+ //dump stack to trace
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintStream errOut = new PrintStream(baos, true);
+ e.printStackTrace(errOut);
+
+ // ServerdiscoveryPlugin.getDefault().trace("fatal error: "+new String(baos.toByteArray())+err); //$NON-NLS-1$
+
+ throw err;
+ }
+
+ public void warning( SAXParseException e ) throws SAXException {
+ //ServerdiscoveryPlugin.getDefault().trace("warning parse error. line number:"+e.getLineNumber()+" .column number:"+e.getColumnNumber()+". message:"+e.getMessage()); //$NON-NLS-1$
+
+ //do not throw this warning exception, ignore it
+ }
+ }
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/ServerKindsConfig.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/ServerKindsConfig.java
new file mode 100644
index 0000000..61f6834
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/ServerKindsConfig.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Set;
+//import com.ibm.datatools.db2.luw.serverdiscovery.WrapperConfigFile;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl;
+
+public class ServerKindsConfig {
+
+ private Hashtable libnameToWrapperid = null;
+ private Hashtable wrapperidToName = null;
+ private Hashtable nameToWrapperid = null;
+ private Hashtable nameToDescription = null;
+ private Hashtable nameToLibname = null;
+ private Hashtable allWCFiles = null;
+// private WrapperConfigFile wrapperConfigFile;
+ /**
+ * Initalize data from the XML files.
+ *
+ * @param Database object to use for connection
+ */
+ public void init (LUWDatabaseImpl aDatabase) throws Exception {
+ try{
+ //call WrapperConfigFiles.initAllFiles to get all data
+ //hashtable keys are wrapperids
+
+ Hashtable wcFiles = WrapperConfigFile.initAllFiles(aDatabase);
+ allWCFiles = wcFiles;
+ //build hastables with data
+ Set keys = wcFiles.keySet();
+ Iterator iterKeys = keys.iterator();
+
+ //create hash tables
+ libnameToWrapperid = new Hashtable();
+ wrapperidToName = new Hashtable();
+ nameToWrapperid = new Hashtable();
+ nameToDescription = new Hashtable();
+ nameToLibname = new Hashtable();
+
+ //iterate through configuration files
+ while(iterKeys.hasNext()){
+ String wrapperid = (String)iterKeys.next();
+ WrapperConfigFile wcf = (WrapperConfigFile)wcFiles.get(wrapperid);
+ String libname = wcf.getLibname();
+ //skip wrapper if library is empty
+ if(libname.length() > 0){
+ libnameToWrapperid.put(libname, wrapperid);
+ Hashtable sk = wcf.getServerKinds();
+ if(!sk.isEmpty() ){
+ Iterator iterServerKinds = sk.keySet().iterator();
+ while(iterServerKinds.hasNext()){
+ String skName = (String)iterServerKinds.next();
+ String description = (String)sk.get(skName);
+ nameToDescription.put(skName, description);
+ wrapperidToName.put(wrapperid, skName);
+ nameToWrapperid.put(skName, wrapperid);
+ nameToLibname.put(skName, libname);
+ }
+ }
+ }
+ }
+ }catch(Exception e){
+ throw e;
+ }
+ }
+
+ /**
+ * Get the list of server kinds from all the wrapper congifuration files.
+ *
+ * @param Enumeration of server kind names
+ */
+ public Enumeration getServerKinds() throws Exception {
+ return nameToDescription.keys();
+ }
+
+ /**
+ * Get the wrapper id from the library name.
+ * @param library name
+ * @return wrapper id
+ */
+ public String getWrapperID(String libName) throws Exception{
+ return (String)libnameToWrapperid.get(libName);
+ }
+
+
+ /**
+ * Get the library name from the server kind name.
+ * @param serverKindName the display name for the kind of server, returned by getServerKinds()
+ * @return library name
+ */
+ public String getLibname(String serverKindName) throws Exception{
+ return (String)nameToLibname.get(serverKindName);
+
+ }
+
+ /**
+ * Get the server kinds name from the wrapper id
+ * @param wrapperID String returned by getWrapperID
+ * @return server kinds name
+ */
+ public String getServerKindName(String wrapperID) throws Exception{
+ return (String)wrapperidToName.get(wrapperID);
+
+ }
+
+ /**
+ * Get the description form the server kind name.
+ * @param serverKindName the display name for the kind of server, returned by getServerKinds()
+ * @return library name
+ */
+ public String getDescription(String serverKindName) throws Exception{
+ return (String)nameToDescription.get(serverKindName);
+
+ }
+
+ /**
+ * Get the list of WrapperConfigFile objects returned from initAllFiles.
+ * @param serverKindName the display name for the kind of server, returned by getServerKinds()
+ * @return Hashtable key is wrapper id, object is initalized WrapperConfigFile
+ */
+ public Hashtable getAllWCF() {
+ return allWCFiles;
+ }
+
+ public Enumeration getAllWrapperIDs() throws Exception{
+ return wrapperidToName.keys();
+ }
+
+ }
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigData.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigData.java
new file mode 100644
index 0000000..d9f7f4a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigData.java
@@ -0,0 +1,198 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+
+import org.eclipse.datatools.enablement.ibm.util.CommonOptions;
+import org.w3c.dom.Node;
+import org.xml.sax.InputSource;
+
+public interface WrapperConfigData {
+ /**
+ * Returns the XML file name for this wrapper
+ *
+ * @return String of XML file names
+ */
+ public String getXMLFileName ();
+
+
+ /**
+ * Returns a DOM root node for navigating the DOM tree. The wrapperid idetifies
+ * the XML file the DOM was build from.
+ *
+ * @return a DOM root node
+ */
+ public Node getRootNode ();
+
+ /**
+ * Returns an InputSource binary stream with the XML file.
+ * This can be passed directly into the parser.
+ *
+ * @return InputSource bianry stream
+ */
+ public InputSource getBinaryXMLFile ();
+
+
+ /**
+ * Returns an InputSource binary stream with the DTD file.
+ * This can be passed directly into the parser.
+ *
+ * @return InputSource bianry stream
+ */
+ public InputSource getBinaryDTDFile ();
+
+ //====================SERVER==========================
+
+ /**
+ * returns string "windows" | "aix" | "solaris" | "hpux" | "linux" | "unix"
+ *
+ * @return server platform type
+ */
+ public String getServerPlatform ();
+
+ /**
+ * get a list of server type names
+ *
+ * @return Enumeration of server type names
+ */
+ public Enumeration getServerTypes() throws Exception;
+
+ /**
+ * Get the server options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getServerOptions() throws Exception;
+
+ /**
+ * Get the server type versions
+ *
+ * @parm serverType the name of the type of server, returned by getServerTypes
+ * @return Vector of version numbers as Strings
+ */
+ public Vector getServerVersionsByType(String serverType) throws Exception;
+
+ /**
+ * Get the server kinds name and description. The Name is the hash key ,
+ * the description is hash value.
+ * <p>Hashtable key is a String - name
+ * <p>Hashtable value is a String - description
+ * @return Hashtable key is server kind name , object is description
+ */
+ public Hashtable getServerKinds() throws Exception;
+
+ /**
+ * Get the wrapper library name for the server's platform
+ * @return String
+ */
+ public String getLibname() throws Exception;
+
+ //====================WRAPPER===================
+
+
+ /**
+ * Get the Wrapper options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getWrapperOptions() throws Exception;
+
+ /**
+ * Get the wrapper id
+ * @return String
+ */
+ public String getWrapperID() throws Exception;
+
+ /**
+ * Get the wrapper description
+ * @return String
+ */
+ public String getWrapperDescription() throws Exception;
+
+ /**
+ * Test if sample contents is supported for this wrapper.
+ * @return returns true if supported
+ */
+ public boolean isSampleContentsAvailable() throws Exception;
+
+
+ /**
+ * Tests if userid is required for the wrapper.
+ * @return true if required
+ */
+ public boolean isServerUseridRequired() throws Exception;
+
+
+ //====================DISCOVER===================
+ /**
+ * Get the discover options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getDiscoverOptions() throws Exception;
+
+ /**
+ * Get the discover options in a vector in the same order as in the XML file.
+ * If there are no options an empty vector is returned.
+ * @return vector of GUIOption objects
+ */
+ public Vector getDiscoverOptionsVector() throws Exception;
+
+ /**
+ * Get the discover server options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getDiscoverServerOptions() throws Exception;
+
+ /**
+ * Get the discover server options in a vector in the same order as in the XML file.
+ * If there are no options an empty vector is returned.
+ * @return vector of GUIOption objects
+ */
+ public Vector getDiscoverServerOptionsVector() throws Exception;
+
+ /**
+ * Get the discover parameters in a hashtable. The hash key is the parm name.
+ *
+ * <p>Hashtable key is a String - parm name
+ * <p>Hashtable value is a String - parm value
+ * @return hashtable of parm values
+ */
+ public Hashtable getDiscoverParms() throws Exception;
+
+ /**
+ * Get the discover java class name for this wrapper.
+ *
+ * @return class name
+ */
+ public String getDiscoverClassName() throws Exception;
+
+ /**
+ * Get the CommonOption class.
+ *
+ * @return CommonOptions The commonOptions class or null if none defined.
+ */
+ public CommonOptions getCommonOptions() throws Exception;
+
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigFile.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigFile.java
new file mode 100644
index 0000000..093bda2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigFile.java
@@ -0,0 +1,1671 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.lang.ref.WeakReference;
+import java.sql.Blob;
+import java.sql.CallableStatement;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Locale;
+import java.util.Vector;
+
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.DatabaseConnectionRegistry;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.util.CommonOptions;
+import org.eclipse.datatools.enablement.ibm.util.ConfigMessage;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+public class WrapperConfigFile implements WrapperConfigData {
+ public static Vector instances = new Vector(); // Keep track of all objects to track storage use
+
+ private static final String rootNodeName = "wrapper"; // The root node of our files
+ private Node rootNode = null;
+ private String XMLFileName = null;
+ private ParseXMLFile parser = null;
+ private Hashtable textBundle = null;
+ private boolean hasPropertiesFile = false;
+
+ //wrapper
+ private boolean wrapperParsed = false;
+ private String wid = null;
+ private String libname = null;
+ private boolean sample_contents = false;
+ private boolean userid_required = false;
+ private String wrapperDescription = "";
+ private Hashtable wrapperoptionnameToOption = null;
+ private Vector vecWrapperoptionnameToOption = null;
+ private Hashtable wrapperLibraryToPlatform = null;
+ private Hashtable optionnameToKey = null;
+
+ //server
+ private boolean serverParsed = false;
+ private String serverPlatform = null;
+ private boolean fUnixServer = false;
+ private boolean allServerTypesVersionsSameDataTypes = true;
+ private Hashtable serverkindnameToDescription = null;
+ private Hashtable serveroptionnameToOption = null;
+ private Vector vecServeroptionnameToOption = null;
+ private Hashtable servertypenameToVersionlist = null; //contains vectors of versions
+ private Hashtable servertypenameandversionToDatatype = null; //contains vectors of datatypes
+
+ //discover
+ private boolean discoverParsed = false;
+ private String discoverClassName = "";
+ private Hashtable discoveroptionnameToOption = null;
+ private Hashtable discoverServerOptions = null;
+ private Vector vDiscoverOptions = null;
+ private Vector vDiscoverServerOptions = null;
+ private Hashtable discoverparmnameToParmvalue = null;
+ private Vector vDiscoverParms = null;
+// private Vector vGenericFunctions = null;
+
+ //column
+// private boolean columnParsed = false;
+// private Vector vColumnDatatypes = null;
+// private Hashtable columnoptionnameToOption = null;
+
+ //user
+ private boolean userParsed = false;
+ private Hashtable useroptionnameToOption = null;
+ private String usersMappingType = "optional";
+
+
+ //common options
+ private boolean commonOptionsParsed = false;
+ private CommonOptions commonOptions = null;
+
+ //generic functions
+// private boolean genericFunctionsParsed = false;
+// private Vector genericFunctions = null;
+
+ //enumeration values
+ public static final String SERVER_PLATFORM_AIX = "aix";
+ public static final String SERVER_PLATFORM_WINDOWS = "windows";
+ public static final String SERVER_PLATFORM_SOLARIS = "solaris" ;
+ public static final String SERVER_PLATFORM_LINUX = "linux";
+ public static final String SERVER_PLATFORM_UNIX = "unix";
+ public static final String SERVER_PLATFORM_HPUX = "hpux";
+
+
+ public static final String OPTION_PLATFORM_AIX = "aix";
+ public static final String OPTION_PLATFORM_WINDOWS = "windows";
+ public static final String OPTION_PLATFORM_SOLARIS = "solaris" ;
+ public static final String OPTION_PLATFORM_LINUX = "linux";
+ public static final String OPTION_PLATFORM_HPUX = "hpux";
+ public static final String OPTION_PLATFORM_ALLUNIX = "all_unix";
+ public static final String OPTION_PLATFORM_ALL = "all";
+
+ public static final String NICKNAME_DDLSYNTAX_WITHCOL = "with_columns";
+ public static final String NICKNAME_DDLSYNTAX_WITHOUTCOL = "without_columns";
+ public static final String NICKNAME_DDLSYNTAX_EITHER = "either ";
+
+ public static final String ATTRIBUTE_VALUE_YES = "Y";
+ public static final String ATTRIBUTE_VALUE_NO = "N";
+
+ public static final String USER_MAPPING_NOTSUPPORT = "not_supported";
+ public static final String USER_MAPPING_OPTIONAL = "optional";
+ public static final String USER_MAPPING_REQUIRED = "required";
+
+ public WrapperConfigFile() {
+ //TODO! >> Farnaz
+ //CommonUtils.removeFreedReferences(instances); // Remove any references to dialogs that have been freed
+ instances.addElement( new WeakReference(this) ); // Keep track of the dialog via a WeakReference
+ }
+
+ /**
+ * Connects to a database on the db server and runs the
+ * stored procedure to retrieve the xml file as a blob.
+ * The server platform is also retrieved.
+ *
+ * @param wrapperID
+ * @param db2_udb.Database the database object for connecting
+ */
+ public void initFile (String wrapperID, LUWDatabase aDatabase) throws Exception { //Farnaz
+ String spTrace = null;
+ Thread.dumpStack();
+ wid = wrapperID;
+ try{
+ //Context context = new Context(); //Farnaz
+ ConnectionInfo conInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(aDatabase);
+
+ Connection conn = conInfo.getSharedConnection(); //Farnaz
+ //Connection conn = aDatabase.getConnection(context); //Farnaz
+ CallableStatement callStmt = conn.prepareCall( "CALL GET_WRAP_CFG_C(?,?,?,?,?)" );
+ callStmt.setString(1, wrapperID);
+ String clientLocale = Locale.getDefault().toString();
+ if(clientLocale.length() > 5){
+ //shorten to 5 character representation
+ clientLocale = clientLocale.substring(0,5);
+ } else if(clientLocale.length() < 5){
+ //if locale is other varriant use English
+ clientLocale = "en_US";
+ }
+ callStmt.setString(2, clientLocale);
+ callStmt.registerOutParameter(3, Types.VARCHAR);
+ callStmt.registerOutParameter(4, Types.VARCHAR);
+ callStmt.registerOutParameter(5, Types.INTEGER);
+ callStmt.execute();
+ int returncode = callStmt.getInt(5);
+ if(returncode != 0){
+ //error returned from SP
+ String msg = new String ("The GET_WRAP_CFG_C stored procedure returned an error. Return code "+new String(String.valueOf(returncode))+", wrapper id: "+wrapperID+", locale: "+clientLocale);
+
+ //String msg = MessageFormat.format( WTStringPool.get(WTStringPool.DJ_WCF_SP_ERROR), new Object[]{new String(String.valueOf(returncode)), wrapperID, clientLocale} );
+ String sp_msg = getSPMessage(returncode);
+ Exception err = new Exception( msg +" "+ sp_msg);
+ // ServerdiscoveryPlugin.getDefault().trace("SP Msg!=0:"+err.toString()); //$NON-NLS-1$
+
+ throw err;
+ }
+ serverPlatform = callStmt.getString(3);
+ spTrace = callStmt.getString(4);
+// System.out.println(spTrace); //DEBUG
+// System.out.println("initFile: stored procedure trace: "+spTrace);
+ // ServerdiscoveryPlugin.getDefault().trace("Stored procedure trace:"+spTrace); //$NON-NLS-1$
+
+ ResultSet rs = callStmt.getResultSet();
+
+ int count = 1;
+ InputSource binDTDFile = null;
+ InputSource binXMLFile = null;
+ while( rs.next() ) {
+ if(count == 1){
+ ByteArrayInputStream bais = new ByteArrayInputStream(rs.getBytes(2));
+ binDTDFile = new InputSource(bais);
+ count++;
+ } else {
+ XMLFileName = rs.getString(1);
+ //XML file BLOB
+ Blob blob = rs.getBlob(2);
+ byte[] b1 = blob.getBytes(1,(int)blob.length());
+ ByteArrayInputStream bais = new ByteArrayInputStream(b1, 0, b1.length);
+ binXMLFile = new InputSource(bais);
+ //properties file BLOB
+ Blob propertiesFile = rs.getBlob(3);
+ if(propertiesFile != null){
+ byte[] b2 = propertiesFile.getBytes(1,(int)propertiesFile.length());
+ ByteArrayInputStream prop_bais = new ByteArrayInputStream(b2, 0, b2.length);
+ InputStreamReader prop_isr = new InputStreamReader(prop_bais, "UTF-8");
+ textBundle = buildResources(prop_isr);
+ hasPropertiesFile = true;
+ }
+ }
+ }
+
+ //parse XML file and save root node
+ this.parser = new ParseXMLFile(binDTDFile, binXMLFile, rootNodeName);
+ this.rootNode = parser.getRootNode();
+
+ rs.close();
+ callStmt.close();
+ //conn.close();
+ } catch (Exception e){
+ // ServerdiscoveryPlugin.getDefault().trace("initFile Exception:"+e.toString()); //$NON-NLS-1$
+
+ throw e;
+ }
+ }
+
+
+ /**
+ * Connects to a database on the db server and runs the
+ * stored procedure to retrieve all the xml files as blobs.
+ * The server platform is also retrieved.
+ *
+ * @param db2_udb.Database the database object for connecting
+ * @return Hashtable of WrapperConfigFile objects
+ */
+ public static Hashtable initAllFiles (LUWDatabase aDatabase) throws Exception { //Farnaz
+ Hashtable h = new Hashtable();
+ String spTrace = null;
+ try{
+
+ CallableStatement callStmt = null;
+ String clientLocale = null;
+
+ ConnectionInfo conInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(aDatabase);
+ Connection conn = conInfo.getSharedConnection(); //Farnaz
+
+ try {
+ callStmt = conn.prepareCall( "CALL GET_WRAP_CFG_C(?,?,?,?,?)");
+ }
+ catch (SQLException e)
+ {
+ e.printStackTrace();
+ }
+ callStmt.setString(1, "");
+ clientLocale = Locale.getDefault().toString();
+ if(clientLocale.length() > 5){
+ //shorten to 5 character representation
+ clientLocale = clientLocale.substring(0,5);
+ } else if(clientLocale.length() < 5){
+ //if locale is other varriant use English
+ clientLocale = "en_US";
+ }
+ callStmt.setString(2, clientLocale);
+ callStmt.registerOutParameter(3, Types.VARCHAR);
+ callStmt.registerOutParameter(4, Types.VARCHAR);
+ callStmt.registerOutParameter(5, Types.INTEGER);
+ callStmt.execute();
+
+ int returncode = callStmt.getInt(5);
+ if(returncode != 0){
+ //error returned from SP
+ String msg = new String ("The GET_WRAP_CFG_C stored procedure returned an error. Return code "+new String(String.valueOf(returncode))+", locale: "+clientLocale);
+
+ //String msg = MessageFormat.format( WTStringPool.get(WTStringPool.DJ_WCF_SP_ERROR_ALL), new Object[]{new String(String.valueOf(returncode)), clientLocale} );
+ String sp_msg = getSPMessage(returncode);
+ Exception err = new Exception( msg + " "+ sp_msg);
+ // ServerdiscoveryPlugin.getDefault().trace("SP Message = "+err.toString()); //$NON-NLS-1$
+
+ throw err;
+ }
+ String tempServerPlatform = callStmt.getString(3);
+ spTrace = callStmt.getString(4);
+ ResultSet rs = callStmt.getResultSet();
+ int count = 1;
+// byte[] bDTD = null;
+
+ InputSource binDTDFile = null;
+ InputSource binXMLFile = null;
+ ByteArrayInputStream baisDTD = null;
+ while( rs.next() ) {
+ if(count == 1){
+ baisDTD = new ByteArrayInputStream(rs.getBytes(2));
+ binDTDFile = new InputSource(baisDTD);
+ count++;
+ } else {
+ WrapperConfigFile wcf = new WrapperConfigFile();
+ wcf.setServerPlatform(tempServerPlatform);
+ String filename = rs.getString(1);
+ wcf.setXMLFileName(filename);
+ wcf.setWrapperID(filename.substring(0, filename.length()-4)); //remove ".xml"
+
+ //xml file BLOB
+ Blob blob = rs.getBlob(2);
+ byte[] b1 = blob.getBytes(1,(int)blob.length());
+ ByteArrayInputStream bais = new ByteArrayInputStream(b1, 0, b1.length);
+ binXMLFile = new InputSource(bais);
+
+ //properties file BLOB
+ Blob propertiesFile = rs.getBlob(3);
+ if(propertiesFile != null ){
+ byte[] b2 = propertiesFile.getBytes(1,(int)propertiesFile.length());
+ ByteArrayInputStream prop_bais = new ByteArrayInputStream(b2, 0, b2.length);
+ InputStreamReader prop_isr = new InputStreamReader(prop_bais, "UTF-8");
+ Hashtable t = wcf.buildResources(prop_isr);
+ wcf.setTextBundle(t);
+ wcf.setHasTextBundle(true);
+ }
+ try{
+ //parse XML file and save root node
+ wcf.setXMLParser( new ParseXMLFile(binDTDFile, binXMLFile, rootNodeName));
+ wcf.setRootNode( wcf.getXMLParser().getRootNode());
+ //add to hash table
+ h.put( wcf.getWrapperID() , wcf);
+ }catch(SAXException parseError){
+ parseError.printStackTrace();
+ }
+ }
+ }
+ rs.close();
+ callStmt.close();
+ //conn.close();
+ } catch (Exception e){
+ throw e;
+ }
+ return h;
+ }
+
+ /**
+ * Passes a XML file, a dtd file, and a peoperties file to parser.
+ * @param XMLFile
+ * @param DTDFile
+ * @param propertiesFile
+ */
+ public void initWithXMLFile(File XMLFile, File DTDFile, File propertiesFile)throws Exception
+ {
+ InputSource binDTDFile = null;
+ InputSource binXMLFile = null;
+
+ FileInputStream fis_xml = new FileInputStream(XMLFile);
+ InputStreamReader isr_xml = new InputStreamReader (fis_xml, "UTF-8");
+
+ BufferedReader xmlReader = new BufferedReader(isr_xml);
+ // binXMLFile = new InputSource(isr_xml); // xml file input
+ binXMLFile = new InputSource(xmlReader); // xml file input
+
+ FileInputStream fis_dtd = new FileInputStream(DTDFile);
+ InputStreamReader isr_dtd = new InputStreamReader (fis_dtd); //always english
+
+ BufferedReader dtdReader = new BufferedReader(isr_dtd);
+
+ // binDTDFile = new InputSource(isr_dtd);
+ binDTDFile = new InputSource(dtdReader);
+
+ //parse XML
+ this.parser = new ParseXMLFile(binDTDFile, binXMLFile, rootNodeName);
+ this.rootNode = parser.getRootNode();
+
+ //get strings from properties file
+ if(propertiesFile != null){
+ FileInputStream fis_prop = new FileInputStream(propertiesFile );
+ InputStreamReader isr_prop = new InputStreamReader (fis_prop, "UTF-8");
+ textBundle = buildResources(isr_prop);
+ hasPropertiesFile = true;
+ }
+ }
+
+ /**
+ * Returns the XML file name for this wrapper
+ *
+ * @return String of XML file names
+ */
+ public String getXMLFileName () {
+ return XMLFileName;
+ }
+
+ /**
+ * Returns the XML file name for this wrapper
+ *
+ * @parm String of XML file names
+ */
+ public void setXMLFileName (String f) {
+ XMLFileName = f;
+ }
+
+ /**
+ * Returns the ParseXMLFile object
+ *
+ * @return ParseXMLFile
+ */
+ public ParseXMLFile getXMLParser () {
+ return parser;
+ }
+
+ /**
+ * sets the ParseXMLFile object
+ *
+ * @parm String of XML file names
+ */
+ public void setXMLParser (ParseXMLFile p) {
+ parser = p;
+ }
+
+ /**
+ * Returns the PropertyResourceBundle object
+ *
+ * @return PropertyResourceBundle
+ */
+ public boolean hasTextBundle () {
+ return hasPropertiesFile;
+ }
+ /**
+ * Returns the Hashtable object
+ *
+ * @return Hashtable
+ */
+ public Hashtable getTextBundle () {
+ return textBundle;
+ }
+
+ /**
+ * sets the Hashtable object
+ *
+ * @parm Hashtable
+ */
+ public void setTextBundle (Hashtable p) {
+ textBundle = p;
+ }
+
+
+ /**
+ * sets the text bundle flag
+ *
+ * @parm boolean
+ */
+ public void setHasTextBundle (boolean t) {
+ hasPropertiesFile = t;
+ }
+
+ /**
+ * Returns a DOM root node for navigating the DOM tree. The wrapperid idetifies
+ * the XML file the DOM was build from.
+ *
+ * @return a DOM root node
+ */
+ public Node getRootNode () {
+ return rootNode;
+ }
+
+ /**
+ * Set the DOM root node for navigating the DOM tree.
+ *
+ * @parm a DOM root node
+ */
+ public void setRootNode (Node n) {
+ rootNode = n;
+ }
+
+ /**
+ * Returns an InputSource binary stream with the XML file.
+ * This can be passed directly into the parser.
+ *
+ * @return InputSource bianry stream
+ */
+ public InputSource getBinaryXMLFile () {
+ return parser.getBinaryXMLFile();
+ }
+
+
+ /**
+ * Returns an InputSource binary stream with the DTD file.
+ * This can be passed directly into the parser.
+ *
+ * @return InputSource bianry stream
+ */
+ public InputSource getBinaryDTDFile () {
+ return parser.getBinaryDTDFile();
+ }
+
+ //====================SERVER==========================
+
+ /**
+ * returns string "windows" | "aix" | "solaris" | "hpux" | "linux" | "unix"
+ *
+ * @return server platform type
+ */
+ public String getServerPlatform () {
+ return serverPlatform;
+ }
+
+ /**
+ * set server platform to: string "windows" | "aix" | "solaris" | "hpux" | "linux" | "unix"
+ *
+ * @parm server platform type
+ */
+ public void setServerPlatform (String sp) {
+ serverPlatform = sp;
+ }
+
+ /**
+ * get a list of server type names
+ *
+ * @return Enumeration of server type names
+ */
+ public Enumeration getServerTypes() throws Exception{
+ if(!serverParsed){
+ getServer();
+ }
+ return servertypenameToVersionlist.keys();
+ }
+
+ /**
+ * Get the server options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getServerOptions() throws Exception{
+ if(!serverParsed){
+ getServer();
+ }
+ return serveroptionnameToOption;
+ }
+
+ /**
+ * Get the server options in a vector.
+ * If there are no options an empty vector is returned.
+ * @return vector of GUIOption objects
+ */
+ public Vector getServerOptionsVector() throws Exception{
+ if(!serverParsed){
+ getServer();
+ }
+ return vecServeroptionnameToOption;
+ }
+
+ /**
+ * Get the server type versions
+ *
+ * @parm serverType the name of the type of server, returned by getServerTypes
+ * @return Vector of version numbers as Strings
+ */
+ public Vector getServerVersionsByType(String serverType) throws Exception{
+ if(!serverParsed){
+ getServer();
+ }
+ Vector v = (Vector)servertypenameToVersionlist.get(serverType);
+ return v;
+ }
+
+
+ /**
+ * Get the server kinds name and description. The Name is the hash key ,
+ * the description is hash value.
+ * <p>Hashtable key is a String - name
+ * <p>Hashtable value is a String - description
+ * @return Hashtable key is server kind name , object is description
+ */
+ public Hashtable getServerKinds() throws Exception{
+ if(!serverParsed){
+ getServer();
+ }
+ return serverkindnameToDescription;
+ }
+
+ /**
+ * Get the wrapper library name for the server's platform
+ * @return String
+ */
+ public String getLibname() throws Exception{
+ if(!serverParsed){
+ getServer();
+ }
+ return libname;
+ }
+
+ /**
+ * Tests if all server types/versions support same data types
+ *
+ * @return true if all server types/versions support same data types
+ */
+ public boolean isAllServerTypesVersionsSameDataTypes() throws Exception{
+ if(!serverParsed){
+ getServer();
+ }
+ return allServerTypesVersionsSameDataTypes;
+ }
+
+ //====================WRAPPER===================
+
+
+ /**
+ * Get the Wrapper options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getWrapperOptions() throws Exception{
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return wrapperoptionnameToOption;
+ }
+
+ /**
+ * Get the Wrapper options in a vector.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Vector getWrapperOptionsVector() throws Exception{
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return vecWrapperoptionnameToOption;
+ }
+
+ /**
+ * Get all supported paltforms' libraries in a hashtable. The hash key is the platform.
+ * <p>Hashtable key is a String - platform
+ * <p>Hashtable value is a library name
+ * @return hashtable of all supported platforms' libraries
+ */
+ public Hashtable getLibraries() throws Exception{
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return wrapperLibraryToPlatform;
+ }
+
+ /**
+ * Get the wrapper id
+ * @return String
+ */
+ public String getWrapperID() throws Exception{
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return wid;
+ }
+
+ /**
+ * Set the wrapper id
+ * @return String
+ */
+ public void setWrapperID(String w) throws Exception{
+ wid = w;
+ }
+
+ /**
+ * Get the wrapper description
+ * @return String
+ */
+ public String getWrapperDescription() throws Exception{
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return wrapperDescription;
+ }
+
+ /**
+ * Test if sample contents is supported for this wrapper.
+ * @return true if supported
+ */
+ public boolean isSampleContentsAvailable() throws Exception{
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return sample_contents;
+ }
+
+ /**
+ * Tests if userid is required for the wrapper.
+ * @return true if required
+ */
+ public boolean isServerUseridRequired() throws Exception{
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return userid_required;
+ }
+
+ /**
+ * Tests if userid is required for the server type.
+ * @deprecated This has been replaced with {@link #isServerUseridRequired()}
+ * @parm serverType the name of the type of server, returned by getServerTypes
+ * @return true if required
+ */
+ public boolean isServerUseridRequired(String serverType) throws Exception{
+ //DEPRICATED
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ return userid_required;
+ }
+
+
+ /**
+ * Get all original resource keys in a hashtable. The hash key is an option name.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a String - original key
+ * @return hashtable of all original resource keys
+ */
+ public Hashtable getOriginalKeyTable() throws Exception {
+ if(!wrapperParsed){
+ getWrapper();
+ }
+ if(!serverParsed){
+ getServer();
+ }
+ return optionnameToKey;
+ }
+
+ //====================DISCOVER===================
+ /**
+ * Get the discover options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getDiscoverOptions() throws Exception{
+ if(!discoverParsed){
+ getDiscover();
+ }
+ return discoveroptionnameToOption;
+ }
+
+ /**
+ * Get the discover server options in a hashtable. The hash key is the option name.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getDiscoverServerOptions() throws Exception{
+ if(!discoverParsed){
+ getDiscover();
+ }
+ return discoverServerOptions;
+ }
+
+ /**
+ * Get the discover options in a vector in the same order as in the XML file.
+ * If there are no options an empty vector is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return vector of GUIOption objects
+ */
+ public Vector getDiscoverOptionsVector() throws Exception{
+ if(!discoverParsed){
+ getDiscover();
+ }
+ return vDiscoverOptions;
+ }
+
+ /**
+ * Get the discover server options in a vector in the same order as in the XML file.
+ * If there are no options an empty vector is returned.
+ * @return vector of GUIOption objects
+ */
+ public Vector getDiscoverServerOptionsVector() throws Exception{
+ if(!discoverParsed){
+ getDiscover();
+ }
+ return vDiscoverServerOptions;
+ }
+
+ /**
+ * Get the discover parameters in a hashtable. The hash key is the parm name.
+ *
+ * <p>Hashtable key is a String - parm name
+ * <p>Hashtable value is a String - parm value
+ * @return hashtable of parm values
+ */
+ public Hashtable getDiscoverParms() throws Exception{
+
+ if(!discoverParsed){
+ getDiscover();
+ }
+ return discoverparmnameToParmvalue;
+ }
+
+
+ /**
+ * Get the discover parameters in a vector in the same order as in the XML file.
+ * If there are no parameters an empty vector is returned.
+ * @return vector of parameters
+ */
+ public Vector getDiscoverParmsVector() throws Exception{
+ if(!discoverParsed){
+ getDiscover();
+ }
+ return vDiscoverParms;
+ }
+
+ /**
+ * Get the discover java class name for this wrapper.
+ *
+ * @return class name
+ */
+ public String getDiscoverClassName() throws Exception{
+ if(!discoverParsed){
+ getDiscover();
+ }
+ return discoverClassName;
+ }
+
+ //====================USER===================
+
+ /**
+ * get a Hashtable of user Options. The option name is the hash key.
+ * If there are no options an empty hashtable is returned.
+ * <p>Hashtable key is a String - option name
+ * <p>Hashtable value is a GUIOption - option
+ * @return hashtable of GUIOption objects
+ */
+ public Hashtable getUserOptions() throws Exception{
+ if(useroptionnameToOption == null){
+ getUser();
+ }
+ return useroptionnameToOption;
+ }
+
+ /**
+ * Get the user mapping type. Returns static string
+ * USER_MAPPING_NOTSUPPORT, USER_MAPPING_OPTIONAL, USER_MAPPING_REQUIRED
+ * @return string for user mapping type
+ */
+
+ public String getUsersMappingType() throws Exception{
+ if(!userParsed){
+ getUser();
+ }
+ return usersMappingType;
+ }
+
+ //===============================Private methods======================================
+ /**
+ * parse wrapper data
+ */
+ private void getWrapper() throws Exception{
+ // if wid is not set from initFile(), then get it
+ if ( wid == null )
+ wid = findAttribute( rootNode, "wrapper_id", "" );
+ wrapperLibraryToPlatform = new Hashtable();
+ optionnameToKey = new Hashtable();
+ //set sample contents
+ String valueSampleConents = findAttribute( rootNode, "sample_contents", "" );
+ if(valueSampleConents.equals(ATTRIBUTE_VALUE_YES)){
+ sample_contents = true;
+ }
+ //set userid required
+ String valueUseridRequired = findAttribute( rootNode, "userid_required", "" );
+ if(valueUseridRequired.equals(ATTRIBUTE_VALUE_YES)){
+ userid_required = true;
+ }
+
+ //check if server is a UNIX variant
+ if( serverPlatform != null )
+ {
+ if(serverPlatform.equals(SERVER_PLATFORM_AIX) ||
+ serverPlatform.equals(SERVER_PLATFORM_SOLARIS) ||
+ serverPlatform.equals(SERVER_PLATFORM_UNIX) ||
+ serverPlatform.equals(SERVER_PLATFORM_LINUX) ||
+ serverPlatform.equals(SERVER_PLATFORM_HPUX) ){
+ fUnixServer = true;
+ }
+ } // end if( serverPlatform != null )
+
+ Node child = rootNode.getFirstChild();
+ while( child != null ) {
+ if( "description".equals( child.getNodeName() ) ) {
+ Node tNode = child.getFirstChild();
+ if( tNode != null ) {
+ //set wrapper description
+ wrapperDescription = tNode.getNodeValue().trim();
+ if (optionnameToKey!=null)
+ optionnameToKey.put("WRAPPER_DESC",wrapperDescription);
+ //check if wrapper has text bundle and load description from properties file
+ if(hasTextBundle() && wrapperDescription.length() > 0){
+ String textDescription = getResource(wrapperDescription);
+ if(textDescription.length() > 0){
+ wrapperDescription = textDescription;
+ }
+ }
+
+ }
+ } else if( "wrapper_options".equals( child.getNodeName() ) ) {
+ //set wrapper options
+ wrapperoptionnameToOption = getOptions(child);
+ vecWrapperoptionnameToOption = getOptionsVector(child);
+ } else if( "libraries".equals( child.getNodeName() ) ) {
+ //set library name
+ if( serverPlatform != null )
+ {
+ if(serverPlatform.equals(SERVER_PLATFORM_AIX)){
+ libname = findAttribute( child, SERVER_PLATFORM_AIX, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_WINDOWS)){
+ libname = findAttribute( child, SERVER_PLATFORM_WINDOWS, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_SOLARIS)){
+ libname = findAttribute( child, SERVER_PLATFORM_SOLARIS, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_LINUX)){
+ libname = findAttribute( child, SERVER_PLATFORM_LINUX, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_HPUX)){
+ libname = findAttribute( child, SERVER_PLATFORM_HPUX, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_UNIX)){
+ libname = findAttribute( child, SERVER_PLATFORM_UNIX, "" );
+ } else {
+ libname = ""; //empty if platform not supported
+ }
+ } // end if( serverPlatform != null )
+
+
+ // build hashtable for all supported libraries/platforms
+ libname = findAttribute( child, SERVER_PLATFORM_WINDOWS, "" );
+ if ( libname.length()>0 )
+ wrapperLibraryToPlatform.put(SERVER_PLATFORM_WINDOWS, libname);
+ libname = findAttribute( child, SERVER_PLATFORM_AIX, "" );
+ if ( libname.length()>0 )
+ wrapperLibraryToPlatform.put(SERVER_PLATFORM_AIX, libname);
+ libname = findAttribute( child, SERVER_PLATFORM_SOLARIS, "" );
+ if ( libname.length()>0 )
+ wrapperLibraryToPlatform.put(SERVER_PLATFORM_SOLARIS, libname);
+ libname = findAttribute( child, SERVER_PLATFORM_HPUX, "" );
+ if ( libname.length()>0 )
+ wrapperLibraryToPlatform.put(SERVER_PLATFORM_HPUX, libname);
+ libname = findAttribute( child, SERVER_PLATFORM_UNIX, "" );
+ if ( libname.length()>0 )
+ wrapperLibraryToPlatform.put(SERVER_PLATFORM_UNIX, libname);
+ libname = findAttribute( child, SERVER_PLATFORM_LINUX, "" );
+ if ( libname.length()>0 )
+ wrapperLibraryToPlatform.put(SERVER_PLATFORM_LINUX, libname);
+
+
+// if (libname.length() == 0){
+ //error no library name in the XML file
+// String msg = MessageFormat.format( DJStringPool.get(DJStringPool.DJ_WCF_LIBNAME_MISSING), new Object[]{wid, serverPlatform} );
+// Exception err = new Exception( msg);
+// CommonTrace.exit(trace);
+// throw err;
+// }
+ }
+ child = child.getNextSibling();
+ }
+ if(wrapperoptionnameToOption == null){
+ wrapperoptionnameToOption = new Hashtable(); //in case there are no options
+ }
+ if(vecWrapperoptionnameToOption == null){
+ vecWrapperoptionnameToOption = new Vector(); //in case there are no options
+ }
+
+ wrapperParsed = true;
+ }
+
+
+ /**
+ * parse server and serverkind data
+ */
+ private void getServer() throws Exception{
+ //check if server is a UNIX variant
+ if ( serverPlatform!=null )
+ {
+ if(serverPlatform.equals(SERVER_PLATFORM_AIX) ||
+ serverPlatform.equals(SERVER_PLATFORM_SOLARIS) ||
+ serverPlatform.equals(SERVER_PLATFORM_UNIX) ||
+ serverPlatform.equals(SERVER_PLATFORM_LINUX) ||
+ serverPlatform.equals(SERVER_PLATFORM_HPUX) ){
+ fUnixServer = true;
+ }
+ }
+
+ //create non-option hashtables
+ serverkindnameToDescription = new Hashtable();
+ servertypenameToVersionlist = new Hashtable();
+ servertypenameandversionToDatatype = new Hashtable();
+
+ Node child = rootNode.getFirstChild();
+ while( child != null ) {
+ if( "server_kind".equals( child.getNodeName() ) ) {
+ String name = findAttribute( child, "display_name", "" );
+ if (optionnameToKey!=null)
+ optionnameToKey.put("SERVER_DISPLAYNAME", name);
+
+ //check if wrapper has text bundle and load display_name from properties file
+ if(hasTextBundle() && name.length() > 0){
+ String textDisplayName = getResource(name);
+ if(textDisplayName.length() > 0){
+ name = textDisplayName;
+ }
+ }
+
+ Node descNode = child.getFirstChild();
+ String desc = "";
+ while( descNode != null ) {
+ if( "description".equals( descNode.getNodeName() ) ) { //only one of these nodes
+ Node tNode = descNode.getFirstChild();
+ if( tNode != null ) {
+ desc = tNode.getNodeValue().trim();
+ //check if wrapper has text bundle and load description from properties file
+ if(hasTextBundle() && desc.length() > 0){
+ String textDescription = getResource(desc);
+ if(textDescription.length() > 0){
+ desc = textDescription;
+ }
+ }
+ }
+ }
+ descNode = descNode.getNextSibling();
+ }
+ if(desc == null){
+ serverkindnameToDescription.put(name, "");
+ } else {
+ //set server kinds and descriptions
+ serverkindnameToDescription.put(name, desc);
+ }
+ } else if("libraries".equals( child.getNodeName() )){
+ //set library name
+ if (serverPlatform!=null)
+ {
+ if(serverPlatform.equals(SERVER_PLATFORM_AIX)){
+ libname = findAttribute( child, SERVER_PLATFORM_AIX, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_WINDOWS)){
+ libname = findAttribute( child, SERVER_PLATFORM_WINDOWS, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_SOLARIS)){
+ libname = findAttribute( child, SERVER_PLATFORM_SOLARIS, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_LINUX)){
+ libname = findAttribute( child, SERVER_PLATFORM_LINUX, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_HPUX)){
+ libname = findAttribute( child, SERVER_PLATFORM_HPUX, "" );
+ } else if(serverPlatform.equals(SERVER_PLATFORM_UNIX)){
+ libname = findAttribute( child, SERVER_PLATFORM_UNIX, "" );
+ } else {
+ libname = ""; //empty means not supported on this platform
+ }
+ }
+ } else if("servers".equals( child.getNodeName() )){
+ Node typesNode = child.getFirstChild();
+ while( typesNode != null ) {
+ if( "types".equals( typesNode.getNodeName() ) ) {
+ Node typeNode = typesNode.getFirstChild();
+ while( typeNode != null ) {
+ if( "type".equals( typeNode.getNodeName() ) ) {
+ Vector vValues = new Vector(); //new vector for each type
+ String typeName = findAttribute( typeNode, "name", "" );
+ Node versionNode = typeNode.getFirstChild();
+ while( versionNode != null ) {
+ if( "version".equals( versionNode.getNodeName() ) ) {
+ String versionValue = findAttribute( versionNode, "version_number", "" );
+ if(versionValue.length() > 0){
+ vValues.add( versionValue );
+ }
+ //get server + version specific data types
+ Node datatypeNode = versionNode.getFirstChild();
+ while( datatypeNode != null ) {
+ if( "column_datatypes".equals( datatypeNode.getNodeName() ) ) {
+ allServerTypesVersionsSameDataTypes = false;
+ Vector vVersionDataTypes = getDatatypes(datatypeNode);
+ //add data type if version has a value
+ if(versionValue.length() > 0){
+ //hash table key is servertype + version
+ servertypenameandversionToDatatype.put((typeName + versionValue), vVersionDataTypes);
+ }
+ }
+ datatypeNode = datatypeNode.getNextSibling();
+ }
+ }
+ //get server specific data types
+ if( "column_datatypes".equals( versionNode.getNodeName() ) ) {
+ allServerTypesVersionsSameDataTypes = false;
+ Vector vServerDataTypes = getDatatypes(versionNode);
+ //hash table key is servertype
+ servertypenameandversionToDatatype.put(typeName, vServerDataTypes);
+ }
+ versionNode = versionNode.getNextSibling();
+ }
+ servertypenameToVersionlist.put(typeName , vValues);
+ }
+ typeNode = typeNode.getNextSibling();
+ }
+ } else if( "server_options".equals( typesNode.getNodeName() ) ){
+ //set server options
+ serveroptionnameToOption = getOptions(typesNode);
+ vecServeroptionnameToOption = getOptionsVector(typesNode);
+ }
+ typesNode = typesNode.getNextSibling();
+ }
+ }
+ child = child.getNextSibling();
+ }
+ if(serveroptionnameToOption == null){
+ serveroptionnameToOption = new Hashtable(); //in case there are no options
+ }
+ if(vecServeroptionnameToOption == null){
+ vecServeroptionnameToOption = new Vector(); //in case there are no options
+ }
+
+ serverParsed = true;
+// if (libname.length() == 0){
+ //error no library name in the XML file
+ //if this happens it is an install error
+ //the XML file should not be installed on a server platform
+ //that does not support the wrapper
+// String msg = MessageFormat.format( DJStringPool.get(DJStringPool.DJ_WCF_LIBNAME_MISSING), new Object[]{wid, serverPlatform} );
+// Exception err = new Exception( msg);
+// CommonTrace.exit(trace);
+// throw err;
+// }
+ }
+
+ /**
+ * parse the discover data from the xml file.
+ *
+ */
+ private void getDiscover() throws Exception{
+ discoverparmnameToParmvalue = new Hashtable();
+ vDiscoverOptions = new Vector();
+ vDiscoverParms = new Vector();
+ vDiscoverServerOptions = new Vector();
+// vGenericFunctions = new Vector();
+ Node child = rootNode.getFirstChild();
+ while( child != null ) {
+ if( "discover".equals( child.getNodeName() ) ) {
+ //get class name
+ discoverClassName = findAttribute( child, "class_name","" );
+
+ //in the xml config file we have this location: com.ibm.db2.tools.wrapperTools.extensions.RelationalDiscovery
+ //the class in eclipse is in tis location:com.ibm.datatools.metadata.admintooling.discovery.RelationalDiscovery
+ //so, have to hack!
+ //ODBC Class for server discovery is the same as relational discovery. So, replace that with the RelationalDiscovery
+ //If we ever decide to support nickname discovery for ODBC we should migrate OdbcDiscovery class to this plugin
+ //The same issue for Teradata
+ int location = discoverClassName.lastIndexOf(".");
+ String discoveryClass = discoverClassName.substring(location);
+ if(discoveryClass.equalsIgnoreCase(".OdbcDiscovery") || discoveryClass.equalsIgnoreCase(".TeradataDiscovery")) {
+ discoveryClass = new String(".RelationalDiscovery");
+ }
+ discoverClassName = new String("com.ibm.datatools.db2.luw.serverdiscovery"+discoveryClass);
+ // ServerdiscoveryPlugin.getDefault().trace("Discovery Class Name="+discoverClassName); //$NON-NLS-1$
+
+ Node propertyNode = child.getFirstChild();
+ while( propertyNode != null ) {
+ if( "property".equals( propertyNode.getNodeName() ) ) {
+ String propName = findAttribute( propertyNode, "name","" );
+ Node tNode = propertyNode.getFirstChild();
+ if( tNode != null ) {
+ //set parms, parm value is a String
+ discoverparmnameToParmvalue.put(propName, tNode.getNodeValue().trim());
+ Object[] aParm = new Object[2];
+ aParm[0] = propName;
+ aParm[1] = tNode.getNodeValue().trim();
+ vDiscoverParms.add(aParm);
+ }
+ } else if( "generic_gui".equals( propertyNode.getNodeName() ) ) {
+ //get options
+ discoveroptionnameToOption = getOptions(propertyNode);
+ } else if( "serverObject_gui".equals( propertyNode.getNodeName() ) ) {
+ //get options
+ discoverServerOptions = getOptions(propertyNode);
+ }
+ propertyNode = propertyNode.getNextSibling();
+ }
+ }
+ child = child.getNextSibling();
+ }
+ //if discover object is not in XML file then make sure there is an empty hashtable
+ if(discoveroptionnameToOption == null){
+ discoveroptionnameToOption = new Hashtable();
+ }
+ if(discoverServerOptions == null){
+ discoverServerOptions = new Hashtable();
+ }
+ discoverParsed = true;
+ }
+
+
+ /**
+ * parse user options
+ */
+ private void getUser() throws Exception{
+ Node child = rootNode.getFirstChild();
+ while( child != null ) {
+ if( "users".equals( child.getNodeName() ) ) {
+ usersMappingType = findAttribute( child, "user_mapping","" );
+ Node userOpNode = child.getFirstChild();
+ while( userOpNode != null ) {
+ if( "user_options".equals( userOpNode.getNodeName() ) ) {
+ //set options
+ useroptionnameToOption = getOptions(userOpNode);
+ }
+ userOpNode = userOpNode.getNextSibling();
+ }
+ }
+ child = child.getNextSibling();
+ }
+ if(useroptionnameToOption == null){
+ useroptionnameToOption = new Hashtable(); //in case there are no options
+ }
+ userParsed = true;
+ }
+
+
+ /**
+ *
+ *
+ * @param fileName
+ */
+// private void setFileName( String name) throws Exception {
+// XMLFileName = name;
+// }
+
+ /**
+ * Find the specified attribute in the specified node and return its value.
+ * If the attribute is not found, the default value is returned.
+ *
+ * @param node The node that contains the attribute.
+ * @param key The attribute name.
+ * @param defV The default value to return if the attribute is not found.
+ * @return a String that contains the attribute value if the attribute was
+ * found or the default value if the attribute was not found.
+ */
+ private String findAttribute( Node node, String key, String defV ) {
+ NamedNodeMap nnm = node.getAttributes();
+ if( nnm == null ) {
+ return defV;
+ }
+ for( int i = 0; i < nnm.getLength(); i++ ) {
+ Node attr = nnm.item( i );
+ if( key.equals( attr.getNodeName() ) ) {
+ return attr.getNodeValue().trim();
+ }
+ }
+ return defV;
+ }
+
+ /**
+ * Get a hashtable of GUIOption objects. If there are no options an empty hashtable
+ * is returned.
+ * @param node The parent node that contains the options element
+ * @return Hashtable with GuiOption objects
+ *
+ */
+ private Hashtable getOptions( Node node) throws Exception {
+ Hashtable h = new Hashtable();
+ try {
+ Node option = node.getFirstChild();
+ while( option != null ) {
+ if( "option".equals( option.getNodeName() ) ) {
+ String optPlatform = findAttribute( option, "platform", "" );
+
+ //if wrong platform skip this option
+ if(optPlatform.equals(OPTION_PLATFORM_ALL) ||
+ optPlatform.equals(serverPlatform) ||
+ (optPlatform.equals(OPTION_PLATFORM_ALLUNIX) && fUnixServer )){
+
+ String optName = findAttribute( option, "name", "" );
+ String optDescription = findAttribute( option, "description", "" );
+ String optRequired = findAttribute( option, "required", "" );
+ boolean fRequired =false;
+ if(optRequired.equals(ATTRIBUTE_VALUE_YES)){
+ fRequired = true;
+ }
+ String optEditable = findAttribute( option, "editable", "" );
+ boolean fEdit =false;
+ if(optEditable.equals(ATTRIBUTE_VALUE_YES)){
+ fEdit = true;
+ }
+ String optDefault = findAttribute( option, "default", "" );
+ String optHints = findAttribute( option, "hints", "" );
+ String optAlter = findAttribute( option, "alter", "" );
+ boolean fAlter =false;
+ if(optAlter.equals(ATTRIBUTE_VALUE_YES)){
+ fAlter = true;
+ }
+ Vector vValues = new Vector();
+ //get the value object
+ Node values = option.getFirstChild();
+ boolean fMultivalue =false;
+ String optDelimiter = "";
+ while( values != null) {
+ if( "values".equals( values.getNodeName() ) ) {
+ //get multivalue
+ String optMultivalue = findAttribute( values, "multivalue", "" );
+ if(optMultivalue.equals(ATTRIBUTE_VALUE_YES)){
+ fMultivalue = true;
+ }
+ //get delimiter
+ optDelimiter = findAttribute( option, "delimiter", "" );
+ //get the settings
+ Node setting = values.getFirstChild();
+ while( setting != null) {
+ if( "setting".equals( setting.getNodeName() ) ) {
+ Node settingValue = setting.getFirstChild();
+ if(settingValue != null){
+ String optSetting = settingValue.getNodeValue().trim();
+ vValues.add( optSetting );
+ }
+ }
+ setting = setting.getNextSibling();
+ }
+ }
+ values = values.getNextSibling();
+ }
+
+ if ( optHints.length() > 0 )
+ {
+ if (optionnameToKey!=null)
+ optionnameToKey.put(optName+"HINT", optHints);
+ }
+ if ( optDescription.length() > 0 )
+ {
+ if (optionnameToKey!=null)
+ optionnameToKey.put(optName+"DESC", optDescription);
+ }
+
+ //check for description and hints from the properties file
+ if(hasTextBundle()){
+ if(optHints.length() > 0){
+ String textHints = getResource(optHints);
+ if(textHints.length() > 0){
+ optHints = textHints;
+ }
+ }
+ if(optDescription.length() > 0){
+ String textDescription = getResource(optDescription);
+ if(textDescription.length() > 0){
+ optDescription = textDescription;
+ }
+ }
+ }
+ //if the option has no values then the values vector is empty
+ GUIOption op = new GUIOption(optName, vValues, optDefault, fEdit,
+ fRequired, fMultivalue, fAlter,
+ optDelimiter, optPlatform, optHints,
+ optDescription);
+ if(!h.containsKey(optName)){
+ h.put(optName, op);
+ } else {
+// System.out.println("getOptions: Duplicate option '" + optName +"' not added to option hash table.");
+ // ServerdiscoveryPlugin.getDefault().trace("Duplicate option '"+optName +"' not added to option hash table."); //$NON-NLS-1$
+
+ }
+ //if this is discovery options then also add to vector
+ if("generic_gui".equals( node.getNodeName()) ){
+ vDiscoverOptions.add(op);
+ }
+ if("serverObject_gui".equals( node.getNodeName()) ){
+ vDiscoverServerOptions.add(op);
+ }
+ }
+ }
+ option = option.getNextSibling();
+ }
+ }catch( Exception e ){
+ throw e;
+ }
+ return h;
+ }
+
+ /**
+ * Get a vector of GUIOption objects. If there are no options an empty vector
+ * is returned.
+ * @param node The parent node that contains the options element
+ * @return Vector with GuiOption objects
+ *
+ */
+ private Vector getOptionsVector( Node node) throws Exception {
+ Vector h = new Vector();
+ try {
+ Node option = node.getFirstChild();
+ while( option != null ) {
+ if( "option".equals( option.getNodeName() ) ) { // get all options
+ String optPlatform = findAttribute( option, "platform", "" );
+ String optName = findAttribute( option, "name", "" );
+ String optDescription = findAttribute( option, "description", "" );
+ String optRequired = findAttribute( option, "required", "" );
+ boolean fRequired =false;
+ if(optRequired.equals(ATTRIBUTE_VALUE_YES)){
+ fRequired = true;
+ }
+ String optEditable = findAttribute( option, "editable", "" );
+ boolean fEdit =false;
+ if(optEditable.equals(ATTRIBUTE_VALUE_YES)){
+ fEdit = true;
+ }
+ String optDefault = findAttribute( option, "default", "" );
+ String optHints = findAttribute( option, "hints", "" );
+ String optAlter = findAttribute( option, "alter", "" );
+ boolean fAlter =false;
+ if(optAlter.equals(ATTRIBUTE_VALUE_YES)){
+ fAlter = true;
+ }
+ Vector vValues = new Vector();
+ //get the value object
+ Node values = option.getFirstChild();
+ boolean fMultivalue =false;
+ String optDelimiter = "";
+ while( values != null) {
+ if( "values".equals( values.getNodeName() ) ) {
+ //get multivalue
+ String optMultivalue = findAttribute( values, "multivalue", "" );
+ if(optMultivalue.equals(ATTRIBUTE_VALUE_YES)){
+ fMultivalue = true;
+ }
+ //get delimiter
+ optDelimiter = findAttribute( option, "delimiter", "" );
+ //get the settings
+ Node setting = values.getFirstChild();
+ while( setting != null) {
+ if( "setting".equals( setting.getNodeName() ) ) {
+ Node settingValue = setting.getFirstChild();
+ if(settingValue != null){
+ String optSetting = settingValue.getNodeValue().trim();
+ vValues.add( optSetting );
+ }
+ }
+ setting = setting.getNextSibling();
+ }
+ }
+ values = values.getNextSibling();
+ }
+
+ if ( optHints.length() > 0 )
+ {
+ if (optionnameToKey!=null)
+ optionnameToKey.put(optName+"HINT", optHints);
+ }
+ if ( optDescription.length() > 0 )
+ {
+ if (optionnameToKey!=null)
+ optionnameToKey.put(optName+"DESC", optDescription);
+ }
+
+ //check for description and hints from the properties file
+ if(hasTextBundle()){
+ if(optHints.length() > 0){
+ String textHints = getResource(optHints);
+ if(textHints.length() > 0){
+ optHints = textHints;
+ }
+ }
+ if(optDescription.length() > 0){
+ String textDescription = getResource(optDescription);
+ if(textDescription.length() > 0){
+ optDescription = textDescription;
+ }
+ }
+ }
+ //if the option has no values then the values vector is empty
+ GUIOption op = new GUIOption(optName, vValues, optDefault, fEdit,
+ fRequired, fMultivalue, fAlter,
+ optDelimiter, optPlatform, optHints,
+ optDescription);
+ h.add(op);
+ //if this is discovery options then also add to vector
+ if("generic_gui".equals( node.getNodeName()) ){
+ vDiscoverOptions.add(op);
+ }
+ if("serverObject_gui".equals( node.getNodeName()) ){
+ vDiscoverServerOptions.add(op);
+ }
+ } // end if ( "option".equals( option.getNodeName() ) )
+ option = option.getNextSibling();
+ } // end while
+ }catch( Exception e ){
+ throw e;
+ }
+ return h;
+ }
+
+/**
+ * Get the datatype values under the column_datatypes node.
+ * @param node The parent node that contains the datatype element
+ * @return Vector with String objects with datatype values
+ *
+ */
+ private Vector getDatatypes( Node node) throws Exception {
+ Vector v = new Vector();
+ try {
+ Node datatypeNode = node.getFirstChild();
+ while( datatypeNode != null ) {
+ if( "datatype".equals( datatypeNode.getNodeName() ) ) {
+ Node tNode = datatypeNode.getFirstChild();
+ if( tNode != null ) {
+ //set datatype
+ v.add(tNode.getNodeValue().trim());
+ }
+ }
+ datatypeNode = datatypeNode.getNextSibling();
+ }
+ }catch( Exception e ){
+ throw e;
+ }
+ return v;
+ }
+
+ /**
+ * Get a hashtable of GUIOption objects. If there are no options an empty hashtable
+ * is returned.
+ * @param node The parent node that contains the options element
+ * @return Hashtable with GuiOption objects
+ *
+ */
+ /*static*/ private Hashtable buildResources(InputStreamReader prop_isr) throws Exception {
+ Hashtable h = new Hashtable();
+ BufferedReader br = new BufferedReader( prop_isr);
+ boolean fContinue = false;
+ String key = "";
+ String value = "";
+ String line = br.readLine();
+ while(line != null){
+ if(line.length()>0){
+ line = line.trim(); //remove leading and trailing blanks
+ if(!line.startsWith("#")){ //skip the comment lines that start with #
+ if(!fContinue){
+ int index = line.indexOf("=");
+ if(index != -1){
+ key = new String(line.substring(0, index));
+ key = key.trim();
+ value = new String(line.substring(index+1));
+ value = value.trim();
+ }
+ } else {
+ value += line;
+ }
+ if(value.endsWith("\\")){ //continuation character escaped
+ fContinue = true;
+ int index = value.lastIndexOf("\\");
+ value = value.substring(0, index);
+ } else {
+ if(key.length() > 0){
+ if(!h.containsKey(key)){
+ h.put(key, value);
+ } else {
+// System.out.println("buildResources: Duplicate key '" + key +"' not added to property hash table." );
+ // ServerdiscoveryPlugin.getDefault().trace("Duplicate key '" + key +"' not added to property hash table."); //$NON-NLS-1$
+
+ }
+ } else{
+// System.out.println("buildResources: Invalid properties file. No Key was found for strings." );
+ // ServerdiscoveryPlugin.getDefault().trace("Invalid properties file. No Key was found for strings."); //$NON-NLS-1$
+
+ }
+ fContinue = false;
+ }
+ }
+ }
+ line = br.readLine(); //get the next line
+ }
+ return h;
+ }
+
+ private String getResource(String key) {
+ if(textBundle.containsKey(key)){
+ String value = (String)textBundle.get(key);
+ return value;
+ }else{
+ // System.out.println("Key '"+ key + "' not found in text bundle." );
+ return "";
+ }
+ }
+
+ static private String getSPMessage(int rc) {
+ String sp_msg = "";
+ if( rc == 40 ){
+ sp_msg = new String("The DB2 install path is invalid.");
+ }else if(rc == 41){
+ sp_msg = new String("The wrapper XML file path is invalid.");
+ }else if(rc == 42){
+ sp_msg = new String("The wrapper XML files do not exist or cannot be read. Make sure the files have public read permission.");
+ }else if(rc == 43){
+ sp_msg = new String("Cannot find the default English locale directory.");
+ }else if(rc == 44){
+ sp_msg = new String("No XML files were found in directory");
+ }else if(rc == 45){
+ sp_msg = new String("A memory error occurred while executing the stored procedure GET_WRAP_CFG_C.");
+ }else if(rc == 46){
+ sp_msg = new String("Cannot open or read wrapper.dtd file.");
+ }else if(rc == 47){
+ sp_msg = new String("No XML files were found in directory.");
+ }else if(rc == 48){
+ sp_msg = new String("No properties files were found in directory.");
+ }else if(rc == 49){
+ sp_msg = new String("The wrapper properties files cannot be read. Make sure the files have public read permission.");
+ } else {
+ return "";
+ }
+ return sp_msg;
+ }
+
+ /**
+ * Get the CommonOption class.
+ *
+ * @return CommonOptions The CommonOptions class .
+ */
+ public CommonOptions getCommonOptions() throws Exception {
+ if(!commonOptionsParsed){
+ parseCommonOptions();
+ }
+ return commonOptions;
+ }
+
+ /**
+ * parse the common_options element from the xml file.
+ *
+ */
+ private void parseCommonOptions() throws Exception{
+ Vector messages = new Vector();
+ Vector configVars = new Vector();
+
+ Node child = rootNode.getFirstChild();
+ while( child != null ) { // Loop through to find the common_options element
+ if( "common_options".equals( child.getNodeName() ) ) { // Find it?
+ Node node2 = child.getFirstChild(); // ..yes
+ while( node2 != null ) {
+ if( "config_variable".equals( node2.getNodeName() ) ) { // Is the sub element a config_variable element?
+ String type = findAttribute( node2, "type","" ); // ..yes, get the type attribute
+ String location = findAttribute( node2, "location","" ); // and location attribute too
+ Hashtable ht = getOptions(node2); // Get the option element (should only be 1)
+// GUIOption guiOption = null;
+ if (ht != null && ht.size() == 1 && type != null && location != null) { // If everything looks valid
+// Enumeration _enum = ht.elements(); // ..get the one option element
+// guiOption = (GUIOption) _enum.nextElement();
+ //configVars.add( new ConfigVariable(type, location, guiOption) ); //Farnaz // ..and put everything in the list
+ } else {
+// System.out.println("parseCommonOptions: Invalid data in config_variable element. Type " + type + " location " + location + " hashtable " + ht);
+ // ServerdiscoveryPlugin.getDefault().trace("Invalid data in config_variable element. Type " + type + " location " + location + " hashtable " + ht); //$NON-NLS-1$
+
+ }
+ } else if( "message".equals( node2.getNodeName() ) ) { // Is it the message element?
+ String platform = findAttribute( node2, "platform","" ); // ..yes, get platform attribute
+ String msgText = null;
+ Node msgTextNode = node2.getFirstChild(); // The message text is in a child node
+ if (msgTextNode != null) {
+ msgText = msgTextNode.getNodeValue();
+ };
+ if (msgText != null && platform != null) { // If everything looks valid
+ messages.add( new ConfigMessage(msgText, platform) ) ; // ..then save it in the list
+ } else {
+// System.out.println("parseCommonOptions: Invalid data in <message> element. Platform " + platform + " msgText " + msgText);
+ // ServerdiscoveryPlugin.getDefault().trace("Invalid data in <message> element. Platform " + platform + " msgText " + msgText); //$NON-NLS-1$
+ };
+ }
+ node2 = node2.getNextSibling();
+ }
+ }
+ child = child.getNextSibling();
+ }
+
+ commonOptions = new CommonOptions(messages, configVars);
+ commonOptionsParsed = true;
+ }
+
+ } //end class
+
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigManager.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigManager.java
new file mode 100644
index 0000000..5623340
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/catalog/util/WrapperConfigManager.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.catalog.util;
+
+import java.util.Hashtable;
+
+//import com.ibm.datatools.db2.luw.serverdiscovery.WrapperConfigFile;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl;
+
+public class WrapperConfigManager {
+
+ private ServerKindsConfig skc;
+ private Hashtable wrapperConfigHT;
+ private WrapperConfigFile wcf;
+ private static LUWDatabase database;
+
+ /*# private WrapperConfigManager _objectTypeManager; */
+ private static WrapperConfigManager instance = null;
+
+
+ public WrapperConfigManager(LUWDatabaseImpl _database) throws Exception {
+ try {
+ skc = new ServerKindsConfig();
+ skc.init(_database);
+ }
+ catch (Exception e) { throw e; }
+ wrapperConfigHT = new Hashtable();
+ }
+
+ /**
+ * Gets the singleton instance of the ObjectTypeManager.
+ * @return The singleton ObjectTypeManager.
+ * @exception ICMAPIException
+ * @exception ICMSQLException
+ */
+ public static synchronized WrapperConfigManager getInstance (LUWDatabaseImpl _database) throws Exception {
+ try{
+ if (instance == null) {
+ database = _database;
+ instance = new WrapperConfigManager(_database);
+ }
+ else if(!database.getName().equals(_database.getName())){
+ database = _database;
+ instance = new WrapperConfigManager(_database);
+ }
+ }catch (Exception e) {
+ database = null;
+ throw e;
+ }
+ return (WrapperConfigManager)instance;
+ }
+
+
+ //method to return the wrapper config file for a given wrapper library
+ //initialize the ServerKindsConfig file once,
+ //if serverKinds had already been initialized, search the wrapper config hashtable and return the wrapperconfig file for a given wrapper (library)
+ //if the hashtable doesn't contain that library key, create and init the wrapper config and put it in the hash table for next time
+ public WrapperConfigFile getWrapperConfigFile(String libName) throws Exception {
+
+ try {
+
+ if(!wrapperConfigHT.containsKey(libName))
+ {
+ String id = skc.getWrapperID(libName);
+ wcf = new WrapperConfigFile();
+ wcf.initFile(id, database);
+ wrapperConfigHT.put(libName,wcf);
+ return wcf;
+ }
+ else {
+ return (WrapperConfigFile)wrapperConfigHT.get(libName);
+ }
+ }
+ catch (Exception e) {
+ throw e;
+ }
+ }
+
+ public ServerKindsConfig getServerKindsConfig() {
+ return skc;
+ }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWBufferPoolContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWBufferPoolContainmentProvider.java
new file mode 100644
index 0000000..ee73109
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWBufferPoolContainmentProvider.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWBufferPoolContainmentProvider extends AbstractContainmentProvider{
+ public EObject getContainer(EObject obj) {
+ return ((LUWBufferPool) obj).getDatabase();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWDatabase_Bufferpools();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.BUFFER_POOL;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWDatabaseContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWDatabaseContainmentProvider.java
new file mode 100644
index 0000000..a383b10
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWDatabaseContainmentProvider.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.sqm.internal.core.containment.DatabaseContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.emf.ecore.EObject;
+
+public class LUWDatabaseContainmentProvider extends DatabaseContainmentProvider {
+
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ LUWDatabase database = (LUWDatabase) obj;
+ children.addAll(database.getGroups());
+ children.addAll(database.getBufferpools());
+ children.addAll(database.getWrappers());
+ children.addAll(database.getStorageGroups());
+ // Servers are now contained under LUWWrapper
+ // children.addAll(database.getServers());
+// children.addAll(database.getTablespaces());
+ Iterator it = database.getGroups().iterator();
+ while(it.hasNext()) {
+ LUWPartitionGroup g = (LUWPartitionGroup) it.next();
+ children.addAll(g.getTableSpaces());
+ }
+ Iterator tps = database.getTablespaces().iterator();
+ while (tps.hasNext()) {
+ LUWTableSpace tp = (LUWTableSpace) tps.next();
+ if(!children.contains(tp)){
+ children.add(tp);
+ }
+ }
+
+ return children;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWDatabasePartitionContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWDatabasePartitionContainmentProvider.java
new file mode 100644
index 0000000..d062d96
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWDatabasePartitionContainmentProvider.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWDatabasePartitionContainmentProvider extends AbstractContainmentProvider{
+ public EObject getContainer(EObject obj) {
+ return ((LUWDatabasePartition) obj).getGroup();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWPartitionGroup_Partitions();
+ }
+
+ public boolean isDisplayableElement(EObject obj) {
+ return false;
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.PARTITION;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWFederatedSPContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWFederatedSPContainmentProvider.java
new file mode 100644
index 0000000..416b3d1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWFederatedSPContainmentProvider.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWFederatedSPContainmentProvider extends AbstractContainmentProvider {
+
+ public EObject getContainer(EObject obj) {
+ return ((FederatedProcedure) obj).getSchema();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return SQLSchemaPackage.eINSTANCE.getSchema_Routines();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.FEDERATED_STORED_PROCEDURES;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWGlobalVariableContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWGlobalVariableContainmentProvider.java
new file mode 100644
index 0000000..eb3e1a2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWGlobalVariableContainmentProvider.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWGlobalVariableContainmentProvider extends AbstractContainmentProvider{
+ public EObject getContainer(EObject obj) {
+ return ((LUWGlobalVariable) obj).getSchema();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return DB2ModelPackage.eINSTANCE.getDB2Schema_GlobalVariables();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.GLOBAL_VARIABLE;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWGroupID.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWGroupID.java
new file mode 100644
index 0000000..f7bd924
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWGroupID.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+public interface LUWGroupID {
+ public static final String FEDERATED_SERVER = "core.db2.luw.LUWServer"; //$NON-NLS-1$
+ public static final String NICKNAME = "core.db2.luw.LUWNickname"; //$NON-NLS-1$
+ public static final String BUFFER_POOL = "core.db2.luw.LUWBufferPool"; //$NON-NLS-1$
+ public static final String PARTITION = "core.db2.luw.LUWDatabasePartition"; //$NON-NLS-1$
+ public static final String PARTITION_GROUP = "core.db2.luw.LUWPartitionGroup"; //$NON-NLS-1$
+ public static final String TABLESPACE = "core.db2.luw.LUWTableSpace"; //$NON-NLS-1$
+ public static final String FEDERATED_STORED_PROCEDURES = "core.db2.luw.LUWFederatedSP"; //$NON-NLS-1$
+ public static final String GLOBAL_VARIABLE = "core.db2.luw.LUWGlobalVariable"; //$NON-NLS-1$
+ public static final String MODULE = "core.db2.luw.LUWModule"; //$NON-NLS-1$
+ public static final String MODULE_OBJECT = "core.db2.luw.LUWModuleObject"; //$NON-NLS-1$
+ public static final String MODULE_VARIABLE = "core.db2.luw.LUWModuleVariable"; //$NON-NLS-1$
+ public static final String MODULE_CONDITION = "core.db2.luw.LUWModuleCondition"; //$NON-NLS-1$
+ public static final String MODULE_TYPE = "core.db2.luw.LUWModuleType"; //$NON-NLS-1$
+ public static final String MODULE_FUNCTION = "core.db2.luw.LUWModuleFunction"; //$NON-NLS-1$
+ public static final String MODULE_PROCEDURE = "core.db2.luw.LUWModuleProcedure"; //$NON-NLS-1$
+ public static final String PLSQL_PACKAGE = "core.db2.luw.PlsqlPackage"; //$NON-NLS-1$
+ public static final String WRAPPER = "core.db2.luw.LUWWrapper"; //$NON-NLS-1$
+ public static final String USER_MAPPING = "core.db2.luw.LUWUserMapping"; //$NON-NLS-1$
+ public static final String FEDERATED_DATABASE_OBJECT = "core.db2.luw.LUWFederatedDatabaseObject"; //$NON-NLS-1$
+ public static final String SECURITY_POLICY = "core.db2.luw.LUWSecurityPolicy"; //$NON-NLS-1$
+ public static final String SECURITY_LABEL_COMPONENT = "core.db2.luw.LUWSecurityLabelComponent"; //$NON-NLS-1$
+ public static final String SECURITY_LABEL_COMPONENT_ELEMENT = "core.db2.luw.LUWSecurityLabelComponentElement"; //$NON-NLS-1$
+ public static final String SECURITY_LABEL = "core.db2.luw.LUWSecurityLabel"; //$NON-NLS-1$
+ public static final String STORAGE_GROUP = "core.db2.luw.LUWStorageGroup"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWNicknameContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWNicknameContainmentProvider.java
new file mode 100644
index 0000000..870a112
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWNicknameContainmentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWNicknameContainmentProvider extends AbstractContainmentProvider {
+
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ BaseTable table = (BaseTable) obj;
+ children.addAll(table.getIndex());
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((LUWNickname) obj).getSchema();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return SQLSchemaPackage.eINSTANCE.getSchema_Tables();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.NICKNAME;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWPartitionGroupContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWPartitionGroupContainmentProvider.java
new file mode 100644
index 0000000..ed2854c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWPartitionGroupContainmentProvider.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWPartitionGroupContainmentProvider extends AbstractContainmentProvider
+{
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ LUWPartitionGroup pg = (LUWPartitionGroup) obj;
+ children.addAll(pg.getPartitions());
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((LUWPartitionGroup) obj).getDatabase();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWDatabase_Groups();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.PARTITION_GROUP;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelComponentContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelComponentContainmentProvider.java
new file mode 100644
index 0000000..7afd687
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelComponentContainmentProvider.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWSecurityLabelComponentContainmentProvider extends AbstractContainmentProvider {
+
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ LUWSecurityLabelComponent component = (LUWSecurityLabelComponent) obj;
+ for (Object element : component.getElements()) {
+ if (element != null) {
+ children.add(element);
+ }
+ }
+ return children;
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWSecurityPolicy_Components();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.SECURITY_LABEL_COMPONENT;
+ }
+
+ public EObject getContainer(EObject obj) {
+ EList<LUWSecurityPolicy> policies = ((LUWSecurityLabelComponent) obj).getLUWSecurityPolicy();
+ for (LUWSecurityPolicy policy : policies) {
+ EList<LUWSecurityLabelComponent> components = policy.getComponents();
+ if (components.contains(obj)) {
+ return policy;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelComponentElementContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelComponentElementContainmentProvider.java
new file mode 100644
index 0000000..a4d7be6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelComponentElementContainmentProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWSecurityLabelComponentElementContainmentProvider extends AbstractContainmentProvider {
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWSecurityLabelComponent_Elements();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.SECURITY_LABEL_COMPONENT_ELEMENT;
+ }
+
+ public EObject getContainer(EObject obj) {
+ EList<LUWSecurityLabelComponent> components = ((LUWSecurityLabelComponentElement) obj).getLUWSecurityLabelComponent();
+ for (LUWSecurityLabelComponent component : components) {
+ EList<LUWSecurityLabelComponentElement> elements = component.getElements();
+ if (elements.contains(obj)) {
+ return component;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelContainmentProvider.java
new file mode 100644
index 0000000..78785fc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityLabelContainmentProvider.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWSecurityLabelContainmentProvider extends AbstractContainmentProvider {
+
+ public EObject getContainer(EObject obj) {
+ return ((LUWSecurityLabel) obj).getPolicy();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWSecurityPolicy_Labels();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.SECURITY_LABEL;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityPolicyContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityPolicyContainmentProvider.java
new file mode 100644
index 0000000..77afbaf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWSecurityPolicyContainmentProvider.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWSecurityPolicyContainmentProvider extends AbstractContainmentProvider {
+
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ LUWSecurityPolicy policy = (LUWSecurityPolicy) obj;
+ for (Object component : policy.getComponents()) {
+ if (component != null) {
+ children.add(component);
+ }
+ }
+ for (Object label : policy.getLabels()) {
+ if (label != null) {
+ children.add(label);
+ }
+ }
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((LUWSecurityPolicy) obj).getTable();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWTable_SecurityPolicy();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.SECURITY_POLICY;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWServerContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWServerContainmentProvider.java
new file mode 100644
index 0000000..4497e16
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWServerContainmentProvider.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWServerContainmentProvider extends AbstractContainmentProvider {
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ LUWServer server = (LUWServer) obj;
+ RemoteServer rs = server.getRemoteServer();
+ if(rs != null) {
+ children.add(rs);
+ }
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((LUWServer) obj).getWrapper();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWWrapper_Servers();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.FEDERATED_SERVER;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTableContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTableContainmentProvider.java
new file mode 100644
index 0000000..c6b8ed6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTableContainmentProvider.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.enablement.ibm.db2.containment.DB2TableContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.emf.ecore.EObject;
+
+public class LUWTableContainmentProvider extends DB2TableContainmentProvider {
+
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ LUWTable table = (LUWTable) obj;
+ LUWSecurityPolicy policy = table.getSecurityPolicy();
+ if (policy != null) {
+ children.add(policy);
+ }
+ return children;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTableSpaceContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTableSpaceContainmentProvider.java
new file mode 100644
index 0000000..69d87e2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTableSpaceContainmentProvider.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWTableSpaceContainmentProvider extends AbstractContainmentProvider
+{
+ public EObject getContainer(EObject obj) {
+ LUWTableSpace tsp = (LUWTableSpace) obj;
+ LUWPartitionGroup grp = tsp.getGroup();
+ if(grp != null) return grp.getDatabase();
+ LUWBufferPool pool = tsp.getBufferPool();
+ if(pool != null) return pool.getDatabase();
+
+ return tsp.getDatabase();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+// return LUWPackage.eINSTANCE.getLUWDatabase_Tablespaces();
+ return null;
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.TABLESPACE;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTemporaryTableContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTemporaryTableContainmentProvider.java
new file mode 100644
index 0000000..f96eaf1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWTemporaryTableContainmentProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.internal.core.containment.TableContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.containment.DB2GroupID;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * @author bkadambi
+ *
+ */
+public class LUWTemporaryTableContainmentProvider extends TableContainmentProvider {
+
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ return children;
+ }
+
+ public String getGroupId(EObject obj) {
+ return DB2GroupID.TEMPTABLE;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWUserMappingContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWUserMappingContainmentProvider.java
new file mode 100644
index 0000000..1f3b9dc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWUserMappingContainmentProvider.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * @author pjcastee
+ */
+public class LUWUserMappingContainmentProvider extends AbstractContainmentProvider {
+
+
+ public EObject getContainer(EObject obj) {
+ return ((LUWUserMapping) obj).getServer();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWServer_UserMappings();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.USER_MAPPING;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWWrapperContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWWrapperContainmentProvider.java
new file mode 100644
index 0000000..d66a121
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/containment/LUWWrapperContainmentProvider.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * @author aarti
+ */
+public class LUWWrapperContainmentProvider extends AbstractContainmentProvider {
+
+ public Collection getContainedElements(EObject obj)
+ {
+ Collection children = super.getContainedElements(obj);
+ LUWWrapper wrapper = (LUWWrapper) obj;
+ if(wrapper.getServers() != null)
+ {
+ children.addAll(wrapper.getServers());
+ }
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((LUWWrapper) obj).getLUWDatabase();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return LUWPackage.eINSTANCE.getLUWDatabase_Wrappers();
+ }
+
+ public String getGroupId(EObject obj) {
+ return LUWGroupID.WRAPPER;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/ILUWModuleDdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/ILUWModuleDdlBuilder.java
new file mode 100644
index 0000000..7fa5c5e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/ILUWModuleDdlBuilder.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+public interface ILUWModuleDdlBuilder {
+
+ public String buildCreateStatement(SQLObject object,boolean quoteIdentifiers,boolean qualifyNames);
+ public String buildDropStatement(SQLObject object,boolean quoteIdentifiers,boolean qualifyNames);
+ public String buildCommentStatement(SQLObject object,boolean quoteIdentifiers,boolean qualifyNames);
+ }
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDataPreservationDdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDataPreservationDdlBuilder.java
new file mode 100644
index 0000000..85ea5f5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDataPreservationDdlBuilder.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import org.eclipse.datatools.enablement.ibm.db2.ddl.DB2DataPreservationDdlBuilder;
+
+public class LUWDataPreservationDdlBuilder extends
+ DB2DataPreservationDdlBuilder {
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder.java
new file mode 100644
index 0000000..aca6a5e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder.java
@@ -0,0 +1,2686 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.internal.core.definition.DatabaseDefinitionRegistryImpl;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogStatistics;
+import org.eclipse.datatools.enablement.ibm.db2.ddl.DB2DdlBuilder;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleDistinctType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.db2.model.GenerateType;
+import org.eclipse.datatools.enablement.ibm.db2.model.UnitType;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlGenerationUtility;
+import org.eclipse.datatools.enablement.ibm.ddl.ExtendDdlBuilder;
+import org.eclipse.datatools.enablement.ibm.util.EngineeringOptionID;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Group;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.User;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.BinaryStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.Field;
+import org.eclipse.datatools.modelbase.sql.datatypes.PrimitiveType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.CheckType;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class LUWDdlBuilder extends DB2DdlBuilder {
+
+ // Currently XMLSupport is limited to LUW. Once it is extended to i/zSeries,
+ // this should move upwards to parent class
+ protected final static String OPTIMIZATION = "OPTIMIZATION"; //$NON-NLS-1$
+ protected final static String QUERY = "QUERY"; //$NON-NLS-1$
+ protected final static String ENABLE = "ENABLE"; //$NON-NLS-1$
+ protected final static String ENFORCED = "ENFORCED"; //$NON-NLS-1$
+ protected final static String XSROBJECT = "XSROBJECT"; //$NON-NLS-1$
+ protected final static String PARTITION_KEY = "PARTITIONING KEY"; //$NON-NLS-1$
+ protected final static String PARTITION_GROUP = "PARTITION GROUP"; //$NON-NLS-1$
+ protected final static String BUFFER_POOL = "BUFFER POOL"; //$NON-NLS-1$
+ protected final static String UNDER = "UNDER"; //$NON-NLS-1$
+ protected final static String RESTRICT = "RESTRICT"; //$NON-NLS-1$
+ protected final static String DIMENSION_BY = "ORGANIZE BY DIMENSIONS"; //$NON-NLS-1$
+ protected final static String VALUE_COMPRESSION = "VALUE COMPRESSION"; //$NON-NLS-1$
+ protected final static String USE_HASH = "USING HASHING"; //$NON-NLS-1$
+ protected final static String INTEGRITY = "INTEGRITY"; //$NON-NLS-1$
+ protected final static String ADMIN_CMD = "SYSPROC.ADMIN_CMD"; //$NON-NLS-1$
+ protected final static String REORG = "REORG"; //$NON-NLS-1$
+ protected final static String CALL = "CALL"; //$NON-NLS-1$
+ protected final static String VARIABLE = "VARIABLE";
+ protected final static String CONSTANT = "CONSTANT";
+ protected final static String ARRAY = "ARRAY";
+ protected final static String CURSOR = "CURSOR";
+ protected final static String MODULE = "MODULE";
+ protected final static String OFF = "OFF";
+ protected static final String NOT_LOGGED = " NOT LOGGED"; //$NON-NLS-1$
+ protected static final String IBM = "IBM"; //$NON-NLS-1$
+ protected static final String SYS = "SYS"; //$NON-NLS-1$
+ protected final static String HEX_LITERAL_PREFIX = "X"; // $NON-NLS-1$
+
+ protected final static int GB = 2<<(30-1);
+ protected final static String FILE = "FILE"; // $NON-NLS-1$
+ protected final static String DEVICE = "DEVICE"; // $NON-NLS-1$
+ protected static final String BUFFERPOOL = "BUFFERPOOL"; // $NON-NLS-1$
+ protected static final String OVERHEAD = "OVERHEAD"; // $NON-NLS-1$
+ protected static final String XFER_RATE = "TRANSFERRATE"; // $NON-NLS-1$
+ protected static final String DROPPED_TABLE_RECOVERY = "DROPPED TABLE RECOVERY"; // $NON-NLS-1$
+ protected static final String AUTORESIZE = "AUTORESIZE"; // $NON-NLS-1$
+ protected static final String MAXSIZE = "MAXSIZE"; // $NON-NLS-1$
+ protected static final String PERCENT = "PERCENT"; // $NON-NLS-1$
+ protected static final String INCREASESIZE = "INCREASESIZE"; // $NON-NLS-1$
+ protected static final String NONE = "NONE"; // $NON-NLS-1$
+ protected static final String AUTOMATIC = "AUTOMATIC"; // $NON-NLS-1$
+ protected static final String PREFETCHSIZE = "PREFETCHSIZE"; // $NON-NLS-1$
+ protected static final String XFER_OWNERSHIP = "TRANSFER OWNERSHIP OF"; // $NON-NLS-1$
+ protected static final String PRESERVE_PRIVILEGES = "PRESERVE PRIVILEGES"; // $NON-NLS-1$
+ protected static final String RESIZE = "RESIZE"; // $NON-NLS-1$
+
+ public LUWDdlBuilder(){
+ }
+
+ public LUWDdlBuilder(LUWDdlGenerator generator) {
+ this.generator = generator;
+ }
+
+ public String createSchema(Schema schema, boolean quoteIdentifiers,boolean qualifyNames) {
+ String text = CREATE + SPACE + SCHEMA + SPACE + getName(schema, quoteIdentifiers,qualifyNames);
+ AuthorizationIdentifier auth=schema.getOwner();
+ if (auth != null) {
+ text += SPACE + AUTHORIZATION + SPACE+ getName(auth, quoteIdentifiers);
+ }
+ return text;
+ }
+
+ public String createTablespace(LUWTableSpace tablespace, boolean quoteIdentifiers) {
+ if(tablespace.getContainers().isEmpty() && this.isTablespaceContainersRequried(tablespace)) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_TABLESPACE_NO_CONTAINER, new Object[] { tablespace.getName()}));
+ return null;
+ }
+
+ String tablespaceName = tablespace.getName();
+ if(quoteIdentifiers) {
+ tablespaceName = this.getDoubleQuotedString(tablespaceName);
+ }
+
+ String text = "CREATE "; //$NON-NLS-1$
+ TableSpaceType type = tablespace.getTablespaceType();
+ if(type == TableSpaceType.REGULAR_LITERAL) {
+ text += "REGULAR"; //$NON-NLS-1$
+ }
+ else if(type == TableSpaceType.USER_TEMP_LITERAL) {
+ text += "USER TEMPORARY"; //$NON-NLS-1$
+ }
+ else if(type == TableSpaceType.SYSTEM_TEMP_LITERAL) {
+ text += "SYSTEM TEMPORARY"; //$NON-NLS-1$
+ }
+ else if(type == TableSpaceType.LARGE_LITERAL) {
+ text += "LARGE"; //$NON-NLS-1$
+ }
+ text += " TABLESPACE " + tablespaceName; //$NON-NLS-1$
+
+ LUWPartitionGroup pg = tablespace.getGroup();
+ if (pg != null){
+ String pgName = pg.getName();
+ if(quoteIdentifiers) {
+ pgName = this.getDoubleQuotedString(pgName);
+ }
+
+ text += NEWLINE + TAB + IN + SPACE + DATABASE + SPACE + PARTITION_GROUP + SPACE + pgName;
+ }
+
+ text += NEWLINE + TAB + "PAGESIZE "; //$NON-NLS-1$
+ //First get the page size from the buffer pool
+ PageSizeType pageSize = null;
+ if (tablespace.getBufferPool() != null) {
+ pageSize = tablespace.getBufferPool().getPageSize();
+ }
+ else {
+ pageSize = tablespace.getPageSize();
+ }
+ if(pageSize == PageSizeType.FOUR_K_LITERAL) {
+ text += "4 K"; //$NON-NLS-1$
+ }
+ else if(pageSize == PageSizeType.EIGHT_K_LITERAL) {
+ text += "8 K"; //$NON-NLS-1$
+ }
+ else if(pageSize == PageSizeType.SIXTEEN_K_LITERAL) {
+ text += "16 K"; //$NON-NLS-1$
+ }
+ else if(pageSize == PageSizeType.THIRTY_TWO_K_LITERAL) {
+ text += "32 K"; //$NON-NLS-1$
+ }
+ else if (pageSize == PageSizeType.FOUR_KB_LITERAL) {
+ text += "4096";
+ }
+ else if (pageSize == PageSizeType.EIGHT_KB_LITERAL) {
+ text += "8192";
+ }
+ else if (pageSize == PageSizeType.SIXTEEN_KB_LITERAL) {
+ text += "16384";
+ }
+ else if (pageSize == PageSizeType.THIRTY_TWO_KB_LITERAL) {
+ text += "32768";
+ }
+
+ text += NEWLINE + TAB + "MANAGED BY "; //$NON-NLS-1$
+ if (tablespace.getManagementType() == ManagementType.DATABASE_MANAGED_LITERAL) {
+ text += "DATABASE"; //$NON-NLS-1$
+ if (hasContainers( tablespace )) {
+ text += this.getContainers(tablespace);
+ }
+ }
+ else if (tablespace.getManagementType() == ManagementType.SYSTEM_MANAGED_LITERAL) {
+ text += "SYSTEM"; //$NON-NLS-1$
+ if (hasContainers( tablespace )) {
+ text += this.getContainers(tablespace);
+ }
+ }
+ else {
+ text += "AUTOMATIC STORAGE"; //$NON-NLS-1$
+ }
+
+ if (tablespace.getManagementType() != ManagementType.SYSTEM_MANAGED_LITERAL) {
+ long initsize = tablespace.getInitialSize();
+ UnitType initunit = tablespace.getInitialSizeUnit();
+ long incrsize = tablespace.getIncreaseSize();
+ UnitType incrunit = tablespace.getIncreaseSizeUnit();
+ int incrpct = tablespace.getIncreasePercent();
+ long maxsize = tablespace.getMaximumSize();
+ UnitType maxunit = tablespace.getMaximumSizeUnit();
+
+ if (initsize != 0 || incrsize != 0 || incrpct != 0 || maxsize != 0) {
+ text += NEWLINE + "AUTORESIZE YES"; //$NON-NLS-1$
+ }
+
+ if (tablespace.getManagementType() == ManagementType.AUTOMATIC_STORAGE_LITERAL
+ && initsize != 0) {
+ text += NEWLINE + "INITIALSIZE " + initsize; //$NON-NLS-1$
+ if (initunit != null) {
+ text += " " + initunit.getLiteral(); //$NON-NLS-1$
+ }
+ }
+
+ if (incrsize != 0) {
+ text += NEWLINE + "INCREASESIZE " + incrsize; //$NON-NLS-1$
+ if (incrunit != null) {
+ text += " " + incrunit.getLiteral(); //$NON-NLS-1$
+ }
+ }
+ else if (incrpct != 0) {
+ text += NEWLINE + "INCREASESIZE " //$NON-NLS-1$
+ + incrpct + " PERCENT"; //$NON-NLS-1$
+ }
+
+ if (maxsize != 0) {
+ text += NEWLINE + "MAXSIZE " + maxsize; //$NON-NLS-1$
+ if (maxunit != null) {
+ text += " " + maxunit.getLiteral(); //$NON-NLS-1$
+ }
+ }
+ }
+
+ final int extentsize = tablespace.getExtentSize();
+ if (extentsize > 0) {
+ text += NEWLINE + TAB + "EXTENTSIZE " + extentsize; //$NON-NLS-1$
+ }
+
+ final int prefetchsize = tablespace.getPreFetchSize();
+ if (prefetchsize > 0) {
+ text += NEWLINE + TAB + "PREFETCHSIZE " + prefetchsize; //$NON-NLS-1$
+ }
+
+ LUWBufferPool bufferpool = tablespace.getBufferPool();
+ if(bufferpool != null) {
+ String bufferpoolName = bufferpool.getName();
+ if(quoteIdentifiers) {
+ bufferpoolName = this.getDoubleQuotedString(bufferpoolName);
+ }
+
+ text += NEWLINE + TAB + "BUFFERPOOL " + bufferpoolName; //$NON-NLS-1$
+ }
+
+ Double overhead = tablespace.getOverhead();
+ if (overhead > 0 ){
+ text += NEWLINE + TAB + "OVERHEAD " + overhead;
+ }
+
+ if (tablespace.getTransferRate() > 0) {
+ text += NEWLINE + TAB + "TRANSFERRATE " + tablespace.getTransferRate(); //$NON-NLS-1$
+ }
+
+ text += RecoverDroppedTableString(tablespace);
+
+ return text;
+ }
+
+ public String dropTablespace(LUWTableSpace tablespace, boolean quoteIdentifiers) {
+ String tablespaceName = tablespace.getName();
+ if(quoteIdentifiers) {
+ tablespaceName = this.getDoubleQuotedString(tablespaceName);
+ }
+
+ return "DROP TABLESPACE " + tablespaceName; //$NON-NLS-1$
+ }
+
+ public String createBufferPool(LUWBufferPool bufferpool, boolean quoteIdentifiers) {
+ String bufferpoolName = bufferpool.getName();
+ if(quoteIdentifiers) {
+ bufferpoolName = this.getDoubleQuotedString(bufferpoolName);
+ }
+
+ String text = "CREATE BUFFERPOOL " + bufferpoolName; //$NON-NLS-1$
+
+ if (bufferpool.getCreateType() ==BufferPoolType.DEFERRED_LITERAL ) {
+ text += TAB + "DEFERRED"; //$NON-NLS-1$
+ }
+
+ EList pgs = bufferpool.getPartitionGroup();
+ if (pgs.isEmpty()) {
+ text += NEWLINE + TAB + "ALL DBPARTITIONNUMS "; //$NON-NLS-1$
+ } else {
+ StringBuilder pgtext = new StringBuilder();
+
+ for ( Object pgobj : pgs )
+ {
+ LUWPartitionGroup pg = (LUWPartitionGroup)pgobj;
+
+ if (pgtext.length() > 0) {
+ pgtext.append( ", " );
+ }
+ pgtext.append( pg.getName() );
+ }
+
+ text += NEWLINE + TAB + "DATABASE PARTITION GROUP " //$NON-NLS-1$
+ + pgtext.toString();
+ }
+
+ String sizeStr = this.getBufferPoolSize(bufferpool);
+ if (sizeStr == null) {
+ return null; //not right size
+ } else {
+ text += sizeStr;
+ }
+ int numBlockPages = bufferpool.getNumBlockPages();
+ text += NEWLINE + TAB +"NUMBLOCKPAGES " + bufferpool.getNumBlockPages(); //$NON-NLS-1$
+
+ if (numBlockPages >0) { //0 mean disable blockSize
+ int blocksize = bufferpool.getBlockSize();
+ if (blocksize >1) {
+ text += SPACE + "BLOCKSIZE " + blocksize; //$NON-NLS-1$
+ }
+ }
+ text += NEWLINE + TAB + "PAGESIZE "; //$NON-NLS-1$
+ PageSizeType pageSize = bufferpool.getPageSize();
+ if(pageSize == PageSizeType.FOUR_K_LITERAL) {
+ text += "4 K"; //$NON-NLS-1$
+ }
+ else if(pageSize == PageSizeType.EIGHT_K_LITERAL) {
+ text += "8 K"; //$NON-NLS-1$
+ }
+ else if(pageSize == PageSizeType.SIXTEEN_K_LITERAL) {
+ text += "16 K"; //$NON-NLS-1$
+ }
+ else if(pageSize == PageSizeType.THIRTY_TWO_K_LITERAL) {
+ text += "32 K"; //$NON-NLS-1$
+ }
+
+ List sizeexeptions = bufferpool.getSizeException();
+
+ if (!sizeexeptions.isEmpty()) {
+ StringBuilder parttext = new StringBuilder( NEWLINE + "EXCEPT ON DBPARTITIONNUMS (" );
+ boolean first = true;
+
+ for (Object o : sizeexeptions) {
+ LUWBufferPoolSizeException sizeex = (LUWBufferPoolSizeException)o;
+
+ String size = " SIZE " + sizeex.getSize();
+ List partns = sizeex.getPartitions();
+
+ for ( Object partobj : partns ) {
+ LUWDatabasePartition part = (LUWDatabasePartition)partobj;
+
+ if (!first) {
+ parttext.append(", ");
+ }
+ else {
+ first = false;
+ }
+
+ parttext.append( part.getNumber() );
+ parttext.append( size );
+ }
+ }
+
+ parttext.append( ")" );
+
+ text += parttext.toString();
+ }
+
+ if (bufferpool.isExtendedStorage() && supportsBufferpoolExtendedStorage()){
+ text += NEWLINE + "EXTENDED STORAGE"; //$NON-NLS-1$
+ }
+
+ return text;
+ }
+
+ /**
+ * @return
+ */
+ protected boolean supportsBufferpoolExtendedStorage() {
+ //V8 and before support EXTENDED STORAGE
+ return true;
+ }
+
+ public String dropBufferPool(LUWBufferPool bufferpool, boolean quoteIdentifiers) {
+ String bufferpoolName = bufferpool.getName();
+ if(quoteIdentifiers) {
+ bufferpoolName = this.getDoubleQuotedString(bufferpoolName);
+ }
+
+ return "DROP BUFFERPOOL " + bufferpoolName; //$NON-NLS-1$
+ }
+
+
+ public String createSequence(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ String sequenceName = sequence.getName();
+ String schemaName = sequence.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ sequenceName = this.getDoubleQuotedString(sequenceName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ sequenceName = schemaName + "." + sequenceName; //$NON-NLS-1$
+ }
+
+ String statement = "CREATE SEQUENCE " + sequenceName + " AS "; //$NON-NLS-1$ //$NON-NLS-2$
+
+ // String dataType = this.getDataTypeString(sequence,sequence.getSchema(),qualifyNames);
+ // fix for issue wsdbu00985096
+ String dataType = this.getDataTypeString(sequence,sequence.getSchema(),quoteIdentifiers,qualifyNames);
+
+ if (dataType == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_TABLESPACE_NO_CONTAINER, new Object[] { sequenceName}));
+ return null;
+ }
+
+ statement += dataType;
+
+ DB2IdentitySpecifier identity = (DB2IdentitySpecifier)sequence.getIdentity();
+ statement += " " + this.getIdentityString(identity); //$NON-NLS-1$
+
+ return statement;
+ }
+
+ public String createMQT(LUWMaterializedQueryTable table, boolean quoteIdentifiers, boolean qualifyNames){
+ String tableName = table.getName();
+ String schemaName = table.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ tableName = schemaName + "." + tableName; //$NON-NLS-1$
+ }
+
+ String statement = "CREATE TABLE " + tableName + " ("; //$NON-NLS-1$ //$NON-NLS-2$
+
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ statement += column.getName();
+ if(it.hasNext()) {
+ statement += ", "; //$NON-NLS-1$
+ }
+ }
+ statement += ")" + NEWLINE + "AS ("; //$NON-NLS-1$ //$NON-NLS-2$
+
+ QueryExpression expression = table.getQueryExpression();
+ if (expression == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_MQT_HAS_NO_BODY, new Object[] { schemaName+"."+tableName}));
+ return null;
+ }
+
+ statement += expression.getSQL() + ")" +NEWLINE; //$NON-NLS-1$
+
+//<bgp statement += "DATA INITIALLY DEFERRED REFRESH "; //$NON-NLS-1$
+// if(table.getRefresh() == RefreshType.IMMEDIATE_LITERAL) {
+// statement += "IMMEDIATE"; //$NON-NLS-1$
+// }
+// else {
+// statement += "DEFERRED"; //$NON-NLS-1$
+//bgp> }
+
+ if(table.isOptimizeQuery()) {
+ statement += " ENABLE"; //$NON-NLS-1$
+ }
+ else {
+ statement += " DISABLE"; //$NON-NLS-1$
+ }
+ statement += " QUERY OPTIMIZATION" + NEWLINE; //$NON-NLS-1$
+
+//<bgp statement += "MAINTAINED BY "; //$NON-NLS-1$
+// if(table.getMaintainedBy() == MaintenanceType.SYSTEM_LITERAL) {
+// statement += "SYSTEM"; //$NON-NLS-1$
+// }
+// else {
+// statement += "USER"; //$NON-NLS-1$
+//bgp> }
+
+ if (this.generator != null && !EngineeringOptionID.generateInTablespaceClause(this.generator.getSelectedOptions())){ //@d00058820gs
+ } else {
+ statement += this.getTablespaceString(table, quoteIdentifiers);
+ }
+
+ statement += this.getPartitionKey(table,quoteIdentifiers);
+
+ statement += this.getCompressionValue(table);
+ return statement;
+ }
+
+ public String dropMQT(LUWMaterializedQueryTable table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String tableName = table.getName();
+ String schemaName = table.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ tableName = schemaName + "." + tableName; //$NON-NLS-1$
+ }
+
+ return "DROP TABLE " + tableName; //$NON-NLS-1$
+ }
+
+ public String dropPackage(LUWDatabasePackage dbpackage, boolean quoteIdentifiers, boolean qualifyNames) {
+ String schemaName = dbpackage.getSchema().getName();
+ String packageName = dbpackage.getName();
+ String versionName = null;
+
+ if(quoteIdentifiers) {
+ schemaName = this.getDoubleQuotedString(schemaName);
+ packageName = this.getDoubleQuotedString(packageName);
+ }
+
+ if(qualifyNames) {
+ packageName = schemaName + "." + packageName; //$NON-NLS-1$
+ }
+
+ if (dbpackage.getVersion() != null && dbpackage.getVersion().trim().length() > 0) {
+ versionName = this.getDoubleQuotedString(dbpackage.getVersion().trim());
+ }
+
+ return "DROP PACKAGE " + packageName + ((versionName != null) ? " VERSION " + versionName : ""); //$NON-NLS-1$
+ }
+
+ public String createTable(BaseTable table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String tableDefinition = super.createTable(table, quoteIdentifiers, qualifyNames);
+
+ LUWTable t = (LUWTable) table;
+
+ tableDefinition += this.getTableDimension(t, quoteIdentifiers);
+ tableDefinition += this.getDataCapture(t);
+
+ if (this.generator != null && !EngineeringOptionID.generateInTablespaceClause(this.generator.getSelectedOptions())){ //@d00058820gs
+ } else {
+ tableDefinition += this.getTablespaceString(t, quoteIdentifiers);
+ }
+ tableDefinition += this.getPartitionKey(t,quoteIdentifiers);
+
+ tableDefinition += this.getCompressionValue(t);
+
+ return tableDefinition;
+ }
+
+ public String createView(LUWView view, boolean quoteIdentifiers, boolean qualifyNames) {
+ QueryExpression expression = view.getQueryExpression();
+ if (expression == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_VIEW_HAS_NO_BODY, new Object[] { getName(view, false, true)}));
+ return null;
+ }
+
+ String sql = expression.getSQL();
+
+ String viewDefinition = CREATE + SPACE;
+ if(view.isFederated()) {
+ viewDefinition += "FEDERATED "; //$NON-NLS-1$
+ }
+ viewDefinition += VIEW + SPACE + getName(view, quoteIdentifiers, qualifyNames) + SPACE;
+
+ String columns = getViewColumnList(view,quoteIdentifiers);
+ if(columns != null) {
+ viewDefinition += LEFT_PARENTHESIS + columns + RIGHT_PARENTHESIS + SPACE;
+ }
+ viewDefinition += AS + NEWLINE;
+ viewDefinition += sql;
+ CheckType checkType = view.getCheckType();
+ if(checkType == CheckType.CASCADED_LITERAL) {
+ viewDefinition += NEWLINE + WITH + SPACE + CASCADED + SPACE + CHECK + SPACE + OPTION;
+ }
+ else if(checkType == CheckType.LOCAL_LITERAL) {
+ viewDefinition += NEWLINE + WITH + SPACE + LOCAL + SPACE + CHECK + SPACE + OPTION;
+ }
+ return viewDefinition;
+ }
+
+ public String createIndex(Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (getIndexKeyColumns(index, quoteIdentifiers) == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_INDEX_MEMBERS_NOT_SPECIFIED, new Object[] { index.getName()}));
+ return null;
+ }
+ String indexDefinition = super.createIndex(index, quoteIdentifiers, qualifyNames);
+
+ if (index instanceof LUWIndex)
+ {
+ indexDefinition += getDataPartitionOptions( (LUWIndex)index );
+ }
+
+ DB2Index ind = (DB2Index) index;
+
+ if(ind.getTable() instanceof LUWNickname) {
+ indexDefinition += " SPECIFICATION ONLY"; //$NON-NLS-1$
+ }
+ else {
+ String included = this.getIndexIncludedColumns(ind, quoteIdentifiers);
+ if(included != null) {
+ indexDefinition += NEWLINE + "INCLUDE (" + included + ")" + NEWLINE; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ if(ind.isClustered()) {
+ indexDefinition += SPACE + "CLUSTER "; //$NON-NLS-1$
+ }
+
+ int i = ind.getFillFactor();
+ indexDefinition += SPACE + "PCTFREE " + i; //$NON-NLS-1$
+
+// DB2IndexType indexType = ind.getIndexType();
+// if(indexType == DB2IndexType.REGULAR_LITERAL) {
+//
+// }
+// else if(indexType == DB2IndexType.DIMENSION_LITERAL) {
+//
+// }
+// else if(indexType == DB2IndexType.BLOCK_LITERAL) {
+//
+// }
+ indexDefinition += NEWLINE + "ALLOW REVERSE SCANS";
+ }
+
+ return indexDefinition;
+ }
+
+ protected String getDataPartitionOptions( LUWIndex index )
+ {
+ return ""; //$NON-NLS-1$
+ }
+
+ //Nickname
+ public String createNickname(LUWNickname nickname, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (nickname != null) {
+ Database database = nickname.getSchema().getDatabase();
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(database.getVendor(),database.getVersion());
+ if (nicknameDdlBuilder != null) {
+ String ddl = nicknameDdlBuilder.buildCreateStatement(nickname,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String dropNickname(LUWNickname nickname, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (nickname != null) {
+ Database database = nickname.getSchema().getDatabase();
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(database.getVendor(),database.getVersion());
+ if (nicknameDdlBuilder != null) {
+ String ddl = nicknameDdlBuilder.buildDropStatement(nickname,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String commentOn(LUWNickname nickname, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (nickname != null) {
+ Database database = nickname.getSchema().getDatabase();
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(database.getVendor(),database.getVersion());
+ if (nicknameDdlBuilder != null) {
+ String ddl = nicknameDdlBuilder.buildCommentOnStatement(nickname,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ //Federated Procedure - pyl
+ public String createFederatedProcedure(FederatedProcedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (procedure != null) {
+ Database database = procedure.getSchema().getDatabase();
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(database.getVendor(),database.getVersion());
+ if (federatedProcedureDdlBuilder != null) {
+ String ddl = federatedProcedureDdlBuilder.buildCreateStatement(procedure,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String dropFederatedProcedure(FederatedProcedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (procedure != null) {
+ Database database = procedure.getSchema().getDatabase();
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(database.getVendor(),database.getVersion());
+ if (federatedProcedureDdlBuilder != null) {
+ String ddl = federatedProcedureDdlBuilder.buildDropStatement(procedure,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String commentOn(FederatedProcedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (procedure != null) {
+ Database database = procedure.getSchema().getDatabase();
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(database.getVendor(),database.getVersion());
+ if (federatedProcedureDdlBuilder != null) {
+ String ddl = federatedProcedureDdlBuilder.buildCommentOnStatement(procedure,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ //Remote Server
+ public String createRemoteServer(LUWServer remoteServer, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (remoteServer != null) {
+ Database database = remoteServer.getLUWDatabase();
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(database.getVendor(),database.getVersion());
+ if (remoteServerDdlBuilder != null) {
+ String ddl = remoteServerDdlBuilder.buildCreateStatement(remoteServer,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String dropRemoteServer(LUWServer remoteServer, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (remoteServer != null) {
+ Database database = remoteServer.getLUWDatabase();
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(database.getVendor(),database.getVersion());
+ if (remoteServerDdlBuilder != null) {
+ String ddl = remoteServerDdlBuilder.buildDropStatement(remoteServer,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String commentOn(LUWServer remoteServer, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (remoteServer != null) {
+ Database database = remoteServer.getLUWDatabase();
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(database.getVendor(),database.getVersion());
+ if (remoteServerDdlBuilder != null) {
+ String ddl = remoteServerDdlBuilder.buildCommentOnStatement(remoteServer,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ //Wrapper
+ public String createWrapper(LUWWrapper wrapper, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (wrapper != null) {
+ Database database = wrapper.getLUWDatabase();
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(database.getVendor(),database.getVersion());
+ if (wrapperDdlBuilder != null) {
+ String ddl = wrapperDdlBuilder.buildCreateStatement(wrapper,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String dropWrapper(LUWWrapper wrapper, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (wrapper != null) {
+ Database database = wrapper.getLUWDatabase();
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(database.getVendor(),database.getVersion());
+ if (wrapperDdlBuilder != null) {
+ String ddl = wrapperDdlBuilder.buildDropStatement(wrapper, quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ public String commentOn(LUWWrapper wrapper, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (wrapper != null) {
+ Database database = wrapper.getLUWDatabase();
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(database.getVendor(),database.getVersion());
+ if (wrapperDdlBuilder != null) {
+ String ddl = wrapperDdlBuilder.buildCommentOnStatement(wrapper,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ return null;
+ }
+
+ //User Mapping
+ public String createUserMapping(LUWUserMapping userMapping, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (userMapping != null) {
+ LUWServer luwServer = userMapping.getServer();
+ if (luwServer != null) {
+ Database database = luwServer.getLUWDatabase();
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(database.getVendor(),database.getVersion());
+ if (userMappingDdlBuilder != null) {
+ String ddl = userMappingDdlBuilder.buildCreateStatement(userMapping,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ }
+ return null;
+ }
+
+ public String dropUserMapping(LUWUserMapping userMapping, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (userMapping != null) {
+ LUWServer luwServer = userMapping.getServer();
+ if (luwServer != null) {
+ Database database = luwServer.getLUWDatabase();
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(database.getVendor(),database.getVersion());
+ if (userMappingDdlBuilder != null) {
+ String ddl = userMappingDdlBuilder.buildDropStatement(userMapping, quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ }
+ return null;
+ }
+
+ public String commentOn(LUWUserMapping userMapping, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (userMapping != null) {
+ LUWServer luwServer = userMapping.getServer();
+ if (luwServer != null) {
+ Database database = luwServer.getLUWDatabase();
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(database.getVendor(),database.getVersion());
+ if (userMappingDdlBuilder != null) {
+ String ddl = userMappingDdlBuilder.buildCommentOnStatement(userMapping,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ }
+ }
+ return null;
+ }
+
+ /* // xml schema drop done via stored procedure now
+ * Currently XMLSupport is limited to LUW. Once it is extended to i/zSeries,
+ * this should be implemented by parent class.
+ * @param xmlSchema the XMLSchemaobject to be dropped
+ * @param quoteIdentifiers
+ * @param qualifyNames
+ * @return the DDL drop statement of the XMLSchema
+
+ public String dropXMLSchema(LUWCatalogXmlSchema xmlSchema, boolean quoteIdentifiers, boolean qualifyNames){
+ String dropStatement = null;
+ // construct the actual drop statement
+ dropStatement = DROP + SPACE + XSROBJECT + SPACE;
+
+
+ String schemaName = xmlSchema.getName();
+ String dbSchemaName = xmlSchema.getSchema().getName();
+ if(quoteIdentifiers) {
+ schemaName = this.getDoubleQuotedString(schemaName);
+ dbSchemaName = this.getDoubleQuotedString(dbSchemaName);
+ }
+
+ if(qualifyNames) {
+ dropStatement += dbSchemaName + "." + schemaName; //$NON-NLS-1$
+ }else{
+ dropStatement += schemaName;
+ }
+ return dropStatement;
+ }
+*/
+ public String commentOn(LUWTableSpace tablespace, boolean quoteIdentifiers) {
+ String comment = tablespace.getDescription();
+ if(comment == null || comment.equals("")) { //$NON-NLS-1$
+ return null;
+ }
+
+ String tablespaceName = tablespace.getName();
+
+ if(quoteIdentifiers) {
+ tablespaceName = this.getDoubleQuotedString(tablespaceName);
+ }
+
+ return "COMMENT ON TABLESPACE " + tablespaceName + " IS" + NEWLINE + this.getSingleQuotedString(comment); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String createPartitionGroup(LUWPartitionGroup pg, boolean quoteIdentifiers) {
+ String pgName = pg.getName();
+ if (pgName.startsWith(IBM) ||
+ pgName.startsWith(SYS)) return null;
+
+ if(quoteIdentifiers) {
+ pgName = this.getDoubleQuotedString(pgName);
+ }
+
+ String statement = CREATE + SPACE + DATABASE + SPACE + PARTITION_GROUP + SPACE + pgName + " ON " ; //$NON-NLS-1$ //$NON-NLS-2$
+
+ String partitions = ""; //$NON-NLS-1$
+ boolean isAllPartition = true;
+ Iterator it = pg.getPartitions().iterator();
+ while(it.hasNext()) {
+ LUWDatabasePartition partition = (LUWDatabasePartition) it.next();
+ int partitionNum = partition.getNumber();
+ if (partitionNum >=0 ) {
+ partitions += partition.getNumber();
+ if(it.hasNext()) {
+ partitions += ", "; //$NON-NLS-1$
+ }
+ isAllPartition = false;
+ } else {
+ break;
+ }
+ }
+
+ if (isAllPartition) {
+ statement += "ALL DBPARTITIONNUMS"; //$NON-NLS-1$
+ } else {
+ statement += "DBPARTITIONNUMS " + LEFT_PARENTHESIS + partitions + RIGHT_PARENTHESIS;
+ }
+ return statement;
+ }
+
+ public String dropPartitionGroup(LUWPartitionGroup pg, boolean quoteIdentifiers) {
+ String pgName = pg.getName();
+ if (pgName.startsWith(IBM) ||
+ pgName.startsWith(SYS)) return null;
+
+ if(quoteIdentifiers) {
+ pgName = this.getDoubleQuotedString(pgName);
+ }
+ return DROP + SPACE + DATABASE + SPACE + PARTITION_GROUP + SPACE + pgName; //$NON-NLS-1$
+ }
+
+ public String commentOn(LUWPartitionGroup pg, boolean quoteIdentifiers) {
+ String comment = pg.getDescription();
+ if(comment == null || comment.equals("")) { //$NON-NLS-1$
+ return null;
+ }
+
+ String pgName = pg.getName();
+
+ if(quoteIdentifiers) {
+ pgName = this.getDoubleQuotedString(pgName);
+ }
+
+ return COMMENT + SPACE + ON + SPACE + DATABASE + SPACE + PARTITION_GROUP + SPACE + pgName + " IS" + NEWLINE + this.getSingleQuotedString(comment); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String createStructuredUserDefinedType(StructuredUserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ EList attrs = type.getAttributes();
+ //wsdbu00240410
+// String dependStatement = " depends on ";
+// boolean depends = false;
+
+ EObject root = ContainmentServiceImpl.INSTANCE.getRootElement(type);
+ Schema schema = type.getSchema();
+ Database database = ModelHelper.getDatabase(schema);
+ DatabaseDefinition def = null;
+ if(root instanceof Database) {
+ def = DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition((Database) root);
+ }
+ else {
+ //TODO report error
+ return null;
+ }
+
+ String statement = CREATE + SPACE + TYPE + SPACE + getName(type, quoteIdentifiers, qualifyNames);
+
+ StructuredUserDefinedType superType = type.getSuper();
+ if (superType != null) {
+ statement += SPACE + UNDER + SPACE + getName(superType,quoteIdentifiers,qualifyNames);
+ //wsdbu00240410
+// depends = true;
+// dependStatement += getName(superType,quoteIdentifiers,qualifyNames);
+
+ }
+
+
+ if (!attrs.isEmpty()) {
+ statement += SPACE + AS + LEFT_PARENTHESIS;
+
+ Iterator it = attrs.iterator();
+ while(it.hasNext()) {
+ LUWAttributeDefinition attr = (LUWAttributeDefinition) it.next();
+ String typeName = getDataTypeString(attr,schema,quoteIdentifiers,qualifyNames);
+ statement += NEWLINE + TAB + attr.getName() + SPACE + typeName;
+ if (typeName.indexOf("CLOB") !=-1 ||typeName.indexOf("BLOB") != -1) {
+ statement += getLOBLoggedClause(attr);
+ if (attr.isLOBCompacted()) statement += " COMPACT";
+ }
+
+ if(it.hasNext()) {
+ statement += ", "; //$NON-NLS-1$
+ }
+ //wsdbu00240410
+// if(attr.getDataType() instanceof StructuredUserDefinedType){
+// if(!depends){
+// depends = true;
+// dependStatement += typeName;
+// }else{
+// dependStatement += ","+ typeName;
+// }
+// }
+ }
+ statement += RIGHT_PARENTHESIS;
+
+ }
+
+ if (!type.isInstantiable()) {
+ statement += NEWLINE + TAB + "NOT INSTANTIABLE"; //$NON-NLS-1$
+ }
+
+ if (type.isFinal()) {
+ statement += NEWLINE + TAB + "FINAL"; //$NON-NLS-1$
+ }
+
+ statement += NEWLINE + TAB + "MODE DB2SQL"; //$NON-NLS-1$
+ //wsdbu00240410
+// if(depends)
+// statement += dependStatement;
+ return statement;
+ }
+
+ public String commentOn(StructuredUserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = type.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String name = getName(type, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + TYPE + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String createModule(LUWModule module,boolean quoteIdentifiers, boolean qualifyNames ){
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildCreateStatement(module, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ public String dropModule(LUWModule module,boolean quoteIdentifiers, boolean qualifyNames ){
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildDropStatement(module, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ public String commentOn(LUWModule module,boolean quoteIdentifiers, boolean qualifyNames ){
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildCommentStatement(module, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ public String createModuleCondition(LUWModuleCondition condtion, boolean quoteIdentifiers, boolean qualifyNames ){
+ return this.createModuleObject(condtion, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropModuleCondition(LUWModuleCondition condtion,boolean quoteIdentifiers, boolean qualifyNames ){
+ return this.dropModuleObject(condtion, quoteIdentifiers, qualifyNames);
+ }
+
+ public String createModuleGlobalVariable(LUWModuleGlobalVariable variable, boolean quoteIdentifiers, boolean qualifyNames ){
+ return this.createModuleObject(variable, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropModuleGlobalVariable(LUWModuleGlobalVariable condtion,boolean quoteIdentifiers, boolean qualifyNames ){
+ return this.dropModuleObject(condtion, quoteIdentifiers, qualifyNames);
+ }
+
+ public String createGlobalVariable(LUWGlobalVariable variable, boolean quoteIdentifiers, boolean qualifyNames ){
+ StringBuffer text = new StringBuffer();
+ text.append(CREATE).append(SPACE).append(VARIABLE).append(SPACE)
+ .append(getName(variable, quoteIdentifiers,qualifyNames)).append(SPACE)
+ .append(getDataTypeString(variable, variable.getSchema(), quoteIdentifiers,qualifyNames));
+
+ String expression = variable.getDefaultValue();
+ if (expression != null && !"".equals(expression)) {
+ if (variable.isIsConstant()) {
+ text.append(NEWLINE).append(TAB).append(CONSTANT);
+ }else {
+ text.append(NEWLINE).append(TAB).append(DEFAULT);
+ }
+
+ text.append(SPACE).append(LEFT_PARENTHESIS).append(expression).append(RIGHT_PARENTHESIS);
+
+ }
+ return text.toString();
+ }
+
+ public String dropGlobalVariable(LUWGlobalVariable variable ,boolean quoteIdentifiers, boolean qualifyNames ){
+ StringBuffer text = new StringBuffer();
+ text.append(DROP).append(SPACE).append(VARIABLE).append(SPACE)
+ .append(getName(variable, quoteIdentifiers,qualifyNames));
+ return text.toString();
+ }
+
+ public String createArrayDataType(LUWArrayDataType type, boolean quoteIdentifiers, boolean qualifyNames ){
+ if (type instanceof LUWModuleArrayDataType) {
+ return this.createModuleObject((LUWModuleArrayDataType)type, quoteIdentifiers, qualifyNames);
+ }
+
+ StringBuffer text = new StringBuffer();
+ text.append(CREATE).append(SPACE).append(TYPE).append(SPACE)
+ .append(getName(type, quoteIdentifiers,qualifyNames)).append(SPACE).append(AS).append(SPACE)
+ .append(getDataTypeString(type.getElementType(), type.getSchema(),quoteIdentifiers, qualifyNames)).append(SPACE)
+ .append(ARRAY).append(SPACE).append("[").append(type.getMaxCardinality()>0?type.getMaxCardinality():EMPTY_STRING).append("]");
+
+ return text.toString();
+ }
+
+ public String createRowDataType(LUWRowDataType type, boolean quoteIdentifiers, boolean qualifyNames ){
+ if (type instanceof LUWModuleRowDataType) {
+ return this.createModuleObject((LUWModuleRowDataType)type, quoteIdentifiers, qualifyNames);
+ }
+
+ StringBuffer text = new StringBuffer();
+ text.append(CREATE).append(SPACE).append(TYPE).append(SPACE)
+ .append(getName(type, quoteIdentifiers,qualifyNames)).append(SPACE).append(AS).append(SPACE).append(ROW);
+
+ EList fields = type.getFields();
+ if (!fields.isEmpty()) {
+ text.append(LEFT_PARENTHESIS);
+
+ Iterator it = fields.iterator();
+ while(it.hasNext()) {
+ Field field = (Field) it.next();
+ String typeName = getDataTypeString(field,type.getSchema(),quoteIdentifiers,qualifyNames);
+ text.append(NEWLINE).append(TAB).append(field.getName()).append(SPACE).append(typeName);
+
+ if(it.hasNext()) {
+ text.append(", "); //$NON-NLS-1$
+ }
+ }
+ text.append(RIGHT_PARENTHESIS);
+
+ }
+
+ return text.toString();
+ }
+
+ public String createCursorDataType(LUWCursorDataType type, boolean quoteIdentifiers, boolean qualifyNames ){
+ if (type instanceof LUWModuleCursorDataType) {
+ return this.createModuleObject((LUWModuleCursorDataType)type, quoteIdentifiers, qualifyNames);
+ }
+
+ StringBuffer text = new StringBuffer();
+ text.append(CREATE).append(SPACE).append(TYPE).append(SPACE)
+ .append(getName(type, quoteIdentifiers,qualifyNames)).append(SPACE).append(AS).append(SPACE);
+
+ LUWRowDataType rowType = type.getRowType();
+ if (rowType != null) {
+ text.append(this.getName(rowType, quoteIdentifiers,qualifyNames)).append(SPACE);
+
+ }
+ text.append(CURSOR);
+
+ return text.toString();
+ }
+
+ public String createModuleDistinctType(LUWModuleDistinctType type, boolean quoteIdentifiers, boolean qualifyNames ){
+ return this.createModuleObject(type, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropUserDefinedType(UserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (type instanceof LUWModuleObject) {
+ return this.dropModuleObject((LUWModuleObject)type, quoteIdentifiers, qualifyNames);
+ }
+ return super.dropUserDefinedType(type, quoteIdentifiers, qualifyNames);
+ }
+
+ public String commentOn(LUWModuleCondition condtion,boolean quoteIdentifiers, boolean qualifyNames ){
+ return this.commentOnModuleObject(condtion, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropPlsqlPackage(PLSQLPackage plPackage,boolean quoteIdentifiers, boolean qualifyNames) {
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildDropStatement(plPackage, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ public String createPlsqlPackage(PLSQLPackage plPackage,boolean quoteIdentifiers, boolean qualifyNames) {
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildCreateStatement(plPackage, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ public String dropPlsqlPackageBody(PLSQLPackageBody packageBody,boolean quoteIdentifiers, boolean qualifyNames) {
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildDropStatement(packageBody, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ public String createPlsqlPackageBody(PLSQLPackageBody packageBody,boolean quoteIdentifiers, boolean qualifyNames) {
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildCreateStatement(packageBody, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ public String createProcedure(DB2Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (procedure instanceof LUWModuleObject) {
+ return this.createModuleObject((LUWModuleObject)procedure, quoteIdentifiers, qualifyNames);
+ }
+ return super.createProcedure(procedure, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropProcedure(Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (procedure instanceof LUWModuleObject) {
+ return this.dropModuleObject((LUWModuleObject)procedure, quoteIdentifiers, qualifyNames);
+ }
+ return super.dropProcedure(procedure, quoteIdentifiers, qualifyNames);
+
+ }
+
+ public String commentOn(Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (procedure instanceof LUWModuleObject) {
+ return this.commentOnModuleObject((LUWModuleObject)procedure, quoteIdentifiers, qualifyNames);
+ }
+ return super.commentOn(procedure, quoteIdentifiers, qualifyNames);
+ }
+
+ public String createUserDefinedFunction(DB2UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (function instanceof LUWModuleObject) {
+ return this.createModuleObject((LUWModuleObject)function, quoteIdentifiers, qualifyNames);
+ }
+ return super.createUserDefinedFunction(function, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropFunction(UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (function instanceof LUWModuleObject) {
+ return this.dropModuleObject((LUWModuleObject)function, quoteIdentifiers, qualifyNames);
+ }
+ return super.dropFunction(function, quoteIdentifiers, qualifyNames);
+ }
+
+ public String commentOn(UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (function instanceof LUWModuleObject) {
+ return this.commentOnModuleObject((LUWModuleObject)function, quoteIdentifiers, qualifyNames);
+ }
+ return super.commentOn(function, quoteIdentifiers, qualifyNames);
+ }
+
+ public String commentOn(Role role, boolean quoteIdentifiers, boolean qualifyNames) {
+ return null; //only LUW 9.5 and above version support it.
+ }
+
+ public String alterCommentOn(SQLObject sqlObject, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = sqlObject.getDescription();
+ if(comment == null || comment.length() == 0) {
+ comment =SINGLE_QUOTE + SINGLE_QUOTE;
+ }
+ String commentType = getCommentType(sqlObject,quoteIdentifiers,qualifyNames);
+ return commentType==null? "":COMMENT + SPACE + ON + SPACE + commentType + SPACE + IS + SPACE
+ + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ return null; //only LUW 9.7 and above version support it.
+ }
+
+ protected String getCommentType(SQLObject sqlObject,boolean quoteIdentifiers, boolean qualifyNames) {
+ String comments = "";
+ if (sqlObject instanceof LUWTable) {
+ comments += TABLE + SPACE + getName((Table)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof LUWView) {
+ comments += TABLE + SPACE + getName((Table)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof LUWMaterializedQueryTable) {
+ comments += TABLE + SPACE + getName((Table)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof LUWTableSpace) {
+ comments += TABLESPACE + SPACE + getName((LUWTableSpace)sqlObject,quoteIdentifiers);
+ } else if (sqlObject instanceof DB2Alias) {
+ comments += ALIAS + SPACE + getName((DB2Alias)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof Procedure) {
+ comments += PROCEDURE + SPACE + getName((Procedure)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof Function) {
+ comments += FUNCTION + SPACE + getName((Function)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof Trigger) {
+ comments += TRIGGER + SPACE + getName((Trigger)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof TableConstraint) {
+ comments += CONSTRAINT + SPACE + getTableConstraintName((TableConstraint)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof Index) {
+ comments += INDEX + SPACE + getName((Index)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof DistinctUserDefinedType) {
+ comments += DISTINCT + SPACE + TYPE + SPACE + getName((DistinctUserDefinedType)sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof StructuredUserDefinedType ) {
+ comments += TYPE + SPACE + getName((StructuredUserDefinedType )sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof Column ) {
+ comments += COLUMN + SPACE + getName((Column )sqlObject,quoteIdentifiers,qualifyNames);
+ } else if (sqlObject instanceof LUWPartitionGroup ) {
+ comments += DATABASE + SPACE + PARTITION_GROUP + SPACE + getName((LUWPartitionGroup )sqlObject,quoteIdentifiers);
+ } else if (sqlObject instanceof Schema ) {
+ comments += SCHEMA + SPACE + getName((Schema )sqlObject,quoteIdentifiers,qualifyNames);
+ }
+ return comments;
+ }
+
+ public String alterObject(LUWTable element) {
+ String statement = createTable(element, true, true);
+ if(statement != null) {
+ statement = "CALL SYSPROC.ALTOBJ(" + NEWLINE //$NON-NLS-1$
+ + "\t'APPLY_CONTINUE_ON_ERROR'," + NEWLINE //$NON-NLS-1$
+ + "\t'" + statement + "'," + NEWLINE //$NON-NLS-1$ //$NON-NLS-2$
+ + "\t-1, ?)"; //$NON-NLS-1$
+ }
+ return statement;
+ }
+
+ //@bd00062627gs
+ public String addUniqueConstraint(UniqueConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = super.addUniqueConstraint(constraint, quoteIdentifiers, qualifyNames);
+
+ if (constraint.eContainer() instanceof LUWNickname) {
+ if (statement == null) return null; //report error
+ //statement += this.getEnforcedOption(constraint);
+ statement += SPACE + NOT + SPACE + ENFORCED;// + SPACE + ENABLE + SPACE + QUERY + SPACE + OPTIMIZATION;
+ }
+
+ return statement;
+ }
+ //@ed00062627gs
+
+ //@bd00062627gs
+ public String addCheckConstraint(CheckConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = super.addCheckConstraint(constraint,quoteIdentifiers,qualifyNames);
+ if (constraint.eContainer() instanceof LUWNickname) {
+ if (statement == null) return null; //report error
+ if (constraint.isEnforced()) //if NOT ENFORCED was not already added, add it
+ statement += SPACE + NOT + SPACE + ENFORCED;// + SPACE + ENABLE + SPACE + QUERY + SPACE + OPTIMIZATION;
+ }
+ return statement;
+ }
+ //@ed00062627gs
+
+ //@bd00062627gs
+ public String addForeignKey(ForeignKey foreignKey, boolean quoteIdentifiers, boolean qualifyNames) {
+ UniqueConstraint uniqueConstraint = foreignKey.getUniqueConstraint();
+ Index index = foreignKey.getUniqueIndex();
+ Table parentTable = null;
+ String parentKey = null;
+ if(uniqueConstraint != null) {
+ parentTable = uniqueConstraint.getBaseTable();
+ parentKey = this.getKeyColumns(uniqueConstraint,quoteIdentifiers);
+ if (parentKey == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_REFERENCED_PARENT_KEY_DOES_NOT_EXIST, new Object[] { foreignKey.getName()}));
+ return null;
+ }
+ }
+ else if(index != null) {
+ parentTable = index.getTable();
+ parentKey = this.getParentKeyColumns(index, quoteIdentifiers);
+ if (parentKey == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_REFERENCED_PARENT_KEY_DOES_NOT_EXIST, new Object[] { foreignKey.getName()}));
+ return null;
+ }
+ }
+ if(parentTable == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_REFERENCED_PARENT_TABLE_DOES_NOT_EXIST, new Object[] { foreignKey.getName()}));
+ return null;
+ }
+
+ String statement = ALTER + SPACE + this.getOwnerType(foreignKey) + SPACE + getName(foreignKey.getBaseTable(), quoteIdentifiers, qualifyNames)
+ + SPACE + ADD + SPACE + CONSTRAINT + SPACE + getName(foreignKey, quoteIdentifiers) + SPACE + FOREIGN_KEY
+ + this.getKeyColumns(foreignKey,quoteIdentifiers);
+ statement += NEWLINE + TAB + REFERENCES + SPACE + getName(parentTable, quoteIdentifiers, qualifyNames) + parentKey;
+
+ if (foreignKey.eContainer() instanceof LUWNickname) {
+ statement += SPACE + NOT + SPACE + ENFORCED;// + SPACE + ENABLE + SPACE + QUERY + SPACE + OPTIMIZATION;
+ } else {
+ ReferentialActionType action = foreignKey.getOnDelete();
+ if(action != ReferentialActionType.NO_ACTION_LITERAL) {
+ statement += NEWLINE + TAB + ON + SPACE + DELETE + SPACE;
+ }
+ statement += getReferentialAction(action);
+
+ action = foreignKey.getOnUpdate();
+ if(action != ReferentialActionType.NO_ACTION_LITERAL) {
+ statement += NEWLINE + TAB + ON + SPACE + UPDATE + SPACE;
+ }
+ statement += getReferentialAction(action);
+
+ if(foreignKey.isDeferrable()) {
+ statement += NEWLINE + TAB + getDeferrableClause(foreignKey);
+ }
+
+ statement += this.getEnforcedOption(foreignKey);
+ }
+
+ return statement;
+ }
+ //@ed00062627gs
+
+ public String[] grantOn(LUWTableSpace tablespace, boolean quoteIdentifiers) {
+ String tablespaceName = tablespace.getName();
+ if(quoteIdentifiers) {
+ tablespaceName = this.getDoubleQuotedString(tablespaceName);
+ }
+ return getGrantString(tablespace,quoteIdentifiers, false);
+ }
+
+ public String[] revokeFrom(LUWTableSpace tablespace, boolean quoteIdentifiers) {
+ String tablespaceName = tablespace.getName();
+ if(quoteIdentifiers) {
+ tablespaceName = this.getDoubleQuotedString(tablespaceName);
+ }
+ return getRevokeString(tablespace,quoteIdentifiers, false);
+ }
+
+ public String alterTableAlterProperties(Table table, int propertyType, boolean quoteIdentifiers, boolean qualifyNames) {
+ if(!(table instanceof LUWTable)) return null;
+
+ String proString = "";
+ if ((propertyType & LUWDeltaDdlGenerator.DATA_CAPTURE) == LUWDeltaDdlGenerator.DATA_CAPTURE) {
+ proString += this.getDataCapture((LUWTable)table);
+ }
+
+ if ((propertyType & LUWDeltaDdlGenerator.VALUE_COMPRESSION) == LUWDeltaDdlGenerator.VALUE_COMPRESSION) {
+ proString += this.getAlterTableAlterValueCompressionString((LUWTable)table);
+ }
+
+ if ((propertyType & LUWDeltaDdlGenerator.VOLATILE) == LUWDeltaDdlGenerator.VOLATILE) {
+ proString += this.getAlterTableAlterVolatileString((LUWTable)table);
+ }
+
+ if ((propertyType & LUWDeltaDdlGenerator.COMPRESSION) == LUWDeltaDdlGenerator.COMPRESSION) {
+ proString += this.getAlterTableAlterRowCompressionString((LUWTable)table);
+ }
+
+ if (!proString.equals("")) { //$NON-NLS-1$
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + proString;
+ return statement;
+ }
+ return null;
+ }
+
+ public String alterTableAlterPartitionKey(LUWStorageTable table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = ALTER + SPACE + TABLE + SPACE + getName((Table)table, quoteIdentifiers, qualifyNames);
+ LUWPartitionKey partitionKey = table.getPartitionKey();
+ if ((partitionKey == null) || partitionKey.getColumns().isEmpty()) { //drop
+ statement += " DROP PARTITIONING KEY"; //$NON-NLS-1$
+ } else { // modify
+ statement += SPACE + ADD + SPACE + getPartitionKeyDefinition(partitionKey,quoteIdentifiers);
+ }
+ return statement;
+ }
+
+
+ public String getGrantPrivilegeStatement(Privilege privilege,boolean quoteIdentifiers,boolean qualifyNames) {
+ if (this.isDDLSupressable(privilege)) {
+ if (this.getEngineeringCallBack() != null) {
+ String message = getSystemGrantMessage(GRANT,privilege,quoteIdentifiers,qualifyNames);
+ this.getEngineeringCallBack().writeMessage(message);
+ }
+ return null;
+ }
+ AuthorizationIdentifier authId = privilege.getGrantee();
+ String granteeType = "";
+ if (authId.getName().equals("PUBLIC")) granteeType="";
+ else if (authId instanceof User) granteeType = USER;
+ else if ((authId instanceof Group) && (!authId.getName().equals("PUBLIC"))) granteeType = GROUP;
+ else if (authId instanceof Role) granteeType = ROLE;
+ String prep = ON;
+ if (privilege.getObject() instanceof LUWTableSpace) prep = OF;
+ String ret = GRANT + SPACE + privilege.getAction() + SPACE + prep + SPACE
+ + getPrivilegedObjectTypeString(privilege) + SPACE
+ + getPrivilegedObjectName(privilege, quoteIdentifiers, qualifyNames)
+ + SPACE + TO + SPACE + granteeType + SPACE + this.getName(privilege.getGrantee(), quoteIdentifiers);
+ if (privilege.isGrantable()) {
+ ret += SPACE + WITH + SPACE + GRANT + SPACE + OPTION;
+ }
+ return ret;
+ }
+
+ public String getRevokePrivilegeStatement(Privilege privilege,boolean quoteIdentifiers,boolean qualifyNames) {
+ if (this.isDDLSupressable(privilege)) {
+ if (this.getEngineeringCallBack() != null) {
+ String message = getSystemGrantMessage(REVOKE,privilege,quoteIdentifiers,qualifyNames);
+ this.getEngineeringCallBack().writeMessage(message);
+ }
+ return null;
+ }
+ AuthorizationIdentifier authId = privilege.getGrantee();
+ String granteeType = "";
+ if (authId instanceof User) granteeType = USER;
+ else if ((authId instanceof Group) && (!authId.getName().equals("PUBLIC"))) granteeType = GROUP;
+ else if (authId instanceof Role) granteeType = ROLE;
+ String prep = ON;
+ if (privilege.getObject() instanceof LUWTableSpace) prep = OF;
+ String ret = REVOKE + SPACE + privilege.getAction() + SPACE + prep + SPACE
+ + getPrivilegedObjectTypeString(privilege) + SPACE
+ + getPrivilegedObjectName(privilege, quoteIdentifiers, qualifyNames)
+ + SPACE + FROM + SPACE + granteeType + SPACE + this.getName(privilege.getGrantee(), quoteIdentifiers);
+
+ if (privilege.getObject() instanceof Routine) {
+ ret += SPACE + RESTRICT;
+ }
+ return ret;
+ }
+
+ public String[] updateStatistics(Table table,boolean quoteIdentifiers, boolean qualifyNames){
+ if (!(table instanceof IDatabaseObject)) return null;
+ Collection stats = ((IDatabaseObject)table).getStatistics();
+ if (stats.isEmpty()) return null;
+ String whereClause = "WHERE TABNAME ='" + table.getName() + "'";
+ if (qualifyNames) {
+ whereClause += " AND TABSCHEMA='" + table.getSchema().getName() + "'";
+ }
+
+// return statVector.toArray(new String [statVector.size()]);
+ Collection statements = this.getAssignmentClause(stats,"SYSSTAT.TABLES",whereClause);
+ return (String[] )statements.toArray(new String[statements.size()]);
+ }
+
+ public String[] updateStatistics(Column column,boolean quoteIdentifiers, boolean qualifyNames){
+ if (!(column instanceof IDatabaseObject)) return null;
+ Collection stats = ((IDatabaseObject)column).getStatistics();
+ if (stats.isEmpty()) return null;
+ String whereClause = "WHERE TABNAME ='" + column.getTable().getName() + "'" + " AND COLNAME = '" + column.getName() + "'";
+ if (qualifyNames) {
+ whereClause += " AND TABSCHEMA='" + column.getTable().getSchema().getName() + "'";
+ }
+
+
+ Collection statements = this.getAssignmentClause(stats,"SYSSTAT.COLUMNS",whereClause);
+ statements.addAll(this.getAssignmentClause(stats,"SYSSTAT.COLDIST",whereClause));
+ return (String[] )statements.toArray(new String[statements.size()]);
+// return this.getAssignmentClause(stats,"SYSSTAT.COLUMNS",whereClause);
+ }
+
+ public String[] updateStatistics(Index index,boolean quoteIdentifiers, boolean qualifyNames){
+ if (!(index instanceof IDatabaseObject)) return null;
+ Collection stats = ((IDatabaseObject)index).getStatistics();
+ if (stats.isEmpty()) return null;
+ String whereClause = "WHERE TABNAME ='" + index.getTable().getName() + "'" + " AND INDNAME = '" + index.getName() + "'";
+ if (qualifyNames) {
+ whereClause += " AND TABSCHEMA='" + index.getTable().getSchema().getName() + "'";
+ }
+// return this.getAssignmentClause(stats,"SYSSTAT.INDEXES",whereClause);
+ Collection statements = this.getAssignmentClause(stats,"SYSSTAT.INDEXES",whereClause);
+ return (String[] )statements.toArray(new String[statements.size()]);
+ }
+
+ public String[] updateStatistics(Routine routine,boolean quoteIdentifiers, boolean qualifyNames){
+ if (!(routine instanceof IDatabaseObject)) return null;
+ Collection stats = ((IDatabaseObject)routine).getStatistics();
+ if (stats.isEmpty()) return null;
+ String whereClause = "WHERE ROUTINENAME ='" + routine.getName() + "'" ;
+ if (qualifyNames) {
+ whereClause += " AND ROUTINESCHEMA='" + routine.getSchema().getName() + "'";
+ }
+ Collection statements = this.getAssignmentClause(stats,"SYSSTAT.ROUTINES",whereClause);
+ return (String[] )statements.toArray(new String[statements.size()]);
+// return this.getAssignmentClause(stats,"SYSSTAT.ROUTINES",whereClause);
+ }
+
+ public String setIntegrityForTableBeforeAlter(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+ if(table instanceof BaseTable) {
+ String statement = SET + SPACE + INTEGRITY + SPACE + FOR + SPACE
+ + getName(table, quoteIdentifiers, qualifyNames)
+ + " OFF"; //$NON-NLS-1$
+ return statement;
+ }
+ return null;
+ }
+
+ public String setIntegrityForTableAfterAlter(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+ if(table instanceof BaseTable) {
+ String statement = SET + SPACE + INTEGRITY + SPACE + FOR + SPACE
+ + getName(table, quoteIdentifiers, qualifyNames)
+ + " IMMEDIATE CHECKED FORCE GENERATED"; //$NON-NLS-1$
+ return statement;
+ }
+ return null;
+ }
+
+ private Collection getAssignmentClause (Collection stats, String syscatalog, String whereClause){
+ Vector statVector = new Vector();
+ String statStr = "";
+ Iterator iter = stats.iterator();
+ while (iter.hasNext()) {
+ CatalogStatistics stat = (CatalogStatistics) iter.next();
+ if (!stat.getSyscatalog().equals(syscatalog) ) continue;
+ if (stat.getType() == CatalogStatistics.COLLECTION_TYPE) {
+ String statClause = this.getStatWhereClause(stat.getCollection(), syscatalog, whereClause);
+ Collection statstrs = this.getAssignmentClause(stat.getCollection(), syscatalog, statClause);
+ statVector.addAll(statstrs);
+ } else {
+ if (statStr.length() > 0) {
+ statStr += "," + NEWLINE+ TAB + TAB;
+ }
+ statStr += stat.getId() + "=" + stat.toString();
+ }
+ }
+
+ if (!statStr.equals("")) {
+ statStr = UPDATE + SPACE + syscatalog + SPACE
+ + NEWLINE + TAB + SET + SPACE + statStr
+ + NEWLINE + TAB + whereClause;
+ }
+
+ statVector.add(statStr);
+ return statVector;
+ }
+
+ private String getStatWhereClause(Collection stats,String syscatalog,String whereClause) {
+ String str = whereClause;
+ if (syscatalog.equals("SYSSTAT.COLDIST")) {
+ Iterator iter = stats.iterator();
+ while (iter.hasNext()) {
+ CatalogStatistics stat = (CatalogStatistics) iter.next();
+ String id = stat.getId();
+ if (id.equals("TYPE")) {
+ str += NEWLINE + TAB +"AND " + stat.getId() + "='" + stat.toString() + "'";
+ } else if (id.equals("SEQNO")) {
+ str += NEWLINE + TAB +"AND " + stat.getId() + "=" + stat.toString();
+ }
+ }
+
+
+ }
+ return str;
+ }
+ protected String getIndexIncludedColumns(DB2Index index, boolean quoteIdentifiers) {
+ String columns;
+ Iterator it = index.getIncludedMembers().iterator();
+ if(it.hasNext()) {
+ IndexMember m = (IndexMember) it.next();
+ String columnName = m.getColumn().getName();
+ if (quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ columns = columnName;
+ }
+ else {
+ return null;
+ }
+
+ while(it.hasNext()) {
+ IndexMember m = (IndexMember) it.next();
+ String columnName = m.getColumn().getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ columns += ", "; //$NON-NLS-1$
+ columns += columnName;
+ }
+ return columns;
+ }
+
+ protected String getAlterTableAddColumnColumnString(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ return getColumnString(column,quoteIdentifiers,qualifyNames,true);
+ }
+
+ protected String getColumnString(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ return getColumnString(column,quoteIdentifiers,qualifyNames,false);
+ }
+
+ protected String getColumnString(Column column, boolean quoteIdentifiers, boolean qualifyNames, boolean isAddColumn) {
+ LUWColumn db2Column = (LUWColumn) column;
+ //String columnDefinition = super.getColumnString(db2Column, quoteIdentifiers,qualifyNames);
+
+ String columnName = column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+
+ String columnString = columnName + SPACE + getDataTypeString(column, column.getTable().getSchema(),qualifyNames);
+ String defaultValue = this.getDefaultValue(column);
+ DB2IdentitySpecifier spec = (DB2IdentitySpecifier)db2Column.getIdentitySpecifier();
+ if(!column.isNullable()) {
+ columnString = columnString + SPACE + NOT + SPACE + NULL;
+ }
+
+ // String typeName = getDataTypeString(column, column.getTable().getSchema(),qualifyNames);
+ // fix for issue wsdbu00985096
+ String typeName = getDataTypeString(column,column.getTable().getSchema(),quoteIdentifiers,qualifyNames);
+
+ if(spec == null &&
+ !typeName.equalsIgnoreCase("XML")) { //$NON-NLS-1$
+ if(defaultValue != null && !defaultValue.equals(EMPTY_STRING))
+ columnString = columnString + SPACE + DEFAULT + SPACE + defaultValue;
+ else if (isAddColumn && !column.isNullable())
+ columnString = columnString + SPACE + DEFAULT;
+ }
+
+ if (typeName.indexOf("CLOB") !=-1 ||typeName.indexOf("BLOB") != -1) {
+ columnString += getLOBLoggedClause(db2Column);
+ if (db2Column.isLobCompacted()) columnString += " COMPACT";
+ }
+ ValueExpression v = db2Column.getGenerateExpression();
+ if(spec != null) {
+ GenerateType generateType = db2Column.getGenerationType();
+ if(generateType == GenerateType.ALWAYS_LITERAL) {
+ columnString += " GENERATED ALWAYS AS IDENTITY "; //$NON-NLS-1$
+ }
+ else {
+ columnString += " GENERATED BY DEFAULT AS IDENTITY "; //$NON-NLS-1$
+ }
+ if (!spec.isSystemGenerated()){
+ columnString += LEFT_PARENTHESIS + this.getIdentityString(spec) + RIGHT_PARENTHESIS;
+ }
+ }
+ else if(v != null){
+ if (v.getSQL() == null || v.getSQL().trim().length() == 0) {
+ //report error: must have a generation expression
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_GENERATED_COLUMN_HAS_NO_EXPRESSION, new Object[] { getName(column, false, true)}));
+ } else {
+ String generationExpression = v.getSQL().trim();
+ if ( generationExpression.startsWith("(") && generationExpression.endsWith(")")){
+ } else {
+ generationExpression = "(" + generationExpression + ")";
+ }
+
+ columnString += " GENERATED ALWAYS AS (" + generationExpression + ")"; //$NON-NLS-1$
+ }
+ }
+ else if (typeName.equalsIgnoreCase("TIMESTAMP") && db2Column.isRowChangeTimestamp()) {
+ GenerateType generateType = db2Column.getGenerationType();
+ if(generateType == GenerateType.ALWAYS_LITERAL) {
+ columnString += " GENERATED ALWAYS FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP "; //$NON-NLS-1$
+ }
+ else {
+ columnString += " GENERATED BY DEFAULT FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP "; //$NON-NLS-1$
+ }
+ }
+
+ return columnString;
+ }
+
+ protected String getLOBLoggedClause(LUWColumn db2Column) {
+ if (!db2Column.isLobLogged()) return NOT_LOGGED;
+ return getLOBLoggedClause(db2Column.getDataType());
+ }
+
+ protected String getLOBLoggedClause(LUWAttributeDefinition db2Attr) {
+ if (!db2Attr.isLOBLogged()) return NOT_LOGGED;
+ return getLOBLoggedClause(db2Attr.getDataType());
+ }
+
+ protected String getLOBLoggedClause(DataType dt) {
+ int length = 0;
+ if (SQLDataTypesPackage.eINSTANCE.getCharacterStringDataType().isSuperTypeOf(dt.eClass())) {
+ CharacterStringDataType cdt = (CharacterStringDataType)dt;
+ length = cdt.getLength();
+ if (cdt.getPrimitiveType() == PrimitiveType.NATIONAL_CHARACTER_LARGE_OBJECT_LITERAL)
+ length = length * 2;
+ }
+ else if (SQLDataTypesPackage.eINSTANCE.getBinaryStringDataType().isSuperTypeOf(dt.eClass()))
+ length = ((BinaryStringDataType)dt).getLength();
+ if (length > GB) return NOT_LOGGED;
+ return EMPTY_STRING;
+ }
+
+ private String getTablespaceString(LUWStorageTable table, boolean quoteIdentifiers) {
+ LUWTableSpace tableSpace = table.getRegularDataTableSpace();
+ String tablespaceClause = "";
+ if(tableSpace != null) {
+ String regularTableSpaceName = tableSpace.getName();
+ if(quoteIdentifiers) {
+ regularTableSpaceName = this.getDoubleQuotedString(regularTableSpaceName);
+ }
+ tablespaceClause = NEWLINE + "\tIN " + regularTableSpaceName; //$NON-NLS-1$
+ }
+
+ tableSpace = table.getIndexDataTableSpace();
+ if(tableSpace != null) {
+ String indexTableSpaceName = tableSpace.getName();
+ if(quoteIdentifiers) {
+ indexTableSpaceName = this.getDoubleQuotedString(indexTableSpaceName);
+ }
+ tablespaceClause += " INDEX IN " + indexTableSpaceName; //$NON-NLS-1$
+ }
+
+ tableSpace = table.getLOBDataTableSpace();
+ if(tableSpace != null) {
+ String lobTableSpaceName = tableSpace.getName();
+ if(quoteIdentifiers) {
+ lobTableSpaceName = this.getDoubleQuotedString(lobTableSpaceName);
+ }
+ tablespaceClause += " LONG IN " + lobTableSpaceName; //$NON-NLS-1$
+ }
+
+ return tablespaceClause;
+ }
+
+ private boolean hasContainers( LUWTableSpace tablespace ) {
+ return !tablespace.getContainers().isEmpty();
+ }
+
+ private String getContainers(LUWTableSpace tablespace) {
+ EList containers = tablespace.getContainers();
+ if (containers.isEmpty()) return null;
+
+ // Map distinct partition sets to associated containers
+ Map<Set<Integer>, List<LUWDatabaseContainer>> contMap = new HashMap<Set<Integer>, List<LUWDatabaseContainer>>();
+ List<LUWDatabaseContainer> nopartn = null;
+ boolean partnsPresent = false;
+
+ for ( Object cobj : tablespace.getContainers() ) {
+ LUWDatabaseContainer cont = (LUWDatabaseContainer)cobj;
+ List partns = cont.getPartitions();
+
+ if ( partns.isEmpty() ) {
+ if (nopartn == null) {
+ nopartn = new ArrayList<LUWDatabaseContainer>();
+ contMap.put( null, nopartn );
+ }
+
+ nopartn.add( cont );
+ }
+ else
+ {
+ Set<Integer> cpartns = new HashSet<Integer>();
+
+ for ( Object pobj : partns ) {
+ LUWDatabasePartition partn = (LUWDatabasePartition)pobj;
+
+ cpartns.add( new Integer(partn.getNumber()) );
+ }
+
+ List<LUWDatabaseContainer> clist = null;
+
+ for ( Set<Integer> s : contMap.keySet() ) {
+ if ( s.size() == cpartns.size() && s.containsAll( cpartns )) {
+ clist = contMap.get( s );
+ break;
+ }
+ }
+
+ if (clist == null) {
+ clist = new ArrayList<LUWDatabaseContainer>();
+ contMap.put( cpartns, clist );
+ }
+
+ clist.add( cont );
+ }
+ }
+
+ // TODO error checking, if we care to do it
+ // all containers must specify partitions, or none can
+ // partitions for each container group must be unique
+ StringBuilder txt = new StringBuilder();
+ boolean database_managed = tablespace.getManagementType() == ManagementType.DATABASE_MANAGED_LITERAL;
+
+ for ( Map.Entry<Set<Integer>, List<LUWDatabaseContainer>> entry : contMap.entrySet() ) {
+ txt.append( NEWLINE + TAB + "USING ("); //$NON-NLS-1$
+
+ boolean first = true;
+
+ for ( LUWDatabaseContainer container : entry.getValue() ) {
+ if (!first) {
+ txt.append( ", " ); //$NON-NLS-1$
+ }
+ else {
+ first = false;
+ }
+
+ LUWContainerType type = container.getContainerType();
+ if (database_managed) {
+ if(type == LUWContainerType.DEVICE_LITERAL) {
+ txt.append( "DEVICE ") ; //$NON-NLS-1$
+ }
+ else if(type == LUWContainerType.FILE_LITERAL) {
+ txt.append( "FILE " ); //$NON-NLS-1$
+ }
+ }
+
+ txt.append( this.getSingleQuotedString(container.getName()) );
+
+ if (database_managed) {
+ if ( container.getSizeInPages() > 0 ) {
+ txt.append( SPACE + container.getSizeInPages() );
+ }
+ else {
+ txt.append( SPACE + container.getSize() );
+ txt.append( SPACE + container.getSizeUnits().getName() );
+ }
+ }
+ }
+
+ txt.append( ")" ); //$NON-NLS-2$
+
+ Set<Integer> partnums = entry.getKey();
+
+ if ( partnums != null && !partnums.isEmpty() ) {
+ txt.append( " ON DBPARTITIONNUM (" ); //$NON-NLS-1$
+ boolean first2 = true;
+
+ for ( Integer partnum : partnums ) {
+ if (!first2) {
+ txt.append( ", " ); //$NON-NLS-1$
+ }
+ else {
+ first2 = false;
+ }
+
+ txt.append( partnum );
+ }
+
+ txt.append( ")" ); //$NON-NLS-1$
+ }
+ }
+
+ return txt.toString();
+ }
+
+ protected String getOwnerType(TableConstraint constraint){
+ BaseTable table = constraint.getBaseTable();
+ if (table instanceof LUWNickname) {
+ return NICKNAME;
+ } else {
+ return TABLE;
+ }
+ }
+
+ protected String getPartitionKey(LUWStorageTable table, boolean quoteIdentifiers) {
+ LUWPartitionKey partitionKey = table.getPartitionKey();
+ if (partitionKey == null) return ""; //$NON-NLS-1$
+
+ if (partitionKey.getColumns().size() <1) return "";
+
+ String statement = NEWLINE + TAB;
+ statement += getPartitionKeyDefinition(partitionKey, quoteIdentifiers);
+
+ return statement;
+ }
+
+ private String getPartitionKeyDefinition(LUWPartitionKey partitionKey, boolean quoteIdentifiers) {
+ String definition = PARTITION_KEY + LEFT_PARENTHESIS;
+ Iterator it = partitionKey.getColumns().iterator();
+ while(it.hasNext()) {
+ String columnName = ((Column)it.next()).getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ definition += columnName;
+ if(it.hasNext()) {
+ definition += ", "; //$NON-NLS-1$
+ }
+ }
+ definition += RIGHT_PARENTHESIS;
+ if (partitionKey.getPartitionMethod() == PartitionMethod.get(PartitionMethod.HASHING))
+ definition += SPACE + USE_HASH;
+ return definition;
+ }
+
+ protected String getDataTypeString(TypedElement typedElement, Schema schema,boolean qualifyNames) {
+ String type = null;
+ if (this.generator != null && EngineeringOptionID.useDomain(this.generator.getSelectedOptions())) { //@d00058820gs
+ type = this.getDomainTypeString(typedElement,schema,qualifyNames);
+ }
+
+ if (type == null) {
+ type = super.getDataTypeString(typedElement,schema,qualifyNames);
+ }
+
+ return type;
+ }
+
+ protected String getDataTypeString(TypedElement typedElement, Schema schema, boolean quoteIdentifiers,boolean qualifyNames) {
+ String type = null;
+ if (this.generator != null && EngineeringOptionID.useDomain(this.generator.getSelectedOptions())) { //@d00058820gs
+ type = this.getDomainTypeString(typedElement,schema,qualifyNames);
+ }
+
+ if (type == null) {
+ type = super.getDataTypeString(typedElement,schema,quoteIdentifiers,qualifyNames);
+ }
+
+ return type;
+ }
+
+ protected String getName(LUWWrapper wrapper, boolean quoteIdentifiers) {
+ String name = wrapper.getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ }
+
+ return name;
+ }
+
+ protected String getName(LUWServer server, boolean quoteIdentifiers) {
+ String name = server.getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ }
+
+ return name;
+ }
+
+ protected String getName(LUWUserMapping userMapping, boolean quoteIdentifiers) {
+ String name = userMapping.getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ }
+ return name;
+ }
+
+ protected String getName(LUWTableSpace tablespace, boolean quoteIdentifiers) {
+ String name = tablespace.getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ }
+ return name;
+ }
+
+ protected String getName(LUWDatabasePackage pkg, boolean quoteIdentifiers,boolean qualifyNames) {
+ String name = pkg.getName();
+ String schemaName = pkg.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ name = schemaName + DOT + name;
+ }
+
+ return name;
+ }
+
+ protected String getName(LUWGlobalVariable variable, boolean quoteIdentifiers,boolean qualifyNames) {
+ String name = variable.getName();
+ String schemaName = variable.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ name = schemaName + DOT + name;
+ }
+
+ return name;
+ }
+
+ protected String getName(LUWModule module, boolean quoteIdentifiers,boolean qualifyNames) {
+ String name = module.getName();
+ String schemaName = module.getOwningSchema().getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ name = schemaName + DOT + name;
+ }
+
+ return name;
+ }
+
+ protected String getIdentityString(DB2IdentitySpecifier identitySpecifier) {
+ StringBuffer sb = new StringBuffer();
+ if (identitySpecifier.getStartValue() != null)
+ sb.append(SPACE + START_WITH + identitySpecifier.getStartValue());
+ if (identitySpecifier.getIncrement() != null)
+ sb.append(SPACE + INCREMENT_BY + identitySpecifier.getIncrement());
+ if (identitySpecifier.getMinimum() != null)
+ sb.append(SPACE + MINVALUE + identitySpecifier.getMinimum());
+ if (identitySpecifier.getMaximum() != null)
+ sb.append(SPACE + MAXVALUE + identitySpecifier.getMaximum());
+ if(identitySpecifier.isCycleOption()) {
+ sb.append(SPACE + CYCLE);
+ }
+ else {
+ sb.append(SPACE + NO + SPACE + CYCLE);
+ }
+ if (identitySpecifier.getCache() > 1) {
+ sb.append(SPACE + CACHE + SPACE + identitySpecifier.getCache());
+ } else {
+ sb.append(SPACE + NO + SPACE + CACHE);
+ }
+ return sb.toString();
+ }
+
+ protected String getIdentityAlterationString(DB2IdentitySpecifier identitySpecifier) {
+ StringBuffer sb = new StringBuffer();
+ if (identitySpecifier.getStartValue() != null)
+ sb.append(SPACE + RESTART_WITH + identitySpecifier.getStartValue());
+ if (identitySpecifier.getIncrement() != null)
+ sb.append(SPACE + SET_INCREMENT_BY + identitySpecifier.getIncrement());
+ if (identitySpecifier.getMinimum() != null)
+ sb.append(SPACE + SET_MINVALUE + identitySpecifier.getMinimum());
+ if (identitySpecifier.getMaximum() != null)
+ sb.append(SPACE + SET_MAXVALUE + identitySpecifier.getMaximum());
+ if(identitySpecifier.isCycleOption()) {
+ sb.append(SPACE + SET + SPACE + CYCLE);
+ }
+ else {
+ sb.append(SPACE + SET + SPACE + NO + SPACE + CYCLE);
+ }
+ if (identitySpecifier.getCache() > 1) {
+ sb.append(SPACE + SET + SPACE + CACHE + SPACE + identitySpecifier.getCache());
+ } else {
+ sb.append(SPACE + SET + SPACE + NO + SPACE + CACHE);
+ }
+ return sb.toString();
+ }
+
+
+ protected String getTableDimension(LUWTable table, boolean quotedIdentifier) {
+ String text = "";
+ for (Iterator iter = table.getIndex().iterator(); iter.hasNext();){
+ DB2Index index = (DB2Index) iter.next();
+ if (index.getIndexType() == DB2IndexType.DIMENSION_LITERAL){
+ String dimensionPart = getParentKeyColumns(index,quotedIdentifier);
+ if (!text.equals("")) text += COMMA + SPACE;
+
+ text +=dimensionPart;
+ }
+ }
+
+ if (!text.equals("")) {
+ text = NEWLINE + TAB + DIMENSION_BY + SPACE + LEFT_PARENTHESIS + text + RIGHT_PARENTHESIS ;
+ }
+
+ return text;
+ }
+
+ protected String getDefaultValue(Column column) {
+ String defaultValue = column.getDefaultValue();
+ if (defaultValue == null || defaultValue.equals(EMPTY_STRING)) return null;
+ SQLDataType type = column.getContainedType();
+ if (type == null) return null;
+ if ((type instanceof CharacterStringDataType
+ && ! defaultValue.equalsIgnoreCase("USER")
+ && ! defaultValue.equalsIgnoreCase("CURRENT USER")
+ && ! defaultValue.equalsIgnoreCase("CURRENT_USER")
+ && ! defaultValue.equalsIgnoreCase("SESSION_USER")
+ && ! defaultValue.equalsIgnoreCase("SESSION USER")
+ && ! defaultValue.equalsIgnoreCase("SYSTEM_USER")
+ && ! defaultValue.equalsIgnoreCase("NULL"))
+ || ((type instanceof DateDataType || type instanceof TimeDataType)
+ && ! defaultValue.equals("NULL")
+ && ! defaultValue.toUpperCase().matches(".*SYSDATE.*")
+ && ! defaultValue.toUpperCase().matches(".*CURRENT DATE.*")
+ && ! defaultValue.toUpperCase().matches(".*CURRENT_DATE.*")
+ && ! defaultValue.toUpperCase().matches(".*CURRENT TIME.*")
+ && ! defaultValue.toUpperCase().matches(".*CURRENT_TIME.*")
+ && ! defaultValue.toUpperCase().matches(".*CURRENT TIMESTAMP.*")
+ && ! defaultValue.toUpperCase().matches(".*CURRENT_TIMESTAMP.*"))){
+ return this.ensureSingleQuotedString(defaultValue);
+ }
+ else if (type instanceof BinaryStringDataType
+ && ! defaultValue.equalsIgnoreCase("NULL")) {
+ if (!(defaultValue.startsWith(HEX_LITERAL_PREFIX + SINGLE_QUOTE) && defaultValue.endsWith(SINGLE_QUOTE)))
+ return HEX_LITERAL_PREFIX + this.getSingleQuotedString(defaultValue);
+ }
+ return defaultValue;
+ }
+
+ protected String getCompressionValue(LUWStorageTable table) {
+ StringBuffer text = new StringBuffer();
+ if (table.isValueCompression()) {
+ text.append(NEWLINE).append(TAB).append(VALUE_COMPRESSION);
+ }
+ return text.toString();
+ }
+
+
+ protected boolean isTablespaceContainersRequried(LUWTableSpace tablespace) {
+ return true;
+ }
+
+ protected String getPrivilegedObjectName(Privilege privilege, boolean quoteIdentifiers, boolean qualifyNames) {
+ SQLObject obj = privilege.getObject();
+ String name = null;
+ if (obj instanceof Table) name = getName((Table)obj, quoteIdentifiers, qualifyNames);
+ else if (obj instanceof Index) name = getName((Index)obj, quoteIdentifiers, qualifyNames);
+ else if (obj instanceof Sequence) name = getName((Sequence)obj, quoteIdentifiers, qualifyNames);
+ else if (obj instanceof Schema) name = getName((Schema)obj, quoteIdentifiers, qualifyNames);
+ else if (obj instanceof LUWModule) name = getName((LUWModule)obj, quoteIdentifiers,qualifyNames);
+ else if (obj instanceof LUWGlobalVariable) name = getName((LUWGlobalVariable)obj, quoteIdentifiers,qualifyNames);
+ else if (obj instanceof Routine) name = getRoutineSpecifier(obj, quoteIdentifiers, qualifyNames);
+ else if (obj instanceof UserDefinedType) name = getName((UserDefinedType)obj, quoteIdentifiers, qualifyNames);
+ else if (obj instanceof LUWTableSpace) name = getName((LUWTableSpace)obj, quoteIdentifiers);
+ else if (obj instanceof LUWDatabasePackage) name = getName((LUWDatabasePackage)obj, quoteIdentifiers,qualifyNames);
+ else if (obj instanceof Database) name = ""; //$NON-NLS-1$
+ return name;
+ }
+
+ protected String getPrivilegedObjectTypeString(Privilege privilege) {
+ SQLObject obj = privilege.getObject();
+ if (obj instanceof BaseTable) return TABLE;
+ if (obj instanceof Method) return METHOD;
+ if (obj instanceof Function) return FUNCTION;
+ if (obj instanceof Procedure) return PROCEDURE;
+ if (obj instanceof ViewTable) return TABLE;
+ if (obj instanceof Index) return INDEX;
+ if (obj instanceof Schema) return SCHEMA;
+ if (obj instanceof Sequence) return SEQUENCE;
+ if (obj instanceof Database) return DATABASE;
+ if (obj instanceof DB2Package) return PACKAGE;
+ if (obj instanceof LUWTableSpace) return TABLESPACE;
+ if (obj instanceof LUWModule) return MODULE;
+ if (obj instanceof LUWGlobalVariable) return VARIABLE;
+ return EMPTY_STRING;
+ }
+
+ protected String getGrantRoleAuthorizationString(RoleAuthorization roleAuth, boolean quoteIdentifiers) {
+ AuthorizationIdentifier grantee = roleAuth.getGrantee();
+
+ String authStr = NEWLINE + GRANT + SPACE + this.getName(roleAuth.getRole(), quoteIdentifiers)
+ + SPACE + TO + this.getGranteeType(grantee) + SPACE + this.getName(roleAuth.getGrantee(), quoteIdentifiers);
+ if (roleAuth.isGrantable()) {
+ authStr += SPACE + WITH + SPACE + ADMIN + SPACE + OPTION;
+ }
+ return authStr;
+ }
+
+ protected String getAlterTableAlterValueCompressionString(LUWTable table) {
+ String compressionStr = NEWLINE + TAB;
+ if (table.isValueCompression()) {
+ compressionStr += "ACTIVATE"; //$NON-NLS-1$
+ } else {
+ compressionStr += "DEACTIVATE"; //$NON-NLS-1$
+ }
+ compressionStr+= SPACE + VALUE_COMPRESSION;
+ return compressionStr;
+ }
+
+ protected String getAlterTableAlterVolatileString(LUWTable table) {
+ if (table instanceof LUWTable) {
+ String volatileStr = NEWLINE + TAB;
+ if (((LUWTable)table).isVolatile()) return volatileStr + "VOLATILE"; //$NON-NLS-1$
+ else return volatileStr + "NOT VOLATILE"; //$NON-NLS-1$
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ protected String getAlterTableAlterRowCompressionString(LUWTable table) {
+ if (table instanceof LUWStorageTable) {
+ String compressionStr = NEWLINE + TAB;
+ if (((LUWStorageTable)table).isRowCompression()) return compressionStr + "COMPRESS YES"; //$NON-NLS-1$
+ else return compressionStr + "COMPRESS NO"; //$NON-NLS-1$
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ //@Override
+ public String alterTableAddColumn(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ DB2IdentitySpecifier spec = (DB2IdentitySpecifier)column.getIdentitySpecifier();
+ if (spec != null) {
+ //report error: alter table add column cannot have identity options
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_ALTER_TABLE_ADD_COLUMN_IDENTITY_OPTIONS, new Object[] { getName(column, false, true)}));
+ }
+ return super.alterTableAddColumn(column, quoteIdentifiers, qualifyNames);
+ }
+
+ public String alterTableDropColumn(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = (Table)ContainmentServiceImpl.INSTANCE.getContainer(column);
+ if(table != null && table instanceof BaseTable) {
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + " DROP COLUMN " + getColumnNameString(column, quoteIdentifiers,qualifyNames); //$NON-NLS-1$
+ return statement;
+ }
+ return null;
+ }
+
+ protected String getDistributeKeyword() {
+ return PARTITION_KEY;
+ }
+
+ protected String getBufferPoolSize(LUWBufferPool bufferpool) {
+ String text = null;
+ int size = bufferpool.getSize();
+ if (size <=0) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ LUWDdlMessages.FE_BUFFERPOOL_INVAILD_SIZE_VALUE, new Object[] { bufferpool.getName()}));
+ return null;
+ } else {
+ text = SPACE+ "SIZE " + bufferpool.getSize(); //$NON-NLS-1$
+ }
+ return text;
+ }
+
+ public String reorgTable(Column col, boolean quoteIdentifiers, boolean qualifyNames) {
+ return reorgTable(col.getTable(), quoteIdentifiers, qualifyNames);
+ }
+
+ public String reorgTable(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String tableName = table.getName();
+ String schemaName = table.getSchema().getName();
+ if(quoteIdentifiers) {
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ tableName = schemaName + DOT + tableName;
+ }
+ return CALL + SPACE + ADMIN_CMD + LEFT_PARENTHESIS + SINGLE_QUOTE
+ + REORG + SPACE + TABLE + SPACE + tableName + SINGLE_QUOTE + RIGHT_PARENTHESIS;
+ }
+
+ public String getName(LUWPartitionGroup pg, boolean quoteIdentifiers) {
+ String pgName = pg.getName();
+ if(quoteIdentifiers) {
+ pgName = this.getDoubleQuotedString(pgName);
+ }
+ return pgName;
+ }
+
+ protected String getGranteeType(AuthorizationIdentifier authID){
+ if (authID instanceof Group)
+ return SPACE + GROUP;
+ else if (authID instanceof Role)
+ return SPACE + ROLE;
+ else if (authID instanceof User)
+ return SPACE + USER;
+ return "";
+ }
+
+
+ public String[] grantOn(LUWDatabasePackage dbPackage, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(dbPackage,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(LUWModule module, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(module,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(LUWGlobalVariable variable, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(variable,quoteIdentifiers,qualifyNames);
+ }
+
+ private String createModuleObject(LUWModuleObject moduleObject, boolean quoteIdentifiers, boolean qualifyNames ){
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildCreateStatement((SQLObject)moduleObject, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ private String dropModuleObject(LUWModuleObject moduleObject,boolean quoteIdentifiers, boolean qualifyNames ){
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildDropStatement((SQLObject)moduleObject, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ private String commentOnModuleObject(LUWModuleObject moduleObject,boolean quoteIdentifiers, boolean qualifyNames ){
+ ILUWModuleDdlBuilder moduleBuilder = LUWDdlGenerator.getModuleDdlBuilder();
+ if (moduleBuilder != null) {
+ return moduleBuilder.buildCommentStatement((SQLObject)moduleObject, quoteIdentifiers, qualifyNames);
+ }
+ return null;
+ }
+
+ protected String getName(UserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ boolean isModuleObject = type instanceof LUWModuleObject;
+ String typeName = quoteIdentifiers? this.getDoubleQuotedString(type.getName()):type.getName();
+ if (isModuleObject) {
+ String moduleName = quoteIdentifiers? this.getDoubleQuotedString(((LUWModuleObject)type).getModule().getName())
+ :((LUWModuleObject)type).getModule().getName();
+ String schemaName = quoteIdentifiers? this.getDoubleQuotedString(((LUWModuleObject)type).getModule().getOwningSchema().getName())
+ :((LUWModuleObject)type).getModule().getOwningSchema().getName();
+ typeName = moduleName + DOT + typeName ;
+ if(qualifyNames) {
+ typeName = schemaName + DOT + typeName;
+ }
+
+ } else {
+ String schemaName = quoteIdentifiers? this.getDoubleQuotedString(type.getSchema().getName())
+ : type.getSchema().getName();
+ if(qualifyNames) {
+ typeName = schemaName + DOT + typeName;
+ }
+ }
+ return typeName;
+
+
+ }
+
+ protected String RecoverDroppedTableString(LUWTableSpace tablespace) {
+ String text="";
+ //only available for regular tablespace for V8
+ if (tablespace.getTablespaceType() == TableSpaceType.REGULAR_LITERAL) {
+ if (!tablespace.isRecoverDroppedTableOn()) { //default is ON
+ text += NEWLINE + TAB + "DROPPED TABLE RECOVERY " + OFF;
+ }
+ }
+ return text;
+ }
+
+ private String getName(String oldname, boolean quoteIdentifiers) {
+ if(quoteIdentifiers) {
+ oldname = this.getDoubleQuotedString(oldname);
+ }
+ return oldname;
+ }
+
+ public String alterTablespaceRename(LUWTableSpace tablespace, String oldname,
+ boolean quoteIdentifiers, boolean qualifyNames) {
+ return RENAME + SPACE + TABLESPACE + SPACE + getName(oldname, quoteIdentifiers) + SPACE +
+ TO + SPACE + getName(tablespace, quoteIdentifiers);
+ }
+
+ public String alterTablespaceProlog(LUWTableSpace tablespace,boolean quoteIdentifiers,boolean qualifyNames) {
+ String tablespaceName = tablespace.getName();
+ if(quoteIdentifiers) {
+ tablespaceName = this.getDoubleQuotedString(tablespaceName);
+ }
+ return ALTER + SPACE + TABLESPACE + SPACE + tablespaceName;
+ }
+
+ public String alterTablespaceContainers(LUWTableSpace tablespace,
+ EList newContainers, EList oldContainers, boolean quoteIdentifiers, boolean qualifyNames) {
+ String text="";
+
+ boolean first = true;
+ outerAdd:for (Iterator iter = newContainers.iterator(); iter.hasNext();) {
+ LUWDatabaseContainer container = (LUWDatabaseContainer)iter.next();
+ String newName = container.getName();
+ LUWContainerType newType = container.getContainerType();
+ Iterator it1 = oldContainers.iterator();
+ while (it1.hasNext()) {
+ LUWDatabaseContainer oldContainer = (LUWDatabaseContainer)it1.next();
+ if (oldContainer.getName().equals(newName) &&
+ oldContainer.getContainerType().equals(newType))
+ continue outerAdd;
+ }
+ if (first) text += NEWLINE + TAB + ADD + SPACE + "(";
+ else text += ",";
+ if (LUWContainerType.DEVICE_LITERAL.equals(newType)) {
+ text += DEVICE + SPACE;
+ }
+ else if (LUWContainerType.FILE_LITERAL.equals(newType)) {
+ text += FILE + SPACE;
+ }
+ text += this.getSingleQuotedString(newName);
+ if ( container.getSizeInPages() > 0 ) {
+ text += SPACE +container.getSizeInPages();
+ }
+ else {
+ text += SPACE + container.getSize();
+ text += SPACE + container.getSizeUnits().getName();
+ }
+
+ first = false;
+ }
+ if (!first) text += ")";
+
+ first = true;
+ outerDrop:for (Iterator iter = oldContainers.iterator(); iter.hasNext();) {
+ LUWDatabaseContainer container = (LUWDatabaseContainer)iter.next();
+ String oldName = container.getName();
+ LUWContainerType oldType = container.getContainerType();
+ Iterator it1 = newContainers.iterator();
+ while (it1.hasNext()) {
+ LUWDatabaseContainer newContainer = (LUWDatabaseContainer)it1.next();
+ if (newContainer.getName().equals(oldName) &&
+ newContainer.getContainerType().equals(oldType))
+ continue outerDrop;
+ }
+ if (first) text += NEWLINE + TAB + DROP + SPACE + "(";
+ else text += ",";
+ if (LUWContainerType.DEVICE_LITERAL.equals(oldType)) {
+ text += DEVICE + SPACE;
+ }
+ else if (LUWContainerType.FILE_LITERAL.equals(oldType)) {
+ text += FILE + SPACE;
+ }
+ text += this.getSingleQuotedString(oldName);
+
+ first = false;
+ }
+ if (!first) text += ")";
+
+ return text;
+ }
+
+ public String alterTablespaceContainersSize(LUWTableSpace tablespace,
+ EList newContainers, EList oldContainers, boolean quoteIdentifiers,
+ boolean qualifyNames,LUWDeltaDdlGenerator delta) {
+ String text="";
+ boolean first = true;
+ Iterator iter = newContainers.iterator();
+ while (iter.hasNext()) {
+ LUWDatabaseContainer container = (LUWDatabaseContainer)iter.next();
+ String newName = container.getName();
+ LUWContainerType newType = container.getContainerType();
+ Iterator it1 = oldContainers.iterator();
+ while (it1.hasNext()) {
+ LUWDatabaseContainer oldContainer = (LUWDatabaseContainer)it1.next();
+ if (oldContainer.getName().equals(newName) &&
+ oldContainer.getContainerType().equals(newType) &&
+ !newType.equals(LUWContainerType.DIRECTORY_LITERAL)) {
+ EStructuralFeature feature = LUWPackage.eINSTANCE.getLUWDatabaseContainer_SizeInPages();
+ int oldSizeInPages = (Integer)delta.getOldContainerValue(feature,container);
+ feature = LUWPackage.eINSTANCE.getLUWDatabaseContainer_Size();
+ int oldSize = (Integer)delta.getOldContainerValue(feature,container);
+ feature = LUWPackage.eINSTANCE.getLUWDatabaseContainer_SizeUnits();
+ UnitType oldSizeUnits = (UnitType)delta.getOldContainerValue(feature,container);
+ if (((oldSizeInPages != container.getSizeInPages()) ||
+ (oldSize != container.getSize()) ||
+ (!oldSizeUnits.equals(container.getSizeUnits())))) {
+ if (first) text += NEWLINE + TAB + RESIZE + SPACE + "(";
+ else text += ",";
+ if (LUWContainerType.DEVICE_LITERAL.equals(newType)) {
+ text += DEVICE + SPACE;
+ }
+ else if (LUWContainerType.FILE_LITERAL.equals(newType)) {
+ text += FILE + SPACE;
+ }
+ text += this.getSingleQuotedString(newName);
+ if ((container.getSizeInPages() > 0) &&
+ (oldSizeInPages != container.getSizeInPages())) {
+ text += SPACE +container.getSizeInPages();
+ }
+ else {
+ text += SPACE + container.getSize();
+ text += SPACE + container.getSizeUnits().getName();
+ }
+ first = false;
+ }
+ }
+ }
+ }
+ if (!first) text += ")";
+ return text;
+ }
+
+ public String tablespaceBufferPoolClause(LUWTableSpace tablespace,boolean quoteIdentifiers) {
+ LUWBufferPool bufferpool = tablespace.getBufferPool();
+ if(bufferpool != null) {
+ String bufferpoolName = bufferpool.getName();
+ if(quoteIdentifiers) {
+ bufferpoolName = this.getDoubleQuotedString(bufferpoolName);
+ }
+ return NEWLINE + TAB + BUFFERPOOL + SPACE + bufferpoolName;
+ }
+ return "";
+ }
+
+ public String tablespaceOverheadClause(LUWTableSpace tablespace) {
+ return NEWLINE + TAB + OVERHEAD + SPACE + String.valueOf(tablespace.getOverhead());
+ }
+
+ public String tablespaceXferRateClause(LUWTableSpace tablespace) {
+ return NEWLINE + TAB + XFER_RATE + SPACE + String.valueOf(tablespace.getTransferRate());
+ }
+
+ public String tablespaceDroppedTableRecoveryClause(LUWTableSpace tablespace) {
+ return NEWLINE + TAB + DROPPED_TABLE_RECOVERY + SPACE + (tablespace.isRecoverDroppedTableOn()?ON:OFF);
+ }
+
+ public String tablespaceAutoResizeClause(LUWTableSpace tablespace) {
+ // Support for alter in version 9
+ return EMPTY_STRING;
+ }
+
+ public String tablespaceIncreaseSizeClause(LUWTableSpace tablespace) {
+ // Support for alter in version 9
+ return EMPTY_STRING;
+ }
+
+ public String tablespaceMaxSizeClause(LUWTableSpace tablespace) {
+ // Support for alter in version 9
+ return EMPTY_STRING;
+ }
+
+ public String tablespacePrefetchSizeClause(LUWTableSpace tablespace) {
+ int prefetchsize = tablespace.getPreFetchSize();
+ return NEWLINE + TAB + PREFETCHSIZE + SPACE +
+ ((prefetchsize > 0)?String.valueOf(prefetchsize):AUTOMATIC);
+ }
+
+ public String transferSchemaOwnership(Schema changed, boolean quoteIdentifiers) {
+ AuthorizationIdentifier auth=changed.getOwner();
+ if (auth != null)
+ return XFER_OWNERSHIP + SPACE + SCHEMA + SPACE +
+ getName(changed.getName(),quoteIdentifiers) + SPACE + TO +
+ SPACE + USER + SPACE + getName(auth,quoteIdentifiers) +
+ SPACE + PRESERVE_PRIVILEGES;
+ return null;
+ }
+
+ private LUWDdlGenerator generator;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder9.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder9.java
new file mode 100644
index 0000000..fc62743
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder9.java
@@ -0,0 +1,448 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.datatools.enablement.ibm.db2.ddl.DB2DdlMessages;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger;
+import org.eclipse.datatools.enablement.ibm.db2.model.UnitType;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType;
+import org.eclipse.datatools.modelbase.sql.tables.ActionTimeType;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+
+public class LUWDdlBuilder9 extends LUWDdlBuilder {
+ protected final static String DISTRIBUTE_BY = "DISTRIBUTE BY"; //$NON-NLS-1$
+ protected final static String PARTITION_BY = "PARTITION BY"; //$NON-NLS-1$
+ protected final static String PARTITION = "PARTITION"; //$NON-NLS-1$
+ protected final static String HASH = "HASH"; //$NON-NLS-1$
+ protected final static String REPLICATION = "REPLICATION"; //$NON-NLS-1$
+ protected final static String RANGE = "RANGE"; //$NON-NLS-1$
+ protected final static String NULLS_LAST = "NULLS LAST"; //$NON-NLS-1$
+ protected final static String STARTING = "STARTING"; //$NON-NLS-1$
+ protected final static String ENDING = "ENDING"; //$NON-NLS-1$
+ protected final static String AT = "AT"; //$NON-NLS-1$
+ protected final static String COMPRESS = "COMPRESS"; //$NON-NLS-1$
+ protected final static String YES = "YES"; //$NON-NLS-1$
+ protected final static String EXCLUSIVE = "EXCLUSIVE"; //$NON-NLS-1$
+
+ public LUWDdlBuilder9(){
+ }
+ public LUWDdlBuilder9(LUWDdlGenerator generator){
+ super(generator);
+ }
+
+ protected String getPartitionKey(LUWStorageTable table, boolean quoteIdentifiers) {
+ StringBuffer buffer = new StringBuffer();
+
+ LUWPartitionKey partitionKey = table.getPartitionKey();
+ if (partitionKey != null) {
+ StringBuffer partKeyBuf = new StringBuffer();
+ PartitionMethod partMethod = partitionKey.getPartitionMethod();
+ if (partMethod == PartitionMethod.HASHING_LITERAL) {
+ partKeyBuf.append(NEWLINE).append(TAB).append(DISTRIBUTE_BY).append(SPACE).append(HASH).append(SPACE).append(LEFT_PARENTHESIS);
+ boolean hasKey = false;
+ Iterator it = partitionKey.getColumns().iterator();
+ while(it.hasNext()) {
+ hasKey = true;
+ Column column = (Column) it.next();
+ partKeyBuf.append(column.getName());
+ if(it.hasNext()) {
+ partKeyBuf.append(", "); //$NON-NLS-1$
+ }
+ }
+ partKeyBuf.append(RIGHT_PARENTHESIS); //$NON-NLS-1$
+
+ if (hasKey) {
+ buffer.append(partKeyBuf);
+ }
+ } else if (partMethod == PartitionMethod.TABLE_REPLICATED_LITERAL) { //can not apply replication to table
+ if (table instanceof LUWMaterializedQueryTable) {
+ partKeyBuf.append(NEWLINE).append(TAB).append(DISTRIBUTE_BY).append(SPACE).append(REPLICATION);
+ buffer.append(partKeyBuf);
+ } else {
+ partKeyBuf.append(NEWLINE).append(TAB).append(DISTRIBUTE_BY).append(SPACE).append(HASH).append(SPACE).append(LEFT_PARENTHESIS);
+ boolean hasKey = false;
+ Iterator it = partitionKey.getColumns().iterator();
+ while(it.hasNext()) {
+ hasKey = true;
+ Column column = (Column) it.next();
+ partKeyBuf.append(column.getName());
+ if(it.hasNext()) {
+ partKeyBuf.append(", "); //$NON-NLS-1$
+ }
+ }
+ partKeyBuf.append(RIGHT_PARENTHESIS); //$NON-NLS-1$
+
+ if (hasKey) {
+ buffer.append(partKeyBuf);
+ }
+ }
+ }
+
+ }
+
+ LUWDataPartitionKey dataPartitionKey = table.getDataPartitionKey();
+ if (dataPartitionKey != null) {
+ buffer.append(this.getRangePartitions(dataPartitionKey));
+ }
+
+ return buffer.toString();
+ }
+
+ private String getRangePartitions(LUWDataPartitionKey partitionKey) {
+ StringBuffer buffer = new StringBuffer();
+
+ boolean hasKey = false;
+ StringBuffer keyBuffer = new StringBuffer();
+ keyBuffer.append(NEWLINE).append(TAB).append(PARTITION_BY).append(SPACE).append(RANGE).append(LEFT_PARENTHESIS);
+
+ Collection keyCols = new ArrayList();
+ Iterator it = partitionKey.getPartitionExpressions().iterator();
+ while(it.hasNext()) {
+ hasKey = true;
+ LUWPartitionExpression expression = (LUWPartitionExpression) it.next();
+ Column column = expression.getColumn();
+ keyBuffer.append(column.getName());
+ keyCols.add(column);
+
+ if (expression.isNullsLast()) {
+ keyBuffer.append(SPACE).append(NULLS_LAST);
+ }
+
+ if(it.hasNext()) {
+ keyBuffer.append(", "); //$NON-NLS-1$
+ }
+ }
+
+ keyBuffer.append(RIGHT_PARENTHESIS); //$NON-NLS-1$
+
+ if (hasKey) {
+ buffer.append(keyBuffer);
+ }
+
+
+ boolean hasDataPartition = false;
+ StringBuffer datapartBuffer = new StringBuffer();
+ datapartBuffer.append(NEWLINE).append(TAB).append(LEFT_PARENTHESIS);
+ LUWStorageTable table = partitionKey.getTable();
+ for (Iterator iter = table.getDataPartitions().iterator(); iter.hasNext();) {
+ hasDataPartition = true;
+ LUWDataPartition partition = (LUWDataPartition) iter.next();
+ String partName = partition.getName();
+ if (partName != null && !partName.equals("")){
+ datapartBuffer.append(PARTITION).append(SPACE).append(partName);
+ }
+
+ datapartBuffer.append(this.getRange(partition,keyCols));
+
+ LUWTableSpace tsp = partition.getRegularDataTableSpace();
+ if (tsp != null) {
+ datapartBuffer.append(SPACE).append(IN).append(SPACE).append(tsp.getName());
+ }
+ tsp = partition.getLOBDataTableSpace();
+ if (tsp != null) {
+ datapartBuffer.append(SPACE).append(LONG).append(SPACE).append(IN).append(SPACE).append(tsp.getName());
+ }
+
+ if(iter.hasNext()) {
+ datapartBuffer.append(", ").append(NEWLINE).append(TAB); //$NON-NLS-1$
+ }
+ }
+ datapartBuffer.append(RIGHT_PARENTHESIS);
+
+ if (hasDataPartition) {
+ buffer.append(datapartBuffer);
+ }
+
+ return buffer.toString();
+ }
+
+
+ private String getRange(LUWDataPartition partition, Collection keyCols) {
+ StringBuffer buffer = new StringBuffer();
+ String startStr= "";
+ String endStr= "";
+
+ for (Iterator keyIter = keyCols.iterator(); keyIter.hasNext();) {
+ Column keyCol = (Column) keyIter.next();
+ for (Iterator iter = partition.getPartitionElements().iterator();iter.hasNext();){
+ LUWPartitionElement element = (LUWPartitionElement) iter.next();
+ Column column = element.getLUWPartitionExpression().getColumn();
+
+ if (column != keyCol) continue;
+ DataType type = element.getLUWPartitionExpression().getColumn().getDataType();
+ if (type instanceof CharacterStringDataType
+ || type instanceof DateDataType || type instanceof TimeDataType){
+ String rangeValue = element.getStarting();
+ if (rangeValue.equalsIgnoreCase("MINVALUE") || rangeValue.equalsIgnoreCase("MAXVALUE")) {
+ startStr += rangeValue;
+ } else {
+ startStr += this.getSingleQuotedString(rangeValue);
+ }
+
+ rangeValue = element.getEnding();
+ if (rangeValue.equalsIgnoreCase("MINVALUE") || rangeValue.equalsIgnoreCase("MAXVALUE")) {
+ endStr += rangeValue;
+ } else {
+ endStr += this.getSingleQuotedString(rangeValue);
+ }
+ } else {
+ startStr += element.getStarting();
+ endStr += element.getEnding();
+ }
+
+ if (keyIter.hasNext()) {
+ startStr += ",";
+ endStr += ",";
+ }
+ }
+
+ }
+ buffer.append(SPACE).append(STARTING).append(SPACE).append(FROM).append(SPACE).append(LEFT_PARENTHESIS).append(startStr).append(RIGHT_PARENTHESIS).append(SPACE);
+ if (!partition.isLowInclusive()) {
+ buffer.append(SPACE).append(EXCLUSIVE).append(SPACE);
+ }
+
+ buffer.append(ENDING).append(SPACE).append(AT).append(SPACE).append(LEFT_PARENTHESIS).append(endStr).append(RIGHT_PARENTHESIS);
+ if (!partition.isHighInclusive()) {
+ buffer.append(SPACE).append(EXCLUSIVE).append(SPACE);
+ }
+
+ return buffer.toString();
+ }
+
+ protected String getCompressionValue(LUWStorageTable table) {
+ StringBuffer text = new StringBuffer();
+ if (table.isRowCompression()) {
+ text.append(NEWLINE).append(TAB).append(COMPRESS).append(SPACE).append(YES);
+ }
+
+ text.append(super.getCompressionValue(table));
+
+ return text.toString();
+ }
+
+ protected boolean isTablespaceContainersRequried(LUWTableSpace tablespace) {
+ if (tablespace.getManagementType() == ManagementType.AUTOMATIC_STORAGE_LITERAL) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ protected String getAlterTableAlterRowCompressionString(LUWTable table) {
+ String compressionStr = NEWLINE + TAB + COMPRESS;
+ if (table.isRowCompression()) {
+ compressionStr += SPACE + YES;
+ } else {
+ compressionStr += SPACE + NO;
+ }
+ return compressionStr;
+ }
+
+ protected String getDistributeKeyword() {
+ return this.DISTRIBUTE_BY;
+ }
+
+ protected String getBufferPoolSize(LUWBufferPool bufferpool) {
+ return SPACE+ "SIZE " + bufferpool.getSize();
+ }
+
+ protected String getDataPartitionOptions( LUWIndex index )
+ {
+ String ddl = "";
+
+ if (index != null) {
+ String pmode = ((LUWTable)index.getTable()).getPartitionMode();
+
+ if (pmode != null && !pmode.trim().equals( "" )) { //$NON-NLS-1$
+ if (index.isNotPartitioned()) {
+ ddl += NEWLINE + "NOT PARTITIONED ";
+ }
+
+ LUWTableSpace luwtbspace = index.getTablespace();
+
+ if (luwtbspace != null) {
+ ddl += NEWLINE + "IN " + luwtbspace.getName();
+ }
+ }
+ }
+
+ return ddl;
+ }
+
+ protected String RecoverDroppedTableString(LUWTableSpace tablespace) {
+ String text="";
+ //only available for regular and large tablespace for V9
+ if (tablespace.getTablespaceType() == TableSpaceType.REGULAR_LITERAL
+ ||tablespace.getTablespaceType() == TableSpaceType.LARGE_LITERAL ) {
+ if (!tablespace.isRecoverDroppedTableOn()) { //default is ON
+ text += NEWLINE + TAB + "DROPPED TABLE RECOVERY " + OFF;
+ }
+ }
+ return text;
+ }
+
+ @SuppressWarnings("unchecked")
+ public String createTrigger(DB2Trigger trigger, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = CREATE + SPACE + TRIGGER + SPACE + getName(trigger, quoteIdentifiers, qualifyNames) + SPACE;
+
+ final ActionTimeType actionTime = trigger.getActionTime();
+ if(actionTime == ActionTimeType.AFTER_LITERAL) {
+ statement += NEWLINE + TAB + AFTER;
+ }
+ else if(actionTime == ActionTimeType.BEFORE_LITERAL) {
+ //statement += NEWLINE + TAB + NO + SPACE + CASCADE + SPACE + BEFORE;
+ statement += NEWLINE + TAB + BEFORE;
+ }
+ else if(actionTime == ActionTimeType.INSTEADOF_LITERAL) {
+ statement += NEWLINE + TAB + INSTEAD_OF;
+ }
+ statement += SPACE;
+
+ if(trigger.isDeleteType()) {
+ statement += DELETE;
+ }
+ else if(trigger.isInsertType()) {
+ statement += INSERT;
+ }
+ else if(trigger.isUpdateType()) {
+ statement += UPDATE;
+ Collection updateColumns = trigger.getTriggerColumn();
+ if(!updateColumns.isEmpty()) {
+ statement += SPACE + OF + SPACE ;
+ Iterator it = updateColumns.iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ statement += column.getName();
+ if(it.hasNext()) {
+ statement += COMMA + SPACE;
+ }
+ }
+ }
+ }
+
+ statement += SPACE + ON + SPACE + getName(trigger.getSubjectTable(), quoteIdentifiers, qualifyNames) + NEWLINE;
+
+ final String newRow = trigger.getNewRow();
+ final String oldRow = trigger.getOldRow();
+ final String newTable = trigger.getNewTable();
+ final String oldTable = trigger.getOldTable();
+
+ String referenceStr = EMPTY_STRING;
+ if(newRow != null && newRow.length() != 0 && !trigger.isDeleteType()) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE + TAB + TAB) + NEW + SPACE + AS + SPACE + newRow;
+ }
+ if(oldRow != null && oldRow.length() != 0 && !trigger.isInsertType()) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE +TAB + TAB) + OLD + SPACE + AS + SPACE + oldRow;
+ }
+ if(newTable != null && newTable.length() != 0) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE +TAB + TAB) + this.getTriggerReferenceNewTable() + SPACE + AS + SPACE + newTable;
+ }
+ if(oldTable != null && oldTable.length() != 0 && !trigger.isInsertType()) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE +TAB + TAB) + this.getTriggerReferenceOldTable() + SPACE + AS + SPACE + oldTable;
+ }
+
+ if (!referenceStr.equals(EMPTY_STRING)) {
+ statement += TAB + REFERENCING + SPACE + referenceStr + NEWLINE;
+ }
+
+ if(trigger.getActionGranularity() == ActionGranularityType.ROW_LITERAL) {
+ statement += TAB + FOR + SPACE + EACH + SPACE + ROW;
+ }
+ else {
+ statement += TAB + FOR + SPACE + EACH + SPACE + STATEMENT;
+ }
+
+ statement += NEWLINE;
+
+ SearchCondition condition = trigger.getWhen();
+ if(condition != null) {
+ String c = condition.getSQL();
+ if(c != null && c.trim().length() != 0) {
+ statement += WHEN + SPACE + LEFT_PARENTHESIS + condition.getSQL() + RIGHT_PARENTHESIS + NEWLINE;
+ }
+ }
+
+ String sqlBody = EMPTY_STRING;
+ Iterator it = trigger.getActionStatement().iterator();
+ while(it.hasNext()) {
+ SQLStatement s = (SQLStatement) it.next();
+ sqlBody += s.getSQL();
+ }
+
+ if (sqlBody.equals(EMPTY_STRING)) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_TRIGGER_ACTION_EMPTY, new Object[] { getName(trigger, quoteIdentifiers, qualifyNames)}));
+ return null;
+ }
+
+ statement += sqlBody;
+
+ return statement;
+ }
+
+ public String tablespaceAutoResizeClause(LUWTableSpace tablespace) {
+ return NEWLINE + TAB + AUTORESIZE + SPACE + (tablespace.isAutoResize()?ON:OFF);
+ }
+
+ public String tablespaceIncreaseSizeClause(LUWTableSpace tablespace) {
+ long incrsize = tablespace.getIncreaseSize();
+ UnitType incrunit = tablespace.getIncreaseSizeUnit();
+ int incrpct = tablespace.getIncreasePercent();
+ if (incrsize != 0)
+ return NEWLINE + TAB + INCREASESIZE + SPACE + incrsize +
+ ((incrunit != null)?(SPACE + incrunit.getLiteral()):EMPTY_STRING);
+ if (incrpct != 0)
+ return NEWLINE + TAB + INCREASESIZE + SPACE + incrpct + SPACE + PERCENT;
+ return EMPTY_STRING;
+ }
+
+ public String tablespaceMaxSizeClause(LUWTableSpace tablespace) {
+ long maxsize = tablespace.getMaximumSize();
+ UnitType maxunit = tablespace.getMaximumSizeUnit();
+ if (maxsize != 0) {
+ return NEWLINE + TAB + MAXSIZE + SPACE + maxsize +
+ ((maxunit != null)?(SPACE + maxunit.getLiteral()):EMPTY_STRING);
+ }
+ return NEWLINE + TAB + MAXSIZE + SPACE + NONE;
+ }
+
+ protected boolean supportsBufferpoolExtendedStorage() {
+ //not supported from v9 onwards
+ //see http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.admin.doc/doc/r0001032.htm
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder95.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder95.java
new file mode 100644
index 0000000..bb3f65b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder95.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+public class LUWDdlBuilder95 extends LUWDdlBuilder9 {
+
+ public LUWDdlBuilder95(){
+ }
+ public LUWDdlBuilder95(LUWDdlGenerator generator){
+ super(generator);
+ }
+
+ public String commentOn(Role role, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = role.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ return COMMENT + SPACE + ON + SPACE + ROLE + SPACE + getName(role, quoteIdentifiers) + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ protected String getCommentType(SQLObject sqlObject,boolean quoteIdentifiers, boolean qualifyNames) {
+ String comments = "";
+ if (sqlObject instanceof Role) {
+ comments += ROLE + SPACE + getName((Role)sqlObject,quoteIdentifiers);
+ } else {
+ comments = super.getCommentType(sqlObject, quoteIdentifiers, qualifyNames);
+ }
+ return comments;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder97.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder97.java
new file mode 100644
index 0000000..e66ff18
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlBuilder97.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+
+public class LUWDdlBuilder97 extends LUWDdlBuilder95{
+
+ public LUWDdlBuilder97(){
+ }
+ public LUWDdlBuilder97(LUWDdlGenerator generator){
+ super(generator);
+ }
+
+ public String commentOn(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = sequence.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ return COMMENT + SPACE + ON + SPACE + SEQUENCE + SPACE + getName(sequence, quoteIdentifiers,qualifyNames) + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlGenerator.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlGenerator.java
new file mode 100644
index 0000000..1c7e5ae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlGenerator.java
@@ -0,0 +1,2501 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Vector;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.core.rte.EngineeringOption;
+import org.eclipse.datatools.connectivity.sqm.core.rte.IEngineeringCallBack;
+import org.eclipse.datatools.connectivity.sqm.internal.core.rte.EngineeringOptionCategory;
+import org.eclipse.datatools.connectivity.sqm.internal.core.rte.EngineeringOptionCategoryID;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.catalog.LUWCatalogFederatedProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleDistinctType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.ddl.CoreDdlGenerator;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlBuilder;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlGenerationUtility;
+import org.eclipse.datatools.enablement.ibm.ddl.ExtendDdlBuilder;
+import org.eclipse.datatools.enablement.ibm.ddl.OlapDdlBuilder;
+import org.eclipse.datatools.enablement.ibm.util.DependencyImpactAnalyst;
+import org.eclipse.datatools.enablement.ibm.util.DependencyImpactDescription;
+import org.eclipse.datatools.enablement.ibm.util.EngineeringOptionID;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Group;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.User;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.ecore.EObject;
+
+public final class LUWDdlGenerator extends CoreDdlGenerator implements IExecutableExtension {
+
+ private static ILUWModuleDdlBuilder moduleBuilder = null;
+ public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
+ this.product = config.getAttribute("product"); //$NON-NLS-1$
+ this.version = config.getAttribute("version"); //$NON-NLS-1$
+
+ if ("V8.1".equals(this.version)
+ ||"V8.2".equals(this.version) ){
+ builder = new LUWDdlBuilder(this);
+ } else if ("V9.1".equals(this.version)) {
+ builder = new LUWDdlBuilder9(this);
+ } else if ("V9.5".equals(this.version)) {
+ builder = new LUWDdlBuilder95(this);
+ } else {
+ builder = new LUWDdlBuilder97(this);
+ }
+
+ }
+
+ //@d00058820gs: use new structure/methods
+ public String[] generateDDL(SQLObject[] elements, IProgressMonitor progressMonitor, IEngineeringCallBack callback) {
+ this.builder.setEngineeringCallBack(callback);
+ String[] statements = new String[0];
+ String[] create = new String[0];
+ String[] drop = new String[0];
+ String[] comment = new String[0];
+ String[] statistics = new String[0];
+ EngineeringOption[] options = this.getSelectedOptions(elements);
+
+ if (!this.checkModel(elements, options)) {
+ this.builder.getEngineeringCallBack().writeMessage(LUWDdlMessages.FE_INVALID_MODEL);
+ return statements;
+ }
+
+// if (EngineeringOptionID.generateCreateStatement(options)) {
+ create = this.createSQLObjects(elements, EngineeringOptionID.generateQuotedIdentifiers(options),
+ EngineeringOptionID.generateFullyQualifiedNames(options), progressMonitor,callback);
+// }
+ if(EngineeringOptionID.generateDropStatement(options)) {
+ drop = this.dropSQLObjects(elements, EngineeringOptionID.generateQuotedIdentifiers(options),
+ EngineeringOptionID.generateFullyQualifiedNames(options), progressMonitor,callback);
+ }
+ //@d00058820gs
+ if (EngineeringOptionID.generateCommentStatement(options)) {
+ comment = this.commentSQLObjects(elements, EngineeringOptionID.generateQuotedIdentifiers(options),
+ EngineeringOptionID.generateFullyQualifiedNames(options), progressMonitor,callback);
+ }
+
+ if (EngineeringOptionID.generateStatistics(options)) {
+ statistics = this.updateStatisticsStatements(elements, EngineeringOptionID.generateQuotedIdentifiers(options),
+ EngineeringOptionID.generateFullyQualifiedNames(options), progressMonitor,callback);
+ }
+
+ statements = new String[create.length + drop.length + comment.length + statistics.length];
+ int i=0;
+ for(int j=0; j<drop.length; ++i,++j) {
+ statements[i] = drop[j];
+ }
+ for(int j=0; j<create.length; ++i,++j) {
+ statements[i] = create[j];
+ }
+ for(int j=0; j<comment.length; ++i,++j) {
+ statements[i] = comment[j];
+ }
+ for(int j=0; j<statistics.length; ++i,++j) {
+ statements[i] = statistics[j];
+ }
+
+ return statements;
+ }
+
+ public String[] createSQLObjects(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor,IEngineeringCallBack callback) {
+ this.builder.setEngineeringCallBack(callback);
+ String[] statements = this.createStatements(elements, quoteIdentifiers,
+ qualifyNames, progressMonitor, 100);
+
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ OlapDdlBuilder olapBuilder = DdlGenerationUtility.getOlapDdlBuilder(this.product, this.version);
+ if (olapBuilder != null && EngineeringOptionID.getOptionValue(olapBuilder.getOption(),this.getSelectedOptions(elements))) {
+ String[] olap = olapBuilder.buildCreateStatement(elements,quoteIdentifiers,qualifyNames);
+
+ String[] temp = statements;
+ statements = new String[temp.length + olap.length];
+ for(int i=0; i<temp.length; ++i) {
+ statements[i] = temp[i];
+ }
+ for(int i=0; i<olap.length; ++i) {
+ statements[i+temp.length] = olap[i];
+ }
+
+ }
+ }
+ return statements;
+ }
+
+ public String[] dropSQLObjects(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor,IEngineeringCallBack callback) {
+ this.builder.setEngineeringCallBack(callback);
+ String[] statements = this.dropStatements(elements, quoteIdentifiers,
+ qualifyNames, progressMonitor, 100);
+
+ String[] olap = null;
+
+ OlapDdlBuilder olapBuilder = DdlGenerationUtility.getOlapDdlBuilder(this.product, this.version);
+ if (olapBuilder != null && EngineeringOptionID.getOptionValue(olapBuilder.getOption(),this.getSelectedOptions(elements))) {
+ olap = olapBuilder.buildDropStatement(elements,quoteIdentifiers,qualifyNames);
+
+ if (olap != null) {
+ String[] temp = statements;
+ statements = new String[temp.length + olap.length];
+ for(int i=0; i<olap.length; ++i) {
+ statements[i] = olap[i];
+ }
+
+ for(int i=0; i<temp.length; ++i) {
+ statements[i+olap.length] = temp[i];
+ }
+ }
+ }
+
+ return statements;
+ }
+
+ //@d00058820gs: use new structure/methods
+ public String[] commentSQLObjects(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor,IEngineeringCallBack callback) {
+ this.builder.setEngineeringCallBack(callback);
+ String[] statements = this.commentStatements(elements, quoteIdentifiers,
+ qualifyNames, progressMonitor, 100);
+
+// OlapDdlBuilder olapBuilder = DdlGenerationUtility.getOlapDdlBuilder(this.product, this.version);
+// if (olapBuilder != null && EngineeringOptionID.getOptionValue(olapBuilder.getOption(),this.getSelectedOptions(elements))) {
+// String[] olap = olapBuilder.buildCommentStatement(elements,quoteIdentifiers,qualifyNames);
+//
+// String[] temp = statements;
+// statements = new String[temp.length + olap.length];
+// for(int i=0; i<temp.length; ++i) {
+// statements[i] = temp[i];
+// }
+// for(int i=0; i<olap.length; ++i) {
+// statements[i+temp.length] = olap[i];
+// }
+// }
+ return statements;
+ }
+
+ //@d00058820gs: use new structure/methods
+ private String[] createStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ Map patternMap = DdlGenerationUtility.getCodetemplatePatterns();
+
+ long exclusiveType = 0;
+ for (int i = 0; i< elements.length; i++){
+ if (!(elements[i] instanceof Column)) {
+ exclusiveType = exclusiveType | EngineeringOptionID.COLUMN;
+ break;
+ }
+ }
+
+ for (int i = 0; i< elements.length; i++){
+ if ((elements[i] instanceof User) || (elements[i] instanceof Group))
+ {
+ ((AuthorizationIdentifier)elements[i]).getDatabase().getPrivileges();
+ break;
+ }
+ }
+
+ Vector processedTablespace = new Vector();
+ LUWDdlScript script = new LUWDdlScript();
+
+ Set set = null;
+ if (optionDependency != null)
+ set = optionDependency.getElementsToUse();
+
+ Iterator it = null;
+ if (set != null && set.size() > 0)
+ it = optionDependency.getElementsToUse().iterator();
+ else
+ it = LUWDdlGenerator.getAllContainedDisplayableElementSet(elements).iterator();
+
+ EngineeringOption[] options = this.getSelectedOptions(elements);
+ List<UserDefinedType> userDefinedTypes = new ArrayList<UserDefinedType>();
+ List<UserDefinedType> sortedUserDefinedTypes = new ArrayList<UserDefinedType>();
+
+ while(it.hasNext()) {
+ Object o = it.next();
+
+ if(o instanceof LUWDatabasePackage) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWDatabasePackage) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if(o instanceof LUWNickname) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.createNickname((LUWNickname) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateNicknameStatement(statement);
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWNickname) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+
+ }
+ else if(o instanceof LUWServer) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ LUWServer luwServer = (LUWServer)o;
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.createRemoteServer(luwServer, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateRemoteServerStatement(statement);
+ }
+ }
+ else if(o instanceof LUWWrapper) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ LUWWrapper wrapper = (LUWWrapper) o;
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.createWrapper(wrapper, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateWrapperStatement(statement);
+ }
+ }
+ else if(o instanceof LUWUserMapping) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.createUserMapping((LUWUserMapping) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateUserMappingStatement(statement);
+ }
+ }
+ else if(o instanceof LUWMaterializedQueryTable) {
+ if (!EngineeringOptionID.generateMQTs(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createMQT((LUWMaterializedQueryTable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateViewStatement(statement);
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWMaterializedQueryTable) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if(o instanceof LUWTable) {
+ if (!EngineeringOptionID.generateTables(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createTable((LUWTable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createTableCodetemplate((LUWTable)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, true,patternMap);
+ String postlog = builder.createTableCodetemplate((LUWTable)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, false,patternMap);
+ script.addCreateTableStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWTable) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if(o instanceof LUWTableSpace) {
+ if (!EngineeringOptionID.generateTablespaces(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createTablespace((LUWTableSpace) o, quoteIdentifiers);
+ if(statement != null) script.addCreateTablespaceStatement(statement);
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWTableSpace) o, quoteIdentifiers);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if(o instanceof LUWView) {
+ if (!EngineeringOptionID.generateViews(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createView((LUWView) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createViewCodetemplate((LUWView)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, true,patternMap);
+ String postlog = builder.createViewCodetemplate((LUWView)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, false,patternMap);
+ script.addCreateViewStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWView) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+
+ }
+ else if(o instanceof DB2Alias) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateAliases(options)) continue;
+ String statement = builder.createAlias((DB2Alias) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateViewStatement(statement);
+ }
+ else if(o instanceof DB2Procedure) {
+ String statement = "";
+ if ( o instanceof FederatedProcedure) // fsp - pyl
+ {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ statement = builder.createFederatedProcedure((FederatedProcedure) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateFederatedProcedureStatement(statement);
+ }
+ } else if (o instanceof LUWModuleProcedure){
+ if (!EngineeringOptionID.generateStoredProcedures(options)) continue;
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ statement = builder.createProcedure((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ if (statement != null) script.addCreateModuleRoutineStatement(statement);
+ }else
+ {
+ if (!EngineeringOptionID.generateStoredProcedures(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ statement = builder.createProcedure((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createRoutineCodetemplate((DB2Procedure)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, true,patternMap);
+ String postlog = builder.createRoutineCodetemplate((DB2Procedure)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, false,patternMap);
+ script.addCreateRoutineStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ }
+ else if(o instanceof DB2UserDefinedFunction) {
+ if (!EngineeringOptionID.generateFunctions(options)) continue;
+
+ if (o instanceof LUWModuleFunction) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ String statement = builder.createUserDefinedFunction((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateModuleRoutineStatement(statement);
+ } else {
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createUserDefinedFunction((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createRoutineCodetemplate((DB2UserDefinedFunction)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, true,patternMap);
+ String postlog = builder.createRoutineCodetemplate((DB2UserDefinedFunction)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, false,patternMap);
+ script.addCreateRoutineStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ }
+ else if(o instanceof DB2Trigger) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateTriggers(options)) continue;
+ String statement = builder.createTrigger((DB2Trigger) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateTriggerStatement(statement);
+ }
+ else if(o instanceof CheckConstraint) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if(!EngineeringOptionID.generateCKConstraints(options)) continue;
+ String statement = builder.addCheckConstraint((CheckConstraint) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createConstraintCodetemplate((CheckConstraint)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, true,patternMap);
+ String postlog = builder.createConstraintCodetemplate((CheckConstraint)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, false,patternMap);
+ script.addAlterTableAddConstraintStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ else if(o instanceof UniqueConstraint) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if(!EngineeringOptionID.generatePKConstraints(options) || builder.isImplicitPK((UniqueConstraint)o)) continue;
+ String statement = builder.addUniqueConstraint((UniqueConstraint) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createConstraintCodetemplate((UniqueConstraint)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, true,patternMap);
+ String postlog = builder.createConstraintCodetemplate((UniqueConstraint)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, false,patternMap);
+ script.addAlterTableAddConstraintStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ else if(o instanceof ForeignKey) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if(!EngineeringOptionID.generateFKConstraints(options)) continue;
+ String statement = builder.addForeignKey((ForeignKey) o, quoteIdentifiers, qualifyNames);
+ if (statement != null) {
+ String prolog = builder.createConstraintCodetemplate((ForeignKey)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, true,patternMap);
+ String postlog = builder.createConstraintCodetemplate((ForeignKey)o, DdlGenerationUtility.GENERATE_CREATE_PATTERN, false,patternMap);
+ script.addAlterTableAddForeignKeyStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ else if(o instanceof DB2Index) {
+ if (!EngineeringOptionID.generateIndexes(options) || ((DB2Index)o).isSystemGenerated() || ((DB2Index)o).getIndexType() != DB2IndexType.REGULAR_LITERAL) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createIndex((DB2Index) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ if (((DB2Index)o).getTable() instanceof LUWTable) {
+ script.addCreateIndexStatement(statement);
+ } else {
+ script.addCreateViewIndexStatement(statement);
+ }
+ }
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((DB2Index) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if(o instanceof Sequence) {
+ if (!EngineeringOptionID.generateSequences(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createSequence((Sequence) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateSequenceStatement(statement);
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((Sequence) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+// else if(o instanceof DistinctUserDefinedType) {
+// if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+// if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+// if (o instanceof LUWModuleDistinctType) {
+// String statement = builder.createModuleDistinctType((LUWModuleDistinctType) o, quoteIdentifiers, qualifyNames);
+// if(statement != null) script.addCreateModuleTypeStatement(statement);
+// } else {
+// String statement = builder.createDistinctUserDefinedType((DistinctUserDefinedType) o, quoteIdentifiers, qualifyNames);
+// if(statement != null) script.addCreateUserDefinedTypeStatement(statement);
+// }
+// }
+// else if (o instanceof StructuredUserDefinedType){
+// if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+// if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+// String statement = builder.createStructuredUserDefinedType((StructuredUserDefinedType) o, quoteIdentifiers, qualifyNames);
+// if(statement != null) script.addCreateUserDefinedTypeStatement(statement);
+// }
+ else if(o instanceof Column) {
+ if (!EngineeringOptionID.generateTables(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ if ((exclusiveType & EngineeringOptionID.COLUMN) == EngineeringOptionID.COLUMN) continue;
+ String statement = builder.alterTableAddColumn((Column)o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addAlterTableAddColumnStatement(statement);
+ }
+ }
+ else if(o instanceof LUWBufferPool) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateBufferPool(options)) continue;
+ String statement = builder.createBufferPool((LUWBufferPool) o, quoteIdentifiers);
+ if(statement != null) script.addCreateBufferPoolStatement(statement);
+ }
+ else if(o instanceof LUWPartitionGroup) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generatePartitionGroup(options)) continue;
+ String statement = builder.createPartitionGroup((LUWPartitionGroup) o, quoteIdentifiers);
+ if(statement != null) script.addCreatePartitionGroupStatement(statement);
+ }
+ else if(o instanceof Schema) {
+ //if(!EngineeringOptionID.generateFullyQualifiedNames()) continue;
+ if(!EngineeringOptionID.generateSchemas(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createSchema((Schema) o, quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addCreateSchemaStatement(statement);
+ }
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((Schema) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if(o instanceof Database) {
+ if(!EngineeringOptionID.generateDatabase(options)) continue;
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((Database) o, quoteIdentifiers);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if(o instanceof Privilege) {
+ //if(!this.generateFullyQualifiedNames()) continue;
+ if(!EngineeringOptionID.generateGrantStatement(options)) continue;
+ String statement = builder.getGrantPrivilegeStatement((Privilege)o,quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addGrantStatement(statement);
+ }
+ else if(o instanceof Role) {
+ if (!EngineeringOptionID.generateRoles(options)) continue;
+ if (EngineeringOptionID.generateCreateStatement(options)) {
+ String statement = builder.createRole((Role)o, quoteIdentifiers);
+ if(statement != null) script.addCreateRoleStatement(statement);
+ }
+// if (EngineeringOptionID.generateGrantStatement(options)) {
+// String[] grantStatements = builder.grantOn((Role) o, quoteIdentifiers);
+// for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+// script.addGrantStatement(grantStatements[igrant]);
+// }
+// }
+ }
+ else if(o instanceof RoleAuthorization) {
+ if (!EngineeringOptionID.generateGrantStatement(options)) continue;
+ String statement = builder.getGrantRoleAuthorizationStatement((RoleAuthorization)o,quoteIdentifiers);
+ if(statement != null) script.addGrantStatement(statement);
+ }
+ else if (o instanceof PLSQLPackage) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generatePacakges(options)) continue;
+ String statement = builder.createPlsqlPackage((PLSQLPackage) o, quoteIdentifiers, qualifyNames);
+ if (statement != null) script.addCreatePlsqlPackageStatement(statement);
+
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((PLSQLPackage) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+ }
+ else if (o instanceof PLSQLPackageBody) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generatePacakgeBodys(options)) continue;
+ String statement = builder.createPlsqlPackageBody((PLSQLPackageBody)o, quoteIdentifiers, qualifyNames);
+ if (statement != null) script.addCreatePlsqlPackageBodyStatement(statement);
+ }
+ else if(o instanceof LUWModule) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateModules(options)) continue;
+ String statement = builder.createModule((LUWModule) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateModuleStatement(statement);
+
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWModule) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+
+ }
+ else if(o instanceof LUWModuleCondition) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateModuleConditions(options)) continue;
+ String statement = builder.createModuleCondition((LUWModuleCondition) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateModuleConditionStatement(statement);
+ }
+ else if(o instanceof LUWGlobalVariable) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateGlobalVariables(options)) continue;
+
+ if (o instanceof LUWModuleGlobalVariable) {
+ String statement = builder.createModuleGlobalVariable((LUWModuleGlobalVariable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateModuleGlobalVariableStatement(statement);
+ } else {
+ String statement = builder.createGlobalVariable((LUWGlobalVariable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCreateGlobalVariableStatement(statement);
+ if (EngineeringOptionID.generateGrantStatement(options)) {
+ String[] grantStatements = builder.grantOn((LUWGlobalVariable) o, quoteIdentifiers, qualifyNames);
+ for (int igrant = 0; igrant <grantStatements.length; igrant ++) {
+ script.addGrantStatement(grantStatements[igrant]);
+ }
+ }
+
+ }
+ }
+// else if (o instanceof LUWArrayDataType){
+// if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+// if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+//
+// String statement = builder.createArrayDataType((LUWArrayDataType) o, quoteIdentifiers, qualifyNames);
+// if (o instanceof LUWModuleArrayDataType) {
+// if(statement != null) script.addCreateModuleTypeStatement(statement);
+// } else {
+// if(statement != null) script.addCreateUserDefinedTypeStatement(statement);
+// }
+// }
+// else if (o instanceof LUWRowDataType){
+// if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+// if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+//
+// String statement = builder.createRowDataType((LUWRowDataType) o, quoteIdentifiers, qualifyNames);
+// if (o instanceof LUWModuleRowDataType) {
+// if(statement != null) script.addCreateModuleTypeStatement(statement);
+// } else {
+// if(statement != null) script.addCreateUserDefinedTypeStatement(statement);
+// }
+// }
+// else if (o instanceof LUWCursorDataType){
+// if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+// if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+//
+// String statement = builder.createCursorDataType((LUWCursorDataType) o, quoteIdentifiers, qualifyNames);
+// if (o instanceof LUWModuleCursorDataType) {
+// if(statement != null) script.addCreateModuleTypeStatement(statement);
+// } else {
+// if(statement != null) script.addCreateUserDefinedTypeStatement(statement);
+// }
+// }
+
+ else if (o instanceof UserDefinedType) {
+ userDefinedTypes.add((UserDefinedType)o);
+ }
+ }
+
+ //sort the UserDefinedTypes
+ sortUDTS(sortedUserDefinedTypes,userDefinedTypes) ;
+
+ // generated the ddl
+ for (int j = 0; j < sortedUserDefinedTypes.size(); j++) {
+ UserDefinedType type = (UserDefinedType) sortedUserDefinedTypes.toArray()[j];
+ if (type instanceof StructuredUserDefinedType) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+ String statement = builder.createStructuredUserDefinedType(
+ (StructuredUserDefinedType) type, quoteIdentifiers, qualifyNames);
+ if (statement != null)
+ script.addCreateUserDefinedTypeStatement(statement);
+ }
+ else if(type instanceof DistinctUserDefinedType) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+ if (type instanceof LUWModuleDistinctType) {
+ String statement = builder.createModuleDistinctType((LUWModuleDistinctType) type,quoteIdentifiers, qualifyNames);
+ if(statement != null)
+ script.addCreateModuleTypeStatement(statement);
+ }
+ else {
+ String statement = builder.createDistinctUserDefinedType((DistinctUserDefinedType)type, quoteIdentifiers, qualifyNames);
+ if(statement != null)
+ script.addCreateUserDefinedTypeStatement(statement);
+ }
+ }
+ else if (type instanceof LUWArrayDataType) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+ String statement = builder
+ .createArrayDataType((LUWArrayDataType) type, quoteIdentifiers, qualifyNames);
+ if (type instanceof LUWModuleArrayDataType) {
+ if (statement != null)
+ script.addCreateModuleTypeStatement(statement);
+ } else {
+ if (statement != null)
+ script.addCreateUserDefinedTypeStatement(statement);
+ }
+ } else if (type instanceof LUWRowDataType) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+
+ String statement = builder.createRowDataType((LUWRowDataType) type, quoteIdentifiers, qualifyNames);
+ if (type instanceof LUWModuleRowDataType) {
+ if (statement != null)
+ script.addCreateModuleTypeStatement(statement);
+ } else {
+ if (statement != null)
+ script.addCreateUserDefinedTypeStatement(statement);
+ }
+ } else if (type instanceof LUWCursorDataType) {
+ if (!EngineeringOptionID.generateCreateStatement(options)) continue;
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+
+ String statement = builder.createCursorDataType(
+ (LUWCursorDataType) type, quoteIdentifiers, qualifyNames);
+ if (type instanceof LUWModuleCursorDataType) {
+ if (statement != null)
+ script.addCreateModuleTypeStatement(statement);
+ } else {
+ if (statement != null)
+ script.addCreateUserDefinedTypeStatement(statement);
+ }
+ }
+ }
+
+ return script.getStatements();
+ }
+
+ private void sortUDTS(final List<UserDefinedType> sortedUserDefinedTypes,final List<UserDefinedType> selectedUserDefinedTypes){
+ for (int i = 0; i < selectedUserDefinedTypes.size(); i++) {
+ UserDefinedType type = selectedUserDefinedTypes.get(i);
+ if (type instanceof DistinctUserDefinedType) {
+ if(!sortedUserDefinedTypes.contains(type)){
+ sortedUserDefinedTypes.add(type);
+ }
+
+ } else {
+ List<UserDefinedType> dependency = new ArrayList<UserDefinedType>();
+ dependency = getDependency(type, selectedUserDefinedTypes);
+ if (dependency != null && dependency.size() > 0) {
+ for(int j = 0; j < dependency.size(); j++){
+ UserDefinedType dependType = (UserDefinedType)dependency.get(j);
+ if(!sortedUserDefinedTypes.contains(dependType))
+ sortedUserDefinedTypes.add(dependType);
+ }
+ }
+ if(!sortedUserDefinedTypes.contains(type))
+ sortedUserDefinedTypes.add(type);
+ }
+ }
+ }
+
+ private List<UserDefinedType> getDependency(UserDefinedType type, List<UserDefinedType> selectTypes) {
+ List<UserDefinedType> dependency = new ArrayList<UserDefinedType>();
+ List<UserDefinedType> dependencyAll = new ArrayList<UserDefinedType>();
+ List<UserDefinedType> accessList = new ArrayList<UserDefinedType>();
+
+ getDependency(type, dependencyAll,accessList);
+
+ for (int i = 0; i < dependencyAll.size(); i++) {
+ UserDefinedType dependType = dependencyAll.get(i);
+ if (selectTypes.contains(dependType)) {
+ dependency.add(dependType);
+ }
+ }
+ return dependency;
+ }
+
+ private void getDependency(UserDefinedType type, List<UserDefinedType> dependencyList, List<UserDefinedType> accessList){
+ if(type != null && !accessList.contains(type)) {
+ accessList.add(type);
+ if(type instanceof StructuredUserDefinedType){
+ StructuredUserDefinedType structureType = (StructuredUserDefinedType)type;
+ if(structureType.getSuper()!=null){
+ this.getDependency(structureType.getSuper(), dependencyList, accessList);
+ }
+ }
+
+ DependencyImpactAnalyst m_DepAnalayst = DependencyImpactAnalyst.getInstance();
+ DependencyImpactDescription[] array = m_DepAnalayst.getDirectDependencies( type, -1 );
+
+ if(array!=null && array.length > 0){
+ for(int i = array.length-1;i >= 0;i--){
+ DependencyImpactDescription depend = (DependencyImpactDescription)array[i];
+ EObject targetType = depend.getTarget();
+ if(!accessList.contains(targetType)) {
+ if(targetType instanceof UserDefinedType) {
+ if(targetType instanceof StructuredUserDefinedType){
+ StructuredUserDefinedType superType = ((StructuredUserDefinedType)targetType).getSuper();
+ if(targetType!=null && superType!= null)
+ this.getDependency(((StructuredUserDefinedType)depend.getTarget()).getSuper(), dependencyList, accessList);
+ }
+ dependencyList.add((UserDefinedType)targetType);
+ }
+ }
+ }
+ }
+ if(!dependencyList.contains(type))
+ dependencyList.add(type);
+ }
+ }
+
+
+ //@d00058820gs: use new structure/methods
+ private String[] dropStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ Map patternMap = DdlGenerationUtility.getCodetemplatePatterns();
+ LUWDdlScript script = new LUWDdlScript();
+ EngineeringOption[] options = this.getSelectedOptions(elements);
+ //Iterator it = DdlGenerationUtility.getAllContainedDisplayableElementSet(elements).iterator();
+ Iterator it = getAllContainedDisplayableElements(elements).iterator();
+ while(it.hasNext()) {
+ Object o = it.next();
+
+ if(o instanceof LUWNickname) {
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.dropNickname((LUWNickname) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropNicknameStatement(statement);
+ }
+ }
+ else if(o instanceof LUWServer) {
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.dropRemoteServer((LUWServer) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropRemoteServerStatement(statement);
+ }
+ }
+ else if(o instanceof LUWWrapper) {
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.dropWrapper((LUWWrapper) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropWrapperStatement(statement);
+ }
+ }
+ else if(o instanceof LUWUserMapping) {
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.dropUserMapping((LUWUserMapping) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropUserMappingStatement(statement);
+ }
+ }
+ else if(o instanceof LUWMaterializedQueryTable) {
+ if (!EngineeringOptionID.generateMQTs(options)) continue;
+ String statement = builder.dropMQT((LUWMaterializedQueryTable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropViewStatement(statement);
+ }
+ else if(o instanceof LUWDatabasePackage) {
+ if (!EngineeringOptionID.generatePacakges(options)) continue;
+ String statement = builder.dropPackage((LUWDatabasePackage) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropPackageStatement(statement);
+ }
+ else if(o instanceof LUWTable) {
+ if (!EngineeringOptionID.generateTables(options)) continue;
+ String statement = builder.dropTable((LUWTable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createTableCodetemplate((LUWTable)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, true,patternMap);
+ String postlog = builder.createTableCodetemplate((LUWTable)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, false,patternMap);
+ script.addDropTableStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+
+ }
+ else if(o instanceof LUWView) {
+ if (!EngineeringOptionID.generateViews(options)) continue;
+ String statement = builder.dropView((LUWView) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createViewCodetemplate((LUWView)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, true,patternMap);
+ String postlog = builder.createViewCodetemplate((LUWView)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, false,patternMap);
+ script.addDropViewStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+
+ }
+ else if(o instanceof DB2Alias) {
+ //if (!EngineeringOptionID.generateTables()) continue;
+ if (!EngineeringOptionID.generateAliases(options)) continue;
+ String statement = builder.dropAlias((DB2Alias) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropViewStatement(statement);
+ }
+ else if(o instanceof DB2Procedure) {
+ if (!EngineeringOptionID.generateStoredProcedures(options)) continue;
+ String statement = "";
+ if ( o instanceof FederatedProcedure) // fsp - pyl @wsdbu00079822
+ {
+ statement = builder.dropProcedure((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ if (statement != null) script.addDropRoutineStatement(statement);
+ } else if (o instanceof LUWModuleProcedure){
+ statement = builder.dropProcedure((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ if (statement != null) script.addDropModuleRoutineStatement(statement);
+ }
+ else
+ {
+ statement = builder.dropProcedure((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createRoutineCodetemplate((DB2Procedure)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, true,patternMap);
+ String postlog = builder.createRoutineCodetemplate((DB2Procedure)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, false,patternMap);
+ script.addDropRoutineStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ }
+ else if(o instanceof DB2UserDefinedFunction) {
+ if (!EngineeringOptionID.generateFunctions(options)) continue;
+ String statement = builder.dropFunction((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ if (o instanceof LUWModuleFunction){
+ statement = builder.dropFunction((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ script.addDropModuleRoutineStatement(statement);
+ } else {
+ String prolog = builder.createRoutineCodetemplate((DB2UserDefinedFunction)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, true,patternMap);
+ String postlog = builder.createRoutineCodetemplate((DB2UserDefinedFunction)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, false,patternMap);
+ script.addDropRoutineStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ }
+ else if(o instanceof DB2Trigger) {
+ if (!EngineeringOptionID.generateTriggers(options)) continue;
+ String statement = builder.dropTrigger((DB2Trigger) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropTriggerStatement(statement);
+ }
+ else if(o instanceof CheckConstraint) {
+ if(!EngineeringOptionID.generateCKConstraints(options)) continue;
+ String statement = builder.dropTableConstraint((CheckConstraint) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createConstraintCodetemplate((CheckConstraint)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, true,patternMap);
+ String postlog = builder.createConstraintCodetemplate((CheckConstraint)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, false,patternMap);
+ script.addAlterTableDropConstraintStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ else if(o instanceof UniqueConstraint) {
+ if(!EngineeringOptionID.generatePKConstraints(options) || builder.isImplicitPK((UniqueConstraint)o)) continue;
+ String statement = builder.dropTableConstraint((UniqueConstraint) o, quoteIdentifiers, qualifyNames);
+ if(statement != null){
+ String prolog = builder.createConstraintCodetemplate((UniqueConstraint)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, true,patternMap);
+ String postlog = builder.createConstraintCodetemplate((UniqueConstraint)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, false,patternMap);
+ script.addAlterTableDropConstraintStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ else if(o instanceof ForeignKey) {
+ if(!EngineeringOptionID.generateFKConstraints(options)) continue;
+ String statement = builder.dropTableConstraint((ForeignKey) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ String prolog = builder.createConstraintCodetemplate((ForeignKey)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, true,patternMap);
+ String postlog = builder.createConstraintCodetemplate((ForeignKey)o, DdlGenerationUtility.GENERATE_DROP_PATTERN, false,patternMap);
+ script.addAlterTableDropForeignKeyStatements(statement,
+ script.combineTemplateStatements(prolog,statement,postlog));
+ }
+ }
+ else if(o instanceof DB2Index) {
+ if (!EngineeringOptionID.generateIndexes(options) || ((DB2Index)o).isSystemGenerated() || ((DB2Index)o).getIndexType() != DB2IndexType.REGULAR_LITERAL) continue;
+ String statement = builder.dropIndex((DB2Index) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ if (((DB2Index)o).getTable() instanceof LUWTable) {
+ script.addDropIndexStatement(statement);
+ } else {
+ script.addDropViewIndexStatement(statement);
+ }
+ }
+ }
+ else if(o instanceof LUWTableSpace) {
+ if (!EngineeringOptionID.generateTablespaces(options)) continue;
+ String statement = builder.dropTablespace((LUWTableSpace) o, quoteIdentifiers);
+ if(statement != null) script.addDropTablespaceStatement(statement);
+ }
+ else if(o instanceof Sequence) {
+ if (!EngineeringOptionID.generateSequences(options)) continue;
+ String statement = builder.dropSequence((Sequence) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropSequenceStatement(statement);
+ }
+ else if(o instanceof UserDefinedType) {
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+ String statement = builder.dropUserDefinedType((UserDefinedType) o, quoteIdentifiers, qualifyNames);
+ if (o instanceof LUWModuleObject) {
+ if(statement != null) script.addDropModuleTypeStatement(statement);
+ } else {
+ if(statement != null) script.addDropUserDefinedTypeStatement(statement);
+ }
+ }
+ else if(o instanceof LUWBufferPool) {
+ if(!EngineeringOptionID.generateBufferPool(options)) continue;
+ String statement = builder.dropBufferPool((LUWBufferPool) o, quoteIdentifiers);
+ if(statement != null) script.addDropBufferPoolStatement(statement);
+ }
+// xml schema drop done via stored procedure now
+// else if(o instanceof LUWCatalogXmlSchema) {
+// String statement = ((LUWDdlBuilder)builder).dropXMLSchema((LUWCatalogXmlSchema)o, quoteIdentifiers, qualifyNames);
+// if (statement != null) script.addDropXMLSchemaStatement(statement);
+// }
+ else if(o instanceof LUWPartitionGroup) {
+ if(!EngineeringOptionID.generatePartitionGroup(options)) continue;
+ String statement = builder.dropPartitionGroup((LUWPartitionGroup) o, quoteIdentifiers);
+ if(statement != null) script.addDropPartitionStatement(statement);
+ }
+ else if(o instanceof Schema) {
+ //if(!this.generateFullyQualifiedNames()) continue;
+ if(!EngineeringOptionID.generateSchemas(options)) continue;
+ String statement = builder.dropSchema((Schema) o, quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addDropSchemaStatement(statement);
+ }
+ else if(o instanceof Privilege) {
+ //if(!this.generateFullyQualifiedNames()) continue;
+ if(!EngineeringOptionID.generateRevokeStatement(options)) continue;
+ String statement = builder.getRevokePrivilegeStatement((Privilege)o,quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addRevokeStatement(statement);
+ }
+ else if(o instanceof RoleAuthorization) {
+ if (!EngineeringOptionID.generateRevokeStatement(options)) continue;
+ String statement = builder.getRevokeRoleAuthorizationStatement((RoleAuthorization)o,quoteIdentifiers);
+ if(statement != null) script.addRevokeStatement(statement);
+ }
+ else if (o instanceof AuthorizationIdentifier) {
+ ((AuthorizationIdentifier) o).getDatabase().getPrivileges();
+ if(EngineeringOptionID.generateRevokeStatement(options)) {
+ Iterator pIt = ((AuthorizationIdentifier)o).getReceivedPrivilege().iterator();
+ while (pIt.hasNext()) {
+ String statement = builder.getRevokePrivilegeStatement((Privilege)pIt.next(),quoteIdentifiers,qualifyNames);
+ if (statement != null) {
+ script.addRevokeStatement(statement);
+ }
+ }
+// //Delete Role Authorizations for User
+// Iterator pRolesIt = ((AuthorizationIdentifier)o).getReceivedRoleAuthorization().iterator();
+// while (pRolesIt.hasNext()) {
+// script.addRevokeStatement(builder.getRevokeRoleAuthorizationStatement((RoleAuthorization) pRolesIt.next(),quoteIdentifiers));
+// }
+ }
+ if(o instanceof Role) {
+ if (!EngineeringOptionID.generateRoles(options)) continue;
+ String statement = builder.dropRole((Role)o, quoteIdentifiers);
+ if(statement != null) script.addDropRoleStatement(statement);
+ }
+ }
+ else if (o instanceof PLSQLPackage) {
+ if (!EngineeringOptionID.generatePacakges(options)) continue;
+ String statement = builder.dropPlsqlPackage((PLSQLPackage) o, quoteIdentifiers, qualifyNames);
+ if (statement != null) script.addDropPlsqlPackageStatement(statement);
+ }
+ else if (o instanceof PLSQLPackageBody) {
+ if (!EngineeringOptionID.generatePacakgeBodys(options)) continue;
+ String statement = builder.dropPlsqlPackageBody((PLSQLPackageBody)o, quoteIdentifiers, qualifyNames);
+ if (statement != null) script.addDropPlsqlPackageBodyStatement(statement);
+ }
+ else if(o instanceof LUWModule) {
+ if (!EngineeringOptionID.generateModules(options)) continue;
+ String statement = builder.dropModule((LUWModule)o,quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addDropModuleStatement(statement);
+ }
+ else if(o instanceof LUWModuleCondition) {
+ if (!EngineeringOptionID.generateModuleConditions(options)) continue;
+ String statement = builder.dropModuleCondition((LUWModuleCondition)o,quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addDropModuleConditionStatement(statement);
+ }
+ else if(o instanceof LUWGlobalVariable) {
+ if (!EngineeringOptionID.generateGlobalVariables(options)) continue;
+
+ if (o instanceof LUWModuleGlobalVariable) {
+ String statement = builder.dropModuleGlobalVariable((LUWModuleGlobalVariable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropModuleGlobalVariableStatement(statement);
+ } else {
+ String statement = builder.dropGlobalVariable((LUWGlobalVariable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addDropGlobalVariableStatement(statement);
+ }
+ }
+ }
+ return script.getStatements();
+ }
+
+ //Fix for wsdbu00241490 ODA2201: ODE UI should not allow user to drop schema nullid.
+ //This is a modified version of the DdlGenerationUtility.getAllContainedDisplayableElementSet(elements)
+ //method. Its purpose is to avoid dropping the contained elements when dropping NULLID schema.
+ //The effect is the DDL for dropping NULLID will still be generated but it will fail
+ //to execute because DB2 will find out there are dependents still depending on the NULLID.
+ protected Collection getAllContainedDisplayableElements(SQLObject[] elements) {
+ ArrayList<SQLObject> temp = new ArrayList<SQLObject>();
+ // Is there a NULLID schema in the input array?
+ SQLObject nullid = null;
+ for (SQLObject sqlobj: elements) {
+ if (!(sqlobj instanceof Schema)
+ || !"NULLID".equals(sqlobj.getName())) {
+ // collect all non-NULLID schema objects into the temp list
+ temp.add(sqlobj);
+ } else {
+ nullid = sqlobj;
+ }
+ }
+
+ if (nullid == null) {
+ // there is no NULLID schema in the input array, business as usual
+ return DdlGenerationUtility
+ .getAllContainedDisplayableElementSet(elements);
+ } else {
+ // found the NULLID schema in the input array
+ SQLObject[] elementsWithoutNullId = new SQLObject[temp.size()];
+ temp.toArray(elementsWithoutNullId);
+ ArrayList temp2 = new ArrayList();
+ temp2.addAll(DdlGenerationUtility
+ .getAllContainedDisplayableElementSet(elementsWithoutNullId));
+ temp2.add(nullid);
+ return temp2;
+ }
+ }
+
+ //@Override
+ public String[] alterTableDropColumn(SQLObject[] columns, SQLObject[] impacts, IProgressMonitor progressMonitor, IEngineeringCallBack callback) {
+ LUWDdlScript script = new LUWDdlScript();
+ for (int col = 0; col < columns.length; ++col) {
+ Column o = (Column)columns[col];
+ String statement = builder.alterTableDropColumn((Column)o, true, true);
+ if(statement != null) {
+ script.addAlterTableDropColumnStatement(statement);
+ script.addAlterTableDropColumnStatement(builder.reorgTable(o,true,true));
+ }
+ }
+ return script.getStatements();
+ }
+
+ private String[] commentStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ Vector processedTablespace = new Vector();
+ LUWDdlScript script = new LUWDdlScript();
+
+ Iterator it = LUWDdlGenerator.getAllContainedDisplayableElementSet(elements).iterator();
+ EngineeringOption[] options = this.getSelectedOptions(elements);
+ while(it.hasNext()) {
+ Object o = it.next();
+
+ if(o instanceof LUWNickname) {
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.commentOn((LUWNickname) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ }
+ else if(o instanceof LUWServer) {
+ LUWServer luwServer = (LUWServer)o;
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.commentOn(luwServer, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ }
+ else if(o instanceof LUWWrapper) {
+ LUWWrapper wrapper = (LUWWrapper) o;
+ ExtendDdlBuilder extendDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(this.product, this.version);
+ if (extendDdlBuilder != null && EngineeringOptionID.getOptionValue(extendDdlBuilder.getOption(),options)) {
+ String statement = builder.commentOn(wrapper, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ }
+ else if(o instanceof LUWMaterializedQueryTable) {
+ if (!EngineeringOptionID.generateMQTs(options)) continue;
+ String statement = builder.commentOn((LUWMaterializedQueryTable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof LUWTable) {
+ if (!EngineeringOptionID.generateTables(options)) continue;
+ String statement = builder.commentOn((LUWTable) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof LUWTableSpace) {
+ if (!EngineeringOptionID.generateTablespaces(options)) continue;
+ String statement = builder.commentOn((LUWTableSpace) o, quoteIdentifiers);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof LUWView) {
+ if (!EngineeringOptionID.generateViews(options)) continue;
+ String statement = builder.commentOn((LUWView) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof DB2Alias) {
+ if (!EngineeringOptionID.generateAliases(options)) continue;
+ String statement = builder.commentOn((DB2Alias) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof DB2Procedure) {
+ if (!EngineeringOptionID.generateStoredProcedures(options)) continue;
+ String statement = builder.commentOn((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof DB2UserDefinedFunction) {
+ if (!EngineeringOptionID.generateFunctions(options)) continue;
+ String statement = builder.commentOn((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof DB2Trigger) {
+ if (!EngineeringOptionID.generateTriggers(options)) continue;
+ String statement = builder.commentOn((DB2Trigger) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof CheckConstraint) {
+ if(!EngineeringOptionID.generateCKConstraints(options)) continue;
+ String statement = builder.commentOn((CheckConstraint) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof UniqueConstraint) {
+ if(!EngineeringOptionID.generatePKConstraints(options) || builder.isImplicitPK((UniqueConstraint)o)) continue;
+ String statement = builder.commentOn((UniqueConstraint) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof ForeignKey) {
+ if(!EngineeringOptionID.generateFKConstraints(options)) continue;
+ String statement = builder.commentOn((ForeignKey) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof DB2Index) {
+ if (!EngineeringOptionID.generateIndexes(options) || ((DB2Index)o).isSystemGenerated() || ((DB2Index)o).getIndexType() != DB2IndexType.REGULAR_LITERAL) continue;
+ String statement = builder.commentOn((DB2Index) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof DistinctUserDefinedType) {
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+ String statement = builder.commentOn((DistinctUserDefinedType) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if (o instanceof StructuredUserDefinedType){
+ if (!EngineeringOptionID.generateUserDefinedTypes(options)) continue;
+ String statement = builder.commentOn((StructuredUserDefinedType) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof Column) {
+ if (!EngineeringOptionID.generateTables(options)) continue;
+ String statement = builder.commentOn((Column) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof LUWPartitionGroup) {
+ if (!EngineeringOptionID.generatePartitionGroup(options)) continue;
+ String statement = builder.commentOn((LUWPartitionGroup) o, quoteIdentifiers);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof Schema) {
+ //if(!EngineeringOptionID.generateFullyQualifiedNames()) continue;
+ if(!EngineeringOptionID.generateSchemas(options)) continue;
+ String statement = builder.commentOn((Schema) o, quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof Role) {
+ if (!EngineeringOptionID.generateRoles(options)) continue;
+ String statement = builder.commentOn((Role)o, quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof LUWModule) {
+ if (!EngineeringOptionID.generateModules(options)) continue;
+ String statement = builder.commentOn((LUWModule)o, quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof LUWModuleCondition) {
+ if (!EngineeringOptionID.generateModuleConditions(options)) continue;
+ String statement = builder.commentOn((LUWModuleCondition)o, quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ else if(o instanceof Sequence) {
+ if (!EngineeringOptionID.generateSequences(options)) continue;
+ String statement = builder.commentOn((Sequence)o, quoteIdentifiers,qualifyNames);
+ if(statement != null) script.addCommentOnStatement(statement);
+ }
+ }
+ return script.getStatements();
+ }
+
+ private String[] updateStatisticsStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor,IEngineeringCallBack callback) {
+ Vector processedTablespace = new Vector();
+ LUWDdlScript script = new LUWDdlScript();
+
+ Iterator it = LUWDdlGenerator.getAllContainedDisplayableElementSet(elements).iterator();
+ EngineeringOption[] options = this.getSelectedOptions(elements);
+ while(it.hasNext()) {
+ Object o = it.next();
+ if(o instanceof LUWNickname) {
+ String[] statements = builder.updateStatistics((LUWNickname) o, quoteIdentifiers, qualifyNames);
+ if (statements != null) {
+ for (int iStat = 0; iStat <statements.length; iStat ++) {
+ script.addUpdateStatisticsStatement(statements[iStat]);
+ }
+ }
+ } else if(o instanceof LUWMaterializedQueryTable) {
+ if (!EngineeringOptionID.generateMQTs(options)) continue;
+ String[] statements = builder.updateStatistics((LUWMaterializedQueryTable) o, quoteIdentifiers, qualifyNames);
+ if (statements != null) {
+ for (int iStat = 0; iStat <statements.length; iStat ++) {
+ script.addUpdateStatisticsStatement(statements[iStat]);
+
+ }
+ }
+ }else if(o instanceof LUWTable) {
+ if (!EngineeringOptionID.generateTables(options)) continue;
+ String[] statements = builder.updateStatistics((LUWTable) o, quoteIdentifiers, qualifyNames);
+ if (statements != null) {
+ for (int iStat = 0; iStat <statements.length; iStat ++) {
+ script.addUpdateStatisticsStatement(statements[iStat]);
+ }
+ }
+ }else if(o instanceof DB2Procedure) {
+ if (!EngineeringOptionID.generateStoredProcedures(options)) continue;
+ String[] statements = builder.updateStatistics((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ if (statements != null) {
+ for (int iStat = 0; iStat <statements.length; iStat ++) {
+ script.addUpdateStatisticsStatement(statements[iStat]);
+ }
+ }
+ }
+ else if(o instanceof DB2UserDefinedFunction) {
+ if (!EngineeringOptionID.generateFunctions(options)) continue;
+ String[] statements = builder.updateStatistics((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ if (statements != null) {
+ for (int iStat = 0; iStat <statements.length; iStat ++) {
+ script.addUpdateStatisticsStatement(statements[iStat]);
+ }
+ }
+ }
+ else if(o instanceof DB2Index) {
+ if (!EngineeringOptionID.generateIndexes(options)) continue;
+ String[] statements = builder.updateStatistics((DB2Index) o, quoteIdentifiers, qualifyNames);
+ if (statements != null) {
+ for (int iStat = 0; iStat <statements.length; iStat ++) {
+ script.addUpdateStatisticsStatement(statements[iStat]);
+ }
+ }
+ }
+ else if(o instanceof Column) {
+ if (!EngineeringOptionID.generateTables(options)) continue;
+ String[] statements = builder.updateStatistics((Column) o, quoteIdentifiers, qualifyNames);
+ if (statements != null) {
+ for (int iStat = 0; iStat <statements.length; iStat ++) {
+ script.addUpdateStatisticsStatement(statements[iStat]);
+ }
+ }
+ }
+ }
+ return script.getStatements();
+ }
+
+
+ //@bd00058820gs
+ private static Set getAllContainedDisplayableElementSet(SQLObject[] elements) {
+ Set s = new LinkedHashSet();
+ for(int i=0; i<elements.length; ++i) {
+ if (!s.contains(elements[i])) s.add(elements[i]);
+ if (elements[i] instanceof LUWNickname) {
+ //Server Dependency
+ LUWServer luwServer = ((LUWNickname)elements[i]).getServer();
+ if (luwServer != null) {
+ s.add(luwServer);
+ //Wrapper Dependency
+ LUWWrapper wrapper = luwServer.getWrapper();
+ if (wrapper != null) {
+ s.add(wrapper);
+ }
+ //User Mapping Dependency
+ for (Iterator itUserMapping = luwServer.getUserMappings().iterator(); itUserMapping.hasNext(); ) {
+ LUWUserMapping userMapping = (LUWUserMapping)itUserMapping.next();
+ s.add(userMapping);
+ break; //just ask one time for the authorization dialog
+ }
+ }
+ }
+ // fsp - pyl
+ else if (elements[i] instanceof FederatedProcedure) {
+ //Server Dependency
+ LUWServer luwServer = ((LUWCatalogFederatedProcedure)elements[i]).getFederatedServer();
+ if (luwServer != null) {
+ s.add(luwServer);
+ //Wrapper Dependency
+ LUWWrapper wrapper = luwServer.getWrapper();
+ if (wrapper != null) {
+ s.add(wrapper);
+ }
+ //User Mapping Dependency
+ for (Iterator itUserMapping = luwServer.getUserMappings().iterator(); itUserMapping.hasNext(); ) {
+ LUWUserMapping userMapping = (LUWUserMapping)itUserMapping.next();
+ s.add(userMapping);
+ break; //just ask one time for the authorization dialog
+ }
+ }
+ } else if (elements[i] instanceof LUWStorageTable){
+ // wsdbu00273864 and wsdbu00652103 : To read Data Partition Table Space info
+ LUWStorageTable lst=(LUWStorageTable)elements[i];
+ if(!s.contains(lst.getLOBDataTableSpace())) s.add(lst.getLOBDataTableSpace());
+ if(!s.contains(lst.getIndexDataTableSpace())) s.add(lst.getIndexDataTableSpace());
+ if(!s.contains(lst.getRegularDataTableSpace())) s.add(lst.getRegularDataTableSpace());
+ if (lst.getDataPartitions().size() != 0){ // For DB2 version <9, DataPartitions size will be 0
+ Iterator it = lst.getDataPartitions().iterator();
+ while(it.hasNext()){
+ LUWDataPartition dp = (LUWDataPartition)it.next();
+ if(!s.contains(dp.getRegularDataTableSpace()))
+ s.add(dp.getRegularDataTableSpace());
+ if(!s.contains(dp.getLOBDataTableSpace()))
+ s.add(dp.getLOBDataTableSpace());
+ }
+ }
+ } else if (elements[i] instanceof LUWServer) {
+ LUWServer luwServer = (LUWServer)elements[i];
+ //Wrapper Dependency
+ LUWWrapper wrapper = luwServer.getWrapper();
+ if (wrapper != null) {
+ s.add(wrapper);
+ }
+ //User Mapping Dependency
+ for (Iterator itUserMapping = luwServer.getUserMappings().iterator(); itUserMapping.hasNext(); ) {
+ LUWUserMapping userMapping = (LUWUserMapping)itUserMapping.next();
+ s.add(userMapping);
+ break; //just ask one time for the authorization dialog
+ }
+ //Nickname Dependency
+ for (Iterator itNickname = luwServer.getNicknames().iterator(); itNickname.hasNext(); ) {
+ LUWNickname nickame = (LUWNickname)itNickname.next();
+ s.add(nickame);
+ }
+ }
+ else if (elements[i] instanceof LUWWrapper) {
+ LUWWrapper luwWrapper = (LUWWrapper)elements[i];
+ //Remote Servers Dependency
+ for (Iterator itServer = luwWrapper.getServers().iterator(); itServer.hasNext(); ) {
+ LUWServer luwServer = (LUWServer)itServer.next();
+ s.add(luwServer);
+
+ //User Mapping Dependency
+ for (Iterator itUserMapping = luwServer.getUserMappings().iterator(); itUserMapping.hasNext(); ) {
+ LUWUserMapping userMapping = (LUWUserMapping)itUserMapping.next();
+ s.add(userMapping);
+ break; //just ask one time for the authorization dialog
+ }
+ //Nickname Dependency
+ for (Iterator itNickname = luwServer.getNicknames().iterator(); itNickname.hasNext(); ) {
+ LUWNickname nickame = (LUWNickname)itNickname.next();
+ s.add(nickame);
+ }
+ }
+ }
+ else if (elements[i] instanceof PLSQLPackage) {
+ PLSQLPackage plsqlPkg = (PLSQLPackage) elements[i];
+ PLSQLPackageBody pkgBody = plsqlPkg.getPackageBody();
+ if (pkgBody != null) s.add(pkgBody);
+ }
+ Iterator iter = null;
+ if (elements[i] instanceof AuthorizationIdentifier)
+ iter = ContainmentServiceImpl.INSTANCE.getAllContainedElements(elements[i]).iterator();
+ else iter = ContainmentServiceImpl.INSTANCE.getAllContainedDisplayableElements(elements[i]).iterator();
+// s.addAll(ContainmentServiceImpl.INSTANCE.getAllContainedDisplayableElements(elements[i]));
+ while (iter.hasNext()){
+
+ Object element = iter.next();
+ if (! s.contains(element)) s.add(element);
+ if (element instanceof LUWNickname) {
+ //Server Dependency
+ LUWServer luwServer = ((LUWNickname)element).getServer();
+ if (luwServer != null) {
+ s.add(luwServer);
+ //Wrapper Dependency
+ LUWWrapper wrapper = luwServer.getWrapper();
+ if (wrapper != null) {
+ s.add(wrapper);
+ }
+ //User Mapping Dependency
+ for (Iterator itUserMapping = luwServer.getUserMappings().iterator(); itUserMapping.hasNext(); ) {
+ LUWUserMapping userMapping = (LUWUserMapping)itUserMapping.next();
+ s.add(userMapping);
+ break; //just ask one time for the authorization dialog
+ }
+ }
+ } else if (element instanceof LUWStorageTable){
+ // wsdbu00273864 and wsdbu00652103 : To read Data Partition Table Space info
+ LUWStorageTable lst=(LUWStorageTable)element;
+ if(!s.contains(lst.getLOBDataTableSpace())) s.add(lst.getLOBDataTableSpace());
+ if(!s.contains(lst.getIndexDataTableSpace())) s.add(lst.getIndexDataTableSpace());
+ if(!s.contains(lst.getRegularDataTableSpace())) s.add(lst.getRegularDataTableSpace());
+ if (lst.getDataPartitions().size() != 0){ // For DB2 version <9, DataPartitions size will be 0
+ Iterator it = lst.getDataPartitions().iterator();
+ while(it.hasNext()){
+ LUWDataPartition dp = (LUWDataPartition)it.next();
+ if(!s.contains(dp.getRegularDataTableSpace()))
+ s.add(dp.getRegularDataTableSpace());
+ if(!s.contains(dp.getLOBDataTableSpace()))
+ s.add(dp.getLOBDataTableSpace());
+ }
+ }
+ } else if (element instanceof LUWServer) {
+ LUWServer luwServer = (LUWServer)element;
+ //Wrapper Dependency
+ LUWWrapper wrapper = luwServer.getWrapper();
+ if (wrapper != null) {
+ s.add(wrapper);
+ }
+ //User Mapping Dependency
+ for (Iterator itUserMapping = luwServer.getUserMappings().iterator(); itUserMapping.hasNext(); ) {
+ LUWUserMapping userMapping = (LUWUserMapping)itUserMapping.next();
+ s.add(userMapping);
+ break; //just ask one time for the authorization dialog
+ }
+ //Nickname Dependency
+ for (Iterator itNickname = luwServer.getNicknames().iterator(); itNickname.hasNext(); ) {
+ LUWNickname nickame = (LUWNickname)itNickname.next();
+ s.add(nickame);
+ }
+ }
+ else if (element instanceof LUWWrapper) {
+ LUWWrapper luwWrapper = (LUWWrapper)element;
+ //Remote Servers Dependency
+ for (Iterator itServer = luwWrapper.getServers().iterator(); itServer.hasNext(); ) {
+ LUWServer luwServer = (LUWServer)itServer.next();
+ s.add(luwServer);
+
+ //User Mapping Dependency
+ for (Iterator itUserMapping = luwServer.getUserMappings().iterator(); itUserMapping.hasNext(); ) {
+ LUWUserMapping userMapping = (LUWUserMapping)itUserMapping.next();
+ s.add(userMapping);
+ break; //just ask one time for the authorization dialog
+ }
+ //Nickname Dependency
+ for (Iterator itNickname = luwServer.getNicknames().iterator(); itNickname.hasNext(); ) {
+ LUWNickname nickame = (LUWNickname)itNickname.next();
+ s.add(nickame);
+ }
+ }
+ }
+ }
+ }
+ return s;
+ }
+
+ private static void discover(Set result, Data element) {
+ Set childs = element.childs;
+ while (childs != null && childs.size() > 0) {
+ result.addAll(element.sOptions);
+ for (Iterator it = childs.iterator(); it.hasNext(); ) {
+ discover(result, (Data)it.next());
+ }
+ }
+ }
+
+ private static Set getAllContainedDisplayableElementSetDepedency(SQLObject[] elements) {
+ SingletonOptionDependency sod = SingletonOptionDependency.getSingletonObject();
+
+ //Set s = new LinkedHashSet();
+ Set s = new TreeSet();
+ for(int i=0; i<elements.length; ++i) {
+ Class key = null;
+ if(elements[i] instanceof LUWDatabase) {
+ key = Database.class;
+ } else if(elements[i] instanceof Schema) {
+ key = Schema.class;
+ } else if (elements[i] instanceof LUWTable) {
+ if (elements[i] instanceof LUWNickname) {
+ key = LUWNickname.class;
+ isNickname = true; //@d00062627gs
+ //TODO: make sure to remove the columns, or leave LUWColumn line commented out
+ } else
+ key = Table.class;
+ } else if (elements[i] instanceof LUWServer) {
+ key = LUWServer.class;
+ } else if (elements[i] instanceof LUWWrapper) {
+ key = LUWWrapper.class;
+ } else if (elements[i] instanceof LUWUserMapping) {
+ key = LUWUserMapping.class;
+ } else if (elements[i] instanceof DB2OLAPObject) {
+ key = DB2OLAPObject.class;
+ } else if (elements[i] instanceof LUWTableSpace) {
+ key = LUWTableSpace.class;
+ } else if (elements[i] instanceof DB2Index) {
+ key = Index.class;
+ } else if (elements[i] instanceof DB2Procedure) {
+ // fsp - pyl
+ if (elements[i] instanceof FederatedProcedure)
+ key = FederatedProcedure.class;
+ else
+ key = Procedure.class;
+ } else if (elements[i] instanceof DB2UserDefinedFunction) {
+ key = UserDefinedFunction.class;
+ } else if (elements[i] instanceof LUWView) {
+ key = ViewTable.class;
+ } else if (elements[i] instanceof DB2Trigger) {
+ key = Trigger.class;
+ } else if (elements[i] instanceof Sequence) {
+ key = Sequence.class;
+ } else if (elements[i] instanceof UserDefinedType) {
+ key = UserDefinedType.class;
+// } else if(elements[i] instanceof DistinctUserDefinedType)
+// } else if (elements[i] instanceof StructuredUserDefinedType)
+ } else if (elements[i] instanceof UniqueConstraint) {
+ key = UniqueConstraint.class;
+// } else if(elements[i] instanceof LUWSynonym)
+// key = LUWSynonym.class;
+ } else if(elements[i] instanceof LUWMaterializedQueryTable) {
+ key = LUWMaterializedQueryTable.class;
+ } else if(elements[i] instanceof DB2Alias) {
+ key = DB2Alias.class;
+ } else if(elements[i] instanceof CheckConstraint) {
+ key = CheckConstraint.class;
+ } else if(elements[i] instanceof ForeignKey) {
+ key = ForeignKey.class;
+ } else if(elements[i] instanceof LUWBufferPool) {
+ key = LUWBufferPool.class;
+ } else if(elements[i] instanceof LUWPartitionGroup) {
+ key = LUWPartitionGroup.class;
+ } else if(elements[i] instanceof Column) {
+ key = Column.class;
+ } else if(elements[i] instanceof Role) {
+ key = Role.class;
+ } else if(elements[i] instanceof RoleAuthorization) {
+ key = RoleAuthorization.class;
+ } else if(elements[i] instanceof User) {
+ key = User.class;
+ } else if(elements[i] instanceof Group) {
+ key = Group.class;
+ } else if(elements[i] instanceof Privilege) {
+ key = Privilege.class;
+ } else if(elements[i] instanceof LUWDatabasePackage) {
+ key = LUWDatabasePackage.class;
+ } else if(elements[i] instanceof PLSQLPackage) {
+ key = PLSQLPackage.class;
+ } else if(elements[i] instanceof PLSQLPackageBody) {
+ key = PLSQLPackageBody.class;
+ } else if(elements[i] instanceof LUWModule) {
+ key = LUWModule.class;
+ } else if(elements[i] instanceof LUWModuleCondition) {
+ key = LUWModuleCondition.class;
+ } else if(elements[i] instanceof LUWGlobalVariable) {
+ key = LUWGlobalVariable.class;
+ }
+ try {
+ Data d = sod.getData(key); //Data d = sod.getData(elements[i].getClass());
+ EngineeringOptionID.populateOptions(s, d.mask);
+ //discover(s, d);
+ } catch (Exception e) {
+// System.err.println("Missing definition for: " + elements[i].getClass().toString());
+// e.printStackTrace();
+ }
+ }
+ return s;
+ }
+ //@ed00058820gs
+
+ public EngineeringOption[] getOptions() {
+ if(this.options == null) {
+ ResourceBundle resource = ResourceBundle.getBundle("org.eclipse.datatools.enablement.internal.core.util.DdlGeneration"); //$NON-NLS-1$
+
+ EngineeringOptionCategory[] categories = this.getOptionCategories();
+
+ EngineeringOptionCategory general_options =null;
+ EngineeringOptionCategory additional_element =null;
+ for (int i = 0; i < categories.length; i++) {
+ if (categories[i].getId().equals(EngineeringOptionCategoryID.GENERATE_OPTIONS)){
+ general_options = categories[i];
+ } else if (categories[i].getId().equals(EngineeringOptionCategoryID.GENERATE_ELEMENTS)){
+ additional_element = categories[i];
+ }
+ }
+
+ Vector optionVec = new Vector();
+ //DATABASE, SCHEMAS, MQT
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME,resource.getString("GENERATE_FULLY_QUALIFIED_NAME"), resource.getString("GENERATE_FULLY_QUALIFIED_NAME_DES"),DdlGenerationUtility.getQualifyNamesDefault(),general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER,resource.getString("GENERATE_QUOTED_IDENTIFIER"), resource.getString("GENERATE_QUOTED_IDENTIFIER_DES"),DdlGenerationUtility.getQuoteIdentifiersDefault(),general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_DROP_STATEMENTS,resource.getString("GENERATE_DROP_STATEMENTS"), resource.getString("GENERATE_DROP_STATEMENTS_DES"),false,general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_CREATE_STATEMENTS,resource.getString("GENERATE_CREATE_STATEMENTS"), resource.getString("GENERATE_CREATE_STATEMENTS_DES"),true,general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_COMMENTS,resource.getString("GENERATE_COMMENTS"), resource.getString("GENERATE_COMMENTS_DES"),true,general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_PRIVILEGE,resource.getString("GENERATE_PRIVILEGE"), resource.getString("GENERATE_PRIVILEGE_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_IN_TABLESPACE_CLAUSE,resource.getString("GENERATE_IN_TABLESPACE_CLAUSE"), resource.getString("GENERATE_IN_TABLESPACE_CLAUSE_DES"),true,general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_USE_DOMAIN_IF_EXIST,resource.getString("GENERATE_USE_DOMAIN_IF_EXIST"), resource.getString("GENERATE_USE_DOMAIN_IF_EXIST_DES"),false,general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_TABLES,resource.getString("GENERATE_TABLES"), resource.getString("GENERATE_TABLES_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_TABLESPACES,resource.getString("GENERATE_TABLESPACES"), resource.getString("GENERATE_TABLESPACES_DES"),false,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_INDICES,resource.getString("GENERATE_INDEX"), resource.getString("GENERATE_INDEX_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_STOREDPROCEDURES,resource.getString("GENERATE_STOREDPROCEDURE"), resource.getString("GENERATE_STOREDPROCEDURE_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_FUNCTIONS,resource.getString("GENERATE_FUNCTION"), resource.getString("GENERATE_FUNCTION_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_VIEWS,resource.getString("GENERATE_VIEW"), resource.getString("GENERATE_VIEW_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_TRIGGERS,resource.getString("GENERATE_TRIGGER"), resource.getString("GENERATE_TRIGGER_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_PACKAGE,resource.getString("GENERATE_PACKAGE"), resource.getString("GENERATE_PACKAGE_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_SEQUENCES,resource.getString("GENERATE_SEQUENCE"), resource.getString("GENERATE_SEQUENCE_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE,resource.getString("GENERATE_USER_DEFINED_TYPE"), resource.getString("GENERATE_USER_DEFINED_TYPE_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_PK_CONSTRAINTS,resource.getString("GENERATE_PK_CONSTRAINTS"), resource.getString("GENERATE_PK_CONSTRAINTS_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_FK_CONSTRAINTS,resource.getString("GENERATE_FK_CONSTRAINTS"), resource.getString("GENERATE_FK_CONSTRAINTS_DES"),true,additional_element)); //$NON-NLS-1$ //$NON-NLS-2$
+
+ OlapDdlBuilder olapDdlBuilder = DdlGenerationUtility.getOlapDdlBuilder(product, version);
+ if (olapDdlBuilder != null) {
+ optionVec.add(new EngineeringOption(null,olapDdlBuilder.getOption(),olapDdlBuilder.getOptionDescription(),true,additional_element));
+ }
+
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(product, version);
+ if (nicknameDdlBuilder != null) {
+ optionVec.add(new EngineeringOption(null,nicknameDdlBuilder.getOption(),nicknameDdlBuilder.getOptionDescription(),true,additional_element));
+ }
+
+ // fsp - pyl
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(product, version);
+ if (federatedProcedureDdlBuilder != null) {
+ optionVec.add(new EngineeringOption(null,federatedProcedureDdlBuilder.getOption(),federatedProcedureDdlBuilder.getOptionDescription(),true,additional_element));
+ }
+
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(product, version);
+ if (remoteServerDdlBuilder != null) {
+ optionVec.add(new EngineeringOption(null,remoteServerDdlBuilder.getOption(),remoteServerDdlBuilder.getOptionDescription(),true,additional_element));
+ }
+
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(product, version);
+ if (wrapperDdlBuilder != null) {
+ optionVec.add(new EngineeringOption(null,wrapperDdlBuilder.getOption(),wrapperDdlBuilder.getOptionDescription(),true,additional_element));
+ }
+
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(product, version);
+ if (userMappingDdlBuilder != null) {
+ optionVec.add(new EngineeringOption(null,userMappingDdlBuilder.getOption(),userMappingDdlBuilder.getOptionDescription(),true,additional_element));
+ }
+
+ this.options = new EngineeringOption[optionVec.size()];
+ optionVec.copyInto(this.options);
+ }
+
+ return this.options;
+ }
+
+ //@bd00058820gs
+ public EngineeringOption[] getOptions(SQLObject[] elements) {
+ return getOptions(elements, false);
+ }
+
+ public EngineeringOption[] getOptions(SQLObject[] elements, boolean autoDiscovery) {
+ isNickname = false; //@d00062627gs
+ EngineeringOptionCategory[] categories_new = this.getOptionCategories();
+
+ EngineeringOptionCategory general_options =null;
+ EngineeringOptionCategory additional_element =null;
+ for (int i = 0; i < categories_new.length; i++) {
+ if (categories_new[i].getId().equals(EngineeringOptionCategoryID.GENERATE_OPTIONS)){
+ general_options = categories_new[i];
+ } else if (categories_new[i].getId().equals(EngineeringOptionCategoryID.GENERATE_ELEMENTS)){
+ additional_element = categories_new[i];
+ }
+ }
+
+ //Get the main object, the ones that do no have parents.
+ //Look for dependency
+ optionDependency = new OptionDependency(elements, autoDiscovery);
+ Set sOptions = optionDependency.getOptions();
+ int size = 0;
+ EngineeringOption currentOption = null;
+ Vector optionVec = new Vector();
+ for (Iterator it=sOptions.iterator(); it.hasNext(); ) {
+ EngineeringOption ddlOption = DdlGenerationUtility.getEngineeringOption((String)it.next(), product, version, general_options, additional_element, elements);
+ if (ddlOption != null) {
+ optionVec.add(ddlOption);
+ if (ddlOption.getCategory().getId().equals(EngineeringOptionCategoryID.GENERATE_ELEMENTS)) {
+ size++;
+ currentOption = ddlOption;
+ //Disable indices, primary key, check and foreign key constraints by default if Nickname is selected
+ if (isNickname) {
+ String id = ddlOption.getId();
+ if (id != null && (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_INDICES) ||
+ id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PK_CONSTRAINTS) ||
+ id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CK_CONSTRAINTS) ||
+ id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FK_CONSTRAINTS))
+ )
+ ddlOption.setBoolean(false);
+ }
+ }
+ }
+ }
+ if (size == 1) currentOption.setBoolean(true);
+ this.options = new EngineeringOption[optionVec.size()];
+ optionVec.copyInto(this.options);
+ return this.options;
+ }
+
+ public EngineeringOptionCategory[] getOptionCategories() {
+ if(this.categories == null) {
+ this.categories = DdlGenerationUtility.createDDLGenerationOptionCategories(this.product, this.version);
+ }
+ return this.categories;
+ }
+
+ //@bd00058820gs
+ public EngineeringOption[] getSelectedOptions() {
+ if (options == null)
+ this.getOptions();
+ return options;
+ }
+
+ public EngineeringOption[] getSelectedOptions(SQLObject[] elements) {
+ if (options == null)
+ if (optionDependency == null)
+ this.getOptions(elements);
+ else
+ this.getOptions();
+ return options;
+ }
+ //@ed00058820gs
+
+ private String product;
+ private String version;
+ private EngineeringOption[] options = null;
+ private EngineeringOption[] defaultOptions = null;
+ private EngineeringOptionCategory[] categories = null;
+ private LUWDdlBuilder builder = null;
+ private static boolean isNickname = false; //@d00062627gs
+
+ //@bd00058820gs
+ private OptionDependency optionDependency = null;
+
+ public class OptionDependency {
+ private SQLObject[] elements = null;
+ private Set sOptions = new LinkedHashSet();
+ private Set sElementsToUse = null;
+
+ public OptionDependency(SQLObject[] elements, boolean autoDiscovery)
+ {
+ this.elements = elements;
+ sElementsToUse = new LinkedHashSet();
+ doDiscovery(autoDiscovery);
+ }
+
+ private void doDiscovery(boolean autoDiscovery)
+ {
+ boolean hasStorage = (LUWCatalogDatabase.getCatalogStorageProvider() != null)? true : false;
+
+ setOption(EngineeringOptionID.CHECK_MODEL);
+ setOption(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME);
+ setOption(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER);
+ setOption(EngineeringOptionID.GENERATE_DROP_STATEMENTS);
+ setOption(EngineeringOptionID.GENERATE_CREATE_STATEMENTS);
+ setOption(EngineeringOptionID.GENERATE_COMMENTS);
+// setOption(EngineeringOptionID.GENERATE_PRIVILEGE);
+ setOption(EngineeringOptionID.GENERATE_STATISTICS);
+
+ Set additionalOptions = new TreeSet();
+ if (autoDiscovery) {
+ Iterator it = LUWDdlGenerator.getAllContainedDisplayableElementSet(elements).iterator();
+ while(it.hasNext()) {
+ Object o = it.next();
+
+ sElementsToUse.add(o);
+ if (o instanceof LUWTable) {
+ if (o instanceof LUWNickname) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_NICKNAME);
+ //TODO: make sure to remove the columns, or leave LUWColumn line commented out
+ } else {
+ additionalOptions.add(EngineeringOptionID.GENERATE_TABLES);
+ }
+ } else if (o instanceof LUWServer) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_REMOTESERVER);
+ } else if (o instanceof LUWWrapper) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_WRAPPER);
+ } else if (o instanceof LUWUserMapping) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_USERMAPPING);
+ } else if (o instanceof DB2OLAPObject) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_OLAP);
+ } else if (o instanceof LUWTableSpace) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_TABLESPACES);
+ } else if (o instanceof LUWDatabasePackage) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_PACKAGE);
+ } else if (o instanceof DB2Index) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_INDICES);
+ } else if (o instanceof DB2Procedure) {
+ if ( o instanceof FederatedProcedure)
+ additionalOptions.add(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES);
+ else
+ additionalOptions.add(EngineeringOptionID.GENERATE_STOREDPROCEDURES);
+ } else if (o instanceof DB2UserDefinedFunction) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_FUNCTIONS);
+ } else if (o instanceof LUWView) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_VIEWS);
+ } else if (o instanceof DB2Trigger) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_TRIGGERS);
+ } else if (o instanceof Sequence) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_SEQUENCES);
+ } else if (o instanceof UserDefinedType) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE);
+ // } else if(o instanceof DistinctUserDefinedType)
+ // } else if (o instanceof StructuredUserDefinedType)
+ } else if (o instanceof UniqueConstraint) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_PK_CONSTRAINTS);
+ // } else if(o instanceof LUWSynonym)
+ // additionalOptions.add(new EngineeringOption(EngineeringOptionID.GENERATE_SYNONYM);
+ } else if(o instanceof LUWDatabase) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_DATABASE);
+ } else if(o instanceof LUWMaterializedQueryTable) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_MQT);
+ } else if(o instanceof DB2Alias) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_ALIAS);
+ } else if(o instanceof CheckConstraint) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_CK_CONSTRAINTS);
+ } else if(o instanceof ForeignKey) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_FK_CONSTRAINTS);
+ } else if(o instanceof LUWBufferPool) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_BUFFERPOOL);
+ } else if(o instanceof LUWPartitionGroup) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_PARTITIONGROUP);
+ } else if(o instanceof Schema) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_SCHEMAS);
+ } else if(o instanceof Column) {
+ if (!additionalOptions.contains(EngineeringOptionID.GENERATE_TABLES)) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_TABLES);
+ }
+ } else if(o instanceof Role) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_ROLE);
+ } else if(o instanceof RoleAuthorization) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_PRIVILEGE);
+ } else if(o instanceof Privilege) {
+ additionalOptions.add(EngineeringOptionID.GENERATE_PRIVILEGE);
+ }
+ }
+ for (it = additionalOptions.iterator(); it.hasNext(); )
+ setOption((String)it.next());
+ } else { //autoDiscovery == FALSE
+ sOptions.addAll(LUWDdlGenerator.getAllContainedDisplayableElementSetDepedency(elements));
+ }
+
+ if (hasStorage) {
+ setOption(EngineeringOptionID.GENERATE_IN_TABLESPACE_CLAUSE);
+ }
+ setOption(EngineeringOptionID.GENERATE_USE_DOMAIN_IF_EXIST);
+
+ }
+ /**
+ * @return Returns the option.
+ */
+ public Set getOptions() {
+ return sOptions;
+ }
+ /**
+ * @param option The option to set.
+ */
+ public void setOption(String option) {
+ this.sOptions.add(option);
+ }
+
+ /**
+ * @return Returns the sElementsToUse.
+ */
+ public Set getElementsToUse() {
+ return sElementsToUse;
+ }
+ }
+
+ public static class Data {
+ private Class selectedObject = null;
+ private Set parents = new HashSet();
+ private Set childs = new HashSet();
+ private long mask = 0;
+ private ArrayList sOptions = new ArrayList();
+ }
+
+ public static class SingletonOptionDependency {
+
+ private Map data = new HashMap();
+ private static SingletonOptionDependency ref;
+
+ private SingletonOptionDependency()
+ {
+ }
+
+ public static SingletonOptionDependency getSingletonObject()
+ {
+ if (ref == null) {
+ boolean hasStorage = (LUWCatalogDatabase.getCatalogStorageProvider() != null)? true : false;
+ boolean hasModule = LUWDdlGenerator.getModuleDdlBuilder() != null ? true :false;
+
+ // it's ok, we can call this constructor
+ ref = new SingletonOptionDependency();
+
+ //Database
+ Data d = new Data();
+ d.selectedObject = LUWDatabase.class;
+ d.parents = null;
+ d.childs.add(Schema.class);
+ d.childs.add(LUWTableSpace.class);
+ d.childs.add(LUWBufferPool.class);
+ d.childs.add(LUWPartitionGroup.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_DATABASE);
+ d.mask = EngineeringOptionID.DATABASE | EngineeringOptionID.TABLE | EngineeringOptionID.NICKNAME | EngineeringOptionID.SERVER | EngineeringOptionID.WRAPPER | EngineeringOptionID.USER_MAPPING | EngineeringOptionID.OLAP_OBJECT | EngineeringOptionID.TABLESPACE |
+ EngineeringOptionID.INDEX | EngineeringOptionID.PROCEDURE | EngineeringOptionID.USER_DEFINED_FUNCTION | EngineeringOptionID.VIEW | EngineeringOptionID.TRIGGER | EngineeringOptionID.SEQUENCE |
+ EngineeringOptionID.UNIQUE_CONSTRAINT | EngineeringOptionID.MATERIALIZED_QUERY_TABLE | EngineeringOptionID.ALIAS | EngineeringOptionID.CHECK_CONSTRAINT | EngineeringOptionID.FOREIGN_KEY |
+ EngineeringOptionID.SCHEMA | EngineeringOptionID.DISTINCT_USER_DEFINED_TYPE |
+ EngineeringOptionID.STRUCTURED_USER_DEFINED_TYPE | EngineeringOptionID.ROLE | EngineeringOptionID.PRIVILEGE;
+ if (hasStorage) {
+ d.mask = d.mask | EngineeringOptionID.TABLESPACE | EngineeringOptionID.BUFFER_POOL | EngineeringOptionID.PARTITION_GROUP;
+ }
+ if (hasModule){
+ d.mask = d.mask | EngineeringOptionID.MODULE | EngineeringOptionID.MODULE_CONDITION
+ | EngineeringOptionID.PACKAGE
+ | EngineeringOptionID.PACKAGE_BODY;
+ }
+
+ ref.data.put(Database.class,d);
+
+ //Schema
+ d = new Data();
+ d.selectedObject = Schema.class;
+ d.parents.add(Database.class);
+ d.childs.add(LUWTable.class);
+ d.childs.add(DB2Alias.class);
+ d.childs.add(LUWView.class);
+ d.childs.add(LUWWrapper.class);
+ d.childs.add(LUWMaterializedQueryTable.class);
+ d.childs.add(DB2UserDefinedFunction.class);
+ d.childs.add(DB2Procedure.class);
+ d.childs.add(UserDefinedType.class);
+ d.childs.add(Sequence.class);
+ d.childs.add(LUWModule.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_SCHEMAS);
+ d.mask = EngineeringOptionID.TABLE | EngineeringOptionID.NICKNAME | EngineeringOptionID.SERVER | EngineeringOptionID.WRAPPER | EngineeringOptionID.USER_MAPPING | EngineeringOptionID.OLAP_OBJECT |
+ EngineeringOptionID.INDEX | EngineeringOptionID.PROCEDURE | EngineeringOptionID.USER_DEFINED_FUNCTION | EngineeringOptionID.VIEW | EngineeringOptionID.TRIGGER | EngineeringOptionID.SEQUENCE |
+ EngineeringOptionID.UNIQUE_CONSTRAINT | EngineeringOptionID.MATERIALIZED_QUERY_TABLE | EngineeringOptionID.ALIAS | EngineeringOptionID.CHECK_CONSTRAINT | EngineeringOptionID.FOREIGN_KEY |
+ EngineeringOptionID.SCHEMA | EngineeringOptionID.DISTINCT_USER_DEFINED_TYPE | EngineeringOptionID.STRUCTURED_USER_DEFINED_TYPE | EngineeringOptionID.PRIVILEGE;
+ if (hasStorage) {
+ d.mask = d.mask | EngineeringOptionID.TABLESPACE;
+ }
+ if (hasModule){
+ d.mask = d.mask | EngineeringOptionID.MODULE | EngineeringOptionID.MODULE_CONDITION
+ | EngineeringOptionID.PACKAGE
+ | EngineeringOptionID.PACKAGE_BODY;
+ }
+ ref.data.put(Schema.class,d);
+
+ //Table
+ d = new Data();
+ d.selectedObject = LUWTable.class;
+ d.parents.add(Schema.class);
+ d.childs.add(DB2Index.class);
+ d.childs.add(DB2Trigger.class);
+ d.childs.add(LUWTableSpace.class);
+ d.childs.add(UniqueConstraint.class);
+ d.childs.add(ForeignKey.class);
+ d.childs.add(CheckConstraint.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_TABLES);
+ d.mask = EngineeringOptionID.TABLE | EngineeringOptionID.OLAP_OBJECT | EngineeringOptionID.INDEX | EngineeringOptionID.TRIGGER | EngineeringOptionID.UNIQUE_CONSTRAINT |
+ EngineeringOptionID.CHECK_CONSTRAINT | EngineeringOptionID.FOREIGN_KEY | EngineeringOptionID.PRIVILEGE;
+ if (hasStorage) {
+ d.mask = d.mask | EngineeringOptionID.TABLESPACE;
+ }
+ ref.data.put(Table.class,d);
+
+ //LUWStorageTable
+ d = new Data();
+ d.selectedObject = LUWStorageTable.class;
+ d.parents.add(Schema.class);
+ d.childs.add(LUWTableSpace.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_TABLES);
+ d.mask = EngineeringOptionID.TABLE | EngineeringOptionID.OLAP_OBJECT | EngineeringOptionID.TABLESPACE | EngineeringOptionID.INDEX | EngineeringOptionID.TRIGGER | EngineeringOptionID.UNIQUE_CONSTRAINT |
+ EngineeringOptionID.CHECK_CONSTRAINT | EngineeringOptionID.FOREIGN_KEY | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(LUWStorageTable.class,d);
+
+ //LUWWrapper
+ d = new Data();
+ d.selectedObject = LUWWrapper.class;
+ d.parents.add(Schema.class);
+ d.childs.add(LUWServer.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_WRAPPER);
+ d.mask = EngineeringOptionID.NICKNAME | EngineeringOptionID.SERVER | EngineeringOptionID.WRAPPER |
+ EngineeringOptionID.USER_MAPPING | EngineeringOptionID.INDEX |
+ EngineeringOptionID.UNIQUE_CONSTRAINT | EngineeringOptionID.CHECK_CONSTRAINT |
+ EngineeringOptionID.FOREIGN_KEY;
+ ref.data.put(LUWWrapper.class,d);
+
+ //LUWServer
+ d = new Data();
+ d.selectedObject = LUWServer.class;
+ d.parents.add(LUWWrapper.class);
+ d.childs.add(LUWUserMapping.class);
+ d.childs.add(LUWNickname.class);
+ d.childs.add(LUWWrapper.class); //add dependency (watch out recurssion)
+ d.sOptions.add(EngineeringOptionID.GENERATE_REMOTESERVER);
+ d.mask = EngineeringOptionID.NICKNAME | EngineeringOptionID.SERVER | EngineeringOptionID.WRAPPER |
+ EngineeringOptionID.USER_MAPPING | EngineeringOptionID.INDEX |
+ EngineeringOptionID.UNIQUE_CONSTRAINT | EngineeringOptionID.CHECK_CONSTRAINT |
+ EngineeringOptionID.FOREIGN_KEY;
+ ref.data.put(LUWServer.class,d);
+
+ //LUWUserMapping
+ d = new Data();
+ d.selectedObject = LUWUserMapping.class;
+ d.parents.add(LUWServer.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_USERMAPPING);
+ d.mask = EngineeringOptionID.SERVER | EngineeringOptionID.WRAPPER | EngineeringOptionID.USER_MAPPING;
+ ref.data.put(LUWUserMapping.class,d);
+
+ //LUWNickname
+ d = new Data();
+ d.selectedObject = LUWNickname.class;
+ d.parents.add(LUWServer.class);
+ d.childs.add(UniqueConstraint.class);
+ d.childs.add(ForeignKey.class);
+ d.childs.add(CheckConstraint.class);
+ d.childs.add(LUWServer.class); //add dependency (watch out recurssion)
+ d.sOptions.add(EngineeringOptionID.GENERATE_NICKNAME);
+ d.mask = EngineeringOptionID.NICKNAME | EngineeringOptionID.SERVER | EngineeringOptionID.WRAPPER |
+ EngineeringOptionID.USER_MAPPING | EngineeringOptionID.INDEX |
+ EngineeringOptionID.UNIQUE_CONSTRAINT | EngineeringOptionID.CHECK_CONSTRAINT |
+ EngineeringOptionID.FOREIGN_KEY | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(LUWNickname.class,d);
+
+ //DB2OLAPObject
+ d = new Data();
+ d.selectedObject = DB2OLAPObject.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_OLAP);
+ d.mask = EngineeringOptionID.OLAP_OBJECT;
+ ref.data.put(DB2OLAPObject.class,d);
+
+ //LUWTableSpace
+ d = new Data();
+ d.selectedObject = LUWTableSpace.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_TABLESPACES);
+ d.mask = EngineeringOptionID.TABLESPACE | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(LUWTableSpace.class,d);
+
+ //Index
+ d = new Data();
+ d.selectedObject = DB2Index.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_INDICES);
+ d.mask = EngineeringOptionID.INDEX | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(Index.class,d);
+
+ //Procedure
+ d = new Data();
+ d.selectedObject = DB2Procedure.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_STOREDPROCEDURES);
+ d.mask = EngineeringOptionID.PROCEDURE | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(Procedure.class,d);
+
+ //Federated Procedure - pyl
+ d = new Data();
+ d.selectedObject = FederatedProcedure.class;
+ d.parents.add(Schema.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES);
+ d.mask = EngineeringOptionID.FEDERATEDPROCEDURE | EngineeringOptionID.SERVER | EngineeringOptionID.WRAPPER |
+ EngineeringOptionID.USER_MAPPING;
+ ref.data.put(FederatedProcedure.class,d); // pyl @wsdbu00073899
+
+ //DB2UserDefinedFunction
+ d = new Data();
+ d.selectedObject = DB2UserDefinedFunction.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_FUNCTIONS);
+ d.mask = EngineeringOptionID.USER_DEFINED_FUNCTION | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(UserDefinedFunction.class,d);
+
+ //ViewTable
+ d = new Data();
+ d.selectedObject = LUWView.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_VIEWS);
+ d.mask = EngineeringOptionID.VIEW | EngineeringOptionID.TRIGGER | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(ViewTable.class,d);
+
+ //Trigger
+ d = new Data();
+ d.selectedObject = DB2Trigger.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_TRIGGERS);
+ d.mask = EngineeringOptionID.TRIGGER;
+ ref.data.put(Trigger.class,d);
+
+ //Sequence
+ d = new Data();
+ d.selectedObject = Sequence.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_SEQUENCES);
+ d.mask = EngineeringOptionID.SEQUENCE | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(Sequence.class,d);
+
+ //UserDefinedType
+ d = new Data();
+ d.selectedObject = UserDefinedType.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE);
+ d.mask = EngineeringOptionID.USER_DEFINED_TYPE;
+ ref.data.put(UserDefinedType.class,d);
+
+ //UniqueConstraint
+ d = new Data();
+ d.selectedObject = UniqueConstraint.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PK_CONSTRAINTS);
+ d.mask = EngineeringOptionID.UNIQUE_CONSTRAINT;
+ ref.data.put(UniqueConstraint.class,d);
+
+ //ForeignKey
+ d = new Data();
+ d.selectedObject = ForeignKey.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_FK_CONSTRAINTS);
+ d.mask = EngineeringOptionID.FOREIGN_KEY;
+ ref.data.put(ForeignKey.class,d);
+
+ //CheckConstraint
+ d = new Data();
+ d.selectedObject = CheckConstraint.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_CK_CONSTRAINTS);
+ d.mask = EngineeringOptionID.CHECK_CONSTRAINT;
+ ref.data.put(CheckConstraint.class,d);
+
+ //LUWMaterializedQueryTable
+ d = new Data();
+ d.selectedObject = LUWMaterializedQueryTable.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_MQT);
+ d.mask = EngineeringOptionID.INDEX | EngineeringOptionID.MATERIALIZED_QUERY_TABLE | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(LUWMaterializedQueryTable.class,d);
+
+ //DB2Alias
+ d = new Data();
+ d.selectedObject = DB2Alias.class;
+ d.parents.add(Schema.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_ALIAS);
+ d.mask = EngineeringOptionID.ALIAS;
+ ref.data.put(DB2Alias.class,d);
+
+ //LUWBufferPool
+ d = new Data();
+ d.selectedObject = LUWBufferPool.class;
+ d.parents.add(Database.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_BUFFERPOOL);
+ d.mask = EngineeringOptionID.BUFFER_POOL;
+ ref.data.put(LUWBufferPool.class,d);
+
+ //LUWPartitionGroup
+ d = new Data();
+ d.selectedObject = LUWPartitionGroup.class;
+ d.parents.add(Database.class);
+ //d.child.add(DB2Index.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PARTITIONGROUP);
+ d.mask = EngineeringOptionID.PARTITION_GROUP;
+ ref.data.put(LUWPartitionGroup.class,d);
+
+ //Column
+ d = new Data();
+ d.selectedObject = Column.class;
+ d.parents.add(LUWTable.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_TABLES);
+ d.mask = EngineeringOptionID.TABLE;
+ ref.data.put(Column.class,d);
+
+ //Role
+ d = new Data();
+ d.selectedObject = Role.class;
+ d.parents.add(Database.class);
+ d.childs.add(Privilege.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_ROLE);
+ d.mask = EngineeringOptionID.ROLE | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(Role.class,d);
+
+ //User
+ d = new Data();
+ d.selectedObject = User.class;
+ d.parents.add(Database.class);
+ d.childs.add(Privilege.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PRIVILEGE);
+ d.mask = EngineeringOptionID.PRIVILEGE;
+ ref.data.put(User.class,d);
+
+ //Group
+ d = new Data();
+ d.selectedObject = Group.class;
+ d.parents.add(Database.class);
+ d.childs.add(Privilege.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PRIVILEGE);
+ d.mask = EngineeringOptionID.PRIVILEGE;
+ ref.data.put(Group.class,d);
+
+ //RoleAuthorization
+ d = new Data();
+ d.selectedObject = RoleAuthorization.class;
+ d.parents.add(AuthorizationIdentifier.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PRIVILEGE);
+ d.mask = EngineeringOptionID.PRIVILEGE;
+ ref.data.put(RoleAuthorization.class,d);
+
+ //Privilege
+ d = new Data();
+ d.selectedObject = Privilege.class;
+ d.parents.add(AuthorizationIdentifier.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PRIVILEGE);
+ d.mask = EngineeringOptionID.PRIVILEGE;
+ ref.data.put(Privilege.class,d);
+
+ //Package
+ d = new Data();
+ d.selectedObject = LUWDatabasePackage.class;
+ d.parents.add(Schema.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PACKAGE);
+ d.mask = EngineeringOptionID.PACKAGE | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(LUWDatabasePackage.class,d);
+
+ if (hasModule){
+ //Module
+ d = new Data();
+ d.selectedObject = LUWModule.class;
+ d.parents.add(Schema.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_MODULE);
+ d.mask = EngineeringOptionID.MODULE | EngineeringOptionID.MODULE_CONDITION
+ | EngineeringOptionID.GLOBAL_VARIABLE
+ | EngineeringOptionID.USER_DEFINED_TYPE
+ | EngineeringOptionID.PROCEDURE | EngineeringOptionID.USER_DEFINED_FUNCTION
+ | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(LUWModule.class,d);
+
+ //Module condition
+ d = new Data();
+ d.selectedObject = LUWModuleCondition.class;
+ d.parents.add(LUWModule.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_MODULE_CONDITION);
+ d.mask = EngineeringOptionID.MODULE_CONDITION;
+ ref.data.put(LUWModuleCondition.class,d);
+
+ //PL/SQL Package
+ d = new Data();
+ d.selectedObject = PLSQLPackage.class;
+ d.parents.add(Schema.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PACKAGE);
+ d.mask = EngineeringOptionID.PACKAGE | EngineeringOptionID.PACKAGE_BODY
+ | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(PLSQLPackage.class,d);
+
+ //PL/SQL PackageBody
+ d = new Data();
+ d.selectedObject = PLSQLPackageBody.class;
+ d.parents.add(Schema.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_PACKAGE_BODY);
+ d.mask = EngineeringOptionID.PACKAGE_BODY;
+ ref.data.put(PLSQLPackageBody.class,d);
+ }
+
+ //Global Variable
+ d = new Data();
+ d.selectedObject = LUWGlobalVariable.class;
+ d.parents.add(Schema.class);
+ d.sOptions.add(EngineeringOptionID.GENERATE_GLOBAL_VARIABLE);
+ d.mask = EngineeringOptionID.GLOBAL_VARIABLE | EngineeringOptionID.PRIVILEGE;
+ ref.data.put(LUWGlobalVariable.class,d);
+
+ }
+ return ref;
+ }
+
+ /**
+ * @return Returns the data.
+ */
+ public Data getData(Class key) {
+ return (Data)data.get(key);
+ }
+ }
+ //@ed00058820gs
+
+ public static ILUWModuleDdlBuilder getModuleDdlBuilder() {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2.luw", "moduleDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ if(extensions.length == 1) {
+ IConfigurationElement[] configElements = extensions[0].getConfigurationElements();
+ try {
+ moduleBuilder = (ILUWModuleDdlBuilder) configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(Exception e) {
+ }
+ }
+ }
+ return moduleBuilder;
+ }
+
+ //@Override
+ public DdlBuilder getDdlBuilder() {
+ return this.builder;
+ }
+
+//bgp @Override
+ public EngineeringOption[] getDefaultOptions(SQLObject[] elements) {
+ isNickname = false; //@d00062627gs
+ EngineeringOptionCategory[] categories_new = this.getOptionCategories();
+
+ EngineeringOptionCategory general_options =null;
+ EngineeringOptionCategory additional_element =null;
+ for (int i = 0; i < categories_new.length; i++) {
+ if (categories_new[i].getId().equals(EngineeringOptionCategoryID.GENERATE_OPTIONS)){
+ general_options = categories_new[i];
+ } else if (categories_new[i].getId().equals(EngineeringOptionCategoryID.GENERATE_ELEMENTS)){
+ additional_element = categories_new[i];
+ }
+ }
+
+ //Get the main object, the ones that do no have parents.
+ //Look for dependency
+ optionDependency = new OptionDependency(elements, false);
+ Set sOptions = optionDependency.getOptions();
+ int size = 0;
+ EngineeringOption currentOption = null;
+ Vector defaultOptionVec = new Vector();
+ for (Iterator it=sOptions.iterator(); it.hasNext(); ) {
+ EngineeringOption ddlOption = DdlGenerationUtility.getDefaultEngineeringOption((String)it.next(), product, version, general_options, additional_element);
+ if (ddlOption != null) {
+ defaultOptionVec.add(ddlOption);
+ if (ddlOption.getCategory().getId().equals(EngineeringOptionCategoryID.GENERATE_ELEMENTS)) {
+ size++;
+ currentOption = ddlOption;
+ //Disable indices, primary key, check and foreign key constraints by default if Nickname is selected
+ if (isNickname) {
+ String id = ddlOption.getId();
+ if (id != null && (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_INDICES) ||
+ id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PK_CONSTRAINTS) ||
+ id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CK_CONSTRAINTS) ||
+ id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FK_CONSTRAINTS))
+ )
+ ddlOption.setBoolean(false);
+ }
+ }
+ }
+ }
+ if (size == 1) currentOption.setBoolean(true);
+ this.defaultOptions = new EngineeringOption[defaultOptionVec.size()];
+ defaultOptionVec.copyInto(this.defaultOptions);
+ return this.defaultOptions;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlMessages.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlMessages.java
new file mode 100644
index 0000000..fa3ea68
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlMessages.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import org.eclipse.osgi.util.NLS;
+
+public final class LUWDdlMessages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.datatools.enablement.ibm.db2.luw.ddl.LUWDdlMessages";//$NON-NLS-1$
+
+ private LUWDdlMessages() {
+ }
+
+ //FE
+ public static String FE_TABLESPACE_NO_CONTAINER;
+ public static String FE_DATATYPE_IS_NULL;
+ public static String FE_REFERENCED_PARENT_KEY_DOES_NOT_EXIST;
+ public static String FE_REFERENCED_PARENT_TABLE_DOES_NOT_EXIST;
+ public static String FE_VIEW_HAS_NO_BODY;
+ public static String FE_MQT_HAS_NO_BODY;
+ public static String FE_BUFFERPOOL_INVAILD_SIZE_VALUE;
+ public static String FE_GENERATED_COLUMN_HAS_NO_EXPRESSION;
+ public static String FE_ALTER_TABLE_ADD_COLUMN_IDENTITY_OPTIONS;
+ public static String FE_INVALID_MODEL;
+ public static String FE_INDEX_MEMBERS_NOT_SPECIFIED;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, LUWDdlMessages.class);
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlMessages.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlMessages.properties
new file mode 100644
index 0000000..2f065ef
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlMessages.properties
@@ -0,0 +1,24 @@
+# NLS_MESSAGEFORMAT_VAR needed to handle quotes correctly
+#
+# Copyright (c) 2003, 2014 IBM Corporation and others.
+# 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:
+# IBM Corporation - initial API and implementation
+#
+
+#FE
+FE_TABLESPACE_NO_CONTAINER = The table space {0} has no container
+FE_DATATYPE_IS_NULL = The data type of the object {0} is null
+FE_REFERENCED_PARENT_KEY_DOES_NOT_EXIST = The parent keys referenced by foreign key {0} do not exist
+FE_REFERENCED_PARENT_TABLE_DOES_NOT_EXIST = The parent table referenced by foreign key {0} does not exist
+FE_VIEW_HAS_NO_BODY = The view {0} has no SELECT statement
+FE_MQT_HAS_NO_BODY = The MQT {0} has no SELECT statement
+FE_BUFFERPOOL_INVAILD_SIZE_VALUE = Invalid value specified for "SIZE" in bufferpool {0}
+FE_GENERATED_COLUMN_HAS_NO_EXPRESSION = The generated column {0} has no generation expression
+FE_ALTER_TABLE_ADD_COLUMN_IDENTITY_OPTIONS = Uncheck the identity checkbox for the new column {0} and try again
+FE_INVALID_MODEL = The model is invalid, please check the problem view to make the correction.
+FE_INDEX_MEMBERS_NOT_SPECIFIED = The key columns have not been specified for the index {0}.
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlParser.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlParser.java
new file mode 100644
index 0000000..121d86f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlParser.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.enablement.ibm.db2.ddl.DB2DdlParser;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+
+public class LUWDdlParser extends DB2DdlParser {
+
+ public LUWDdlParser(DatabaseDefinition def){
+ super(def);
+ }
+
+ public DB2MaterializedQueryTable parseMQT(String mqtText) {
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+ DB2MaterializedQueryTable mqt = (DB2MaterializedQueryTable)factory.create(LUWPackage.eINSTANCE.getLUWMaterializedQueryTable());
+
+ String body = mqtText;
+ String[] tokens = mqtText.split("\\s[Aa][Ss]\\s",2); //$NON-NLS-1$
+ if (tokens.length > 1) {
+ body = tokens[1].trim();
+ }
+ int pos = this.parseMQTFullStatement(body);
+ if (pos != -1) {
+ body = body.substring(1,pos);
+ }
+ QueryExpression queryExpression = (QueryExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getQueryExpressionDefault());
+ mqt.setQueryExpression(queryExpression);
+ queryExpression.setSQL(body);
+ return mqt;
+ }
+
+ public void parseTrigger (Trigger trigger,String triggerText){
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+
+ String body = triggerText;
+ String whenClause=""; //$NON-NLS-1$
+
+ Pattern pattern1 = java.util.regex.Pattern.compile("[\\s]*CREATE.*[\\s]+?TRIGGER(.*)ON(.*)[\\s]+?FOR[\\s]+?EACH[\\s]+?(.*)",java.util.regex.Pattern.CASE_INSENSITIVE|java.util.regex.Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher1 = pattern1.matcher(triggerText);
+ if (matcher1.matches()) {
+ this.parseUpdateColumns(matcher1.group(1).trim(),trigger);
+ this.parseReferencingCluase(matcher1.group(2).trim(),trigger);
+ body = matcher1.group(3).trim();
+ if (body.toUpperCase().startsWith("ROW")) { //$NON-NLS-1$
+ body = body.substring("ROW".length() +1); //$NON-NLS-1$
+ } else if (body.toUpperCase().startsWith("STATEMENT")) { //$NON-NLS-1$
+ body = body.substring("STATEMENT".length() +1); //$NON-NLS-1$
+ }
+ Pattern pattern = java.util.regex.Pattern.compile("[\\s]*MODE[\\s]+?DB2SQL(.*)",java.util.regex.Pattern.CASE_INSENSITIVE|java.util.regex.Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher = pattern.matcher(body);
+ if (matcher.matches()) {
+ body = matcher.group(1).trim();
+ int whenPos = this.parseWhenClause(body);
+ if (whenPos >= 0) {
+ whenClause = body.substring(body.indexOf("(")+1,whenPos); //$NON-NLS-1$
+ body = body.substring(whenPos+1).trim();
+ }
+ } else {
+ int whenPos = this.parseWhenClause(body);
+ if (whenPos >= 0) {
+ whenClause = body.substring(body.indexOf("(")+1,whenPos); //$NON-NLS-1$
+ body = body.substring(whenPos+1).trim();
+ }
+ }
+
+ }
+
+ SearchCondition searchCondition = (SearchCondition) factory.create(SQLExpressionsPackage.eINSTANCE.getSearchConditionDefault());
+ trigger.setWhen(searchCondition);
+ ((SearchConditionDefault)searchCondition).setSQL(whenClause);
+
+
+ SQLStatement sqlbody = (SQLStatement) factory.create(SQLStatementsPackage.eINSTANCE.getSQLStatementDefault());
+ ((SQLStatementDefault)sqlbody).setSQL(body);
+ trigger.getActionStatement().add(sqlbody);
+
+ }
+
+/* public void parseView (ViewTable view,String viewText){
+ try {
+ Database[] dbs = new Database[]{view.getSchema().getDatabase()};
+ Schema schema = view.getSchema();
+ DDLParser luwParser = this.def.getDdlParser();
+ if (luwParser == null) return;
+
+ File temp = File.createTempFile("luwview", ".ddl");
+
+ // Delete temp file when program exits.
+ temp.deleteOnExit();
+
+ // Write to temp file
+ BufferedWriter out = new BufferedWriter(new FileWriter(temp));
+ String currentSchema= "SET SCHEMA " + schema.getName() + ";" + System.getProperty("line.separator");
+ out.write(currentSchema);
+ out.write(viewText);
+ out.write(" ;");
+ out.close();
+
+ view.getSchema().getTables().remove(view);
+ ViewTable tempView = null;
+ luwParser.parse(temp.getAbsolutePath(), dbs, null);
+ for (Iterator iter = schema.getTables().iterator(); iter.hasNext();){
+ Table table = (Table) iter.next();
+ if (table.getName().equals(view.getName()) && table instanceof ViewTable) {
+ tempView = (ViewTable)table;
+ QueryExpression expression = ((ViewTable)table).getQueryExpression();
+ if (expression == null) break;
+ String sqlbody = expression.getSQL();
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+ QueryExpression queryExpression = (QueryExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getQueryExpressionDefault());
+ ((QueryExpressionDefault)queryExpression).setSQL(sqlbody);
+ view.setQueryExpression(queryExpression);
+
+ break;
+ }
+ }
+
+ if (tempView != null) {
+ schema.getTables().remove(tempView);
+ }
+
+ schema.getTables().add(view);
+
+ } catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+*/
+ private int parseMQTFullStatement(String body){
+ int pos = -1;
+ int matches = 0;
+ for (int i = 0; i < body.length(); i++) {
+ if (body.charAt(i)=='(') {
+ matches++;
+ } else if (body.charAt(i) ==')') {
+ matches--;
+ if (matches == 0) {
+ pos = i;
+ break;
+ }
+ }
+ }
+
+ return pos;
+
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlScript.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlScript.java
new file mode 100644
index 0000000..790bad7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDdlScript.java
@@ -0,0 +1,356 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import java.util.Vector;
+
+import org.eclipse.datatools.enablement.ibm.ddl.CoreDdlScriptVector;
+import org.eclipse.datatools.enablement.ibm.ddl.OrderingDdlScript;
+
+public class LUWDdlScript extends OrderingDdlScript {
+ public void addDropTablespaceStatement(String statement) {
+ this.dropTablespaceStatements.add(statement);
+ }
+
+ public void addCreateTablespaceStatement(String statement) {
+ this.createTablespaceStatements.add(statement);
+ }
+
+ public void addDropBufferPoolStatement(String statement) {
+ this.dropBufferPoolStatements.add(statement);
+ }
+
+ public void addCreateBufferPoolStatement(String statement) {
+ this.createBufferPoolStatements.add(statement);
+ }
+
+ public void addCommentOnStatement(String statement) {
+ this.commentOnStatements.add(statement);
+ }
+
+ public void addDropNicknameStatement(String statement) {
+ this.dropNicknameStatements.add(statement);
+ }
+
+ public void addCreateNicknameStatement(String statement) {
+ this.createNicknameStatements.add(statement);
+ }
+
+ // fsp - pyl
+ public void addCreateFederatedProcedureStatement(String statement) {
+ this.createFederatedProcedureStatements.add(statement);
+ }
+
+ public void addDropPackageStatement(String statement) {
+ this.dropPackageStatements.add(statement);
+ }
+
+ public void addDropRemoteServerStatement(String statement) {
+ this.dropRemoteServerStatements.add(statement);
+ }
+
+ public void addCreateRemoteServerStatement(String statement) {
+ this.createRemoteServerStatements.add(statement);
+ }
+
+ public void addDropWrapperStatement(String statement) {
+ this.dropWrapperStatements.add(statement);
+ }
+
+ public void addCreateWrapperStatement(String statement) {
+ this.createWrapperStatements.add(statement);
+ }
+
+ public void addDropUserMappingStatement(String statement) {
+ this.dropUserMappingStatements.add(statement);
+ }
+
+ public void addCreateUserMappingStatement(String statement) {
+ this.createUserMappingStatements.add(statement);
+ }
+
+// xml schema drop done via stored procedure now
+// public void addDropXMLSchemaStatement(String statement){
+// this.dropXMLSchemaStatements.add(statement);
+// }
+
+ public void addDropPartitionStatement(String statement) {
+ this.dropPartitionGroupStatements.add(statement);
+ }
+
+ public void addCreatePartitionGroupStatement(String statement) {
+ this.createPartitionGroupStatements.add(statement);
+ }
+
+ public void addUpdateStatisticsStatement(String statement) {
+ this.updateStatisticsStatements.add(statement);
+ }
+
+ public void addDropModuleStatement(String statement) {
+ this.dropModuleStatements.add(statement);
+ }
+
+ public void addCreateModuleStatement(String statement) {
+ this.createModuleStatements.add(statement);
+ }
+
+ public void addDropModuleConditionStatement(String statement) {
+ this.dropModuleConditionStatements.add(statement);
+ }
+
+ public void addCreateModuleConditionStatement(String statement) {
+ this.createModuleConditionStatements.add(statement);
+ }
+
+ public void addDropModuleGlobalVariableStatement(String statement) {
+ this.dropModuleGlobalVariableStatements.add(statement);
+ }
+
+ public void addCreateModuleGlobalVariableStatement(String statement) {
+ this.createModuleGlobalVariableStatements.add(statement);
+ }
+
+ public void addDropGlobalVariableStatement(String statement) {
+ this.dropModuleGlobalVariableStatements.add(statement);
+ }
+
+ public void addCreateGlobalVariableStatement(String statement) {
+ this.createModuleGlobalVariableStatements.add(statement);
+ }
+
+ public void addDropModuleTypeStatement(String statement) {
+ this.dropModuleTypeStatements.add(statement);
+ }
+
+ public void addCreateModuleTypeStatement(String statement) {
+ this.createModuleTypeStatements.add(statement);
+ }
+
+ public void addDropModuleRoutineStatement(String statement) {
+ this.dropModuleRoutineStatements.add(statement);
+ }
+
+ public void addCreateModuleRoutineStatement(String statement) {
+ this.createModuleRoutineStatements.add(statement);
+ }
+
+ public void addDropPlsqlPackageStatement(String statement) {
+ this.dropPlsqlPackageStatements.add(statement);
+ }
+
+ public void addCreatePlsqlPackageStatement(String statement) {
+ this.createPlsqlPackageStatements.add(statement);
+ }
+
+ public void addDropPlsqlPackageBodyStatement(String statement) {
+ this.dropPlsqlPackageBodyStatements.add(statement);
+ }
+
+ public void addCreatePlsqlPackageBodyStatement(String statement) {
+ this.createPlsqlPackageBodyStatements.add(statement);
+ }
+
+ public String[] getStatements(){
+ CoreDdlScriptVector scriptVec = new CoreDdlScriptVector();
+ scriptVec.addAll(revokeStatements, false);
+ scriptVec.addAll(dropRoleStatements);
+ scriptVec.addAll(dropTriggerStatements);
+ scriptVec.addAll(dropModuleRoutineStatements);
+ scriptVec.addAll(dropModuleConditionStatements);
+ scriptVec.addAll(dropModuleGlobalVariableStatements);
+ scriptVec.addAll(dropModuleTypeStatements);
+ scriptVec.addAll(dropModuleStatements);
+ scriptVec.addAll(dropPlsqlPackageBodyStatements);
+ scriptVec.addAll(dropPlsqlPackageStatements);
+ scriptVec.addAll(orderedDropRoutineStatements);
+ scriptVec.addAll(orderedDropForeignKeyStatements);
+ scriptVec.addAll(orderedDropConstraintStatements);
+ scriptVec.addAll(dropViewIndexStatements);
+ scriptVec.addAll(dropIndexStatements);
+ scriptVec.addAll(orderedDropViewStatements);
+ scriptVec.addAll(alterTableDropColumnStatements);
+ scriptVec.addAll(backupTableStatements); // Data Preservation
+ scriptVec.addAll(orderedDropTableStatements);
+ scriptVec.addAll(dropSequenceStatements);
+ scriptVec.addAll(dropUserDefinedTypeStatements);
+ scriptVec.addAll(dropNicknameStatements);
+ scriptVec.addAll(dropFederatedProcedureStatements);
+ scriptVec.addAll(dropPackageStatements);
+ scriptVec.addAll(dropUserMappingStatements);
+ scriptVec.addAll(dropRemoteServerStatements);
+ scriptVec.addAll(dropWrapperStatements);
+// scriptVec.addAll(dropXMLSchemaStatements);
+ scriptVec.addAll(dropGlobaleVariableStatements);
+ scriptVec.addAll(dropSchemaStatements);
+ scriptVec.addAll(dropTablespaceStatements);
+ scriptVec.addAll(dropBufferPoolStatements);
+ scriptVec.addAll(dropPartitionGroupStatements);
+ scriptVec.addAll(dropDatabaseStatements); //@d00058820gs
+ scriptVec.addAll(createDatabaseStatements); //@d00058820gs
+ scriptVec.addAll(createRoleStatements);
+ scriptVec.addAll(createPartitionGroupStatements);
+ scriptVec.addAll(createBufferPoolStatements);
+ scriptVec.addAll(createTablespaceStatements);
+ scriptVec.addAll(createSchemaStatements);
+ scriptVec.addAll(createGlobaleVariableStatements);
+ scriptVec.addAll(renameTableStatements);
+// wsdbu00240410
+ // resortUDTStatements();
+ scriptVec.addAll(createUserDefinedTypeStatements,false);
+ scriptVec.addAll(createSequenceStatements);
+ scriptVec.addAll(orderedCreateTableStatements);
+ scriptVec.addAll(alterTableAddColumnStatements);
+ scriptVec.addAll(populateTableStatements); // Data Preservation
+ scriptVec.addAll(dropBackupTableStatements); // Data Preservation
+ scriptVec.addAll(createWrapperStatements);
+ scriptVec.addAll(createRemoteServerStatements);
+ scriptVec.addAll(createUserMappingStatements);
+ scriptVec.addAll(createNicknameStatements);
+ scriptVec.addAll(createFederatedProcedureStatements);
+ scriptVec.addAll(createIndexStatements);
+ scriptVec.addAll(orderedCreateConstraintStatements);
+ scriptVec.addAll(orderedCreateForeignKeyStatements);
+ scriptVec.addAll(orderedCreateViewStatements);
+ scriptVec.addAll(createViewIndexStatements);
+ scriptVec.addAll(orderedCreateRoutineStatements);
+ scriptVec.addAll(createPlsqlPackageStatements);
+ scriptVec.addAll(createPlsqlPackageBodyStatements);
+ scriptVec.addAll(createModuleStatements);
+ scriptVec.addAll(createModuleTypeStatements);
+ scriptVec.addAll(createModuleGlobalVariableStatements);
+ scriptVec.addAll(createModuleConditionStatements);
+ scriptVec.addAll(createModuleRoutineStatements);
+ scriptVec.addAll(createTriggerStatements);
+ scriptVec.addAll(grantStatements);
+ scriptVec.addAll(commentOnStatements);
+ scriptVec.addAll(reorgStatements);
+ scriptVec.addAll(updateStatisticsStatements);
+
+ String[] scripts = new String[scriptVec.size()];
+ scriptVec.copyInto(scripts);
+ return scripts;
+ }
+ protected Vector dropTablespaceStatements = new Vector();
+ protected Vector createTablespaceStatements = new Vector();
+ protected Vector dropBufferPoolStatements = new Vector();
+ protected Vector createBufferPoolStatements = new Vector();
+ protected Vector commentOnStatements = new Vector();
+ protected Vector createNicknameStatements = new Vector();
+ protected Vector dropNicknameStatements = new Vector();
+ protected Vector createRemoteServerStatements = new Vector();
+ protected Vector dropRemoteServerStatements = new Vector();
+ protected Vector createWrapperStatements = new Vector();
+ protected Vector dropWrapperStatements = new Vector();
+ protected Vector createUserMappingStatements = new Vector();
+ protected Vector dropUserMappingStatements = new Vector();
+// protected Vector dropXMLSchemaStatements = new Vector();
+ protected Vector dropPartitionGroupStatements = new Vector();
+ protected Vector createPartitionGroupStatements = new Vector();
+ // fsp - pyl
+ protected Vector createFederatedProcedureStatements = new Vector();
+ protected Vector dropFederatedProcedureStatements = new Vector();
+ protected Vector dropPackageStatements = new Vector();
+ protected Vector updateStatisticsStatements = new Vector();
+
+
+ protected Vector dropGlobaleVariableStatements = new Vector();
+ protected Vector createGlobaleVariableStatements = new Vector();
+
+ //module
+ protected Vector dropModuleStatements = new Vector();
+ protected Vector createModuleStatements = new Vector();
+ protected Vector dropModuleConditionStatements = new Vector();
+ protected Vector createModuleConditionStatements = new Vector();
+ protected Vector dropModuleGlobalVariableStatements = new Vector();
+ protected Vector createModuleGlobalVariableStatements = new Vector();
+ protected Vector dropModuleTypeStatements = new Vector();
+ protected Vector createModuleTypeStatements = new Vector();
+ protected Vector dropModuleRoutineStatements = new Vector();
+ protected Vector createModuleRoutineStatements = new Vector();
+ protected Vector dropPlsqlPackageStatements = new Vector();
+ protected Vector createPlsqlPackageStatements = new Vector();
+ protected Vector dropPlsqlPackageBodyStatements = new Vector();
+ protected Vector createPlsqlPackageBodyStatements = new Vector();
+
+ //fix for wsdbu00240410
+// protected void resortUDTStatements(){
+// Vector oldList = new Vector();
+// oldList.addAll(createUserDefinedTypeStatements);
+// Vector newList = new Vector();
+// ArrayList seperateTypes = new ArrayList();
+//
+// for(int i = 0; i < createUserDefinedTypeStatements.size();i++){
+// String statement = createUserDefinedTypeStatements.get(i).toString();
+// if(!statement.contains(" depends on")){
+// String typeName = getSeperateTypeName(statement);
+// seperateTypes.add(typeName);
+// newList.add(statement);
+// oldList.remove(statement);
+// }
+// }
+//
+// while(oldList.size()>0){
+// for(int i = 0;i<oldList.size();i++){
+// String statement = oldList.get(i).toString();
+// String[] dependantTypes = getDependantTypes(statement);
+// String typeName = getSeperateTypeName(statement);
+// boolean canAdd = true;
+// for(int j=0;j<dependantTypes.length;j++){
+// if(seperateTypes.indexOf(dependantTypes[j].trim())<0){
+// canAdd = false;
+// break;
+// }
+// }
+// if(canAdd){
+// seperateTypes.add(typeName);
+// newList.add(statement.substring(0, statement.indexOf(" depends on")));
+// oldList.remove(i);
+// }
+// }
+// this.createUserDefinedTypeStatements = newList;
+// }
+//
+// }
+
+// private String[] getDependantTypes(String userDefineTypeStatement){
+// String[] types;
+// String dependStatement = userDefineTypeStatement.substring(userDefineTypeStatement.indexOf(" depends on")+" depends on".length());
+// if(dependStatement.split(",").length ==0){
+// types = new String[1];
+// types[0] = dependStatement;
+// }else{
+// types = dependStatement.split(",");
+// }
+// return types;
+// }
+//
+// private String getSeperateTypeName(String userDefineTypeStatement){
+// String typeName = "";
+// int end = 0;
+// int start = userDefineTypeStatement.indexOf(" TYPE ",0);
+// if(userDefineTypeStatement.contains(" UNDER ")){
+// //CREATE TYPE type-name UNDER supertype AS(
+// end = userDefineTypeStatement.indexOf(" UNDER ",0);
+// }else if(userDefineTypeStatement.contains(" AS(")){
+// //CREATE TYPE type-name AS(
+// end = userDefineTypeStatement.indexOf(" AS(",0);
+// }else{
+// //CREATE DISTINCT TYPE distinct-type-name AS source_type
+// //CREATE TYPE TYPE1 AS ..
+// end = userDefineTypeStatement.indexOf(" AS ",0);
+// }
+// if(end != -1)
+// typeName = userDefineTypeStatement.substring(start+6,end);
+// return typeName;
+// }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator.java
new file mode 100644
index 0000000..d8b26c8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator.java
@@ -0,0 +1,1354 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.Vector;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.connectivity.sqm.core.rte.DDLGenerator;
+import org.eclipse.datatools.connectivity.sqm.core.rte.EngineeringOption;
+import org.eclipse.datatools.connectivity.sqm.core.rte.IEngineeringCallBack;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.rte.EngineeringOptionCategory;
+import org.eclipse.datatools.connectivity.sqm.internal.core.rte.EngineeringOptionCategoryID;
+import org.eclipse.datatools.enablement.ibm.db2.ddl.DB2DeltaDdlGenerator;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.ddl.CoreDdlScriptVector;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlGenerationUtility;
+import org.eclipse.datatools.enablement.ibm.util.EngineeringOptionID;
+import org.eclipse.datatools.enablement.ibm.util.SimpleColumnDetails;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.change.FeatureChange;
+import org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl;
+
+public class LUWDeltaDdlGenerator extends DB2DeltaDdlGenerator implements IExecutableExtension {
+ // FOR COLUMNS
+ protected static final int DATA_TYPE = 64;
+ protected static final int SCOPE = 128;
+ protected static final int IDENTITY = 256;
+ protected static final int COMPRESS = 512;
+ protected static final int DEFAULT_VALUE = 1024;
+ protected static final int NULLABLE = 2048;
+
+ // FOR TABLES
+ protected static final int LOGGED = 64;
+ protected static final int DATA_CAPTURE = 128;
+ protected static final int VOLATILE = 256;
+ protected static final int COMPRESSION = 512;
+ protected static final int APPEND = 1024;
+ protected static final int LOCK_SIZE = 2048;
+ protected static final int RESTRICT = 4096;
+ protected static final int VALUE_COMPRESSION = 8192;
+ protected static final int PARTITION_KEY = 16384;
+ // FOR TABLE DATA PRESERVATION
+ protected static final int BACKUP = 32768;
+
+ // FOR SCHEMA
+ private static final int SCHEMA_OWNERSHIP = 64;
+
+ // FOR TABLE SPACES
+ private static final int TABLESPACE_CONTAINERS = 64;
+ private static final int TABLESPACE_AUTORESIZE = 128;
+ private static final int TABLESPACE_BUFFERPOOL = 256;
+ private static final int TABLESPACE_INCREASESIZE = 512;
+ private static final int TABLESPACE_MAXSIZE = 1024;
+ private static final int TABLESPACE_PREFETCHSIZE = 2048;
+ private static final int TABLESPACE_OVERHEAD = 4096;
+ private static final int TABLESPACE_DROPTABLERECOVERY = 8192;
+ private static final int TABLESPACE_XFERRATE = 16384;
+ private static final int TABLESPACE_CONTAINER_SIZE = 32768;
+
+
+ protected LUWDdlBuilder builder;
+ protected Map columnMap = new LinkedHashMap();
+ protected String product;
+ protected String version;
+ protected IEngineeringCallBack callback;
+
+ public LUWDeltaDdlGenerator() {
+ builder = new LUWDdlBuilder();
+ }
+
+ protected void initDPDdlBuilder() {
+ dPDdlBuilder = new LUWDataPreservationDdlBuilder();
+ }
+
+ //@Override
+ protected void setEngineeringCallback(IEngineeringCallBack callback) {
+ this.callback = callback;
+ this.builder.setEngineeringCallBack(callback);
+ }
+
+ public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
+ this.product = config.getAttribute("product"); //$NON-NLS-1$
+ this.version = config.getAttribute("version"); //$NON-NLS-1$
+ float v = Float.parseFloat(version.substring(1));
+ }
+
+ public EngineeringOption[] getOptions(){
+ if(this.getEngineeringOption() == null) {
+ ResourceBundle resource = ResourceBundle.getBundle("org.eclipse.datatools.connectivity.sqm.internal.core.rte.fe.GenericDdlGeneration"); //$NON-NLS-1$
+
+ EngineeringOptionCategory general_options =null;
+ EngineeringOptionCategory[] categories = this.getOptionCategories();
+ for (int i = 0; i < categories.length; i++) {
+ if (categories[i].getId().equals(EngineeringOptionCategoryID.GENERATE_OPTIONS)){
+ general_options = categories[i];
+ }
+ }
+
+ Vector optionVec = new Vector();
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME,resource.getString("GENERATE_FULLY_QUALIFIED_NAME"), resource.getString("GENERATE_FULLY_QUALIFIED_NAME_DES"),DdlGenerationUtility.getQualifyNamesDefault(),general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+ optionVec.add(new EngineeringOption(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER,resource.getString("GENERATE_QUOTED_IDENTIFIER"), resource.getString("GENERATE_QUOTED_IDENTIFIER_DES"),DdlGenerationUtility.getQuoteIdentifiersDefault(),general_options)); //$NON-NLS-1$ //$NON-NLS-2$
+
+ EngineeringOption[] options = new EngineeringOption[optionVec.size()];
+ optionVec.copyInto(options);
+ this.setEngineeringOption(options);
+ }
+
+ return this.getEngineeringOption();
+ }
+
+ //@Override
+ public EngineeringOption[] getDdlGeneratorOptionsForDeltaDdl(
+ DDLGenerator ddlGenerator, SQLObject[] sqlObjectsArg) {
+ SQLObject[] sqlObjects = new SQLObject[sqlObjectsArg.length];
+ for (int i = 0; i < sqlObjectsArg.length; i++) {
+ if (sqlObjectsArg[i] instanceof PrimaryKey) {
+ sqlObjects[i] = ((PrimaryKey)sqlObjectsArg[i]).getBaseTable();
+ }
+ else if (sqlObjectsArg[i] instanceof Column) {
+ sqlObjects[i] = ((Column)sqlObjectsArg[i]).getTable();
+ }
+ else {
+ sqlObjects[i] = sqlObjectsArg[i];
+ }
+ }
+ boolean hasTableSpace = false;
+ for (int i = 0; i < sqlObjects.length; i++) {
+ if (LUWPackage.eINSTANCE.getLUWTableSpace().isSuperTypeOf(sqlObjects[i].eClass())) {
+ hasTableSpace = true;
+ break;
+ }
+ if (sqlObjects[i] instanceof LUWDatabase) {
+ hasTableSpace = true;
+ break;
+ }
+ }
+ EngineeringOption[] ddlGenOptions = ddlGenerator.getOptions(sqlObjects);
+ for (int i = 0; i < ddlGenOptions.length; i++){
+ EngineeringOption option = (EngineeringOption) ddlGenOptions[i];
+ if (option == null) {
+ continue;
+ }
+ if (option.getId().equals(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME)) {
+ option.setBoolean(DdlGenerationUtility.getQualifyNamesDefault());
+ }
+ else if (option.getId().equals(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER)) {
+ option.setBoolean(DdlGenerationUtility.getQuoteIdentifiersDefault());
+ }
+ else if (option.getId().equals(EngineeringOptionID.GENERATE_TABLESPACES)) {
+ option.setBoolean(hasTableSpace);
+ }
+ }
+ return ddlGenOptions;
+ }
+
+ @Override
+ protected boolean shouldExcludeElement(EObject element) {
+ if (element instanceof LUWMaterializedQueryTable)
+ {
+ if (!EngineeringOptionID.generateMQTs(selectedOptions))
+ return true;
+ } else if (element instanceof DB2Table)
+ {
+ if (((DB2Table) element).getTemporalTable() != null)
+ {
+ if (!EngineeringOptionID.generateHistoryTable( selectedOptions))
+ return true;
+ }
+ } else if (element instanceof DB2Alias)
+ {
+ if (!EngineeringOptionID.generateAliases( selectedOptions ))
+ return true;
+ } else if (element instanceof LUWDatabase)
+ {
+ if (!EngineeringOptionID.generateDatabase(selectedOptions))
+ return true;
+ }
+ return super.shouldExcludeElement(element);
+ }
+
+ protected int getChangeFlag(EObject element, EObject changed, EStructuralFeature feature, FeatureChange setting) {
+ if (isChangeAnnotationRelated(element, changed, feature)) return 0;
+ if(element != changed) {
+ if (SQLTablesPackage.eINSTANCE.getColumn().isSuperTypeOf(element.eClass())) {
+ if (SQLDataTypesPackage.eINSTANCE.getPredefinedDataType().isSuperTypeOf(changed.eClass())) {
+ if(canAlter((PredefinedDataType) changed))
+ return getColumnDatatypeChangeFlag((Column)element);
+ return MODIFIED;
+ }
+// if(changed instanceof IdentitySpecifier) {
+// return IDENTITY;
+// }
+ }
+ if (SQLTablesPackage.eINSTANCE.getTable().isSuperTypeOf(element.eClass())) {
+ if (LUWPackage.eINSTANCE.getLUWPartitionKey().isSuperTypeOf(changed.eClass())) {
+ return PARTITION_KEY;
+ }
+ }
+ if (SQLSchemaPackage.eINSTANCE.getSchema().isSuperTypeOf(element.eClass()) &&
+ !(SQLSchemaPackage.eINSTANCE.getSQLObject().isSuperTypeOf(changed.eClass()))) {
+ return 0;
+ }
+ if (LUWPackage.eINSTANCE.getLUWTableSpace().isSuperTypeOf(element.eClass())) {
+ if (LUWPackage.eINSTANCE.getLUWDatabaseContainer().isSuperTypeOf(changed.eClass())) {
+ if (!((LUWTableSpace)element).getManagementType().equals(ManagementType.DATABASE_MANAGED_LITERAL))
+ return MODIFIED;
+ if (feature == LUWPackage.eINSTANCE.getLUWDatabaseContainer_SizeInPages() ||
+ feature == LUWPackage.eINSTANCE.getLUWDatabaseContainer_Size() ||
+ feature == LUWPackage.eINSTANCE.getLUWDatabaseContainer_SizeUnits()) {
+ return TABLESPACE_CONTAINER_SIZE;
+ }
+ }
+ }
+ return MODIFIED;
+ }
+ if(feature == EcorePackage.eINSTANCE.getENamedElement_Name()) return RENAME;
+ if(feature == SQLSchemaPackage.eINSTANCE.getSQLObject_Description()) return COMMENT;
+ if(feature == SQLSchemaPackage.eINSTANCE.getSQLObject_Label()) return LABEL;
+ //(RATLC00398029)if the "partitions" of a LUW partition group is changed, it is
+ //reasonable to think the partition group is modified
+ if (feature == LUWPackage.eINSTANCE.getLUWPartitionGroup_Partitions()) return MODIFIED;
+ if (feature == LUWPackage.eINSTANCE.getLUWBufferPool_PartitionGroup())
+ return MODIFIED;
+ if (feature == LUWPackage.eINSTANCE.getLUWBufferPool_SizeException())
+ return MODIFIED;
+ if (element instanceof LUWTableSpace) {
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_Containers()) {
+ EList oldContainers = (EList)getOldValue(feature, element);
+ EList newContainers = ((LUWTableSpace)element).getContainers();
+ if (((LUWTableSpace)element).getManagementType().equals(ManagementType.DATABASE_MANAGED_LITERAL) && newContainers != null && oldContainers != null) {
+ return TABLESPACE_CONTAINERS;
+ }
+ }
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_AutoResize()) {
+ if (((LUWTableSpace)element).isAutoResize())
+ return TABLESPACE_AUTORESIZE | TABLESPACE_INCREASESIZE | TABLESPACE_MAXSIZE;
+ return TABLESPACE_AUTORESIZE;
+ }
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_BufferPool())
+ return TABLESPACE_BUFFERPOOL;
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_IncreaseSize() ||
+ feature == LUWPackage.eINSTANCE.getLUWTableSpace_IncreasePercent() ||
+ feature == LUWPackage.eINSTANCE.getLUWTableSpace_IncreaseSizeUnit())
+ return TABLESPACE_INCREASESIZE;
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_MaximumSize() ||
+ feature == LUWPackage.eINSTANCE.getLUWTableSpace_MaximumSizeUnit())
+ return TABLESPACE_MAXSIZE;
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_Overhead())
+ return TABLESPACE_OVERHEAD;
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_PreFetchSize())
+ return TABLESPACE_PREFETCHSIZE;
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_RecoverDroppedTableOn())
+ return TABLESPACE_DROPTABLERECOVERY;
+ if (feature == LUWPackage.eINSTANCE.getLUWTableSpace_TransferRate())
+ return TABLESPACE_XFERRATE;
+ return MODIFIED;
+
+ }
+ if(SQLTablesPackage.eINSTANCE.getColumn().isSuperTypeOf(element.eClass())) {
+ Column column = (Column) element;
+ if(feature == SQLTablesPackage.eINSTANCE.getColumn_DefaultValue()) {
+ return DEFAULT_VALUE;
+ }
+ if(feature == SQLTablesPackage.eINSTANCE.getColumn_Nullable()) {
+ return getColumnNullableChangeFlag(column);
+ }
+// if(feature == SQLTablesPackage.eINSTANCE.getColumn_IdentitySpecifier()) {
+// return IDENTITY;
+// }
+ if(feature == SQLSchemaPackage.eINSTANCE.getTypedElement_ContainedType()) {
+ PredefinedDataType type2 = (PredefinedDataType) column.getContainedType();
+ if(type2 == null) return MODIFIED;
+ PredefinedDataType type1 = (PredefinedDataType) getOldValue(SQLSchemaPackage.eINSTANCE.getTypedElement_ContainedType(), column);
+ if(type1 == null) return MODIFIED;
+ if(canAlter(type1, type2))
+ return getColumnDatatypeChangeFlag(column);
+ return MODIFIED;
+ }
+ }
+ if (SQLTablesPackage.eINSTANCE.getTable().isSuperTypeOf(element.eClass())) {
+ if (feature == LUWPackage.eINSTANCE.getLUWStorageTable_PartitionKey())
+ return PARTITION_KEY;
+ if (feature == DB2ModelPackage.eINSTANCE.getDB2Table_DataCapture())
+ return DATA_CAPTURE;
+ if (feature == LUWPackage.eINSTANCE.getLUWStorageTable_RowCompression())
+ return COMPRESSION;
+ if (feature == LUWPackage.eINSTANCE.getLUWStorageTable_ValueCompression())
+ return VALUE_COMPRESSION;
+ if(feature == LUWPackage.eINSTANCE.getLUWTable_Volatile())
+ return VOLATILE;
+ int columnsFlag = getColumnsChangeFlag(element, feature);
+ if (columnsFlag != 0)
+ return columnsFlag;
+ }
+ if (SQLSchemaPackage.eINSTANCE.getSchema().isSuperTypeOf(element.eClass())) {
+ if (feature == SQLSchemaPackage.eINSTANCE.getSchema_Owner() &&
+ isTransferOwnershipSupported())
+ return SCHEMA_OWNERSHIP;
+ }
+ // For issue wsdbu00259503, if it is table, and its dimension changes, mark it as MODIFIED
+ if(changed instanceof DB2Table && feature == SQLTablesPackage.eINSTANCE.getTable_Index()){
+ if(isDimensionsChanged((List)changed.eGet(feature), (List)setting.getValue()))
+ return MODIFIED;
+ }
+
+ if(feature instanceof EReference && feature.isMany() && ((EReference) feature).getEOpposite() != null) return 0;
+ return MODIFIED;
+ }
+
+ // For issue wsdbu00259503, compute the dimension modification.
+ private boolean isDimensionsChanged(List curIndexList, List preIndexList){
+ Set curDimensions = new HashSet();
+ Set preDimensions = new HashSet();
+ for(Object e : curIndexList)
+ if(e instanceof DB2Index &&
+ ((DB2Index)e).getIndexType() == DB2IndexType.DIMENSION_LITERAL)
+ curDimensions.add(e);
+ for(Object e : preIndexList)
+ if(e instanceof DB2Index &&
+ ((DB2Index)e).getIndexType() == DB2IndexType.DIMENSION_LITERAL)
+ preDimensions.add(e);
+ if(curDimensions.size() == preDimensions.size() && curDimensions.containsAll(preDimensions))
+ return false;
+ return true;
+ }
+
+
+ protected boolean isTransferOwnershipSupported() {
+ // Support added in v9
+ return false;
+ }
+
+ protected int getColumnDatatypeChangeFlag(Column column) {
+ return DATA_TYPE;
+ }
+
+ protected int getColumnNullableChangeFlag(Column column) {
+ return MODIFIED;
+ }
+
+ protected boolean containsXMLColumn(LUWTable table) {
+ return false;
+ }
+
+ protected boolean needRecreate(EObject e, int flag) {
+ if (SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(e.eClass()))
+ return (flag & (MODIFIED)) != 0;
+ return (flag & (MODIFIED | RENAME)) != 0;
+ }
+
+ protected void analyze(Map changeMap) {
+ List columns = new LinkedList();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ Object e = it.next();
+ if(e instanceof Column) columns.add(e);
+ }
+
+ it = columns.iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ int flag = ((Integer) changeMap.get(column)).intValue();
+ if(flag == DROP) {
+ if (analyzeDropColumnAndContinue(column, changeMap, it)) continue;
+ }
+ else {
+ Table table = column.getTable();
+ if(LUWPackage.eINSTANCE.getLUWTable().isSuperTypeOf(table.eClass()) &&
+ !(LUWPackage.eINSTANCE.getLUWNickname().isSuperTypeOf(table.eClass()))) {
+ if((flag & (RENAME | MODIFIED)) != 0) {
+ changeMap.remove(column);
+ it.remove();
+ flag = 0;
+ if(changeMap.containsKey(table)) {
+ flag = ((Integer) changeMap.get(table)).intValue();
+ }
+ flag = flag | MODIFIED;
+ changeMap.put(table, new Integer(flag));
+ }
+ }
+ }
+ }
+
+ it = columns.iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ if(isAncestorModified(changeMap, column)) {
+ changeMap.remove(column);
+ }
+ else {
+ int flag = ((Integer) changeMap.get(column)).intValue();
+ changeMap.remove(column);
+ columnMap.put(column, new Integer(flag));
+ }
+ }
+
+ //TODO (jyeh) the super call wipes out alias' comment flag if there was also table change
+ super.analyze(changeMap);
+
+ //analyze dimension indexes
+ it = changeMap.keySet().iterator();
+ List indexes = new LinkedList();
+ while(it.hasNext()) {
+ Object e = it.next();
+ int flag = ((Integer) changeMap.get(e)).intValue();
+ if (e instanceof DB2Index &&
+ ((DB2Index)e).getIndexType() == DB2IndexType.DIMENSION_LITERAL &&
+ (flag & (CREATE | DROP)) != 0) {
+ indexes.add(e);
+ }
+ }
+
+ it = indexes.iterator();
+ while(it.hasNext()) {
+ DB2Index index = (DB2Index) it.next();
+ int flag = ((Integer)changeMap.get(index)).intValue();
+ Table table= null;
+ if (flag == DROP) {
+ undo();
+ table = index.getTable();
+ redo();
+ }
+ else {
+ table = index.getTable();
+ }
+ changeMap.put(table, new Integer(CREATE | DROP));
+ changeMap.remove(index);
+ }
+
+ // Data Preservation
+ it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ Object e = it.next();
+ if(e instanceof PersistentTable) {
+ int flag = ((Integer) changeMap.get(e)).intValue();
+ if ((flag & (DROP | CREATE)) == (DROP | CREATE)) {
+ flag = flag & ~DROP;
+ flag = flag | BACKUP;
+ changeMap.put(e, new Integer(flag));
+ }
+ }
+ }
+ // End Data Preservation
+
+ removeRedundantColumnChange(changeMap,columnMap);
+ }
+
+ protected void removeRedundantColumnChange(Map changeMap, Map colMap) {
+ int flag;
+ Iterator it = colMap.keySet().iterator();
+ Table table = null;
+ while (it.hasNext()) {
+ Column column = (Column)it.next();
+ flag = ((Integer) colMap.get(column)).intValue();
+ if (flag == DROP) {
+ EObject obj = ((ChangeDescriptionImpl) changeDescription).getOldContainer(column);
+ if (obj != null &&
+ SQLTablesPackage.eINSTANCE.getTable().isSuperTypeOf(obj.eClass())) {
+ table = (Table)((ChangeDescriptionImpl) changeDescription).getOldContainer(column);
+ } else {
+ table = column.getTable();
+ }
+ } else {
+ table = column.getTable();
+ }
+ if (table == null)
+ table = column.getTable();
+ if (table != null &&
+ LUWPackage.eINSTANCE.getLUWTable().isSuperTypeOf(table.eClass()) &&
+ !(LUWPackage.eINSTANCE.getLUWNickname().isSuperTypeOf(table.eClass()))) {
+ if(changeMap.containsKey(table)) {
+ flag = ((Integer) changeMap.get(table)).intValue();
+ if ((flag & (DROP | BACKUP)) != 0) {
+ it.remove();
+ }
+ }
+ }
+ }
+ }
+
+ protected boolean isRenameTableSupported() {
+ return true;
+ }
+
+ protected boolean analyzeDropColumnAndContinue(Column column, Map changeMap, Iterator it) {
+ int flag;
+ Table table = (Table) ((ChangeDescriptionImpl)changeDescription).getOldContainer(column);
+ if (LUWPackage.eINSTANCE.getLUWTable().isSuperTypeOf(table.eClass()) &&
+ !(LUWPackage.eINSTANCE.getLUWNickname().isSuperTypeOf(table.eClass()))) {
+ changeMap.remove(column);
+ it.remove();
+ flag = 0;
+ if(changeMap.containsKey(table)) {
+ flag = ((Integer) changeMap.get(table)).intValue();
+ if(flag == DROP) return true;
+ }
+ flag = flag | MODIFIED;
+ changeMap.put(table, new Integer(flag));
+ return true;
+ }
+ return false;
+ }
+
+ protected String[] processChangeMap(Map changeMap, IProgressMonitor monitor) {
+//<bgp String[] olapStatements = null;
+// String[] olapDropStatements = null;
+// OlapDeltaDdlBuilder olapDeltaDdlbuilder = getOlapDeltaDdlBuilder(this.product,this.version);
+// if (olapDeltaDdlbuilder != null) {
+// olapStatements = olapDeltaDdlbuilder.getDeltaDdlStatements(changeMap);
+// this.undo();
+// olapDropStatements = olapDeltaDdlbuilder.getDeltaDropDdlStatements(changeMap);
+// this.redo();
+//bgp> }
+
+ DDLGenerator ddlGenerator = getDdlGeneratorWithDeltaDDLOptions();
+ this.undo();
+ String[] drops = new String[0];
+ if (EngineeringOptionID.generateDropStatement(selectedOptions))
+ drops = getDropStatements(ddlGenerator, changeMap, monitor,callback);
+ String[] backups = getBackupStatements(ddlGenerator, changeMap, monitor);
+ // Collect metadata for DML to transform and move data from backups
+ Map backupTables = getBackupTableMetadata(changeMap);
+ this.redo();
+ if (!backupTables.isEmpty()) dataPreservationRequired = true;
+ String [] tableAlters = new String[0];
+ if (EngineeringOptionID.generateTables(selectedOptions))
+ tableAlters = getTableAlterStatements(ddlGenerator, changeMap, monitor);
+// String [] tableAlters = getTableAlterStatements(ddlGenerator, changeMap, columnMap, monitor);
+ String[] renames = getRenameStatements(ddlGenerator, changeMap, monitor);
+ String[] creates = new String[0];
+ if (EngineeringOptionID.generateCreateStatement(selectedOptions))
+ creates = getCreateStatements(ddlGenerator, changeMap, monitor,callback);
+ // Create DML to transform and move data from backups to new tables
+ String[] pops = getPopulateStatements(ddlGenerator, changeMap, backupTables, monitor);
+
+ String[] dropbackups = getDropBackupStatements(ddlGenerator, changeMap, backupTables, monitor);
+
+ String[] xferO = getTransferOwnershipStatements(changeMap);
+
+ String[] ats = new String[0];
+ if (EngineeringOptionID.generateTablespaces(selectedOptions))
+ ats = getAlterTablespaceStatements(changeMap);
+ String[] ac = new String[0];
+ if (EngineeringOptionID.generateTables(selectedOptions))
+ ac = getAlterColumnStatements(columnMap);
+ this.changeDescription = null;
+
+ //(jyeh) need to move columns which have comment changes from columnMap to changeMap so that
+ //getCommentOnStatements can generate DDL for that. (RATLC01146091)
+ try {
+ Iterator it = columnMap.keySet().iterator();
+ while(it.hasNext()) {
+ Object e = it.next();
+ int flag = ((Integer) columnMap.get(e)).intValue();
+ if (e instanceof Column && ((flag & COMMENT) != 0)) {
+ changeMap.put(e, new Integer(COMMENT));
+ }
+ }
+ }
+ finally {
+ columnMap.clear();
+ }
+
+ String[] comments = new String[0];
+ if (EngineeringOptionID.generateCommentStatement(selectedOptions))
+ comments = getCommentOnStatements(changeMap);
+ String[] script = merge(merge(merge(merge(merge(merge(merge(merge(merge(merge(drops, backups), renames), ac), tableAlters), ats), xferO), creates), pops), dropbackups), comments);
+
+//<bgp if (olapStatements != null) {
+// script = merge(script,olapStatements);
+// }
+// if (olapDropStatements != null) {
+// script = merge(script,olapDropStatements);
+//bgp> }
+
+ return script;
+ }
+
+ private String[] getTransferOwnershipStatements(Map changeMap) {
+ boolean quoteIdentifiers = EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions());
+ boolean qualifyNames = EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions());
+
+ Vector stmts = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject changed = (EObject)it.next();
+ if (changed instanceof Schema && EngineeringOptionID.generateSchemas(selectedOptions)) {
+ int flag = ((Integer) changeMap.get(changed)).intValue();
+ if ((flag & SCHEMA_OWNERSHIP) == 0) continue;
+ String statement = builder.transferSchemaOwnership((Schema)changed,quoteIdentifiers);
+ if(statement != null) {
+ stmts.add(statement);
+ }
+ }
+ }
+
+ Vector sorter = new CoreDdlScriptVector();
+ sorter.addAll(stmts);
+ String[] s = new String[sorter.size()];
+ sorter.copyInto(s);
+ return s;
+ }
+
+ private String[] getAlterTablespaceStatements(Map changeMap) {
+ boolean quoteIdentifiers = EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions());
+ boolean qualifyNames = EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions());
+
+ Vector alts = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject changed = (EObject)it.next();
+ if (changed instanceof LUWTableSpace) {
+ int flag = ((Integer) changeMap.get(changed)).intValue();
+ if ((flag & ~(RENAME | DROP | CREATE)) == 0) continue;
+ String statement = builder.alterTablespaceProlog((LUWTableSpace)changed,quoteIdentifiers,qualifyNames);
+ if ((flag & TABLESPACE_CONTAINERS) != 0) {
+ LUWTableSpace tablespace = (LUWTableSpace)changed;
+ EStructuralFeature feature = LUWPackage.eINSTANCE.getLUWTableSpace_Containers();
+ EList oldContainers = (EList)getOldValue(feature, tablespace);
+ EList newContainers = tablespace.getContainers();
+
+ statement += builder.alterTablespaceContainers((LUWTableSpace)changed, newContainers, oldContainers, quoteIdentifiers, qualifyNames);
+ }
+ if ((flag & TABLESPACE_CONTAINER_SIZE) != 0) {
+ LUWTableSpace tablespace = (LUWTableSpace)changed;
+ EStructuralFeature feature = LUWPackage.eINSTANCE.getLUWTableSpace_Containers();
+ EList oldContainers = (EList)getOldValue(feature, tablespace);
+ EList newContainers = tablespace.getContainers();
+
+ statement += builder.alterTablespaceContainersSize((LUWTableSpace)changed, newContainers, oldContainers, quoteIdentifiers, qualifyNames,this);
+ }
+ if ((flag & TABLESPACE_PREFETCHSIZE) != 0) {
+ statement += builder.tablespacePrefetchSizeClause((LUWTableSpace)changed);
+ }
+ if ((flag & TABLESPACE_BUFFERPOOL) != 0) {
+ statement += builder.tablespaceBufferPoolClause((LUWTableSpace)changed,quoteIdentifiers);
+ }
+ if ((flag & TABLESPACE_OVERHEAD) != 0) {
+ statement += builder.tablespaceOverheadClause((LUWTableSpace)changed);
+ }
+ if ((flag & TABLESPACE_XFERRATE) != 0) {
+ statement += builder.tablespaceXferRateClause((LUWTableSpace)changed);
+ }
+ if ((flag & TABLESPACE_DROPTABLERECOVERY) != 0) {
+ statement += builder.tablespaceDroppedTableRecoveryClause((LUWTableSpace)changed);
+ }
+ if ((flag & TABLESPACE_AUTORESIZE) != 0) {
+ statement += builder.tablespaceAutoResizeClause((LUWTableSpace)changed);
+ }
+ if ((flag & TABLESPACE_INCREASESIZE) != 0) {
+ statement += builder.tablespaceIncreaseSizeClause((LUWTableSpace)changed);
+ }
+ if ((flag & TABLESPACE_MAXSIZE) != 0) {
+ statement += builder.tablespaceMaxSizeClause((LUWTableSpace)changed);
+ }
+ if(statement != null) {
+ alts.add(statement);
+ }
+ }
+ }
+
+ String[] s = new String[alts.size()];
+ alts.copyInto(s);
+ return s;
+ }
+
+ //@Override
+ protected String[] getDropStatements(DDLGenerator gen, Map changeMap,
+ IProgressMonitor monitor, IEngineeringCallBack callback) {
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if((flag & (DROP)) != 0) {
+ if (((flag & (CREATE)) != 0) &&
+ LUWPackage.eINSTANCE.getLUWTableSpace().isSuperTypeOf(key.eClass()))
+ setDestructive(true);
+ }
+ }
+
+ return super.getDropStatements(gen, changeMap, monitor, callback);
+ }
+
+ protected final String[] getBackupStatements(DDLGenerator gen, Map changeMap, IProgressMonitor monitor) {
+ if (!(gen instanceof LUWDdlGenerator)) return new String[0];
+ // DDLGenerator generator = this.getDDLGenerator();
+ Vector elements = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if((flag & (BACKUP)) != 0) {
+ elements.add(key);
+ }
+ }
+ if(elements.size() > 0) {
+ SQLObject[] d = new SQLObject[elements.size()];
+ elements.copyInto(d);
+ // generator.getOptions(d);
+ return backupTableStatements(d,EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, 100);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ protected final String[] getRenameStatements(DDLGenerator gen, Map changeMap, IProgressMonitor monitor) {
+ if (!(gen instanceof LUWDdlGenerator)) return new String[0];
+ // DDLGenerator generator = this.getDDLGenerator();
+ Vector elements = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if(((flag & RENAME) != 0) &&
+ ((flag & DROP) == 0) && !shouldExcludeElement(key)) {
+ elements.add(key);
+ }
+ }
+ if(elements.size() > 0) {
+ SQLObject[] d = new SQLObject[elements.size()];
+ elements.copyInto(d);
+ // generator.getOptions(d);
+ String[] renames = renameTableStatements(d,EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, 100);
+ return merge(renames,renameTableSpaceStatements(d,EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, 100));
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ protected Map getBackupTableMetadata(Map changeMap) {
+ Map ret = new HashMap();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ if (!(SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(key.eClass()))) continue;
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if((flag & (BACKUP)) != 0) {
+ Map columnMap = new HashMap();
+ Iterator it1 = ((Table)key).getColumns().iterator();
+ while (it1.hasNext()) {
+ Column col = (Column)it1.next();
+ SimpleColumnDetails details = new SimpleColumnDetails(col);
+ columnMap.put(col, details);
+ }
+ ret.put(key,columnMap);
+ }
+ }
+ return ret;
+ }
+
+ protected final String[] getPopulateStatements(DDLGenerator gen, Map changeMap, Map backupMetadata, IProgressMonitor monitor) {
+ if (!(gen instanceof LUWDdlGenerator)) return new String[0];
+// LUWDdlGenerator myGen = (LUWDdlGenerator)gen;
+ Vector newTables = new Vector();
+ Vector oldTableNames = new Vector();
+ Vector oldTableColumns = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ if (!(SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(key.eClass()))) continue;
+ String oldTableName = (String)getOldValue(key.eClass().getEStructuralFeature("name"), key);
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if((flag & (BACKUP)) != 0) {
+ boolean canPopulate = true;
+ Map oldColumns = (Map)backupMetadata.get(key);
+// Remove this test, since DB2 does not require an explicit default value for NOT NULL columns
+ // Ensure that every column in the new table has a source in the backup
+// Iterator it1 = ((Table)key).getColumns().iterator();
+// while (it1.hasNext()) {
+// Column newCol = (Column)it1.next();
+// if (!oldColumns.containsKey(newCol)
+// && (newCol.getIdentitySpecifier() == null)
+// && (newCol.getGenerateExpression() == null)
+// && (newCol.getDefaultValue() == null)
+// && (!newCol.isNullable())) {
+// canPopulate = false;
+// break;
+// }
+// }
+ if (canPopulate) {
+ newTables.add(key);
+ oldTableNames.add(oldTableName);
+ oldTableColumns.add(oldColumns);
+ }
+ }
+ }
+ if(newTables.size() > 0) {
+ Table[] newTableArray = new Table[newTables.size()];
+ newTables.copyInto(newTableArray);
+
+ String[] oldTableNameArray = new String[oldTableNames.size()];
+ oldTableNames.copyInto(oldTableNameArray);
+
+ Map[] oldTableColumnsArray = new Map[oldTableColumns.size()];
+ oldTableColumns.copyInto(oldTableColumnsArray);
+ return populateFromBackupTableStatements(newTableArray,oldTableNameArray,oldTableColumnsArray,EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, 100);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ protected String[] backupTableStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ LUWDdlScript script = new LUWDdlScript();
+ LUWDataPreservationDdlBuilder dpBuilder = (LUWDataPreservationDdlBuilder)getDPDdlBuilder();
+ Iterator it = DdlGenerationUtility.getAllContainedDisplayableElementSet(elements).iterator();
+ while(it.hasNext()) {
+ Object o = it.next();
+ if(o instanceof DB2Table) {
+ String statement = dpBuilder.renameTableToBackup((DB2Table) o, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ script.addBackupTableStatement(dpBuilder.getRenameComment());
+ script.addBackupTableStatement(statement);
+ }
+ }
+ }
+ return script.getStatements();
+ }
+
+ protected String[] renameTableStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ LUWDdlScript script = new LUWDdlScript();
+ Iterator it = DdlGenerationUtility.getAllContainedDisplayableElementSet(elements).iterator();
+ while(it.hasNext()) {
+ Object o = it.next();
+ if(o instanceof DB2Table) {
+ Object oldName = getOldValue(EcorePackage.eINSTANCE.getENamedElement_Name(),(EObject)o);
+ String statement = builder.renameTable((DB2Table) o, (String)oldName, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ script.addRenameTableStatement(statement);
+ }
+ }
+ }
+ return script.getStatements();
+ }
+
+ protected String[] renameTableSpaceStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ LUWDdlScript script = new LUWDdlScript();
+ Iterator it = DdlGenerationUtility.getAllContainedDisplayableElementSet(elements).iterator();
+ while(it.hasNext()) {
+ Object o = it.next();
+ if(o instanceof LUWTableSpace) {
+ Object oldName = getOldValue(EcorePackage.eINSTANCE.getENamedElement_Name(),(EObject)o);
+ String statement = builder.alterTablespaceRename((LUWTableSpace)o,(String)oldName,quoteIdentifiers,qualifyNames);
+ if(statement != null) {
+ script.addRenameTableStatement(statement);
+ }
+ }
+ }
+ return script.getStatements();
+ }
+
+ public String[] populateFromBackupTableStatements(Table[] tables, String[] oldTableNames, Map[] oldColumnMaps, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ LUWDdlScript script = new LUWDdlScript();
+ LUWDataPreservationDdlBuilder dpBuilder = (LUWDataPreservationDdlBuilder)getDPDdlBuilder();
+ String statement;
+ for (int i=0;i<tables.length;i++) {
+ ArrayList genColumns = dpBuilder.getAlwaysGeneratedColumns(tables[i]);
+ Iterator it = genColumns.iterator();
+ while (it.hasNext()) {
+ Column genColumn = (Column)it.next();
+ // If the gen'd always column is new, we don't need to suspend and re-enable it
+ if (oldColumnMaps[i].get(genColumn) == null) {
+ it.remove();
+ continue;
+ }
+ script.addPopulateTableStatement(dpBuilder.getSuspendGenerateAlwaysStatement(tables[i],genColumn,quoteIdentifiers,qualifyNames));
+ }
+ statement = dpBuilder.populateTableFromBackup(tables[i], oldTableNames[i], oldColumnMaps[i], quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ script.addPopulateTableStatement(dpBuilder.getPopulateComment());
+ script.addPopulateTableStatement(statement);
+ }
+ it = genColumns.iterator();
+ while (it.hasNext()) {
+ Column genColumn = (Column)it.next();
+ if (genColumn.getIdentitySpecifier() != null) {
+ script.addPopulateTableStatement(dpBuilder.getRestartIdentityComment());
+ script.addPopulateTableStatement(dpBuilder.getRestartIdentityStatement(tables[i],genColumn,quoteIdentifiers,qualifyNames));
+ }
+ script.addPopulateTableStatement(dpBuilder.getSetGenerateAlwaysStatement(tables[i],genColumn,quoteIdentifiers,qualifyNames));
+ }
+ }
+ return script.getStatements();
+ }
+
+ protected final String[] getDropBackupStatements(DDLGenerator gen, Map changeMap, Map backupMetadata, IProgressMonitor monitor) {
+ if (!(gen instanceof LUWDdlGenerator)) return new String[0];
+ // DDLGenerator generator = this.getDDLGenerator();
+ Vector elements = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if((flag & (BACKUP)) != 0) {
+ elements.add(key);
+ }
+ }
+ if(elements.size() > 0) {
+ SQLObject[] d = new SQLObject[elements.size()];
+ elements.copyInto(d);
+ //could call getDdlGeneratorOptionsForDeltaDdl(generator, d); if the options needs to be customized
+ // generator.getOptions(d);
+ return dropBackupTableStatements(d,EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, 100);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ protected String[] dropBackupTableStatements(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor, int task) {
+ LUWDdlScript script = new LUWDdlScript();
+ LUWDataPreservationDdlBuilder dpBuilder = (LUWDataPreservationDdlBuilder)getDPDdlBuilder();
+ Iterator it = DdlGenerationUtility.getAllContainedDisplayableElementSet(elements).iterator();
+ while(it.hasNext()) {
+ Object o = it.next();
+ if(o instanceof DB2Table) {
+ //Need to use the old table name as the name may have been changed
+ Schema oldSchema = (Schema)getOldValue(((DB2Table)o).eClass().getEStructuralFeature("schema"), (DB2Table)o);
+ String oldSchemaName = oldSchema != null ? oldSchema.getName() : "";
+ String oldTableName = (String)getOldValue(((DB2Table)o).eClass().getEStructuralFeature("name"), (DB2Table)o);
+ String statement = dpBuilder.dropBackupTable(oldSchemaName, oldTableName, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ script.addDropBackupTableStatement(dpBuilder.getDropBackupComment());
+ script.addDropBackupTableStatement(statement);
+ }
+ }
+ }
+ return script.getStatements();
+ }
+
+ protected String[] getTableAlterStatements(DDLGenerator gen, Map changeMap, IProgressMonitor monitor) {
+ boolean quoteIdentifiers = EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions());
+ boolean qualifyNames = EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions());
+
+ Vector alts = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ Object obj = it.next();
+ if (!(obj instanceof Table)) continue;
+ Table table = (Table)obj;
+ int flag = ((Integer) changeMap.get(table)).intValue();
+ if(flag == PARTITION_KEY) {
+ String statement = builder.alterTableAlterPartitionKey((LUWStorageTable)table, quoteIdentifiers, qualifyNames);
+ if(statement != null) alts.add(statement);
+ }
+ //To generate alter statement, the BACKUP flag should not have been set
+ if((flag & BACKUP) == 0
+ && (flag & (DATA_CAPTURE | COMPRESSION | VALUE_COMPRESSION | VOLATILE)) != 0) {
+ String statement = builder.alterTableAlterProperties(table, flag, quoteIdentifiers, qualifyNames);
+ if(statement != null) alts.add(statement);
+ }
+ // TODO other changes
+ }
+
+ Vector sorter = new CoreDdlScriptVector();
+ sorter.addAll(alts);
+ String[] s = new String[sorter.size()];
+ sorter.copyInto(s);
+ return s;
+ }
+
+ protected String[] getAlterColumnStatements(Map changeMap) {
+ boolean quoteIdentifiers = EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions());
+ boolean qualifyNames = EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions());
+ Map<String,Vector<String>> statementsByTable = new TreeMap<String,Vector<String>>();
+ Map<Table,Integer> reorgMap = new HashMap<Table,Integer>();
+
+// Vector alts = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ int flag = ((Integer) changeMap.get(column)).intValue();
+ if(flag == CREATE && EngineeringOptionID.generateCreateStatement(selectedOptions)) {
+ if (((LUWColumn)column).getGenerateExpression() != null) {
+ String statement1 = builder.setIntegrityForTableBeforeAlter(column, quoteIdentifiers, qualifyNames);
+ if (statement1 != null)
+ addStatementToTableSortedMap(statementsByTable,column,statement1,false);
+ }
+ String statement2 = builder.alterTableAddColumn(column, quoteIdentifiers, qualifyNames);
+ if (statement2 != null)
+ addStatementToTableSortedMap(statementsByTable,column,statement2,false);
+ if (((LUWColumn)column).getGenerateExpression() != null) {
+ String statement3 = builder.setIntegrityForTableAfterAlter(column, quoteIdentifiers, qualifyNames);
+ if (statement3 != null)
+ addStatementToTableSortedMap(statementsByTable,column,statement3,false);
+ }
+ }
+ else if (flag == DROP && EngineeringOptionID.generateDropStatement(selectedOptions)) {
+ String statement = builder.alterTableDropColumn(column, quoteIdentifiers, qualifyNames, this);
+ if(statement != null) {
+ addStatementToTableSortedMap(statementsByTable,column,statement,true);
+ Table table = getOldContainer(column);
+ if (table != null) {
+ statement = reorgIfRequired(reorgMap,table,quoteIdentifiers,qualifyNames);
+ if (statement != null)
+ addStatementToTableSortedMap(statementsByTable,column,statement,true);
+ }
+ }
+ }
+ else {
+ if((flag & DATA_TYPE) != 0) {
+ String statement = builder.alterTableAlterColumnDataType(column, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ addStatementToTableSortedMap(statementsByTable,column,statement,false);
+ Table table = column.getTable();
+ if (table != null) {
+ statement = reorgIfRequired(reorgMap,table,quoteIdentifiers,qualifyNames);
+ if(statement != null)
+ addStatementToTableSortedMap(statementsByTable,column,statement,false);
+ }
+ }
+ }
+ if((flag & DEFAULT_VALUE) != 0) {
+ String statement = builder.alterTableAlterColumnDefaultValue(column, quoteIdentifiers, qualifyNames);
+ if(statement != null)
+ addStatementToTableSortedMap(statementsByTable,column,statement,false);
+ }
+ if((flag & NULLABLE) != 0) {
+ String statement = builder.alterTableAlterColumnNullable(column, quoteIdentifiers, qualifyNames);
+ if(statement != null) {
+ addStatementToTableSortedMap(statementsByTable,column,statement,false);
+ Table table = column.getTable();
+ if (table != null) {
+ statement = reorgIfRequired(reorgMap,table,quoteIdentifiers,qualifyNames);
+ if(statement != null)
+ addStatementToTableSortedMap(statementsByTable,column,statement,false);
+ }
+ }
+ }
+ // TODO other changes
+ }
+ }
+ // Address any outstanding reorg requirements
+ Set tablesToReorg = reorgMap.keySet();
+ Iterator iter = tablesToReorg.iterator();
+ while (iter.hasNext()) {
+ Table table = (Table)iter.next();
+ String statement = builder.reorgTable(table, quoteIdentifiers, qualifyNames);
+ if (statement != null)
+ addStatementToTableSortedMap(statementsByTable,table,statement);
+
+ }
+ reorgMap.clear();
+// Remove sorting to avoid problem with > 3 ALTERs without a REORG
+// Vector sorter = new CoreDdlScriptVector();
+// sorter.addAll(alts);
+// String[] s = new String[sorter.size()];
+// sorter.copyInto(s);
+// return s;
+
+// Try to sort by table
+ Vector alts = new Vector();
+ Iterator iterator = statementsByTable.keySet().iterator();
+ while (iterator.hasNext()) {
+ Vector stmts = statementsByTable.get((String)iterator.next());
+ alts.addAll(stmts);
+ stmts.clear();
+ }
+ statementsByTable.clear();
+ String[] s = new String[alts.size()];
+ alts.copyInto(s);
+ return s;
+ }
+
+ protected void addStatementToTableSortedMap(
+ Map<String,Vector<String>> statementsByTable,Column column,
+ String statement,boolean getOldTable) {
+ if(statement != null) {
+ Table table = null;
+ if (getOldTable)
+ table = (Table)((ChangeDescriptionImpl) changeDescription).getOldContainer(column);
+ if (table == null)
+ table = column.getTable();
+ addStatementToTableSortedMap(statementsByTable,table,statement);
+ }
+ }
+
+ protected void addStatementToTableSortedMap(
+ Map<String,Vector<String>> statementsByTable,Table table,
+ String statement) {
+ String schemaName;
+ Schema schema = table.getSchema();
+ if (schema == null)
+ schemaName = "";
+ else
+ schemaName = table.getSchema().getName();
+ String tableName = schemaName + "." + table.getName();
+ if(statement != null) {
+ if (!statementsByTable.containsKey(tableName)) {
+ statementsByTable.put(tableName,new Vector<String>());
+ }
+ Vector<String> stmts = statementsByTable.get(tableName);
+ stmts.add(statement);
+ statementsByTable.put(tableName,stmts);
+ }
+ }
+
+ private String reorgIfRequired(Map<Table, Integer> reorgMap, Table table,
+ boolean quoteIdentifiers, boolean qualifyNames) {
+ int cnt = 1;
+ if (reorgMap.containsKey(table)) {
+ cnt = reorgMap.get(table);
+ if (++cnt >= 3) {
+ reorgMap.remove(table);
+ return builder.reorgTable(table, quoteIdentifiers, qualifyNames);
+ }
+ }
+ reorgMap.put(table,cnt);
+ return null;
+ }
+
+ protected String[] getCommentOnStatements(Map changeMap) {
+ boolean quoteIdentifiers = EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions());
+ boolean qualifyNames = EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions());
+
+ Vector comments = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject o = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(o)).intValue();
+ if ((!shouldExcludeElement(o)) && (((flag & (COMMENT | CREATE)) != 0) ||
+ (SQLSchemaPackage.eINSTANCE.getSchema().isSuperTypeOf(o.eClass()) &&
+ ((flag & RENAME) != 0)))) {
+ String statement = null;
+ if(LUWPackage.eINSTANCE.getLUWNickname().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWNickname) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(LUWPackage.eINSTANCE.getLUWServer().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWServer) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(LUWPackage.eINSTANCE.getLUWWrapper().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWWrapper)o, quoteIdentifiers, qualifyNames);
+ }
+ else if(LUWPackage.eINSTANCE.getLUWUserMapping().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWUserMapping)o, quoteIdentifiers, qualifyNames);
+ }
+// else if(o instanceof LUWCatalogFederatedServer) {
+// statement = builder.commentOn((LUWCatalogFederatedServer) o, true, true);
+// }
+ else if(LUWPackage.eINSTANCE.getLUWMaterializedQueryTable().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWMaterializedQueryTable) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(LUWPackage.eINSTANCE.getLUWTable().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWTable) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(LUWPackage.eINSTANCE.getLUWTableSpace().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWTableSpace) o, quoteIdentifiers);
+ }
+ else if(LUWPackage.eINSTANCE.getLUWView().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWView) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(DB2ModelPackage.eINSTANCE.getDB2Alias().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((DB2Alias) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(DB2ModelPackage.eINSTANCE.getDB2Procedure().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((DB2Procedure) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(DB2ModelPackage.eINSTANCE.getDB2UserDefinedFunction().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((DB2UserDefinedFunction) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(DB2ModelPackage.eINSTANCE.getDB2Trigger().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((DB2Trigger) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(SQLConstraintsPackage.eINSTANCE.getCheckConstraint().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((CheckConstraint) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(SQLConstraintsPackage.eINSTANCE.getUniqueConstraint().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((UniqueConstraint) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(SQLConstraintsPackage.eINSTANCE.getForeignKey().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((ForeignKey) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(DB2ModelPackage.eINSTANCE.getDB2Index().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((DB2Index) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(SQLDataTypesPackage.eINSTANCE.getDistinctUserDefinedType().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((DistinctUserDefinedType) o, quoteIdentifiers, qualifyNames);
+ }
+ else if(SQLTablesPackage.eINSTANCE.getColumn().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((Column) o, quoteIdentifiers, qualifyNames);
+ }
+ else if (LUWPackage.eINSTANCE.getLUWPartitionGroup().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWPartitionGroup)o, quoteIdentifiers);
+ }
+ else if (SQLSchemaPackage.eINSTANCE.getSchema().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((Schema)o, quoteIdentifiers, qualifyNames);
+ }
+ else if (SQLAccessControlPackage.eINSTANCE.getRole().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((Role)o, quoteIdentifiers, qualifyNames);
+ }
+ else if (LUWPackage.eINSTANCE.getLUWModule().isSuperTypeOf(o.eClass())) {
+ statement = builder.commentOn((LUWModule)o, quoteIdentifiers, qualifyNames);
+ }
+ if(statement != null) comments.add(statement);
+ }
+ }
+
+ Vector sorter = new CoreDdlScriptVector();
+ sorter.addAll(comments);
+ String[] s = new String[sorter.size()];
+ sorter.copyInto(s);
+ return s;
+ }
+
+ protected boolean canAlter(String type1, String type2, int length1, int length2, int scale1, int scale2) {
+ if(type1.equals("SMALLINT")) { //$NON-NLS-1$
+ if(type2.equals("SMALLINT")) return true; //$NON-NLS-1$
+ if(type2.equals("INTEGER")) return true; //$NON-NLS-1$
+ if(type2.equals("BIGINT")) return true; //$NON-NLS-1$
+ if(type2.equals("FLOAT")) return true; //$NON-NLS-1$
+ if(type2.equals("DOUBLE")) return true; //$NON-NLS-1$
+ if(type2.equals("DECIMAL") && (length2-scale2) > 4) return true; //$NON-NLS-1$
+ }
+ else if(type1.equals("INTEGER")) { //$NON-NLS-1$
+ if(type2.equals("INTEGER")) return true; //$NON-NLS-1$
+ if(type2.equals("BIGINT")) return true; //$NON-NLS-1$
+ if(type2.equals("FLOAT")) return true; //$NON-NLS-1$
+ if(type2.equals("DOUBLE")) return true; //$NON-NLS-1$
+ if(type2.equals("DECIMAL") && (length2-scale2) > 9) return true; //$NON-NLS-1$
+ }
+ else if(type1.equals("DECIMAL")) { //$NON-NLS-1$
+ if(type2.equals("SMALLINT") && length1 < 5 && scale1 == 0) return true; //$NON-NLS-1$
+ if(type2.equals("INTEGER") && length1 < 10 && scale1 == 0) return true; //$NON-NLS-1$
+ if(type2.equals("BIGINT") && length1 < 19 && scale1 == 0) return true; //$NON-NLS-1$
+ if(type2.equals("FLOAT") && length1 < 7) return true; //$NON-NLS-1$
+ if(type2.equals("DOUBLE") && length1 < 16) return true; //$NON-NLS-1$
+ if(type2.equals("DECIMAL") && length2 >= length1 && scale2 >= scale1 && (length2-scale2) >= (length1 - scale1)) return true; //$NON-NLS-1$
+ }
+ else if(type1.equals("FLOAT")) { //$NON-NLS-1$
+ if(type2.equals("FLOAT")) return true; //$NON-NLS-1$
+ if(type2.equals("DOUBLE")) return true; //$NON-NLS-1$
+ }
+ else if(type1.equals("CHAR") || type1.equals("VARCHAR")) { //$NON-NLS-1$ //$NON-NLS-2$
+ if(type2.equals("CHAR") && length2 >= length1) return true; //$NON-NLS-1$
+ if(type2.equals("VARCHAR") && length2 >= length1) return true; //$NON-NLS-1$
+ }
+ else if(type1.equals("GRAPHIC") || type1.equals("VARGRAPHIC")) { //$NON-NLS-1$ //$NON-NLS-2$
+ if(type2.equals("GRAPHIC") && length2 >= length1) return true; //$NON-NLS-1$
+ if(type2.equals("VARGRAPHIC") && length2 >= length1) return true; //$NON-NLS-1$
+ }
+
+ return false;
+ }
+
+//<bpg public static OlapDeltaDdlBuilder getOlapDeltaDdlBuilder(String dbProduct, String dbVersion) {
+// if (olapDletaDdlBuilder != null) return olapDletaDdlBuilder;
+//
+// IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+// IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("org.eclipse.datatools.enablement.core", "olapDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+// IExtension[] extensions = extensionPoint.getExtensions();
+// for(int i=0; i<extensions.length; ++i) {
+// IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+// for(int j=0; j<configElements.length; ++j) {
+// if(configElements[j].getName().equals("delta")) { //$NON-NLS-1$
+// String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+// if(!product.equals(dbProduct)) continue;
+// try {
+// olapDletaDdlBuilder = (OlapDeltaDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+// }
+// catch(CoreException e) {
+// IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+// "The error was detected when creating the olap delta ddl builder for " + product, e); //$NON-NLS-1$
+// DataToolsPlugin.getDefault().getLog().log(status);
+// }
+// break;
+// }
+// }
+// }
+// return olapDletaDdlBuilder;
+//bgp> }
+
+//bgp protected static OlapDeltaDdlBuilder olapDletaDdlBuilder = null;
+
+ public Object getOldContainerValue(EStructuralFeature feature,
+ LUWDatabaseContainer container) {
+ return getOldValue(feature,container);
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator9.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator9.java
new file mode 100644
index 0000000..9b91598
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator9.java
@@ -0,0 +1,116 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl;
+
+public class LUWDeltaDdlGenerator9 extends LUWDeltaDdlGenerator {
+
+ public LUWDeltaDdlGenerator9() {
+ super();
+ builder = new LUWDdlBuilder9();
+ }
+
+ protected boolean isTransferOwnershipSupported() {
+ // Support added in v9
+ return true;
+ }
+
+ protected boolean analyzeDropColumnAndContinue(Column column, Map changeMap, Iterator it) {
+ int flag;
+ Table table = (Table)((ChangeDescriptionImpl) changeDescription).getOldContainer(column);
+ if (table == null) {
+ changeMap.remove(column);
+ it.remove();
+ return true;
+ }
+ if (LUWPackage.eINSTANCE.getLUWTable().isSuperTypeOf(table.eClass()) &&
+ !(LUWPackage.eINSTANCE.getLUWNickname().isSuperTypeOf(table.eClass()))) {
+ if(changeMap.containsKey(table)) {
+ flag = ((Integer) changeMap.get(table)).intValue();
+ if ((flag & (DROP | BACKUP | MODIFIED)) != 0) {
+ changeMap.remove(column);
+ it.remove();
+ return true;
+ }
+ }
+ if (containsXMLColumn((LUWTable)table)) {
+ changeMap.put(table, new Integer(MODIFIED));
+ changeMap.remove(column);
+ it.remove();
+ return true;
+ }
+ }
+ return false;
+ }
+
+ protected int getColumnDatatypeChangeFlag(Column column) {
+ EObject table = column.eContainer();
+ //According to DB2 LUW V9 SQL Reference:
+ //The column being altered cannot be part of a table containing an XML data type column (SQLSTATE 42997).
+ //The table cannot have data capture enabled (SQLSTATE 42997).
+ if (table != null &&
+ LUWPackage.eINSTANCE.getLUWTable().isSuperTypeOf(table.eClass()) &&
+ containsXMLColumn((LUWTable)table)) {
+ return MODIFIED;
+ }
+ return DATA_TYPE;
+ }
+
+ protected int getColumnNullableChangeFlag(Column column) {
+ EObject table = column.eContainer();
+ //According to DB2 LUW V9 SQL Reference:
+ //The column being altered cannot be part of a table containing an XML data type column (SQLSTATE 42997).
+ //The table cannot have data capture enabled (SQLSTATE 42997).
+ if (table != null &&
+ LUWPackage.eINSTANCE.getLUWTable().isSuperTypeOf(table.eClass()) &&
+ containsXMLColumn((LUWTable)table)) {
+ return MODIFIED;
+ }
+ return NULLABLE;
+ }
+
+ /**
+ * Returns true if the table contains a column of XML data type.
+ * @param table
+ * @return
+ */
+ protected boolean containsXMLColumn(LUWTable table) {
+ for (Iterator iter = table.getColumns().iterator(); iter.hasNext();) {
+ Column column = (Column)iter.next();
+ SQLDataType type = column.getContainedType();
+ if (type != null &&
+ SQLDataTypesPackage.eINSTANCE.getXMLDataType().isSuperTypeOf(type.eClass()))
+ return true;
+ }
+ List columns = (List)getOldValue(SQLTablesPackage.eINSTANCE.getTable_Columns(), table);
+ for (Iterator iter = columns.iterator(); iter.hasNext();) {
+ Column column = (Column)iter.next();
+ SQLDataType type = column.getContainedType();
+ if (type != null &&
+ SQLDataTypesPackage.eINSTANCE.getXMLDataType().isSuperTypeOf(type.eClass()))
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator95.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator95.java
new file mode 100644
index 0000000..e043892
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator95.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+public class LUWDeltaDdlGenerator95 extends LUWDeltaDdlGenerator9 {
+
+ public LUWDeltaDdlGenerator95() {
+ super();
+ builder = new LUWDdlBuilder95();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator97.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator97.java
new file mode 100644
index 0000000..c49d128
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/ddl/LUWDeltaDdlGenerator97.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.ddl;
+
+public class LUWDeltaDdlGenerator97 extends LUWDeltaDdlGenerator95 {
+
+ public LUWDeltaDdlGenerator97() {
+ super();
+ builder = new LUWDdlBuilder97();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ArrayIndexElementType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ArrayIndexElementType.java
new file mode 100644
index 0000000..11c4153
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ArrayIndexElementType.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Array Index Element Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType#getLUWArrayDataType <em>LUW Array Data Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getArrayIndexElementType()
+ * @model
+ * @generated
+ */
+public interface ArrayIndexElementType extends ElementType {
+ /**
+ * Returns the value of the '<em><b>LUW Array Data Type</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType#getArrayIndexElementType <em>Array Index Element Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Array Data Type</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Array Data Type</em>' container reference.
+ * @see #setLUWArrayDataType(LUWArrayDataType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getArrayIndexElementType_LUWArrayDataType()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType#getArrayIndexElementType
+ * @model opposite="arrayIndexElementType" required="true"
+ * @generated
+ */
+ LUWArrayDataType getLUWArrayDataType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType#getLUWArrayDataType <em>LUW Array Data Type</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LUW Array Data Type</em>' container reference.
+ * @see #getLUWArrayDataType()
+ * @generated
+ */
+ void setLUWArrayDataType(LUWArrayDataType value);
+
+} // ArrayIndexElementType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/AverageTableSizeType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/AverageTableSizeType.java
new file mode 100644
index 0000000..ef5efe9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/AverageTableSizeType.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Average Table Size Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getAverageTableSizeType()
+ * @model
+ * @generated
+ */
+public final class AverageTableSizeType extends AbstractEnumerator {
+ /**
+ * The '<em><b>LESS THAN 50MB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LESS THAN 50MB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LESS_THAN_50MB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LESS_THAN_50MB = 0;
+
+ /**
+ * The '<em><b>BETWEEN 50MB AND 500MB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BETWEEN 50MB AND 500MB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BETWEEN_50MB_AND_500MB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BETWEEN_50MB_AND_500MB = 1;
+
+ /**
+ * The '<em><b>BETWEEN 500MB AND 5GB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BETWEEN 500MB AND 5GB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BETWEEN_500MB_AND_5GB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BETWEEN_500MB_AND_5GB = 2;
+
+ /**
+ * The '<em><b>GREATER THAN 5GB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>GREATER THAN 5GB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #GREATER_THAN_5GB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int GREATER_THAN_5GB = 3;
+
+ /**
+ * The '<em><b>LESS THAN 50MB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LESS_THAN_50MB
+ * @generated
+ * @ordered
+ */
+ public static final AverageTableSizeType LESS_THAN_50MB_LITERAL = new AverageTableSizeType(LESS_THAN_50MB, "LESS_THAN_50MB", "LESS_THAN_50MB"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>BETWEEN 50MB AND 500MB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BETWEEN_50MB_AND_500MB
+ * @generated
+ * @ordered
+ */
+ public static final AverageTableSizeType BETWEEN_50MB_AND_500MB_LITERAL = new AverageTableSizeType(BETWEEN_50MB_AND_500MB, "BETWEEN_50MB_AND_500MB", "BETWEEN_50MB_AND_500MB"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>BETWEEN 500MB AND 5GB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BETWEEN_500MB_AND_5GB
+ * @generated
+ * @ordered
+ */
+ public static final AverageTableSizeType BETWEEN_500MB_AND_5GB_LITERAL = new AverageTableSizeType(BETWEEN_500MB_AND_5GB, "BETWEEN_500MB_AND_5GB", "BETWEEN_500MB_AND_5GB"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>GREATER THAN 5GB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #GREATER_THAN_5GB
+ * @generated
+ * @ordered
+ */
+ public static final AverageTableSizeType GREATER_THAN_5GB_LITERAL = new AverageTableSizeType(GREATER_THAN_5GB, "GREATER_THAN_5GB", "GREATER_THAN_5GB"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Average Table Size Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final AverageTableSizeType[] VALUES_ARRAY =
+ new AverageTableSizeType[] {
+ LESS_THAN_50MB_LITERAL,
+ BETWEEN_50MB_AND_500MB_LITERAL,
+ BETWEEN_500MB_AND_5GB_LITERAL,
+ GREATER_THAN_5GB_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Average Table Size Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Average Table Size Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AverageTableSizeType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AverageTableSizeType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Average Table Size Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AverageTableSizeType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ AverageTableSizeType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Average Table Size Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AverageTableSizeType get(int value) {
+ switch (value) {
+ case LESS_THAN_50MB: return LESS_THAN_50MB_LITERAL;
+ case BETWEEN_50MB_AND_500MB: return BETWEEN_50MB_AND_500MB_LITERAL;
+ case BETWEEN_500MB_AND_5GB: return BETWEEN_500MB_AND_5GB_LITERAL;
+ case GREATER_THAN_5GB: return GREATER_THAN_5GB_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private AverageTableSizeType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //AverageTableSizeType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/BufferPoolType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/BufferPoolType.java
new file mode 100644
index 0000000..6dd298b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/BufferPoolType.java
@@ -0,0 +1,157 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: BufferPoolType.java,v 1.7 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Buffer Pool Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getBufferPoolType()
+ * @model
+ * @generated
+ */
+public final class BufferPoolType extends AbstractEnumerator {
+ /**
+ * The '<em><b>IMMEDIATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMMEDIATE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IMMEDIATE = 0;
+
+ /**
+ * The '<em><b>DEFERRED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEFERRED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEFERRED = 1;
+
+ /**
+ * The '<em><b>IMMEDIATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IMMEDIATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IMMEDIATE
+ * @generated
+ * @ordered
+ */
+ public static final BufferPoolType IMMEDIATE_LITERAL = new BufferPoolType(IMMEDIATE, "IMMEDIATE", "IMMEDIATE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>DEFERRED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEFERRED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEFERRED
+ * @generated
+ * @ordered
+ */
+ public static final BufferPoolType DEFERRED_LITERAL = new BufferPoolType(DEFERRED, "DEFERRED", "DEFERRED"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Buffer Pool Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final BufferPoolType[] VALUES_ARRAY =
+ new BufferPoolType[] {
+ IMMEDIATE_LITERAL,
+ DEFERRED_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Buffer Pool Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Buffer Pool Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BufferPoolType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BufferPoolType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Buffer Pool Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BufferPoolType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ BufferPoolType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Buffer Pool Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static BufferPoolType get(int value) {
+ switch (value) {
+ case IMMEDIATE: return IMMEDIATE_LITERAL;
+ case DEFERRED: return DEFERRED_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private BufferPoolType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //BufferPoolType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/CheckOptionType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/CheckOptionType.java
new file mode 100644
index 0000000..8e242fe
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/CheckOptionType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CheckOptionType.java,v 1.7 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Check Option Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getCheckOptionType()
+ * @model
+ * @generated
+ */
+public final class CheckOptionType extends AbstractEnumerator {
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE = 0;
+
+ /**
+ * The '<em><b>CASCADED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CASCADED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CASCADED = 1;
+
+ /**
+ * The '<em><b>LOCAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOCAL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOCAL = 2;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @generated
+ * @ordered
+ */
+ public static final CheckOptionType NONE_LITERAL = new CheckOptionType(NONE, "NONE", "NONE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>CASCADED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CASCADED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CASCADED
+ * @generated
+ * @ordered
+ */
+ public static final CheckOptionType CASCADED_LITERAL = new CheckOptionType(CASCADED, "CASCADED", "CASCADED"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>LOCAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOCAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOCAL
+ * @generated
+ * @ordered
+ */
+ public static final CheckOptionType LOCAL_LITERAL = new CheckOptionType(LOCAL, "LOCAL", "LOCAL"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Check Option Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final CheckOptionType[] VALUES_ARRAY =
+ new CheckOptionType[] {
+ NONE_LITERAL,
+ CASCADED_LITERAL,
+ LOCAL_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Check Option Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Check Option Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CheckOptionType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CheckOptionType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Check Option Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CheckOptionType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CheckOptionType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Check Option Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CheckOptionType get(int value) {
+ switch (value) {
+ case NONE: return NONE_LITERAL;
+ case CASCADED: return CASCADED_LITERAL;
+ case LOCAL: return LOCAL_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private CheckOptionType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //CheckOptionType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/CursorBlockType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/CursorBlockType.java
new file mode 100644
index 0000000..3feecde
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/CursorBlockType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: CursorBlockType.java,v 1.1 2009/02/23 22:15:32 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Cursor Block Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getCursorBlockType()
+ * @model
+ * @generated
+ */
+public final class CursorBlockType extends AbstractEnumerator {
+ /**
+ * The '<em><b>BLOCK UNAMBIGUOUS CURSORS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLOCK UNAMBIGUOUS CURSORS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLOCK_UNAMBIGUOUS_CURSORS_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLOCK_UNAMBIGUOUS_CURSORS = 0;
+
+ /**
+ * The '<em><b>BLOCK ALL CURSORS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLOCK ALL CURSORS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLOCK_ALL_CURSORS_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLOCK_ALL_CURSORS = 1;
+
+ /**
+ * The '<em><b>NO BLOCKING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO BLOCKING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_BLOCKING_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_BLOCKING = 2;
+
+ /**
+ * The '<em><b>BLOCK UNAMBIGUOUS CURSORS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLOCK_UNAMBIGUOUS_CURSORS
+ * @generated
+ * @ordered
+ */
+ public static final CursorBlockType BLOCK_UNAMBIGUOUS_CURSORS_LITERAL = new CursorBlockType(BLOCK_UNAMBIGUOUS_CURSORS, "BLOCK_UNAMBIGUOUS_CURSORS", "BLOCK_UNAMBIGUOUS_CURSORS"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>BLOCK ALL CURSORS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLOCK_ALL_CURSORS
+ * @generated
+ * @ordered
+ */
+ public static final CursorBlockType BLOCK_ALL_CURSORS_LITERAL = new CursorBlockType(BLOCK_ALL_CURSORS, "BLOCK_ALL_CURSORS", "BLOCK_ALL_CURSORS"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>NO BLOCKING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_BLOCKING
+ * @generated
+ * @ordered
+ */
+ public static final CursorBlockType NO_BLOCKING_LITERAL = new CursorBlockType(NO_BLOCKING, "NO_BLOCKING", "NO_BLOCKING"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Cursor Block Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final CursorBlockType[] VALUES_ARRAY =
+ new CursorBlockType[] {
+ BLOCK_UNAMBIGUOUS_CURSORS_LITERAL,
+ BLOCK_ALL_CURSORS_LITERAL,
+ NO_BLOCKING_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Cursor Block Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Cursor Block Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CursorBlockType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CursorBlockType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cursor Block Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CursorBlockType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ CursorBlockType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Cursor Block Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CursorBlockType get(int value) {
+ switch (value) {
+ case BLOCK_UNAMBIGUOUS_CURSORS: return BLOCK_UNAMBIGUOUS_CURSORS_LITERAL;
+ case BLOCK_ALL_CURSORS: return BLOCK_ALL_CURSORS_LITERAL;
+ case NO_BLOCKING: return NO_BLOCKING_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private CursorBlockType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //CursorBlockType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/DataPartitionMethod.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/DataPartitionMethod.java
new file mode 100644
index 0000000..a51773a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/DataPartitionMethod.java
@@ -0,0 +1,124 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DataPartitionMethod.java,v 1.3 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Data Partition Method</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getDataPartitionMethod()
+ * @model
+ * @generated
+ */
+public final class DataPartitionMethod extends AbstractEnumerator {
+ /**
+ * The '<em><b>RANGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RANGE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RANGE = 0;
+
+ /**
+ * The '<em><b>RANGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RANGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RANGE
+ * @generated
+ * @ordered
+ */
+ public static final DataPartitionMethod RANGE_LITERAL = new DataPartitionMethod(RANGE, "RANGE", "RANGE"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Data Partition Method</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DataPartitionMethod[] VALUES_ARRAY =
+ new DataPartitionMethod[] {
+ RANGE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Data Partition Method</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Data Partition Method</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataPartitionMethod get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DataPartitionMethod result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Data Partition Method</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataPartitionMethod getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DataPartitionMethod result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Data Partition Method</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataPartitionMethod get(int value) {
+ switch (value) {
+ case RANGE: return RANGE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DataPartitionMethod(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //DataPartitionMethod
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ExplainSnaphotType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ExplainSnaphotType.java
new file mode 100644
index 0000000..a964ad5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ExplainSnaphotType.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExplainSnaphotType.java,v 1.1 2009/02/23 22:15:32 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Explain Snaphot Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getExplainSnaphotType()
+ * @model
+ * @generated
+ */
+public final class ExplainSnaphotType extends AbstractEnumerator {
+ /**
+ * The '<em><b>ALL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ALL = 0;
+
+ /**
+ * The '<em><b>NO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO = 1;
+
+ /**
+ * The '<em><b>REOPT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REOPT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REOPT_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REOPT = 2;
+
+ /**
+ * The '<em><b>YES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>YES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #YES_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int YES = 3;
+
+ /**
+ * The '<em><b>ALL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALL
+ * @generated
+ * @ordered
+ */
+ public static final ExplainSnaphotType ALL_LITERAL = new ExplainSnaphotType(ALL, "ALL", "ALL"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>NO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO
+ * @generated
+ * @ordered
+ */
+ public static final ExplainSnaphotType NO_LITERAL = new ExplainSnaphotType(NO, "NO", "NO"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>REOPT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REOPT
+ * @generated
+ * @ordered
+ */
+ public static final ExplainSnaphotType REOPT_LITERAL = new ExplainSnaphotType(REOPT, "REOPT", "REOPT"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>YES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #YES
+ * @generated
+ * @ordered
+ */
+ public static final ExplainSnaphotType YES_LITERAL = new ExplainSnaphotType(YES, "YES", "YES"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Explain Snaphot Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ExplainSnaphotType[] VALUES_ARRAY =
+ new ExplainSnaphotType[] {
+ ALL_LITERAL,
+ NO_LITERAL,
+ REOPT_LITERAL,
+ YES_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Explain Snaphot Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Explain Snaphot Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExplainSnaphotType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExplainSnaphotType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Explain Snaphot Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExplainSnaphotType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ExplainSnaphotType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Explain Snaphot Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ExplainSnaphotType get(int value) {
+ switch (value) {
+ case ALL: return ALL_LITERAL;
+ case NO: return NO_LITERAL;
+ case REOPT: return REOPT_LITERAL;
+ case YES: return YES_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ExplainSnaphotType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //ExplainSnaphotType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FederatedParameter.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FederatedParameter.java
new file mode 100644
index 0000000..c51ff72
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FederatedParameter.java
@@ -0,0 +1,146 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FederatedParameter.java,v 1.3 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Federated Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Federated Parameter object capturs the remote procedure atributes that are stored as options in the DB2 Catalog. Those that could not be inherited through the Parameter object, have been modeled specifically. These attributes are
+ * remoteCodePage and remoteParamTypeID.
+ * The attributes & where they can be found from the Parameter object are below.
+ * RemoteParamName - Remote parameter name, from name feild of any named object
+ * RemoteTypeSchema - found through getDatatype, inherited from Parameter
+ * Remote_Param_Type_Name - found through getDatatype, inherited from Parameter
+ * Remote_Remote_Param_Scale - found through getDatatype, inherited from Parameter
+ * Remote_Remote_Param_Length - found through getDatatype, inherited from Parameter
+ * Remote_Is_Return_Value - Found in ParameterMode enumeration, inherited from Parameter
+ *
+ *
+ * Remote_Codepage
+ * Remote_Param_Type_ID - the remote parameter type as an integer, attribute of Federated Paramter paramtypeid
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteCodePage <em>Remote Code Page</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteParamTypeID <em>Remote Param Type ID</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getFederatedProcedure <em>Federated Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteParameter <em>Remote Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedParameter()
+ * @model
+ * @generated
+ */
+public interface FederatedParameter extends Parameter {
+ /**
+ * Returns the value of the '<em><b>Remote Code Page</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Code Page</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Code Page</em>' attribute.
+ * @see #setRemoteCodePage(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedParameter_RemoteCodePage()
+ * @model
+ * @generated
+ */
+ int getRemoteCodePage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteCodePage <em>Remote Code Page</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Code Page</em>' attribute.
+ * @see #getRemoteCodePage()
+ * @generated
+ */
+ void setRemoteCodePage(int value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Param Type ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Param Type ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Param Type ID</em>' attribute.
+ * @see #setRemoteParamTypeID(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedParameter_RemoteParamTypeID()
+ * @model
+ * @generated
+ */
+ int getRemoteParamTypeID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteParamTypeID <em>Remote Param Type ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Param Type ID</em>' attribute.
+ * @see #getRemoteParamTypeID()
+ * @generated
+ */
+ void setRemoteParamTypeID(int value);
+
+ /**
+ * Returns the value of the '<em><b>Federated Procedure</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedParameter <em>Federated Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Federated Procedure</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Federated Procedure</em>' reference.
+ * @see #setFederatedProcedure(FederatedProcedure)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedParameter_FederatedProcedure()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedParameter
+ * @model opposite="federatedParameter" required="true"
+ * @generated
+ */
+ FederatedProcedure getFederatedProcedure();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getFederatedProcedure <em>Federated Procedure</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Federated Procedure</em>' reference.
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ void setFederatedProcedure(FederatedProcedure value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Parameter</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.routines.Parameter}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Parameter</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Parameter</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedParameter_RemoteParameter()
+ * @model type="org.eclipse.datatools.modelbase.sql.routines.Parameter"
+ * @generated
+ */
+ EList getRemoteParameter();
+
+} // FederatedParameter
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FederatedProcedure.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FederatedProcedure.java
new file mode 100644
index 0000000..060c33c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FederatedProcedure.java
@@ -0,0 +1,325 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FederatedProcedure.java,v 1.3 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Federated Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteUniqueId <em>Remote Unique Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteServer <em>Remote Server</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteSchema <em>Remote Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemotePackage <em>Remote Package</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteProcedureName <em>Remote Procedure Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfParameters <em>Number Of Parameters</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getResultSetsToClient <em>Result Sets To Client</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfRefCursors <em>Number Of Ref Cursors</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#isAllResultSetsToCaller <em>All Result Sets To Caller</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedProcedure <em>Federated Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteProcedure <em>Remote Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedParameter <em>Federated Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure()
+ * @model
+ * @generated
+ */
+public interface FederatedProcedure extends DB2Procedure {
+ /**
+ * Returns the value of the '<em><b>Remote Unique Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Unique Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Unique Id</em>' attribute.
+ * @see #setRemoteUniqueId(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_RemoteUniqueId()
+ * @model
+ * @generated
+ */
+ String getRemoteUniqueId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteUniqueId <em>Remote Unique Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Unique Id</em>' attribute.
+ * @see #getRemoteUniqueId()
+ * @generated
+ */
+ void setRemoteUniqueId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Server</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Server</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Server</em>' attribute.
+ * @see #setRemoteServer(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_RemoteServer()
+ * @model
+ * @generated
+ */
+ String getRemoteServer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteServer <em>Remote Server</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Server</em>' attribute.
+ * @see #getRemoteServer()
+ * @generated
+ */
+ void setRemoteServer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Schema</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Schema</em>' attribute.
+ * @see #setRemoteSchema(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_RemoteSchema()
+ * @model
+ * @generated
+ */
+ String getRemoteSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteSchema <em>Remote Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Schema</em>' attribute.
+ * @see #getRemoteSchema()
+ * @generated
+ */
+ void setRemoteSchema(String value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Package</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Package</em>' attribute.
+ * @see #setRemotePackage(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_RemotePackage()
+ * @model
+ * @generated
+ */
+ String getRemotePackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemotePackage <em>Remote Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Package</em>' attribute.
+ * @see #getRemotePackage()
+ * @generated
+ */
+ void setRemotePackage(String value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Procedure Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Procedure Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Procedure Name</em>' attribute.
+ * @see #setRemoteProcedureName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_RemoteProcedureName()
+ * @model
+ * @generated
+ */
+ String getRemoteProcedureName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteProcedureName <em>Remote Procedure Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Procedure Name</em>' attribute.
+ * @see #getRemoteProcedureName()
+ * @generated
+ */
+ void setRemoteProcedureName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Number Of Parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Parameters</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Parameters</em>' attribute.
+ * @see #setNumberOfParameters(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_NumberOfParameters()
+ * @model
+ * @generated
+ */
+ int getNumberOfParameters();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfParameters <em>Number Of Parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Parameters</em>' attribute.
+ * @see #getNumberOfParameters()
+ * @generated
+ */
+ void setNumberOfParameters(int value);
+
+ /**
+ * Returns the value of the '<em><b>Result Sets To Client</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Result Sets To Client</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Result Sets To Client</em>' attribute.
+ * @see #setResultSetsToClient(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_ResultSetsToClient()
+ * @model
+ * @generated
+ */
+ String getResultSetsToClient();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getResultSetsToClient <em>Result Sets To Client</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Result Sets To Client</em>' attribute.
+ * @see #getResultSetsToClient()
+ * @generated
+ */
+ void setResultSetsToClient(String value);
+
+ /**
+ * Returns the value of the '<em><b>Number Of Ref Cursors</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Ref Cursors</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Ref Cursors</em>' attribute.
+ * @see #setNumberOfRefCursors(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_NumberOfRefCursors()
+ * @model
+ * @generated
+ */
+ int getNumberOfRefCursors();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfRefCursors <em>Number Of Ref Cursors</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Ref Cursors</em>' attribute.
+ * @see #getNumberOfRefCursors()
+ * @generated
+ */
+ void setNumberOfRefCursors(int value);
+
+ /**
+ * Returns the value of the '<em><b>All Result Sets To Caller</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>All Result Sets To Caller</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>All Result Sets To Caller</em>' attribute.
+ * @see #setAllResultSetsToCaller(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_AllResultSetsToCaller()
+ * @model
+ * @generated
+ */
+ boolean isAllResultSetsToCaller();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#isAllResultSetsToCaller <em>All Result Sets To Caller</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>All Result Sets To Caller</em>' attribute.
+ * @see #isAllResultSetsToCaller()
+ * @generated
+ */
+ void setAllResultSetsToCaller(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Federated Procedure</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Federated Procedure</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Federated Procedure</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_FederatedProcedure()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure"
+ * @generated
+ */
+ EList getFederatedProcedure();
+
+ /**
+ * Returns the value of the '<em><b>Remote Procedure</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.routines.Procedure}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Procedure</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Procedure</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_RemoteProcedure()
+ * @model type="org.eclipse.datatools.modelbase.sql.routines.Procedure"
+ * @generated
+ */
+ EList getRemoteProcedure();
+
+ /**
+ * Returns the value of the '<em><b>Federated Parameter</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getFederatedProcedure <em>Federated Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Federated Parameter</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Federated Parameter</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFederatedProcedure_FederatedParameter()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getFederatedProcedure
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter" opposite="federatedProcedure"
+ * @generated
+ */
+ EList getFederatedParameter();
+
+} // FederatedProcedure
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FileSystemCachingType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FileSystemCachingType.java
new file mode 100644
index 0000000..047ea42
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/FileSystemCachingType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>File System Caching Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getFileSystemCachingType()
+ * @model
+ * @generated
+ */
+public final class FileSystemCachingType extends AbstractEnumerator {
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE = 0;
+
+ /**
+ * The '<em><b>FILE CACHING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FILE CACHING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FILE_CACHING_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FILE_CACHING = 1;
+
+ /**
+ * The '<em><b>NO FILE CACHING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO FILE CACHING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_FILE_CACHING_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_FILE_CACHING = 2;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @generated
+ * @ordered
+ */
+ public static final FileSystemCachingType NONE_LITERAL = new FileSystemCachingType(NONE, "NONE", "NONE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>FILE CACHING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FILE_CACHING
+ * @generated
+ * @ordered
+ */
+ public static final FileSystemCachingType FILE_CACHING_LITERAL = new FileSystemCachingType(FILE_CACHING, "FILE_CACHING", "FILE_CACHING"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>NO FILE CACHING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_FILE_CACHING
+ * @generated
+ * @ordered
+ */
+ public static final FileSystemCachingType NO_FILE_CACHING_LITERAL = new FileSystemCachingType(NO_FILE_CACHING, "NO_FILE_CACHING", "NO_FILE_CACHING"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>File System Caching Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final FileSystemCachingType[] VALUES_ARRAY =
+ new FileSystemCachingType[] {
+ NONE_LITERAL,
+ FILE_CACHING_LITERAL,
+ NO_FILE_CACHING_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>File System Caching Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>File System Caching Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FileSystemCachingType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FileSystemCachingType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>File System Caching Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FileSystemCachingType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ FileSystemCachingType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>File System Caching Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static FileSystemCachingType get(int value) {
+ switch (value) {
+ case NONE: return NONE_LITERAL;
+ case FILE_CACHING: return FILE_CACHING_LITERAL;
+ case NO_FILE_CACHING: return NO_FILE_CACHING_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private FileSystemCachingType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //FileSystemCachingType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWAdminServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWAdminServer.java
new file mode 100644
index 0000000..379161d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWAdminServer.java
@@ -0,0 +1,60 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Admin Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Administration Server
+ *
+ * The DB2(R) Administration Server (DAS) is a control point used only to assist with tasks on DB2 servers. You must have a running DAS if you want to use available tools like the Configuration Assistant, the Control Center, or the Development Center. DAS assists the Control Center and Configuration Assistant when working on the following administration tasks:
+ *
+ * Enabling remote administration of DB2 servers.
+ * Providing the facility for job management, including the ability to schedule the running of both DB2 and operating system command scripts. These command scripts are user-defined.
+ * Defining the scheduling of jobs, viewing the results of completed jobs, and performing other administrative tasks against jobs located either remotely or locally to the DAS using the Task Center.
+ * Providing a means for discovering information about the configuration of DB2 instances, databases, and other DB2 administration servers in conjunction with the DB2 Discovery utility. This information is used by the Configuration Assistant and the Control Center to simplify and automate the configuration of client connections to DB2 databases.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAdminServer#getInstances <em>Instances</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWAdminServer()
+ * @model
+ * @generated
+ */
+public interface LUWAdminServer extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Instances</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Instances</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Instances</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWAdminServer_Instances()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getServer
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager" opposite="server"
+ * @generated
+ */
+ EList getInstances();
+
+} // LUWAdminServer
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWArrayDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWArrayDataType.java
new file mode 100644
index 0000000..bfab03f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWArrayDataType.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWArrayDataType.java,v 1.1 2009/02/16 19:01:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Array Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType#getArrayIndexElementType <em>Array Index Element Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWArrayDataType()
+ * @model
+ * @generated
+ */
+public interface LUWArrayDataType extends ArrayDataType, UserDefinedType {
+
+ /**
+ * Returns the value of the '<em><b>Array Index Element Type</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType#getLUWArrayDataType <em>LUW Array Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Array Index Element Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Array Index Element Type</em>' containment reference.
+ * @see #setArrayIndexElementType(ArrayIndexElementType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWArrayDataType_ArrayIndexElementType()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType#getLUWArrayDataType
+ * @model opposite="LUWArrayDataType" containment="true"
+ * @generated
+ */
+ ArrayIndexElementType getArrayIndexElementType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType#getArrayIndexElementType <em>Array Index Element Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Array Index Element Type</em>' containment reference.
+ * @see #getArrayIndexElementType()
+ * @generated
+ */
+ void setArrayIndexElementType(ArrayIndexElementType value);
+} // LUWArrayDataType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWAttributeDefinition.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWAttributeDefinition.java
new file mode 100644
index 0000000..cecab26
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWAttributeDefinition.java
@@ -0,0 +1,82 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWAttributeDefinition.java,v 1.4 2007/10/12 23:05:36 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Attribute Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBLogged <em>LOB Logged</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBCompacted <em>LOB Compacted</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWAttributeDefinition()
+ * @model
+ * @generated
+ */
+public interface LUWAttributeDefinition extends AttributeDefinition {
+ /**
+ * Returns the value of the '<em><b>LOB Logged</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LOB Logged</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LOB Logged</em>' attribute.
+ * @see #setLOBLogged(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWAttributeDefinition_LOBLogged()
+ * @model default="true"
+ * @generated
+ */
+ boolean isLOBLogged();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBLogged <em>LOB Logged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LOB Logged</em>' attribute.
+ * @see #isLOBLogged()
+ * @generated
+ */
+ void setLOBLogged(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>LOB Compacted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LOB Compacted</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LOB Compacted</em>' attribute.
+ * @see #setLOBCompacted(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWAttributeDefinition_LOBCompacted()
+ * @model
+ * @generated
+ */
+ boolean isLOBCompacted();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBCompacted <em>LOB Compacted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LOB Compacted</em>' attribute.
+ * @see #isLOBCompacted()
+ * @generated
+ */
+ void setLOBCompacted(boolean value);
+
+} // LUWAttributeDefinition
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWBufferPool.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWBufferPool.java
new file mode 100644
index 0000000..1340e35
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWBufferPool.java
@@ -0,0 +1,375 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Buffer Pool</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Table spaces and other storage structures
+ *
+ * Storage structures contain database objects. The basic storage structure is the table space; it contains tables, indexes, large objects, and data defined with a LONG data type.
+ *
+ * There are two types of table spaces:
+ * - Database managed space (DMS): a table space that is managed by the database manager.
+ * - System managed space (SMS): a table space that is managed by the operating system.
+ *
+ * All table spaces consist of containers. A container describes where objects are stored. A subdirectory in a file system is an example of a container.
+ *
+ * When data is read from table space containers, it is placed in an area of memory called a buffer pool. A buffer pool is associated with a specific table space, thereby allowing control over which data will share the same memory areas for data buffering.
+ *
+ *
+ * NUMBLOCKPAGES number-of-pages:
+ * Specifies the number of pages that should exist in the block-based area. The number of pages must not be greater than 98 percent of the number of pages for the buffer pool (SQLSTATE 54052). Specifying the value 0 disables block I/O. The actual value of NUMBLOCKPAGES used will be a multiple of BLOCKSIZE.
+ *
+ * BLOCKSIZE number-of-pages:
+ * Specifies the number of pages in a block. The block size must be a value between 2 and 256 (SQLSTATE 54053). The default value is 32.
+ *
+ * PAGESIZE integer [K]:
+ * Defines the size of pages used for the bufferpool. The valid values for integer without the suffix K are 4 096, 8 192, 16 384 or 32 768. The valid values for integer with the suffix K are 4, 8, 16 or 32. An error occurs if the page size is not one of these values (SQLSTATE 428DE). The default is 4 096 byte (4K) pages. Any number of spaces is allowed between integer and K, including no space.
+ *
+ * EXTENDED STORAGE
+ * If extended storage is enabled, pages that are being evicted from this buffer pool will be cached in extended storage. (Extended storage is enabled by setting the database configuration parameters NUM_ESTORE_SEGS and ESTORE_SEG_SIZE to non-zero values.)
+ *
+ * NOT EXTENDED STORAGE
+ * Even if extended storage is enabled, pages that are being evicted from this buffer pool are not cached in extended storage.
+ *
+ * Notes:
+ * Compatibilities: for compatibility with previous versions of DB2:
+ * - NODE can be specified in place of DBPARTITIONNUM
+ * - NODES can be specified in place of DBPARTITIONNUMS
+ * - NODEGROUP can be specified in place of DATABASE PARTITION GROUP
+ *
+ * - If the buffer pool is created using the DEFERRED option, any table space created in this buffer pool will use a small system buffer pool of the same page size, until next database activation. The database has to be restarted for the buffer pool to become active and for table space assignments to the new buffer pool to take effect. The default option is IMMEDIATE.
+ * - A buffer pool cannot be created with both extended storage and block-based support.
+ * - There should be enough real memory on the machine for the total of all the buffer pools, as well as for the rest of the database manager and application requirements. If DB2 is unable to obtain memory for the regular buffer pools, it will attempt to start up with small system buffer pools, one for each page size (4K, 8K, 16K and 32K). In this situation, a warning will be returned to the user (SQLSTATE 01626), and the pages from all table spaces will use the system buffer pools.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getCreateType <em>Create Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPageSize <em>Page Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getBlockSize <em>Block Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getNumBlockPages <em>Num Block Pages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isExtendedStorage <em>Extended Storage</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isAutomatic <em>Automatic</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getTableSpaces <em>Table Spaces</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitions <em>Partitions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitionGroup <em>Partition Group</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSizeException <em>Size Exception</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool()
+ * @model
+ * @generated
+ */
+public interface LUWBufferPool extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Create Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Create Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Create Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType
+ * @see #setCreateType(BufferPoolType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_CreateType()
+ * @model
+ * @generated
+ */
+ BufferPoolType getCreateType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getCreateType <em>Create Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Create Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType
+ * @see #getCreateType()
+ * @generated
+ */
+ void setCreateType(BufferPoolType value);
+
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' attribute.
+ * @see #setSize(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_Size()
+ * @model
+ * @generated
+ */
+ int getSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSize <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' attribute.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(int value);
+
+ /**
+ * Returns the value of the '<em><b>Page Size</b></em>' attribute.
+ * The default value is <code>"FOUR_K"</code>.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Page Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Page Size</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType
+ * @see #setPageSize(PageSizeType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_PageSize()
+ * @model default="FOUR_K"
+ * @generated
+ */
+ PageSizeType getPageSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPageSize <em>Page Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Page Size</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType
+ * @see #getPageSize()
+ * @generated
+ */
+ void setPageSize(PageSizeType value);
+
+ /**
+ * Returns the value of the '<em><b>Block Size</b></em>' attribute.
+ * The default value is <code>"32"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Block Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Block Size</em>' attribute.
+ * @see #setBlockSize(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_BlockSize()
+ * @model default="32"
+ * @generated
+ */
+ int getBlockSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getBlockSize <em>Block Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Block Size</em>' attribute.
+ * @see #getBlockSize()
+ * @generated
+ */
+ void setBlockSize(int value);
+
+ /**
+ * Returns the value of the '<em><b>Num Block Pages</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num Block Pages</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num Block Pages</em>' attribute.
+ * @see #setNumBlockPages(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_NumBlockPages()
+ * @model
+ * @generated
+ */
+ int getNumBlockPages();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getNumBlockPages <em>Num Block Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num Block Pages</em>' attribute.
+ * @see #getNumBlockPages()
+ * @generated
+ */
+ void setNumBlockPages(int value);
+
+ /**
+ * Returns the value of the '<em><b>Extended Storage</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extended Storage</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extended Storage</em>' attribute.
+ * @see #setExtendedStorage(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_ExtendedStorage()
+ * @model
+ * @generated
+ */
+ boolean isExtendedStorage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isExtendedStorage <em>Extended Storage</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Extended Storage</em>' attribute.
+ * @see #isExtendedStorage()
+ * @generated
+ */
+ void setExtendedStorage(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Automatic</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Automatic</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Automatic</em>' attribute.
+ * @see #setAutomatic(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_Automatic()
+ * @model default="true"
+ * @generated
+ */
+ boolean isAutomatic();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isAutomatic <em>Automatic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Automatic</em>' attribute.
+ * @see #isAutomatic()
+ * @generated
+ */
+ void setAutomatic(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Table Spaces</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Spaces</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Spaces</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_TableSpaces()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getBufferPool
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace" opposite="bufferPool"
+ * @generated
+ */
+ EList getTableSpaces();
+
+ /**
+ * Returns the value of the '<em><b>Partitions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partitions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partitions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_Partitions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getBufferPool
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition" opposite="bufferPool"
+ * @generated
+ */
+ EList getPartitions();
+
+ /**
+ * Returns the value of the '<em><b>Partition Group</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Group</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Group</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_PartitionGroup()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getBufferPool
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup" opposite="bufferPool"
+ * @generated
+ */
+ EList getPartitionGroup();
+
+ /**
+ * Returns the value of the '<em><b>Database</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getBufferpools <em>Bufferpools</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Database</em>' reference.
+ * @see #setDatabase(LUWDatabase)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_Database()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getBufferpools
+ * @model opposite="bufferpools" required="true"
+ * @generated
+ */
+ LUWDatabase getDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getDatabase <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Database</em>' reference.
+ * @see #getDatabase()
+ * @generated
+ */
+ void setDatabase(LUWDatabase value);
+
+ /**
+ * Returns the value of the '<em><b>Size Exception</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size Exception</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size Exception</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPool_SizeException()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getBufferPool
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException" opposite="bufferPool" containment="true"
+ * @generated
+ */
+ EList getSizeException();
+
+} // LUWBufferPool
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWBufferPoolSizeException.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWBufferPoolSizeException.java
new file mode 100644
index 0000000..5b4c637
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWBufferPoolSizeException.java
@@ -0,0 +1,104 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWBufferPoolSizeException.java,v 1.1 2009/02/27 23:12:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Buffer Pool Size Exception</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getBufferPool <em>Buffer Pool</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getPartitions <em>Partitions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPoolSizeException()
+ * @model
+ * @generated
+ */
+public interface LUWBufferPoolSizeException extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' attribute.
+ * @see #setSize(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPoolSizeException_Size()
+ * @model
+ * @generated
+ */
+ int getSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getSize <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' attribute.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(int value);
+
+ /**
+ * Returns the value of the '<em><b>Buffer Pool</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSizeException <em>Size Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Buffer Pool</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Buffer Pool</em>' container reference.
+ * @see #setBufferPool(LUWBufferPool)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPoolSizeException_BufferPool()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSizeException
+ * @model opposite="sizeException" required="true"
+ * @generated
+ */
+ LUWBufferPool getBufferPool();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getBufferPool <em>Buffer Pool</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Buffer Pool</em>' container reference.
+ * @see #getBufferPool()
+ * @generated
+ */
+ void setBufferPool(LUWBufferPool value);
+
+ /**
+ * Returns the value of the '<em><b>Partitions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSizeException <em>Size Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partitions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partitions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWBufferPoolSizeException_Partitions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSizeException
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition" opposite="sizeException"
+ * @generated
+ */
+ EList getPartitions();
+
+} // LUWBufferPoolSizeException
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWColumn.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWColumn.java
new file mode 100644
index 0000000..e723cc1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWColumn.java
@@ -0,0 +1,209 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWColumn.java,v 1.9 2007/01/15 18:40:05 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobLogged <em>Lob Logged</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobCompacted <em>Lob Compacted</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getCompression <em>Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getInlineLength <em>Inline Length</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isHidden <em>Hidden</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getSecurityLabel <em>Security Label</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getOptions <em>Options</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn()
+ * @model
+ * @generated
+ */
+public interface LUWColumn extends DB2Column {
+ /**
+ * Returns the value of the '<em><b>Lob Logged</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lob Logged</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lob Logged</em>' attribute.
+ * @see #setLobLogged(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn_LobLogged()
+ * @model default="true"
+ * @generated
+ */
+ boolean isLobLogged();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobLogged <em>Lob Logged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lob Logged</em>' attribute.
+ * @see #isLobLogged()
+ * @generated
+ */
+ void setLobLogged(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Lob Compacted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lob Compacted</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lob Compacted</em>' attribute.
+ * @see #setLobCompacted(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn_LobCompacted()
+ * @model
+ * @generated
+ */
+ boolean isLobCompacted();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobCompacted <em>Lob Compacted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lob Compacted</em>' attribute.
+ * @see #isLobCompacted()
+ * @generated
+ */
+ void setLobCompacted(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Possible values: "COMPRESS SYSTEM DEFAULT", or "" (w/o quotes)
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Compression</em>' attribute.
+ * @see #setCompression(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn_Compression()
+ * @model
+ * @generated
+ */
+ String getCompression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getCompression <em>Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compression</em>' attribute.
+ * @see #getCompression()
+ * @generated
+ */
+ void setCompression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Inline Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inline Length</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inline Length</em>' attribute.
+ * @see #setInlineLength(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn_InlineLength()
+ * @model
+ * @generated
+ */
+ int getInlineLength();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getInlineLength <em>Inline Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inline Length</em>' attribute.
+ * @see #getInlineLength()
+ * @generated
+ */
+ void setInlineLength(int value);
+
+ /**
+ * Returns the value of the '<em><b>Hidden</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hidden</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hidden</em>' attribute.
+ * @see #setHidden(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn_Hidden()
+ * @model default="false"
+ * @generated
+ */
+ boolean isHidden();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isHidden <em>Hidden</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hidden</em>' attribute.
+ * @see #isHidden()
+ * @generated
+ */
+ void setHidden(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Security Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Security Label</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Security Label</em>' attribute.
+ * @see #setSecurityLabel(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn_SecurityLabel()
+ * @model
+ * @generated
+ */
+ String getSecurityLabel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getSecurityLabel <em>Security Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Security Label</em>' attribute.
+ * @see #getSecurityLabel()
+ * @generated
+ */
+ void setSecurityLabel(String value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWColumn_Options()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption" containment="true"
+ * @generated
+ */
+ EList getOptions();
+
+} // LUWColumn
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWContainerType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWContainerType.java
new file mode 100644
index 0000000..7657776
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWContainerType.java
@@ -0,0 +1,184 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWContainerType.java,v 1.7 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Container Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWContainerType()
+ * @model
+ * @generated
+ */
+public final class LUWContainerType extends AbstractEnumerator {
+ /**
+ * The '<em><b>DEVICE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEVICE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEVICE = 0;
+
+ /**
+ * The '<em><b>DIRECTORY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DIRECTORY_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DIRECTORY = 1;
+
+ /**
+ * The '<em><b>FILE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FILE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FILE = 2;
+
+ /**
+ * The '<em><b>DEVICE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEVICE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEVICE
+ * @generated
+ * @ordered
+ */
+ public static final LUWContainerType DEVICE_LITERAL = new LUWContainerType(DEVICE, "DEVICE", "DEVICE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>DIRECTORY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DIRECTORY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DIRECTORY
+ * @generated
+ * @ordered
+ */
+ public static final LUWContainerType DIRECTORY_LITERAL = new LUWContainerType(DIRECTORY, "DIRECTORY", "DIRECTORY"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>FILE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FILE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FILE
+ * @generated
+ * @ordered
+ */
+ public static final LUWContainerType FILE_LITERAL = new LUWContainerType(FILE, "FILE", "FILE"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Container Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWContainerType[] VALUES_ARRAY =
+ new LUWContainerType[] {
+ DEVICE_LITERAL,
+ DIRECTORY_LITERAL,
+ FILE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Container Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Container Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWContainerType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWContainerType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Container Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWContainerType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWContainerType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Container Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWContainerType get(int value) {
+ switch (value) {
+ case DEVICE: return DEVICE_LITERAL;
+ case DIRECTORY: return DIRECTORY_LITERAL;
+ case FILE: return FILE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWContainerType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWContainerType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWCursorDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWCursorDataType.java
new file mode 100644
index 0000000..80db000
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWCursorDataType.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWCursorDataType.java,v 1.1 2009/02/27 18:42:01 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cursor Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType#getRowType <em>Row Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWCursorDataType()
+ * @model
+ * @generated
+ */
+public interface LUWCursorDataType extends UserDefinedType, SQLObject {
+ /**
+ * Returns the value of the '<em><b>Row Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Row Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Row Type</em>' reference.
+ * @see #setRowType(LUWRowDataType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWCursorDataType_RowType()
+ * @model
+ * @generated
+ */
+ LUWRowDataType getRowType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType#getRowType <em>Row Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Row Type</em>' reference.
+ * @see #getRowType()
+ * @generated
+ */
+ void setRowType(LUWRowDataType value);
+
+} // LUWCursorDataType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDataPartition.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDataPartition.java
new file mode 100644
index 0000000..3c73825
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDataPartition.java
@@ -0,0 +1,244 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWDataPartition.java,v 1.7 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Partition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isLowInclusive <em>Low Inclusive</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isHighInclusive <em>High Inclusive</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getLOBDataTableSpace <em>LOB Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getRegularDataTableSpace <em>Regular Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getPartitionElements <em>Partition Elements</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getIndexDataTableSpace <em>Index Data Table Space</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition()
+ * @model
+ * @generated
+ */
+public interface LUWDataPartition extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_Id()
+ * @model
+ * @generated
+ */
+ int getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(int value);
+
+ /**
+ * Returns the value of the '<em><b>Low Inclusive</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Low Inclusive</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Low Inclusive</em>' attribute.
+ * @see #setLowInclusive(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_LowInclusive()
+ * @model
+ * @generated
+ */
+ boolean isLowInclusive();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isLowInclusive <em>Low Inclusive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Low Inclusive</em>' attribute.
+ * @see #isLowInclusive()
+ * @generated
+ */
+ void setLowInclusive(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>High Inclusive</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>High Inclusive</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>High Inclusive</em>' attribute.
+ * @see #setHighInclusive(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_HighInclusive()
+ * @model
+ * @generated
+ */
+ boolean isHighInclusive();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isHighInclusive <em>High Inclusive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>High Inclusive</em>' attribute.
+ * @see #isHighInclusive()
+ * @generated
+ */
+ void setHighInclusive(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>LOB Data Table Space</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataPartition <em>LOB Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LOB Data Table Space</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LOB Data Table Space</em>' reference.
+ * @see #setLOBDataTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_LOBDataTableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataPartition
+ * @model opposite="LOBDataPartition"
+ * @generated
+ */
+ LUWTableSpace getLOBDataTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getLOBDataTableSpace <em>LOB Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LOB Data Table Space</em>' reference.
+ * @see #getLOBDataTableSpace()
+ * @generated
+ */
+ void setLOBDataTableSpace(LUWTableSpace value);
+
+ /**
+ * Returns the value of the '<em><b>Regular Data Table Space</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataPartition <em>Regular Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Regular Data Table Space</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Regular Data Table Space</em>' reference.
+ * @see #setRegularDataTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_RegularDataTableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataPartition
+ * @model opposite="regularDataPartition"
+ * @generated
+ */
+ LUWTableSpace getRegularDataTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getRegularDataTableSpace <em>Regular Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Regular Data Table Space</em>' reference.
+ * @see #getRegularDataTableSpace()
+ * @generated
+ */
+ void setRegularDataTableSpace(LUWTableSpace value);
+
+ /**
+ * Returns the value of the '<em><b>Partition Elements</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getPartition <em>Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Elements</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Elements</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_PartitionElements()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getPartition
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement" opposite="partition" required="true"
+ * @generated
+ */
+ EList getPartitionElements();
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitions <em>Data Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' container reference.
+ * @see #setTable(LUWStorageTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_Table()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitions
+ * @model opposite="dataPartitions" required="true"
+ * @generated
+ */
+ LUWStorageTable getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getTable <em>Table</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' container reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(LUWStorageTable value);
+
+ /**
+ * Returns the value of the '<em><b>Index Data Table Space</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataPartition <em>Index Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Index Data Table Space</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Index Data Table Space</em>' reference.
+ * @see #setIndexDataTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartition_IndexDataTableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataPartition
+ * @model opposite="indexDataPartition"
+ * @generated
+ */
+ LUWTableSpace getIndexDataTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getIndexDataTableSpace <em>Index Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Index Data Table Space</em>' reference.
+ * @see #getIndexDataTableSpace()
+ * @generated
+ */
+ void setIndexDataTableSpace(LUWTableSpace value);
+
+} // LUWDataPartition
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDataPartitionKey.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDataPartitionKey.java
new file mode 100644
index 0000000..86dce18
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDataPartitionKey.java
@@ -0,0 +1,107 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWDataPartitionKey.java,v 1.4 2008/01/29 00:04:56 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Partition Key</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionMethod <em>Partition Method</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionExpressions <em>Partition Expressions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartitionKey()
+ * @model
+ * @generated
+ */
+public interface LUWDataPartitionKey extends EObject {
+ /**
+ * Returns the value of the '<em><b>Partition Method</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Method</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Method</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod
+ * @see #setPartitionMethod(DataPartitionMethod)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartitionKey_PartitionMethod()
+ * @model
+ * @generated
+ */
+ DataPartitionMethod getPartitionMethod();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionMethod <em>Partition Method</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Partition Method</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod
+ * @see #getPartitionMethod()
+ * @generated
+ */
+ void setPartitionMethod(DataPartitionMethod value);
+
+ /**
+ * Returns the value of the '<em><b>Partition Expressions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getKey <em>Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Expressions</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Expressions</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartitionKey_PartitionExpressions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getKey
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression" opposite="key" containment="true" required="true"
+ * @generated
+ */
+ EList getPartitionExpressions();
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitionKey <em>Data Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' container reference.
+ * @see #setTable(LUWStorageTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDataPartitionKey_Table()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitionKey
+ * @model opposite="dataPartitionKey" required="true"
+ * @generated
+ */
+ LUWStorageTable getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getTable <em>Table</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' container reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(LUWStorageTable value);
+
+} // LUWDataPartitionKey
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabase.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabase.java
new file mode 100644
index 0000000..5f38188
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabase.java
@@ -0,0 +1,264 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Database;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Database</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Relational databases
+ *
+ * A relational database is a database that is treated as a set of tables and manipulated in accordance with the relational model of data. It contains a set of objects used to store, manage, and access data. Examples of such objects are tables, views, indexes, functions, triggers, and packages.
+ *
+ * A partitioned relational database is a relational database whose data is managed across multiple partitions (also called nodes). This separation of data across partitions is transparent to users of most SQL statements. However, some data definition language (DDL) statements take partition information into consideration (for example, CREATE DATABASE PARTITION GROUP). (Data definition language is the subset of SQL statements used to describe data relationships in a database.)
+ *
+ * A federated database is a relational database whose data is stored in multiple data sources (such as separate relational databases). The data appears as if it were all in a single large database and can be accessed through traditional SQL queries. Changes to the data can be explicitly directed to the appropriate data source.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getGroups <em>Groups</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getWrappers <em>Wrappers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getServers <em>Servers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getFunctionMappings <em>Function Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTypeMappings <em>Type Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getReverseTypeMappings <em>Reverse Type Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getBufferpools <em>Bufferpools</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTablespaces <em>Tablespaces</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getStorageGroups <em>Storage Groups</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getDefaultStorageGroup <em>Default Storage Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase()
+ * @model
+ * @generated
+ */
+public interface LUWDatabase extends DB2Database {
+ /**
+ * Returns the value of the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Federated</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Federated</em>' attribute.
+ * @see #setFederated(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_Federated()
+ * @model
+ * @generated
+ */
+ boolean isFederated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#isFederated <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Federated</em>' attribute.
+ * @see #isFederated()
+ * @generated
+ */
+ void setFederated(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Groups</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Groups</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Groups</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_Groups()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getDatabase
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup" opposite="database"
+ * @generated
+ */
+ EList getGroups();
+
+ /**
+ * Returns the value of the '<em><b>Wrappers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLUWDatabase <em>LUW Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Wrappers</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Wrappers</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_Wrappers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLUWDatabase
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper" opposite="LUWDatabase"
+ * @generated
+ */
+ EList getWrappers();
+
+ /**
+ * Returns the value of the '<em><b>Servers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getLUWDatabase <em>LUW Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Servers</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Servers</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_Servers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getLUWDatabase
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer" opposite="LUWDatabase"
+ * @generated
+ */
+ EList getServers();
+
+ /**
+ * Returns the value of the '<em><b>Function Mappings</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLUWDatabase <em>LUW Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Function Mappings</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Function Mappings</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_FunctionMappings()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLUWDatabase
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping" opposite="LUWDatabase"
+ * @generated
+ */
+ EList getFunctionMappings();
+
+ /**
+ * Returns the value of the '<em><b>Type Mappings</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type Mappings</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type Mappings</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_TypeMappings()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping"
+ * @generated
+ */
+ EList getTypeMappings();
+
+ /**
+ * Returns the value of the '<em><b>Reverse Type Mappings</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reverse Type Mappings</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reverse Type Mappings</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_ReverseTypeMappings()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping"
+ * @generated
+ */
+ EList getReverseTypeMappings();
+
+ /**
+ * Returns the value of the '<em><b>Bufferpools</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bufferpools</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bufferpools</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_Bufferpools()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getDatabase
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool" opposite="database" required="true"
+ * @generated
+ */
+ EList getBufferpools();
+
+ /**
+ * Returns the value of the '<em><b>Tablespaces</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tablespaces</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tablespaces</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_Tablespaces()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDatabase
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace" opposite="database"
+ * @generated
+ */
+ EList getTablespaces();
+
+ /**
+ * Returns the value of the '<em><b>Storage Groups</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Storage Groups</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Storage Groups</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_StorageGroups()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDatabase
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup" opposite="database"
+ * @generated
+ */
+ EList getStorageGroups();
+
+ /**
+ * Returns the value of the '<em><b>Default Storage Group</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Storage Group</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Storage Group</em>' reference.
+ * @see #setDefaultStorageGroup(LUWStorageGroup)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabase_DefaultStorageGroup()
+ * @model
+ * @generated
+ */
+ LUWStorageGroup getDefaultStorageGroup();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getDefaultStorageGroup <em>Default Storage Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Storage Group</em>' reference.
+ * @see #getDefaultStorageGroup()
+ * @generated
+ */
+ void setDefaultStorageGroup(LUWStorageGroup value);
+
+} // LUWDatabase
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabaseContainer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabaseContainer.java
new file mode 100644
index 0000000..a80999b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabaseContainer.java
@@ -0,0 +1,209 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.datatools.enablement.ibm.db2.model.UnitType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Database Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ *
+ * Table spaces and other storage structures
+ *
+ * Storage structures contain database objects. The basic storage structure is the table space; it contains tables, indexes, large objects, and data defined with a LONG data type.
+ *
+ * There are two types of table spaces:
+ * - Database managed space (DMS): a table space that is managed by the database manager.
+ * - System managed space (SMS): a table space that is managed by the operating system.
+ *
+ * All table spaces consist of containers. A container describes where objects are stored. A subdirectory in a file system is an example of a container.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getContainerType <em>Container Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeInPages <em>Size In Pages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeUnits <em>Size Units</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getTableSpace <em>Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getPartitions <em>Partitions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabaseContainer()
+ * @model
+ * @generated
+ */
+public interface LUWDatabaseContainer extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Container Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Container Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Container Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType
+ * @see #setContainerType(LUWContainerType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabaseContainer_ContainerType()
+ * @model
+ * @generated
+ */
+ LUWContainerType getContainerType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getContainerType <em>Container Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Container Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType
+ * @see #getContainerType()
+ * @generated
+ */
+ void setContainerType(LUWContainerType value);
+
+ /**
+ * Returns the value of the '<em><b>Size In Pages</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size In Pages</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size In Pages</em>' attribute.
+ * @see #setSizeInPages(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabaseContainer_SizeInPages()
+ * @model
+ * @generated
+ */
+ int getSizeInPages();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeInPages <em>Size In Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size In Pages</em>' attribute.
+ * @see #getSizeInPages()
+ * @generated
+ */
+ void setSizeInPages(int value);
+
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' attribute.
+ * @see #setSize(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabaseContainer_Size()
+ * @model
+ * @generated
+ */
+ int getSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSize <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' attribute.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(int value);
+
+ /**
+ * Returns the value of the '<em><b>Size Units</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.UnitType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size Units</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size Units</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #setSizeUnits(UnitType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabaseContainer_SizeUnits()
+ * @model
+ * @generated
+ */
+ UnitType getSizeUnits();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeUnits <em>Size Units</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size Units</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #getSizeUnits()
+ * @generated
+ */
+ void setSizeUnits(UnitType value);
+
+ /**
+ * Returns the value of the '<em><b>Table Space</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getContainers <em>Containers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Space</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Space</em>' container reference.
+ * @see #setTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabaseContainer_TableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getContainers
+ * @model opposite="containers" required="true"
+ * @generated
+ */
+ LUWTableSpace getTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getTableSpace <em>Table Space</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table Space</em>' container reference.
+ * @see #getTableSpace()
+ * @generated
+ */
+ void setTableSpace(LUWTableSpace value);
+
+ /**
+ * Returns the value of the '<em><b>Partitions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getContainers <em>Containers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partitions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partitions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabaseContainer_Partitions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getContainers
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition" opposite="containers"
+ * @generated
+ */
+ EList getPartitions();
+
+} // LUWDatabaseContainer
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabasePackage.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabasePackage.java
new file mode 100644
index 0000000..c3f4bae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabasePackage.java
@@ -0,0 +1,195 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWDatabasePackage.java,v 1.3 2009/03/16 21:08:37 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Database Package</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCreator <em>Creator</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getBinder <em>Binder</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCursorBlock <em>Cursor Block</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getNumberOfSections <em>Number Of Sections</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getOptimizationClass <em>Optimization Class</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getExplainSnapshot <em>Explain Snapshot</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePackage()
+ * @model
+ * @generated
+ */
+public interface LUWDatabasePackage extends DB2Package {
+
+ /**
+ * Returns the value of the '<em><b>Creator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Creator</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Creator</em>' attribute.
+ * @see #setCreator(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePackage_Creator()
+ * @model
+ * @generated
+ */
+ String getCreator();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCreator <em>Creator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Creator</em>' attribute.
+ * @see #getCreator()
+ * @generated
+ */
+ void setCreator(String value);
+
+ /**
+ * Returns the value of the '<em><b>Binder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Binder</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Binder</em>' attribute.
+ * @see #setBinder(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePackage_Binder()
+ * @model
+ * @generated
+ */
+ String getBinder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getBinder <em>Binder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Binder</em>' attribute.
+ * @see #getBinder()
+ * @generated
+ */
+ void setBinder(String value);
+
+ /**
+ * Returns the value of the '<em><b>Cursor Block</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cursor Block</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cursor Block</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType
+ * @see #setCursorBlock(CursorBlockType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePackage_CursorBlock()
+ * @model
+ * @generated
+ */
+ CursorBlockType getCursorBlock();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCursorBlock <em>Cursor Block</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cursor Block</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType
+ * @see #getCursorBlock()
+ * @generated
+ */
+ void setCursorBlock(CursorBlockType value);
+
+ /**
+ * Returns the value of the '<em><b>Number Of Sections</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number Of Sections</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number Of Sections</em>' attribute.
+ * @see #setNumberOfSections(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePackage_NumberOfSections()
+ * @model
+ * @generated
+ */
+ int getNumberOfSections();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getNumberOfSections <em>Number Of Sections</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number Of Sections</em>' attribute.
+ * @see #getNumberOfSections()
+ * @generated
+ */
+ void setNumberOfSections(int value);
+
+ /**
+ * Returns the value of the '<em><b>Optimization Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optimization Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optimization Class</em>' attribute.
+ * @see #setOptimizationClass(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePackage_OptimizationClass()
+ * @model
+ * @generated
+ */
+ int getOptimizationClass();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getOptimizationClass <em>Optimization Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optimization Class</em>' attribute.
+ * @see #getOptimizationClass()
+ * @generated
+ */
+ void setOptimizationClass(int value);
+
+ /**
+ * Returns the value of the '<em><b>Explain Snapshot</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Explain Snapshot</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Explain Snapshot</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType
+ * @see #setExplainSnapshot(ExplainSnaphotType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePackage_ExplainSnapshot()
+ * @model
+ * @generated
+ */
+ ExplainSnaphotType getExplainSnapshot();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getExplainSnapshot <em>Explain Snapshot</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Explain Snapshot</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType
+ * @see #getExplainSnapshot()
+ * @generated
+ */
+ void setExplainSnapshot(ExplainSnaphotType value);
+} // LUWDatabasePackage
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabasePartition.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabasePartition.java
new file mode 100644
index 0000000..ce2c3ee
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWDatabasePartition.java
@@ -0,0 +1,290 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Database Partition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Usually, a single database partition exists on each physical node, and the processors on each system are used by the database manager at each database partition to manage its part of the total data in the database.
+ *
+ * Because data is divided across database partitions, you can use the power of multiple processors on multiple physical nodes to satisfy requests for information. Data retrieval and update requests are decomposed automatically into sub-requests, and executed in parallel among the applicable database partitions. The fact that databases are split across database partitions is transparent to users issuing SQL statements.
+ *
+ * User interaction occurs through one database partition, known as the coordinator node for that user. The coordinator runs on the same database partition as the application, or in the case of a remote application, the database partition to which that application is connected. Any database partition can be used as a coordinator node.
+ *
+ * DB2 supports a partitioned storage model that allows you to store data across several database partitions in the database. This means that the data is physically stored across more than one database partition, and yet can be accessed as though it were located in the same place. Applications and users accessing data in a partitioned database do not need to be aware of the physical location of the data.
+ *
+ * The data, while physically split, is used and managed as a logical whole. Users can choose how to partition their data by declaring partitioning keys. Users can also determine across which and how many database partitions their table data can be spread, by selecting the table space and the associated database partition group in which the data should be stored. In addition, an updatable partitioning map is used with a hashing algorithm to specify the mapping of partitioning key values to database partitions, which determines the placement and retrieval of each row of data. As a result, you can spread the workload across a partitioned database for large tables, while allowing smaller tables to be stored on one or more database partitions. Each database partition has local indexes on the data it stores, resulting in increased performance for local data access.
+ *
+ * You are not restricted to having all tables divided across all database partitions in the database. DB2 supports partial declustering, which means that you can divide tables and their table spaces across a subset of database partitions in the system.
+ *
+ * An alternative to consider when you want tables to be positioned on each database partition, is to use materialized query tables and then replicate those tables. You can create a materialized query table containing the information that you need, and then replicate it to each node.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getNumber <em>Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getPortNumber <em>Port Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getHostName <em>Host Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSwitchName <em>Switch Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#isCatalogPartition <em>Catalog Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getBufferPool <em>Buffer Pool</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getContainers <em>Containers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSizeException <em>Size Exception</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition()
+ * @model
+ * @generated
+ */
+public interface LUWDatabasePartition extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Number</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Number</em>' attribute.
+ * @see #setNumber(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_Number()
+ * @model
+ * @generated
+ */
+ int getNumber();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getNumber <em>Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Number</em>' attribute.
+ * @see #getNumber()
+ * @generated
+ */
+ void setNumber(int value);
+
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group</em>' reference.
+ * @see #setGroup(LUWPartitionGroup)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_Group()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getPartitions
+ * @model opposite="partitions" required="true"
+ * @generated
+ */
+ LUWPartitionGroup getGroup();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getGroup <em>Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Group</em>' reference.
+ * @see #getGroup()
+ * @generated
+ */
+ void setGroup(LUWPartitionGroup value);
+
+ /**
+ * Returns the value of the '<em><b>Buffer Pool</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Buffer Pool</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Buffer Pool</em>' reference.
+ * @see #setBufferPool(LUWBufferPool)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_BufferPool()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitions
+ * @model opposite="partitions" required="true"
+ * @generated
+ */
+ LUWBufferPool getBufferPool();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getBufferPool <em>Buffer Pool</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Buffer Pool</em>' reference.
+ * @see #getBufferPool()
+ * @generated
+ */
+ void setBufferPool(LUWBufferPool value);
+
+ /**
+ * Returns the value of the '<em><b>Containers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Containers</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Containers</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_Containers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getPartitions
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer" opposite="partitions"
+ * @generated
+ */
+ EList getContainers();
+
+ /**
+ * Returns the value of the '<em><b>Size Exception</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size Exception</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size Exception</em>' reference.
+ * @see #setSizeException(LUWBufferPoolSizeException)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_SizeException()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getPartitions
+ * @model opposite="partitions"
+ * @generated
+ */
+ LUWBufferPoolSizeException getSizeException();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSizeException <em>Size Exception</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size Exception</em>' reference.
+ * @see #getSizeException()
+ * @generated
+ */
+ void setSizeException(LUWBufferPoolSizeException value);
+
+ /**
+ * Returns the value of the '<em><b>Port Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Port Number</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Port Number</em>' attribute.
+ * @see #setPortNumber(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_PortNumber()
+ * @model transient="true"
+ * @generated
+ */
+ int getPortNumber();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getPortNumber <em>Port Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Port Number</em>' attribute.
+ * @see #getPortNumber()
+ * @generated
+ */
+ void setPortNumber(int value);
+
+ /**
+ * Returns the value of the '<em><b>Host Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Host Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Host Name</em>' attribute.
+ * @see #setHostName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_HostName()
+ * @model transient="true"
+ * @generated
+ */
+ String getHostName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getHostName <em>Host Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Host Name</em>' attribute.
+ * @see #getHostName()
+ * @generated
+ */
+ void setHostName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Switch Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Switch Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Switch Name</em>' attribute.
+ * @see #setSwitchName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_SwitchName()
+ * @model transient="true"
+ * @generated
+ */
+ String getSwitchName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSwitchName <em>Switch Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Switch Name</em>' attribute.
+ * @see #getSwitchName()
+ * @generated
+ */
+ void setSwitchName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Catalog Partition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Catalog Partition</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Catalog Partition</em>' attribute.
+ * @see #setCatalogPartition(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWDatabasePartition_CatalogPartition()
+ * @model transient="true"
+ * @generated
+ */
+ boolean isCatalogPartition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#isCatalogPartition <em>Catalog Partition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Catalog Partition</em>' attribute.
+ * @see #isCatalogPartition()
+ * @generated
+ */
+ void setCatalogPartition(boolean value);
+
+} // LUWDatabasePartition
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFactory.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFactory.java
new file mode 100644
index 0000000..147c13c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFactory.java
@@ -0,0 +1,563 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage
+ * @generated
+ */
+public interface LUWFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ LUWFactory eINSTANCE = org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Partition Group</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Partition Group</em>'.
+ * @generated
+ */
+ LUWPartitionGroup createLUWPartitionGroup();
+
+ /**
+ * Returns a new object of class '<em>Table Space</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Table Space</em>'.
+ * @generated
+ */
+ LUWTableSpace createLUWTableSpace();
+
+ /**
+ * Returns a new object of class '<em>Database Partition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Database Partition</em>'.
+ * @generated
+ */
+ LUWDatabasePartition createLUWDatabasePartition();
+
+ /**
+ * Returns a new object of class '<em>Database Container</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Database Container</em>'.
+ * @generated
+ */
+ LUWDatabaseContainer createLUWDatabaseContainer();
+
+ /**
+ * Returns a new object of class '<em>Admin Server</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Admin Server</em>'.
+ * @generated
+ */
+ LUWAdminServer createLUWAdminServer();
+
+ /**
+ * Returns a new object of class '<em>Buffer Pool</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Buffer Pool</em>'.
+ * @generated
+ */
+ LUWBufferPool createLUWBufferPool();
+
+ /**
+ * Returns a new object of class '<em>Table</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Table</em>'.
+ * @generated
+ */
+ LUWTable createLUWTable();
+
+ /**
+ * Returns a new object of class '<em>View</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>View</em>'.
+ * @generated
+ */
+ LUWView createLUWView();
+
+ /**
+ * Returns a new object of class '<em>Partition Key</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Partition Key</em>'.
+ * @generated
+ */
+ LUWPartitionKey createLUWPartitionKey();
+
+ /**
+ * Returns a new object of class '<em>Function Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Function Mapping</em>'.
+ * @generated
+ */
+ LUWFunctionMapping createLUWFunctionMapping();
+
+ /**
+ * Returns a new object of class '<em>Generic User Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generic User Mapping</em>'.
+ * @generated
+ */
+ LUWGenericUserMapping createLUWGenericUserMapping();
+
+ /**
+ * Returns a new object of class '<em>Type Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Type Mapping</em>'.
+ * @generated
+ */
+ LUWTypeMapping createLUWTypeMapping();
+
+ /**
+ * Returns a new object of class '<em>User Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>User Mapping</em>'.
+ * @generated
+ */
+ LUWUserMapping createLUWUserMapping();
+
+ /**
+ * Returns a new object of class '<em>Option</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Option</em>'.
+ * @generated
+ */
+ LUWOption createLUWOption();
+
+ /**
+ * Returns a new object of class '<em>Database</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Database</em>'.
+ * @generated
+ */
+ LUWDatabase createLUWDatabase();
+
+ /**
+ * Returns a new object of class '<em>Column</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Column</em>'.
+ * @generated
+ */
+ LUWColumn createLUWColumn();
+
+ /**
+ * Returns a new object of class '<em>Generic Nickname</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generic Nickname</em>'.
+ * @generated
+ */
+ LUWGenericNickname createLUWGenericNickname();
+
+ /**
+ * Returns a new object of class '<em>Generic Server</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generic Server</em>'.
+ * @generated
+ */
+ LUWGenericServer createLUWGenericServer();
+
+ /**
+ * Returns a new object of class '<em>Materialized Query Table</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Materialized Query Table</em>'.
+ * @generated
+ */
+ LUWMaterializedQueryTable createLUWMaterializedQueryTable();
+
+ /**
+ * Returns a new object of class '<em>Generic Wrapper</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Generic Wrapper</em>'.
+ * @generated
+ */
+ LUWGenericWrapper createLUWGenericWrapper();
+
+ /**
+ * Returns a new object of class '<em>Relational Remote Server</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Relational Remote Server</em>'.
+ * @generated
+ */
+ RelationalRemoteServer createRelationalRemoteServer();
+
+ /**
+ * Returns a new object of class '<em>Relational Remote Data Set</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Relational Remote Data Set</em>'.
+ * @generated
+ */
+ RelationalRemoteDataSet createRelationalRemoteDataSet();
+
+ /**
+ * Returns a new object of class '<em>Remote Server</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Remote Server</em>'.
+ * @generated
+ */
+ RemoteServer createRemoteServer();
+
+ /**
+ * Returns a new object of class '<em>Remote Data Set</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Remote Data Set</em>'.
+ * @generated
+ */
+ RemoteDataSet createRemoteDataSet();
+
+ /**
+ * Returns a new object of class '<em>Index</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Index</em>'.
+ * @generated
+ */
+ LUWIndex createLUWIndex();
+
+ /**
+ * Returns a new object of class '<em>Attribute Definition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Attribute Definition</em>'.
+ * @generated
+ */
+ LUWAttributeDefinition createLUWAttributeDefinition();
+
+ /**
+ * Returns a new object of class '<em>Federated Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Federated Procedure</em>'.
+ * @generated
+ */
+ FederatedProcedure createFederatedProcedure();
+
+ /**
+ * Returns a new object of class '<em>Federated Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Federated Parameter</em>'.
+ * @generated
+ */
+ FederatedParameter createFederatedParameter();
+
+ /**
+ * Returns a new object of class '<em>Partition Expression</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Partition Expression</em>'.
+ * @generated
+ */
+ LUWPartitionExpression createLUWPartitionExpression();
+
+ /**
+ * Returns a new object of class '<em>Partition Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Partition Element</em>'.
+ * @generated
+ */
+ LUWPartitionElement createLUWPartitionElement();
+
+ /**
+ * Returns a new object of class '<em>Data Partition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Partition</em>'.
+ * @generated
+ */
+ LUWDataPartition createLUWDataPartition();
+
+ /**
+ * Returns a new object of class '<em>Data Partition Key</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Partition Key</em>'.
+ * @generated
+ */
+ LUWDataPartitionKey createLUWDataPartitionKey();
+
+ /**
+ * Returns a new object of class '<em>Database Package</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Database Package</em>'.
+ * @generated
+ */
+ LUWDatabasePackage createLUWDatabasePackage();
+
+ /**
+ * Returns a new object of class '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module</em>'.
+ * @generated
+ */
+ LUWModule createLUWModule();
+
+ /**
+ * Returns a new object of class '<em>Module Function</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Function</em>'.
+ * @generated
+ */
+ LUWModuleFunction createLUWModuleFunction();
+
+ /**
+ * Returns a new object of class '<em>Module Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Procedure</em>'.
+ * @generated
+ */
+ LUWModuleProcedure createLUWModuleProcedure();
+
+ /**
+ * Returns a new object of class '<em>Module Condition</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Condition</em>'.
+ * @generated
+ */
+ LUWModuleCondition createLUWModuleCondition();
+
+ /**
+ * Returns a new object of class '<em>Global Variable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Global Variable</em>'.
+ * @generated
+ */
+ LUWGlobalVariable createLUWGlobalVariable();
+
+ /**
+ * Returns a new object of class '<em>Module Row Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Row Data Type</em>'.
+ * @generated
+ */
+ LUWModuleRowDataType createLUWModuleRowDataType();
+
+ /**
+ * Returns a new object of class '<em>Module Array Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Array Data Type</em>'.
+ * @generated
+ */
+ LUWModuleArrayDataType createLUWModuleArrayDataType();
+
+ /**
+ * Returns a new object of class '<em>Module Distinct Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Distinct Type</em>'.
+ * @generated
+ */
+ LUWModuleDistinctType createLUWModuleDistinctType();
+
+ /**
+ * Returns a new object of class '<em>Module Global Variable</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Global Variable</em>'.
+ * @generated
+ */
+ LUWModuleGlobalVariable createLUWModuleGlobalVariable();
+
+ /**
+ * Returns a new object of class '<em>Array Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Array Data Type</em>'.
+ * @generated
+ */
+ LUWArrayDataType createLUWArrayDataType();
+
+ /**
+ * Returns a new object of class '<em>Row Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Row Data Type</em>'.
+ * @generated
+ */
+ LUWRowDataType createLUWRowDataType();
+
+ /**
+ * Returns a new object of class '<em>PLSQL Package</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>PLSQL Package</em>'.
+ * @generated
+ */
+ PLSQLPackage createPLSQLPackage();
+
+ /**
+ * Returns a new object of class '<em>PLSQL Package Body</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>PLSQL Package Body</em>'.
+ * @generated
+ */
+ PLSQLPackageBody createPLSQLPackageBody();
+
+ /**
+ * Returns a new object of class '<em>Cursor Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cursor Data Type</em>'.
+ * @generated
+ */
+ LUWCursorDataType createLUWCursorDataType();
+
+ /**
+ * Returns a new object of class '<em>Module Cursor Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module Cursor Data Type</em>'.
+ * @generated
+ */
+ LUWModuleCursorDataType createLUWModuleCursorDataType();
+
+ /**
+ * Returns a new object of class '<em>Buffer Pool Size Exception</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Buffer Pool Size Exception</em>'.
+ * @generated
+ */
+ LUWBufferPoolSizeException createLUWBufferPoolSizeException();
+
+ /**
+ * Returns a new object of class '<em>Member</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Member</em>'.
+ * @generated
+ */
+ LUWMember createLUWMember();
+
+ /**
+ * Returns a new object of class '<em>Security Policy</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Security Policy</em>'.
+ * @generated
+ */
+ LUWSecurityPolicy createLUWSecurityPolicy();
+
+ /**
+ * Returns a new object of class '<em>Security Label Component</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Security Label Component</em>'.
+ * @generated
+ */
+ LUWSecurityLabelComponent createLUWSecurityLabelComponent();
+
+ /**
+ * Returns a new object of class '<em>Security Label</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Security Label</em>'.
+ * @generated
+ */
+ LUWSecurityLabel createLUWSecurityLabel();
+
+ /**
+ * Returns a new object of class '<em>Security Label Component Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Security Label Component Element</em>'.
+ * @generated
+ */
+ LUWSecurityLabelComponentElement createLUWSecurityLabelComponentElement();
+
+ /**
+ * Returns a new object of class '<em>Storage Group</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Storage Group</em>'.
+ * @generated
+ */
+ LUWStorageGroup createLUWStorageGroup();
+
+ /**
+ * Returns a new object of class '<em>Temporary Storage Table</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Storage Table</em>'.
+ * @generated
+ */
+ LUWTemporaryStorageTable createLUWTemporaryStorageTable();
+
+ /**
+ * Returns a new object of class '<em>Temporary Table</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Temporary Table</em>'.
+ * @generated
+ */
+ LUWTemporaryTable createLUWTemporaryTable();
+
+ /**
+ * Returns a new object of class '<em>Array Index Element Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Array Index Element Type</em>'.
+ * @generated
+ */
+ ArrayIndexElementType createArrayIndexElementType();
+
+ /**
+ * Returns a new object of class '<em>Partition Every Clause Element</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Partition Every Clause Element</em>'.
+ * @generated
+ */
+ LUWPartitionEveryClauseElement createLUWPartitionEveryClauseElement();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ LUWPackage getLUWPackage();
+
+} //LUWFactory
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFederatedDataSource.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFederatedDataSource.java
new file mode 100644
index 0000000..2f603e4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFederatedDataSource.java
@@ -0,0 +1,313 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Federated Data Source</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFederatedDataSource()
+ * @model
+ * @generated
+ */
+public final class LUWFederatedDataSource extends AbstractEnumerator {
+ /**
+ * The '<em><b>DB2</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DB2</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DB2_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DB2 = 0;
+
+ /**
+ * The '<em><b>INFORMIX</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INFORMIX</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INFORMIX_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INFORMIX = 1;
+
+ /**
+ * The '<em><b>ORACLE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ORACLE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ORACLE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ORACLE = 2;
+
+ /**
+ * The '<em><b>SQL SERVER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SQL SERVER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SQL_SERVER_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SQL_SERVER = 3;
+
+ /**
+ * The '<em><b>TERADATA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TERADATA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TERADATA_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TERADATA = 4;
+
+ /**
+ * The '<em><b>SYBASE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SYBASE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SYBASE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SYBASE = 5;
+
+ /**
+ * The '<em><b>ODBC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ODBC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ODBC_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ODBC = 6;
+
+ /**
+ * The '<em><b>JDBC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>JDBC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #JDBC_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int JDBC = 7;
+
+ /**
+ * The '<em><b>DB2</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DB2
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource DB2_LITERAL = new LUWFederatedDataSource(DB2, "DB2", "DB2"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>INFORMIX</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INFORMIX
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource INFORMIX_LITERAL = new LUWFederatedDataSource(INFORMIX, "INFORMIX", "INFORMIX"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ORACLE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ORACLE
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource ORACLE_LITERAL = new LUWFederatedDataSource(ORACLE, "ORACLE", "ORACLE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>SQL SERVER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SQL_SERVER
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource SQL_SERVER_LITERAL = new LUWFederatedDataSource(SQL_SERVER, "SQL_SERVER", "SQL_SERVER"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>TERADATA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TERADATA
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource TERADATA_LITERAL = new LUWFederatedDataSource(TERADATA, "TERADATA", "TERADATA"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>SYBASE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SYBASE
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource SYBASE_LITERAL = new LUWFederatedDataSource(SYBASE, "SYBASE", "SYBASE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ODBC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ODBC
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource ODBC_LITERAL = new LUWFederatedDataSource(ODBC, "ODBC", "ODBC"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>JDBC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #JDBC
+ * @generated
+ * @ordered
+ */
+ public static final LUWFederatedDataSource JDBC_LITERAL = new LUWFederatedDataSource(JDBC, "JDBC", "JDBC"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Federated Data Source</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWFederatedDataSource[] VALUES_ARRAY =
+ new LUWFederatedDataSource[] {
+ DB2_LITERAL,
+ INFORMIX_LITERAL,
+ ORACLE_LITERAL,
+ SQL_SERVER_LITERAL,
+ TERADATA_LITERAL,
+ SYBASE_LITERAL,
+ ODBC_LITERAL,
+ JDBC_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Federated Data Source</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Federated Data Source</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWFederatedDataSource get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWFederatedDataSource result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Federated Data Source</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWFederatedDataSource getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWFederatedDataSource result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Federated Data Source</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWFederatedDataSource get(int value) {
+ switch (value) {
+ case DB2: return DB2_LITERAL;
+ case INFORMIX: return INFORMIX_LITERAL;
+ case ORACLE: return ORACLE_LITERAL;
+ case SQL_SERVER: return SQL_SERVER_LITERAL;
+ case TERADATA: return TERADATA_LITERAL;
+ case SYBASE: return SYBASE_LITERAL;
+ case ODBC: return ODBC_LITERAL;
+ case JDBC: return JDBC_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWFederatedDataSource(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWFederatedDataSource
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFunctionMapping.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFunctionMapping.java
new file mode 100644
index 0000000..6b7442a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWFunctionMapping.java
@@ -0,0 +1,378 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Date;
+
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Function Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerType <em>Server Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerVersion <em>Server Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerName <em>Server Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getCreationTime <em>Creation Time</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#isDisabled <em>Disabled</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerInvoc <em>Insts Per Invoc</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerArgByte <em>Insts Per Arg Byte</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerInvoc <em>Ios Per Invoc</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerArgByte <em>Ios Per Arg Byte</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLocalFunction <em>Local Function</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getRemoteFunction <em>Remote Function</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLUWDatabase <em>LUW Database</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping()
+ * @model
+ * @generated
+ */
+public interface LUWFunctionMapping extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Type</em>' attribute.
+ * @see #setServerType(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_ServerType()
+ * @model
+ * @generated
+ */
+ String getServerType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerType <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Type</em>' attribute.
+ * @see #getServerType()
+ * @generated
+ */
+ void setServerType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Server Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Version</em>' attribute.
+ * @see #setServerVersion(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_ServerVersion()
+ * @model
+ * @generated
+ */
+ String getServerVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerVersion <em>Server Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Version</em>' attribute.
+ * @see #getServerVersion()
+ * @generated
+ */
+ void setServerVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Server Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Name</em>' attribute.
+ * @see #setServerName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_ServerName()
+ * @model
+ * @generated
+ */
+ String getServerName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerName <em>Server Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Name</em>' attribute.
+ * @see #getServerName()
+ * @generated
+ */
+ void setServerName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Creation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Creation Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Creation Time</em>' attribute.
+ * @see #setCreationTime(Date)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_CreationTime()
+ * @model dataType="org.eclipse.datatools.modelbase.sql.schema.Date"
+ * @generated
+ */
+ Date getCreationTime();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getCreationTime <em>Creation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Creation Time</em>' attribute.
+ * @see #getCreationTime()
+ * @generated
+ */
+ void setCreationTime(Date value);
+
+ /**
+ * Returns the value of the '<em><b>Disabled</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Disabled</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Disabled</em>' attribute.
+ * @see #setDisabled(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_Disabled()
+ * @model default="false"
+ * @generated
+ */
+ boolean isDisabled();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#isDisabled <em>Disabled</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Disabled</em>' attribute.
+ * @see #isDisabled()
+ * @generated
+ */
+ void setDisabled(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Insts Per Invoc</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Insts Per Invoc</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Insts Per Invoc</em>' attribute.
+ * @see #setInstsPerInvoc(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_InstsPerInvoc()
+ * @model
+ * @generated
+ */
+ int getInstsPerInvoc();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerInvoc <em>Insts Per Invoc</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Insts Per Invoc</em>' attribute.
+ * @see #getInstsPerInvoc()
+ * @generated
+ */
+ void setInstsPerInvoc(int value);
+
+ /**
+ * Returns the value of the '<em><b>Insts Per Arg Byte</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Insts Per Arg Byte</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Insts Per Arg Byte</em>' attribute.
+ * @see #setInstsPerArgByte(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_InstsPerArgByte()
+ * @model
+ * @generated
+ */
+ int getInstsPerArgByte();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerArgByte <em>Insts Per Arg Byte</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Insts Per Arg Byte</em>' attribute.
+ * @see #getInstsPerArgByte()
+ * @generated
+ */
+ void setInstsPerArgByte(int value);
+
+ /**
+ * Returns the value of the '<em><b>Ios Per Invoc</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ios Per Invoc</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ios Per Invoc</em>' attribute.
+ * @see #setIosPerInvoc(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_IosPerInvoc()
+ * @model
+ * @generated
+ */
+ int getIosPerInvoc();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerInvoc <em>Ios Per Invoc</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ios Per Invoc</em>' attribute.
+ * @see #getIosPerInvoc()
+ * @generated
+ */
+ void setIosPerInvoc(int value);
+
+ /**
+ * Returns the value of the '<em><b>Ios Per Arg Byte</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ios Per Arg Byte</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ios Per Arg Byte</em>' attribute.
+ * @see #setIosPerArgByte(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_IosPerArgByte()
+ * @model
+ * @generated
+ */
+ int getIosPerArgByte();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerArgByte <em>Ios Per Arg Byte</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ios Per Arg Byte</em>' attribute.
+ * @see #getIosPerArgByte()
+ * @generated
+ */
+ void setIosPerArgByte(int value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_Options()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption" containment="true"
+ * @generated
+ */
+ EList getOptions();
+
+ /**
+ * Returns the value of the '<em><b>Local Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Local Function</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Local Function</em>' reference.
+ * @see #setLocalFunction(DB2Function)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_LocalFunction()
+ * @model required="true"
+ * @generated
+ */
+ DB2Function getLocalFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLocalFunction <em>Local Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Local Function</em>' reference.
+ * @see #getLocalFunction()
+ * @generated
+ */
+ void setLocalFunction(DB2Function value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Function</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Function</em>' reference.
+ * @see #setRemoteFunction(Function)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_RemoteFunction()
+ * @model required="true"
+ * @generated
+ */
+ Function getRemoteFunction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getRemoteFunction <em>Remote Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Function</em>' reference.
+ * @see #getRemoteFunction()
+ * @generated
+ */
+ void setRemoteFunction(Function value);
+
+ /**
+ * Returns the value of the '<em><b>LUW Database</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getFunctionMappings <em>Function Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Database</em>' reference.
+ * @see #setLUWDatabase(LUWDatabase)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWFunctionMapping_LUWDatabase()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getFunctionMappings
+ * @model opposite="functionMappings" required="true"
+ * @generated
+ */
+ LUWDatabase getLUWDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLUWDatabase <em>LUW Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LUW Database</em>' reference.
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ void setLUWDatabase(LUWDatabase value);
+
+} // LUWFunctionMapping
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericNickname.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericNickname.java
new file mode 100644
index 0000000..0fe8373
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericNickname.java
@@ -0,0 +1,63 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericNickname.java,v 1.7 2007/01/15 18:40:05 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generic Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname#getGenericServer <em>Generic Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericNickname()
+ * @model
+ * @generated
+ */
+public interface LUWGenericNickname extends LUWNickname {
+ /**
+ * Returns the value of the '<em><b>Generic Server</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericNicknames <em>Generic Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generic Server</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generic Server</em>' reference.
+ * @see #setGenericServer(LUWGenericServer)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericNickname_GenericServer()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericNicknames
+ * @model opposite="genericNicknames" required="true" transient="true" volatile="true"
+ * @generated
+ */
+ LUWGenericServer getGenericServer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname#getGenericServer <em>Generic Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Generic Server</em>' reference.
+ * @see #getGenericServer()
+ * @generated
+ */
+ void setGenericServer(LUWGenericServer value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setServer(LUWServer newGenericServer);
+
+} // LUWGenericNickname
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericServer.java
new file mode 100644
index 0000000..31508cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericServer.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericServer.java,v 1.7 2007/01/15 18:40:05 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generic Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericNicknames <em>Generic Nicknames</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericWrapper <em>Generic Wrapper</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericServer()
+ * @model
+ * @generated
+ */
+public interface LUWGenericServer extends LUWServer {
+ /**
+ * Returns the value of the '<em><b>Generic Nicknames</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname#getGenericServer <em>Generic Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generic Nicknames</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generic Nicknames</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericServer_GenericNicknames()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname#getGenericServer
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname" opposite="genericServer" transient="true" volatile="true"
+ * @generated
+ */
+ EList getGenericNicknames();
+
+ /**
+ * Returns the value of the '<em><b>Generic Wrapper</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper#getGenericServers <em>Generic Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generic Wrapper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generic Wrapper</em>' reference.
+ * @see #setGenericWrapper(LUWGenericWrapper)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericServer_GenericWrapper()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper#getGenericServers
+ * @model opposite="genericServers" required="true" transient="true" volatile="true"
+ * @generated
+ */
+ LUWGenericWrapper getGenericWrapper();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericWrapper <em>Generic Wrapper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Generic Wrapper</em>' reference.
+ * @see #getGenericWrapper()
+ * @generated
+ */
+ void setGenericWrapper(LUWGenericWrapper value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" many="false"
+ * @generated
+ */
+ EList getNicknames();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void setWrapper(LUWWrapper newGenericWrapper);
+
+} // LUWGenericServer
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericUserMapping.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericUserMapping.java
new file mode 100644
index 0000000..739d0f5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericUserMapping.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericUserMapping.java,v 1.7 2007/01/15 18:40:05 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generic User Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemoteUser <em>Remote User</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemotePassword <em>Remote Password</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericUserMapping()
+ * @model
+ * @generated
+ */
+public interface LUWGenericUserMapping extends LUWUserMapping {
+ /**
+ * Returns the value of the '<em><b>Remote User</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote User</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote User</em>' attribute.
+ * @see #setRemoteUser(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericUserMapping_RemoteUser()
+ * @model
+ * @generated
+ */
+ String getRemoteUser();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemoteUser <em>Remote User</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote User</em>' attribute.
+ * @see #getRemoteUser()
+ * @generated
+ */
+ void setRemoteUser(String value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Password</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Password</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Password</em>' attribute.
+ * @see #setRemotePassword(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericUserMapping_RemotePassword()
+ * @model
+ * @generated
+ */
+ String getRemotePassword();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemotePassword <em>Remote Password</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Password</em>' attribute.
+ * @see #getRemotePassword()
+ * @generated
+ */
+ void setRemotePassword(String value);
+
+} // LUWGenericUserMapping
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericWrapper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericWrapper.java
new file mode 100644
index 0000000..cb005c0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGenericWrapper.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericWrapper.java,v 1.7 2007/01/15 18:40:05 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Generic Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper#getGenericServers <em>Generic Servers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericWrapper()
+ * @model
+ * @generated
+ */
+public interface LUWGenericWrapper extends LUWWrapper {
+ /**
+ * Returns the value of the '<em><b>Generic Servers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericWrapper <em>Generic Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generic Servers</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generic Servers</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGenericWrapper_GenericServers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericWrapper
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer" opposite="genericWrapper" transient="true" volatile="true"
+ * @generated
+ */
+ EList getGenericServers();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" many="false"
+ * @generated
+ */
+ EList getServers();
+
+} // LUWGenericWrapper
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGlobalVariable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGlobalVariable.java
new file mode 100644
index 0000000..df473ab
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWGlobalVariable.java
@@ -0,0 +1,112 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGlobalVariable.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Global Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getDefaultValue <em>Default Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#isIsConstant <em>Is Constant</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGlobalVariable()
+ * @model
+ * @generated
+ */
+public interface LUWGlobalVariable extends TypedElement {
+ /**
+ * Returns the value of the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Value</em>' attribute.
+ * @see #setDefaultValue(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGlobalVariable_DefaultValue()
+ * @model
+ * @generated
+ */
+ String getDefaultValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getDefaultValue <em>Default Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Value</em>' attribute.
+ * @see #getDefaultValue()
+ * @generated
+ */
+ void setDefaultValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Is Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Constant</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Constant</em>' attribute.
+ * @see #setIsConstant(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGlobalVariable_IsConstant()
+ * @model
+ * @generated
+ */
+ boolean isIsConstant();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#isIsConstant <em>Is Constant</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Constant</em>' attribute.
+ * @see #isIsConstant()
+ * @generated
+ */
+ void setIsConstant(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getGlobalVariables <em>Global Variables</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' reference.
+ * @see #setSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWGlobalVariable_Schema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getGlobalVariables
+ * @model opposite="globalVariables" required="true"
+ * @generated
+ */
+ DB2Schema getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getSchema <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' reference.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(DB2Schema value);
+
+} // LUWGlobalVariable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndex.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndex.java
new file mode 100644
index 0000000..5b01cc4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndex.java
@@ -0,0 +1,531 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWIndex.java,v 1.9 2009/07/22 20:11:50 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Index</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPCTFree <em>PCT Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPCTFree <em>Min PCT Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isReverseScan <em>Reverse Scan</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isNotPartitioned <em>Not Partitioned</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getXmlPattern <em>Xml Pattern</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getAsSQLDataType <em>As SQL Data Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isAsSQLDataTypeHashed <em>As SQL Data Type Hashed</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSystemRequired <em>System Required</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPageSplitType <em>Page Split Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getLevel2PctFree <em>Level2 Pct Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPctUsed <em>Min Pct Used</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getCompress <em>Compress</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isCollectStats <em>Collect Stats</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSampledStats <em>Sampled Stats</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isDetailedStats <em>Detailed Stats</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isIgnoreInvalidValues <em>Ignore Invalid Values</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isExcludeNullKeys <em>Exclude Null Keys</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getTablespace <em>Tablespace</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex()
+ * @model
+ * @generated
+ */
+public interface LUWIndex extends DB2Index {
+ /**
+ * Returns the value of the '<em><b>PCT Free</b></em>' attribute.
+ * The default value is <code>"-1"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>PCT Free</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>PCT Free</em>' attribute.
+ * @see #setPCTFree(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_PCTFree()
+ * @model default="-1"
+ * @generated
+ */
+ int getPCTFree();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPCTFree <em>PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>PCT Free</em>' attribute.
+ * @see #getPCTFree()
+ * @generated
+ */
+ void setPCTFree(int value);
+
+ /**
+ * Returns the value of the '<em><b>Min PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Min PCT Free</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Min PCT Free</em>' attribute.
+ * @see #setMinPCTFree(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_MinPCTFree()
+ * @model
+ * @generated
+ */
+ int getMinPCTFree();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPCTFree <em>Min PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Min PCT Free</em>' attribute.
+ * @see #getMinPCTFree()
+ * @generated
+ */
+ void setMinPCTFree(int value);
+
+ /**
+ * Returns the value of the '<em><b>Reverse Scan</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reverse Scan</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reverse Scan</em>' attribute.
+ * @see #setReverseScan(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_ReverseScan()
+ * @model
+ * @generated
+ */
+ boolean isReverseScan();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isReverseScan <em>Reverse Scan</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reverse Scan</em>' attribute.
+ * @see #isReverseScan()
+ * @generated
+ */
+ void setReverseScan(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Not Partitioned</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Not Partitioned</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Not Partitioned</em>' attribute.
+ * @see #setNotPartitioned(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_NotPartitioned()
+ * @model
+ * @generated
+ */
+ boolean isNotPartitioned();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isNotPartitioned <em>Not Partitioned</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Not Partitioned</em>' attribute.
+ * @see #isNotPartitioned()
+ * @generated
+ */
+ void setNotPartitioned(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Xml Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xml Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xml Pattern</em>' attribute.
+ * @see #setXmlPattern(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_XmlPattern()
+ * @model
+ * @generated
+ */
+ String getXmlPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getXmlPattern <em>Xml Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Xml Pattern</em>' attribute.
+ * @see #getXmlPattern()
+ * @generated
+ */
+ void setXmlPattern(String value);
+
+ /**
+ * Returns the value of the '<em><b>As SQL Data Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>As SQL Data Type</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>As SQL Data Type</em>' containment reference.
+ * @see #setAsSQLDataType(PredefinedDataType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_AsSQLDataType()
+ * @model containment="true"
+ * @generated
+ */
+ PredefinedDataType getAsSQLDataType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getAsSQLDataType <em>As SQL Data Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>As SQL Data Type</em>' containment reference.
+ * @see #getAsSQLDataType()
+ * @generated
+ */
+ void setAsSQLDataType(PredefinedDataType value);
+
+ /**
+ * Returns the value of the '<em><b>As SQL Data Type Hashed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>As SQL Data Type Hashed</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>As SQL Data Type Hashed</em>' attribute.
+ * @see #setAsSQLDataTypeHashed(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_AsSQLDataTypeHashed()
+ * @model
+ * @generated
+ */
+ boolean isAsSQLDataTypeHashed();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isAsSQLDataTypeHashed <em>As SQL Data Type Hashed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>As SQL Data Type Hashed</em>' attribute.
+ * @see #isAsSQLDataTypeHashed()
+ * @generated
+ */
+ void setAsSQLDataTypeHashed(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>System Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>System Required</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>System Required</em>' attribute.
+ * @see #setSystemRequired(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_SystemRequired()
+ * @model
+ * @generated
+ */
+ boolean isSystemRequired();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSystemRequired <em>System Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>System Required</em>' attribute.
+ * @see #isSystemRequired()
+ * @generated
+ */
+ void setSystemRequired(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Page Split Type</b></em>' attribute.
+ * The default value is <code>"SYMMETRIC"</code>.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Page Split Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Page Split Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType
+ * @see #setPageSplitType(LUWIndexPageSplitType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_PageSplitType()
+ * @model default="SYMMETRIC"
+ * @generated
+ */
+ LUWIndexPageSplitType getPageSplitType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPageSplitType <em>Page Split Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Page Split Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType
+ * @see #getPageSplitType()
+ * @generated
+ */
+ void setPageSplitType(LUWIndexPageSplitType value);
+
+ /**
+ * Returns the value of the '<em><b>Level2 Pct Free</b></em>' attribute.
+ * The default value is <code>"-1"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Level2 Pct Free</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Level2 Pct Free</em>' attribute.
+ * @see #setLevel2PctFree(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_Level2PctFree()
+ * @model default="-1"
+ * @generated
+ */
+ int getLevel2PctFree();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getLevel2PctFree <em>Level2 Pct Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Level2 Pct Free</em>' attribute.
+ * @see #getLevel2PctFree()
+ * @generated
+ */
+ void setLevel2PctFree(int value);
+
+ /**
+ * Returns the value of the '<em><b>Min Pct Used</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Min Pct Used</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Min Pct Used</em>' attribute.
+ * @see #setMinPctUsed(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_MinPctUsed()
+ * @model
+ * @generated
+ */
+ int getMinPctUsed();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPctUsed <em>Min Pct Used</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Min Pct Used</em>' attribute.
+ * @see #getMinPctUsed()
+ * @generated
+ */
+ void setMinPctUsed(int value);
+
+ /**
+ * Returns the value of the '<em><b>Compress</b></em>' attribute.
+ * The default value is <code>"NO"</code>.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compress</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Compress</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType
+ * @see #setCompress(LUWIndexCompressType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_Compress()
+ * @model default="NO"
+ * @generated
+ */
+ LUWIndexCompressType getCompress();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getCompress <em>Compress</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compress</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType
+ * @see #getCompress()
+ * @generated
+ */
+ void setCompress(LUWIndexCompressType value);
+
+ /**
+ * Returns the value of the '<em><b>Collect Stats</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Collect Stats</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Collect Stats</em>' attribute.
+ * @see #setCollectStats(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_CollectStats()
+ * @model default="true"
+ * @generated
+ */
+ boolean isCollectStats();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isCollectStats <em>Collect Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Collect Stats</em>' attribute.
+ * @see #isCollectStats()
+ * @generated
+ */
+ void setCollectStats(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Sampled Stats</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sampled Stats</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sampled Stats</em>' attribute.
+ * @see #setSampledStats(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_SampledStats()
+ * @model default="true"
+ * @generated
+ */
+ boolean isSampledStats();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSampledStats <em>Sampled Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sampled Stats</em>' attribute.
+ * @see #isSampledStats()
+ * @generated
+ */
+ void setSampledStats(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Detailed Stats</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Detailed Stats</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Detailed Stats</em>' attribute.
+ * @see #setDetailedStats(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_DetailedStats()
+ * @model default="true"
+ * @generated
+ */
+ boolean isDetailedStats();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isDetailedStats <em>Detailed Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Detailed Stats</em>' attribute.
+ * @see #isDetailedStats()
+ * @generated
+ */
+ void setDetailedStats(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Ignore Invalid Values</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ignore Invalid Values</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ignore Invalid Values</em>' attribute.
+ * @see #setIgnoreInvalidValues(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_IgnoreInvalidValues()
+ * @model default="true"
+ * @generated
+ */
+ boolean isIgnoreInvalidValues();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isIgnoreInvalidValues <em>Ignore Invalid Values</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ignore Invalid Values</em>' attribute.
+ * @see #isIgnoreInvalidValues()
+ * @generated
+ */
+ void setIgnoreInvalidValues(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Exclude Null Keys</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exclude Null Keys</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exclude Null Keys</em>' attribute.
+ * @see #setExcludeNullKeys(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_ExcludeNullKeys()
+ * @model default="false"
+ * @generated
+ */
+ boolean isExcludeNullKeys();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isExcludeNullKeys <em>Exclude Null Keys</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exclude Null Keys</em>' attribute.
+ * @see #isExcludeNullKeys()
+ * @generated
+ */
+ void setExcludeNullKeys(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Tablespace</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexes <em>Indexes</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tablespace</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tablespace</em>' reference.
+ * @see #setTablespace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndex_Tablespace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexes
+ * @model opposite="indexes"
+ * @generated
+ */
+ LUWTableSpace getTablespace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getTablespace <em>Tablespace</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tablespace</em>' reference.
+ * @see #getTablespace()
+ * @generated
+ */
+ void setTablespace(LUWTableSpace value);
+
+} // LUWIndex
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndexCompressType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndexCompressType.java
new file mode 100644
index 0000000..f500262
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndexCompressType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Index Compress Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndexCompressType()
+ * @model
+ * @generated
+ */
+public final class LUWIndexCompressType extends AbstractEnumerator {
+ /**
+ * The '<em><b>NO SELECTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO SELECTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_SELECTION_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_SELECTION = 0;
+
+ /**
+ * The '<em><b>NO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO = 1;
+
+ /**
+ * The '<em><b>YES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>YES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #YES_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int YES = 2;
+
+ /**
+ * The '<em><b>NO SELECTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_SELECTION
+ * @generated
+ * @ordered
+ */
+ public static final LUWIndexCompressType NO_SELECTION_LITERAL = new LUWIndexCompressType(NO_SELECTION, "NO_SELECTION", "NO_SELECTION"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>NO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO
+ * @generated
+ * @ordered
+ */
+ public static final LUWIndexCompressType NO_LITERAL = new LUWIndexCompressType(NO, "NO", "NO"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>YES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #YES
+ * @generated
+ * @ordered
+ */
+ public static final LUWIndexCompressType YES_LITERAL = new LUWIndexCompressType(YES, "YES", "YES"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Index Compress Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWIndexCompressType[] VALUES_ARRAY =
+ new LUWIndexCompressType[] {
+ NO_SELECTION_LITERAL,
+ NO_LITERAL,
+ YES_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Index Compress Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Index Compress Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWIndexCompressType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWIndexCompressType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Index Compress Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWIndexCompressType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWIndexCompressType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Index Compress Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWIndexCompressType get(int value) {
+ switch (value) {
+ case NO_SELECTION: return NO_SELECTION_LITERAL;
+ case NO: return NO_LITERAL;
+ case YES: return YES_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWIndexCompressType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWIndexCompressType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndexPageSplitType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndexPageSplitType.java
new file mode 100644
index 0000000..f16a311
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWIndexPageSplitType.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Index Page Split Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWIndexPageSplitType()
+ * @model
+ * @generated
+ */
+public final class LUWIndexPageSplitType extends AbstractEnumerator {
+ /**
+ * The '<em><b>NO SELECTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO SELECTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_SELECTION_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_SELECTION = 0;
+
+ /**
+ * The '<em><b>SYMMETRIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SYMMETRIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SYMMETRIC_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SYMMETRIC = 1;
+
+ /**
+ * The '<em><b>HIGH</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HIGH</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HIGH_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HIGH = 2;
+
+ /**
+ * The '<em><b>LOW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOW_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOW = 3;
+
+ /**
+ * The '<em><b>NO SELECTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_SELECTION
+ * @generated
+ * @ordered
+ */
+ public static final LUWIndexPageSplitType NO_SELECTION_LITERAL = new LUWIndexPageSplitType(NO_SELECTION, "NO_SELECTION", "NO_SELECTION"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>SYMMETRIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SYMMETRIC
+ * @generated
+ * @ordered
+ */
+ public static final LUWIndexPageSplitType SYMMETRIC_LITERAL = new LUWIndexPageSplitType(SYMMETRIC, "SYMMETRIC", "SYMMETRIC"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>HIGH</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HIGH
+ * @generated
+ * @ordered
+ */
+ public static final LUWIndexPageSplitType HIGH_LITERAL = new LUWIndexPageSplitType(HIGH, "HIGH", "HIGH"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>LOW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOW
+ * @generated
+ * @ordered
+ */
+ public static final LUWIndexPageSplitType LOW_LITERAL = new LUWIndexPageSplitType(LOW, "LOW", "LOW"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Index Page Split Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWIndexPageSplitType[] VALUES_ARRAY =
+ new LUWIndexPageSplitType[] {
+ NO_SELECTION_LITERAL,
+ SYMMETRIC_LITERAL,
+ HIGH_LITERAL,
+ LOW_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Index Page Split Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Index Page Split Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWIndexPageSplitType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWIndexPageSplitType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Index Page Split Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWIndexPageSplitType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWIndexPageSplitType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Index Page Split Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWIndexPageSplitType get(int value) {
+ switch (value) {
+ case NO_SELECTION: return NO_SELECTION_LITERAL;
+ case SYMMETRIC: return SYMMETRIC_LITERAL;
+ case HIGH: return HIGH_LITERAL;
+ case LOW: return LOW_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWIndexPageSplitType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWIndexPageSplitType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMaterializedQueryTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMaterializedQueryTable.java
new file mode 100644
index 0000000..47e976a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMaterializedQueryTable.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWMaterializedQueryTable.java,v 1.5 2007/01/15 18:40:06 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Materialized Query Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMaterializedQueryTable()
+ * @model
+ * @generated
+ */
+public interface LUWMaterializedQueryTable extends DB2MaterializedQueryTable, LUWStorageTable {
+} // LUWMaterializedQueryTable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMember.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMember.java
new file mode 100644
index 0000000..07b800c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMember.java
@@ -0,0 +1,160 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Member;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Member</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getAlert <em>Alert</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getDbPartitionNum <em>Db Partition Num</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getLogicalPort <em>Logical Port</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getNetName <em>Net Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMember()
+ * @model
+ * @generated
+ */
+public interface LUWMember extends DB2Member {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType
+ * @see #setType(LUWMemberType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMember_Type()
+ * @model
+ * @generated
+ */
+ LUWMemberType getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType
+ * @see #getType()
+ * @generated
+ */
+ void setType(LUWMemberType value);
+
+ /**
+ * Returns the value of the '<em><b>Alert</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alert</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Alert</em>' attribute.
+ * @see #setAlert(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMember_Alert()
+ * @model
+ * @generated
+ */
+ String getAlert();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getAlert <em>Alert</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Alert</em>' attribute.
+ * @see #getAlert()
+ * @generated
+ */
+ void setAlert(String value);
+
+ /**
+ * Returns the value of the '<em><b>Db Partition Num</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Db Partition Num</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Db Partition Num</em>' attribute.
+ * @see #setDbPartitionNum(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMember_DbPartitionNum()
+ * @model
+ * @generated
+ */
+ int getDbPartitionNum();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getDbPartitionNum <em>Db Partition Num</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Db Partition Num</em>' attribute.
+ * @see #getDbPartitionNum()
+ * @generated
+ */
+ void setDbPartitionNum(int value);
+
+ /**
+ * Returns the value of the '<em><b>Logical Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Logical Port</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Logical Port</em>' attribute.
+ * @see #setLogicalPort(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMember_LogicalPort()
+ * @model
+ * @generated
+ */
+ int getLogicalPort();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getLogicalPort <em>Logical Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Logical Port</em>' attribute.
+ * @see #getLogicalPort()
+ * @generated
+ */
+ void setLogicalPort(int value);
+
+ /**
+ * Returns the value of the '<em><b>Net Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Net Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Net Name</em>' attribute.
+ * @see #setNetName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMember_NetName()
+ * @model
+ * @generated
+ */
+ String getNetName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getNetName <em>Net Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Net Name</em>' attribute.
+ * @see #getNetName()
+ * @generated
+ */
+ void setNetName(String value);
+
+} // LUWMember
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMemberType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMemberType.java
new file mode 100644
index 0000000..df6aaa9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWMemberType.java
@@ -0,0 +1,145 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Member Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWMemberType()
+ * @model
+ * @generated
+ */
+public final class LUWMemberType extends AbstractEnumerator {
+ /**
+ * The '<em><b>MEMBER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MEMBER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MEMBER_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MEMBER = 0;
+
+ /**
+ * The '<em><b>CF</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CF</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CF_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CF = 1;
+
+ /**
+ * The '<em><b>MEMBER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MEMBER
+ * @generated
+ * @ordered
+ */
+ public static final LUWMemberType MEMBER_LITERAL = new LUWMemberType(MEMBER, "MEMBER", "MEMBER"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>CF</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CF
+ * @generated
+ * @ordered
+ */
+ public static final LUWMemberType CF_LITERAL = new LUWMemberType(CF, "CF", "CF"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Member Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWMemberType[] VALUES_ARRAY =
+ new LUWMemberType[] {
+ MEMBER_LITERAL,
+ CF_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Member Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Member Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWMemberType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWMemberType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Member Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWMemberType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWMemberType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Member Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWMemberType get(int value) {
+ switch (value) {
+ case MEMBER: return MEMBER_LITERAL;
+ case CF: return CF_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWMemberType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWMemberType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModule.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModule.java
new file mode 100644
index 0000000..0aa0bca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModule.java
@@ -0,0 +1,109 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModule.java,v 1.4 2009/03/06 22:38:09 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getDialect <em>Dialect</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getOwningSchema <em>Owning Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getModuleObjects <em>Module Objects</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModule()
+ * @model
+ * @generated
+ */
+public interface LUWModule extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Dialect</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dialect</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dialect</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see #setDialect(SourceDialect)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModule_Dialect()
+ * @model
+ * @generated
+ */
+ SourceDialect getDialect();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getDialect <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dialect</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see #getDialect()
+ * @generated
+ */
+ void setDialect(SourceDialect value);
+
+ /**
+ * Returns the value of the '<em><b>Owning Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getModules <em>Modules</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owning Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owning Schema</em>' reference.
+ * @see #setOwningSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModule_OwningSchema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getModules
+ * @model opposite="modules" required="true"
+ * @generated
+ */
+ DB2Schema getOwningSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getOwningSchema <em>Owning Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owning Schema</em>' reference.
+ * @see #getOwningSchema()
+ * @generated
+ */
+ void setOwningSchema(DB2Schema value);
+
+ /**
+ * Returns the value of the '<em><b>Module Objects</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#getModule <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Module Objects</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Module Objects</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModule_ModuleObjects()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#getModule
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject" opposite="module" containment="true"
+ * @generated
+ */
+ EList getModuleObjects();
+
+} // LUWModule
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleArrayDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleArrayDataType.java
new file mode 100644
index 0000000..ae0b7b3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleArrayDataType.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleArrayDataType.java,v 1.2 2009/02/16 19:01:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Array Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleArrayDataType()
+ * @model
+ * @generated
+ */
+public interface LUWModuleArrayDataType extends LUWArrayDataType, LUWModuleType {
+} // LUWModuleArrayDataType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleCondition.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleCondition.java
new file mode 100644
index 0000000..6d861a8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleCondition.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleCondition.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Condition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition#getSqlstate <em>Sqlstate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleCondition()
+ * @model
+ * @generated
+ */
+public interface LUWModuleCondition extends SQLObject, LUWModuleObject {
+ /**
+ * Returns the value of the '<em><b>Sqlstate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sqlstate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sqlstate</em>' attribute.
+ * @see #setSqlstate(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleCondition_Sqlstate()
+ * @model
+ * @generated
+ */
+ String getSqlstate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition#getSqlstate <em>Sqlstate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sqlstate</em>' attribute.
+ * @see #getSqlstate()
+ * @generated
+ */
+ void setSqlstate(String value);
+
+} // LUWModuleCondition
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleCursorDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleCursorDataType.java
new file mode 100644
index 0000000..493a6d0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleCursorDataType.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleCursorDataType.java,v 1.1 2009/02/27 18:42:01 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Cursor Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleCursorDataType()
+ * @model
+ * @generated
+ */
+public interface LUWModuleCursorDataType extends LUWCursorDataType, LUWModuleType {
+} // LUWModuleCursorDataType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleDistinctType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleDistinctType.java
new file mode 100644
index 0000000..c6e7172
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleDistinctType.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleDistinctType.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Distinct Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleDistinctType()
+ * @model
+ * @generated
+ */
+public interface LUWModuleDistinctType extends DistinctUserDefinedType, LUWModuleType {
+} // LUWModuleDistinctType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleFunction.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleFunction.java
new file mode 100644
index 0000000..5fce419
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleFunction.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleFunction.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction#isImplemented <em>Implemented</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleFunction()
+ * @model
+ * @generated
+ */
+public interface LUWModuleFunction extends DB2UserDefinedFunction, LUWModuleObject {
+ /**
+ * Returns the value of the '<em><b>Implemented</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Implemented</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Implemented</em>' attribute.
+ * @see #setImplemented(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleFunction_Implemented()
+ * @model
+ * @generated
+ */
+ boolean isImplemented();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction#isImplemented <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Implemented</em>' attribute.
+ * @see #isImplemented()
+ * @generated
+ */
+ void setImplemented(boolean value);
+
+} // LUWModuleFunction
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleGlobalVariable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleGlobalVariable.java
new file mode 100644
index 0000000..524f33e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleGlobalVariable.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleGlobalVariable.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Global Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleGlobalVariable()
+ * @model
+ * @generated
+ */
+public interface LUWModuleGlobalVariable extends LUWGlobalVariable, LUWModuleObject {
+} // LUWModuleGlobalVariable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleObject.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleObject.java
new file mode 100644
index 0000000..6555ca8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleObject.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleObject.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleObject()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface LUWModuleObject extends EObject {
+ /**
+ * Returns the value of the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Published</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Published</em>' attribute.
+ * @see #setPublished(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleObject_Published()
+ * @model
+ * @generated
+ */
+ boolean isPublished();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#isPublished <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Published</em>' attribute.
+ * @see #isPublished()
+ * @generated
+ */
+ void setPublished(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Module</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getModuleObjects <em>Module Objects</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Module</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Module</em>' container reference.
+ * @see #setModule(LUWModule)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleObject_Module()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getModuleObjects
+ * @model opposite="moduleObjects" required="true"
+ * @generated
+ */
+ LUWModule getModule();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#getModule <em>Module</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Module</em>' container reference.
+ * @see #getModule()
+ * @generated
+ */
+ void setModule(LUWModule value);
+
+} // LUWModuleObject
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleProcedure.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleProcedure.java
new file mode 100644
index 0000000..e238b39
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleProcedure.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleProcedure.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure#isImplemented <em>Implemented</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleProcedure()
+ * @model
+ * @generated
+ */
+public interface LUWModuleProcedure extends DB2Procedure, LUWModuleObject {
+ /**
+ * Returns the value of the '<em><b>Implemented</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Implemented</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Implemented</em>' attribute.
+ * @see #setImplemented(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleProcedure_Implemented()
+ * @model
+ * @generated
+ */
+ boolean isImplemented();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure#isImplemented <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Implemented</em>' attribute.
+ * @see #isImplemented()
+ * @generated
+ */
+ void setImplemented(boolean value);
+
+} // LUWModuleProcedure
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleRowDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleRowDataType.java
new file mode 100644
index 0000000..b3edf2e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleRowDataType.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleRowDataType.java,v 1.2 2009/02/16 19:01:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Row Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleRowDataType()
+ * @model
+ * @generated
+ */
+public interface LUWModuleRowDataType extends LUWRowDataType, LUWModuleType {
+} // LUWModuleRowDataType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleType.java
new file mode 100644
index 0000000..3419106
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWModuleType.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleType.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWModuleType()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface LUWModuleType extends LUWModuleObject {
+} // LUWModuleType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNickname.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNickname.java
new file mode 100644
index 0000000..28edd4e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNickname.java
@@ -0,0 +1,86 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getRemoteDataSet <em>Remote Data Set</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getServer <em>Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNickname()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWNickname extends LUWTable{
+ /**
+ * Returns the value of the '<em><b>Remote Data Set</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet#getNickname <em>Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Data Set</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Data Set</em>' reference.
+ * @see #setRemoteDataSet(RemoteDataSet)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNickname_RemoteDataSet()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet#getNickname
+ * @model opposite="nickname" required="true"
+ * @generated
+ */
+ RemoteDataSet getRemoteDataSet();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getRemoteDataSet <em>Remote Data Set</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Data Set</em>' reference.
+ * @see #getRemoteDataSet()
+ * @generated
+ */
+ void setRemoteDataSet(RemoteDataSet value);
+
+ /**
+ * Returns the value of the '<em><b>Server</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getNicknames <em>Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server</em>' reference.
+ * @see #setServer(LUWServer)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNickname_Server()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getNicknames
+ * @model opposite="nicknames" required="true"
+ * @generated
+ */
+ LUWServer getServer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getServer <em>Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server</em>' reference.
+ * @see #getServer()
+ * @generated
+ */
+ void setServer(LUWServer value);
+
+} // LUWNickname
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalNickname.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalNickname.java
new file mode 100644
index 0000000..ab7383e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalNickname.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Non Relational Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname#getNonRelServer <em>Non Rel Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNonRelationalNickname()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWNonRelationalNickname extends LUWNickname{
+ /**
+ * Returns the value of the '<em><b>Non Rel Server</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelNicknames <em>Non Rel Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Non Rel Server</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Non Rel Server</em>' reference.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNonRelationalNickname_NonRelServer()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelNicknames
+ * @model opposite="nonRelNicknames" required="true" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ LUWNonRelationalServer getNonRelServer();
+
+} // LUWNonRelationalNickname
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalServer.java
new file mode 100644
index 0000000..9d279f9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalServer.java
@@ -0,0 +1,65 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Non Relational Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelWrapper <em>Non Rel Wrapper</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelNicknames <em>Non Rel Nicknames</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNonRelationalServer()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWNonRelationalServer extends LUWServer{
+ /**
+ * Returns the value of the '<em><b>Non Rel Wrapper</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper#getNonRelServers <em>Non Rel Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Non Rel Wrapper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Non Rel Wrapper</em>' reference.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNonRelationalServer_NonRelWrapper()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper#getNonRelServers
+ * @model opposite="nonRelServers" required="true" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ LUWNonRelationalWrapper getNonRelWrapper();
+
+ /**
+ * Returns the value of the '<em><b>Non Rel Nicknames</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname#getNonRelServer <em>Non Rel Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Non Rel Nicknames</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Non Rel Nicknames</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNonRelationalServer_NonRelNicknames()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname#getNonRelServer
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname" opposite="nonRelServer" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ EList getNonRelNicknames();
+
+} // LUWNonRelationalServer
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalWrapper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalWrapper.java
new file mode 100644
index 0000000..95a6423
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWNonRelationalWrapper.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Non Relational Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper#getNonRelServers <em>Non Rel Servers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNonRelationalWrapper()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWNonRelationalWrapper extends LUWWrapper{
+ /**
+ * Returns the value of the '<em><b>Non Rel Servers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelWrapper <em>Non Rel Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Non Rel Servers</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Non Rel Servers</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWNonRelationalWrapper_NonRelServers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelWrapper
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer" opposite="nonRelWrapper" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ EList getNonRelServers();
+
+} // LUWNonRelationalWrapper
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWOption.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWOption.java
new file mode 100644
index 0000000..c030b47
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWOption.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWOption.java,v 1.8 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Option</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWOption()
+ * @model
+ * @generated
+ */
+public interface LUWOption extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWOption_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // LUWOption
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPackage.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPackage.java
new file mode 100644
index 0000000..fb40f45
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPackage.java
@@ -0,0 +1,21869 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * DB2 LUW Model is the OO representation of the concepts defined in the: DB2 UDB for Linux, UNIX, Windows version 8.1 - SQL Reference
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface LUWPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "luw"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///org.eclipse.datatools.enablement.ibm.db2.luw.model.ecore"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "LUW"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ LUWPackage eINSTANCE = org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl <em>Partition Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionGroup()
+ * @generated
+ */
+ int LUW_PARTITION_GROUP = 0;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Partitions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__PARTITIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Table Spaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__TABLE_SPACES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Buffer Pool</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP__BUFFER_POOL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Partition Group</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_GROUP_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl <em>Table Space</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTableSpace()
+ * @generated
+ */
+ int LUW_TABLE_SPACE = 1;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Temporary Storage Tables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Tablespace Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__TABLESPACE_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Management Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__MANAGEMENT_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Extent Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__EXTENT_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Pre Fetch Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__PRE_FETCH_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Overhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__OVERHEAD = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Transfer Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__TRANSFER_RATE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Recover Dropped Table On</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Page Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__PAGE_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Auto Resize</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__AUTO_RESIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Initial Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INITIAL_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Increase Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INCREASE_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Maximum Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__MAXIMUM_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Initial Size Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INITIAL_SIZE_UNIT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Maximum Size Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Increase Size Unit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INCREASE_SIZE_UNIT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Increase Percent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INCREASE_PERCENT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 17;
+
+ /**
+ * The feature id for the '<em><b>File System Caching</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__FILE_SYSTEM_CACHING = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 18;
+
+ /**
+ * The feature id for the '<em><b>Average Seek Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__AVERAGE_SEEK_TIME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 19;
+
+ /**
+ * The feature id for the '<em><b>Rotation Speed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__ROTATION_SPEED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 20;
+
+ /**
+ * The feature id for the '<em><b>Transfer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__TRANSFER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 21;
+
+ /**
+ * The feature id for the '<em><b>System Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__SYSTEM_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 22;
+
+ /**
+ * The feature id for the '<em><b>Average Table Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 23;
+
+ /**
+ * The feature id for the '<em><b>External Container Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 24;
+
+ /**
+ * The feature id for the '<em><b>Inherit Overhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INHERIT_OVERHEAD = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 25;
+
+ /**
+ * The feature id for the '<em><b>Inherit Transferate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INHERIT_TRANSFERATE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 26;
+
+ /**
+ * The feature id for the '<em><b>Rebalance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__REBALANCE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 27;
+
+ /**
+ * The feature id for the '<em><b>Data Tag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__DATA_TAG = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 28;
+
+ /**
+ * The feature id for the '<em><b>Suspend Rebalance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__SUSPEND_REBALANCE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 29;
+
+ /**
+ * The feature id for the '<em><b>Resume Rebalance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__RESUME_REBALANCE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 30;
+
+ /**
+ * The feature id for the '<em><b>Group</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__GROUP = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 31;
+
+ /**
+ * The feature id for the '<em><b>Containers</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__CONTAINERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 32;
+
+ /**
+ * The feature id for the '<em><b>Buffer Pool</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__BUFFER_POOL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 33;
+
+ /**
+ * The feature id for the '<em><b>Index Data Tables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INDEX_DATA_TABLES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 34;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Tables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__LOB_DATA_TABLES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 35;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Tables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__REGULAR_DATA_TABLES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 36;
+
+ /**
+ * The feature id for the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 37;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Partition</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__LOB_DATA_PARTITION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 38;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Partition</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__REGULAR_DATA_PARTITION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 39;
+
+ /**
+ * The feature id for the '<em><b>Indexes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INDEXES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 40;
+
+ /**
+ * The feature id for the '<em><b>Index Data Partition</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__INDEX_DATA_PARTITION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 41;
+
+ /**
+ * The feature id for the '<em><b>Storage Group</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE__STORAGE_GROUP = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 42;
+
+ /**
+ * The number of structural features of the '<em>Table Space</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_SPACE_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 43;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl <em>Database Partition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabasePartition()
+ * @generated
+ */
+ int LUW_DATABASE_PARTITION = 2;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__NUMBER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Port Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__PORT_NUMBER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Host Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__HOST_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Switch Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__SWITCH_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Catalog Partition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__CATALOG_PARTITION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Group</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__GROUP = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Buffer Pool</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__BUFFER_POOL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Containers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__CONTAINERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Size Exception</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION__SIZE_EXCEPTION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Database Partition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PARTITION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl <em>Database Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabaseContainer()
+ * @generated
+ */
+ int LUW_DATABASE_CONTAINER = 3;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Container Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__CONTAINER_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Size In Pages</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__SIZE_IN_PAGES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Size Units</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__SIZE_UNITS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Table Space</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__TABLE_SPACE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Partitions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER__PARTITIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Database Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_CONTAINER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAdminServerImpl <em>Admin Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAdminServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWAdminServer()
+ * @generated
+ */
+ int LUW_ADMIN_SERVER = 4;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Instances</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER__INSTANCES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Admin Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ADMIN_SERVER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl <em>Buffer Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWBufferPool()
+ * @generated
+ */
+ int LUW_BUFFER_POOL = 5;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Create Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__CREATE_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Page Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__PAGE_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Block Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__BLOCK_SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Num Block Pages</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__NUM_BLOCK_PAGES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Extended Storage</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__EXTENDED_STORAGE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Automatic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__AUTOMATIC = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Table Spaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__TABLE_SPACES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Partitions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__PARTITIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Partition Group</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__PARTITION_GROUP = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Size Exception</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL__SIZE_EXCEPTION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 11;
+
+ /**
+ * The number of structural features of the '<em>Buffer Pool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 12;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl <em>Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTable()
+ * @generated
+ */
+ int LUW_TABLE = 6;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__EANNOTATIONS = DB2ModelPackage.DB2_TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__NAME = DB2ModelPackage.DB2_TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__DEPENDENCIES = DB2ModelPackage.DB2_TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__DESCRIPTION = DB2ModelPackage.DB2_TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__LABEL = DB2ModelPackage.DB2_TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__COMMENTS = DB2ModelPackage.DB2_TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__EXTENSIONS = DB2ModelPackage.DB2_TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__PRIVILEGES = DB2ModelPackage.DB2_TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__COLUMNS = DB2ModelPackage.DB2_TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__SUPERTABLE = DB2ModelPackage.DB2_TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__SUBTABLES = DB2ModelPackage.DB2_TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__SCHEMA = DB2ModelPackage.DB2_TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__UDT = DB2ModelPackage.DB2_TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__TRIGGERS = DB2ModelPackage.DB2_TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__INDEX = DB2ModelPackage.DB2_TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__SELF_REF_COLUMN_GENERATION = DB2ModelPackage.DB2_TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__INSERTABLE = DB2ModelPackage.DB2_TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__UPDATABLE = DB2ModelPackage.DB2_TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__CONSTRAINTS = DB2ModelPackage.DB2_TABLE__CONSTRAINTS;
+
+ /**
+ * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__REFERENCING_FOREIGN_KEYS = DB2ModelPackage.DB2_TABLE__REFERENCING_FOREIGN_KEYS;
+
+ /**
+ * The feature id for the '<em><b>Data Capture</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__DATA_CAPTURE = DB2ModelPackage.DB2_TABLE__DATA_CAPTURE;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__ACTIVATE_ROW_ACCESS_CONTROL = DB2ModelPackage.DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL = DB2ModelPackage.DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Organize By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__ORGANIZE_BY = DB2ModelPackage.DB2_TABLE__ORGANIZE_BY;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__PACKAGES = DB2ModelPackage.DB2_TABLE__PACKAGES;
+
+ /**
+ * The feature id for the '<em><b>Periods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__PERIODS = DB2ModelPackage.DB2_TABLE__PERIODS;
+
+ /**
+ * The feature id for the '<em><b>History Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__HISTORY_TABLE = DB2ModelPackage.DB2_TABLE__HISTORY_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Temporal Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__TEMPORAL_TABLE = DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__MASKS = DB2ModelPackage.DB2_TABLE__MASKS;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__PERMISSIONS = DB2ModelPackage.DB2_TABLE__PERMISSIONS;
+
+ /**
+ * The feature id for the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__VALUE_COMPRESSION = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__ROW_COMPRESSION = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Row Compression Empty</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__ROW_COMPRESSION_EMPTY = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Compression Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__COMPRESSION_MODE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__PARTITION_KEY = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__INDEX_DATA_TABLE_SPACE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__LOB_DATA_TABLE_SPACE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__REGULAR_DATA_TABLE_SPACE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Data Partitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__DATA_PARTITIONS = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Data Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__DATA_PARTITION_KEY = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__PCT_FREE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Restrict On Drop</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__RESTRICT_ON_DROP = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Partition Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__PARTITION_MODE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Append Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__APPEND_MODE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Log Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__LOG_MODE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Lock Size Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__LOCK_SIZE_ROW = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__VOLATILE = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__OPTIONS = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 17;
+
+ /**
+ * The feature id for the '<em><b>Security Policy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE__SECURITY_POLICY = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 18;
+
+ /**
+ * The number of structural features of the '<em>Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TABLE_FEATURE_COUNT = DB2ModelPackage.DB2_TABLE_FEATURE_COUNT + 19;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWViewImpl <em>View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWViewImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWView()
+ * @generated
+ */
+ int LUW_VIEW = 7;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__EANNOTATIONS = DB2ModelPackage.DB2_VIEW__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__NAME = DB2ModelPackage.DB2_VIEW__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__DEPENDENCIES = DB2ModelPackage.DB2_VIEW__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__DESCRIPTION = DB2ModelPackage.DB2_VIEW__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__LABEL = DB2ModelPackage.DB2_VIEW__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__COMMENTS = DB2ModelPackage.DB2_VIEW__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__EXTENSIONS = DB2ModelPackage.DB2_VIEW__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__PRIVILEGES = DB2ModelPackage.DB2_VIEW__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__COLUMNS = DB2ModelPackage.DB2_VIEW__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__SUPERTABLE = DB2ModelPackage.DB2_VIEW__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__SUBTABLES = DB2ModelPackage.DB2_VIEW__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__SCHEMA = DB2ModelPackage.DB2_VIEW__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__UDT = DB2ModelPackage.DB2_VIEW__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__TRIGGERS = DB2ModelPackage.DB2_VIEW__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__INDEX = DB2ModelPackage.DB2_VIEW__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__SELF_REF_COLUMN_GENERATION = DB2ModelPackage.DB2_VIEW__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__INSERTABLE = DB2ModelPackage.DB2_VIEW__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__UPDATABLE = DB2ModelPackage.DB2_VIEW__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Query Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__QUERY_EXPRESSION = DB2ModelPackage.DB2_VIEW__QUERY_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Check Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__CHECK_TYPE = DB2ModelPackage.DB2_VIEW__CHECK_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Operative</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__OPERATIVE = DB2ModelPackage.DB2_VIEW__OPERATIVE;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__FEDERATED = DB2ModelPackage.DB2_VIEW_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Optimize Query</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW__OPTIMIZE_QUERY = DB2ModelPackage.DB2_VIEW_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_VIEW_FEATURE_COUNT = DB2ModelPackage.DB2_VIEW_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl <em>Partition Key</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionKey()
+ * @generated
+ */
+ int LUW_PARTITION_KEY = 8;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Temporary Storage Table</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Partition Method</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__PARTITION_METHOD = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY__COLUMNS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Partition Key</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_KEY_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNicknameImpl <em>Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNickname()
+ * @generated
+ */
+ int LUW_NICKNAME = 9;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__EANNOTATIONS = LUW_TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__NAME = LUW_TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__DEPENDENCIES = LUW_TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__DESCRIPTION = LUW_TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__LABEL = LUW_TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__COMMENTS = LUW_TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__EXTENSIONS = LUW_TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__PRIVILEGES = LUW_TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__COLUMNS = LUW_TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__SUPERTABLE = LUW_TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__SUBTABLES = LUW_TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__SCHEMA = LUW_TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__UDT = LUW_TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__TRIGGERS = LUW_TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__INDEX = LUW_TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__SELF_REF_COLUMN_GENERATION = LUW_TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__INSERTABLE = LUW_TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__UPDATABLE = LUW_TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__CONSTRAINTS = LUW_TABLE__CONSTRAINTS;
+
+ /**
+ * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__REFERENCING_FOREIGN_KEYS = LUW_TABLE__REFERENCING_FOREIGN_KEYS;
+
+ /**
+ * The feature id for the '<em><b>Data Capture</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__DATA_CAPTURE = LUW_TABLE__DATA_CAPTURE;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__ACTIVATE_ROW_ACCESS_CONTROL = LUW_TABLE__ACTIVATE_ROW_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__ACTIVATE_COLUMN_ACCESS_CONTROL = LUW_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Organize By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__ORGANIZE_BY = LUW_TABLE__ORGANIZE_BY;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__PACKAGES = LUW_TABLE__PACKAGES;
+
+ /**
+ * The feature id for the '<em><b>Periods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__PERIODS = LUW_TABLE__PERIODS;
+
+ /**
+ * The feature id for the '<em><b>History Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__HISTORY_TABLE = LUW_TABLE__HISTORY_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Temporal Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__TEMPORAL_TABLE = LUW_TABLE__TEMPORAL_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__MASKS = LUW_TABLE__MASKS;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__PERMISSIONS = LUW_TABLE__PERMISSIONS;
+
+ /**
+ * The feature id for the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__VALUE_COMPRESSION = LUW_TABLE__VALUE_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__ROW_COMPRESSION = LUW_TABLE__ROW_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression Empty</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__ROW_COMPRESSION_EMPTY = LUW_TABLE__ROW_COMPRESSION_EMPTY;
+
+ /**
+ * The feature id for the '<em><b>Compression Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__COMPRESSION_MODE = LUW_TABLE__COMPRESSION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__PARTITION_KEY = LUW_TABLE__PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__INDEX_DATA_TABLE_SPACE = LUW_TABLE__INDEX_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__LOB_DATA_TABLE_SPACE = LUW_TABLE__LOB_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__REGULAR_DATA_TABLE_SPACE = LUW_TABLE__REGULAR_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Data Partitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__DATA_PARTITIONS = LUW_TABLE__DATA_PARTITIONS;
+
+ /**
+ * The feature id for the '<em><b>Data Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__DATA_PARTITION_KEY = LUW_TABLE__DATA_PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__PCT_FREE = LUW_TABLE__PCT_FREE;
+
+ /**
+ * The feature id for the '<em><b>Restrict On Drop</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__RESTRICT_ON_DROP = LUW_TABLE__RESTRICT_ON_DROP;
+
+ /**
+ * The feature id for the '<em><b>Partition Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__PARTITION_MODE = LUW_TABLE__PARTITION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Append Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__APPEND_MODE = LUW_TABLE__APPEND_MODE;
+
+ /**
+ * The feature id for the '<em><b>Log Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__LOG_MODE = LUW_TABLE__LOG_MODE;
+
+ /**
+ * The feature id for the '<em><b>Lock Size Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__LOCK_SIZE_ROW = LUW_TABLE__LOCK_SIZE_ROW;
+
+ /**
+ * The feature id for the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__VOLATILE = LUW_TABLE__VOLATILE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__OPTIONS = LUW_TABLE__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Security Policy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__SECURITY_POLICY = LUW_TABLE__SECURITY_POLICY;
+
+ /**
+ * The feature id for the '<em><b>Remote Data Set</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__REMOTE_DATA_SET = LUW_TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME__SERVER = LUW_TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Nickname</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NICKNAME_FEATURE_COUNT = LUW_TABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl <em>Function Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWFunctionMapping()
+ * @generated
+ */
+ int LUW_FUNCTION_MAPPING = 10;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__SERVER_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Server Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__SERVER_VERSION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Server Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__SERVER_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Creation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__CREATION_TIME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Disabled</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__DISABLED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Insts Per Invoc</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__INSTS_PER_INVOC = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Insts Per Arg Byte</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Ios Per Invoc</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__IOS_PER_INVOC = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Ios Per Arg Byte</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__OPTIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Local Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__LOCAL_FUNCTION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Remote Function</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__REMOTE_FUNCTION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING__LUW_DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 12;
+
+ /**
+ * The number of structural features of the '<em>Function Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_FUNCTION_MAPPING_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 13;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl <em>Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWWrapper()
+ * @generated
+ */
+ int LUW_WRAPPER = 11;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__VERSION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Library</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__LIBRARY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__FENCED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Wrapper Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__WRAPPER_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Data Source</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__DATA_SOURCE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Discovered Libraries</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__DISCOVERED_LIBRARIES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__SERVERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__LUW_DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER__OPTIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>Wrapper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_WRAPPER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalNicknameImpl <em>Non Relational Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNonRelationalNickname()
+ * @generated
+ */
+ int LUW_NON_RELATIONAL_NICKNAME = 12;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__EANNOTATIONS = LUW_NICKNAME__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__NAME = LUW_NICKNAME__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__DEPENDENCIES = LUW_NICKNAME__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__DESCRIPTION = LUW_NICKNAME__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__LABEL = LUW_NICKNAME__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__COMMENTS = LUW_NICKNAME__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__EXTENSIONS = LUW_NICKNAME__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__PRIVILEGES = LUW_NICKNAME__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__COLUMNS = LUW_NICKNAME__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__SUPERTABLE = LUW_NICKNAME__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__SUBTABLES = LUW_NICKNAME__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__SCHEMA = LUW_NICKNAME__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__UDT = LUW_NICKNAME__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__TRIGGERS = LUW_NICKNAME__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__INDEX = LUW_NICKNAME__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__SELF_REF_COLUMN_GENERATION = LUW_NICKNAME__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__INSERTABLE = LUW_NICKNAME__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__UPDATABLE = LUW_NICKNAME__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__CONSTRAINTS = LUW_NICKNAME__CONSTRAINTS;
+
+ /**
+ * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__REFERENCING_FOREIGN_KEYS = LUW_NICKNAME__REFERENCING_FOREIGN_KEYS;
+
+ /**
+ * The feature id for the '<em><b>Data Capture</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__DATA_CAPTURE = LUW_NICKNAME__DATA_CAPTURE;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__ACTIVATE_ROW_ACCESS_CONTROL = LUW_NICKNAME__ACTIVATE_ROW_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__ACTIVATE_COLUMN_ACCESS_CONTROL = LUW_NICKNAME__ACTIVATE_COLUMN_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Organize By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__ORGANIZE_BY = LUW_NICKNAME__ORGANIZE_BY;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__PACKAGES = LUW_NICKNAME__PACKAGES;
+
+ /**
+ * The feature id for the '<em><b>Periods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__PERIODS = LUW_NICKNAME__PERIODS;
+
+ /**
+ * The feature id for the '<em><b>History Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__HISTORY_TABLE = LUW_NICKNAME__HISTORY_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Temporal Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__TEMPORAL_TABLE = LUW_NICKNAME__TEMPORAL_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__MASKS = LUW_NICKNAME__MASKS;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__PERMISSIONS = LUW_NICKNAME__PERMISSIONS;
+
+ /**
+ * The feature id for the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__VALUE_COMPRESSION = LUW_NICKNAME__VALUE_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__ROW_COMPRESSION = LUW_NICKNAME__ROW_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression Empty</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__ROW_COMPRESSION_EMPTY = LUW_NICKNAME__ROW_COMPRESSION_EMPTY;
+
+ /**
+ * The feature id for the '<em><b>Compression Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__COMPRESSION_MODE = LUW_NICKNAME__COMPRESSION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__PARTITION_KEY = LUW_NICKNAME__PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__INDEX_DATA_TABLE_SPACE = LUW_NICKNAME__INDEX_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__LOB_DATA_TABLE_SPACE = LUW_NICKNAME__LOB_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__REGULAR_DATA_TABLE_SPACE = LUW_NICKNAME__REGULAR_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Data Partitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__DATA_PARTITIONS = LUW_NICKNAME__DATA_PARTITIONS;
+
+ /**
+ * The feature id for the '<em><b>Data Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__DATA_PARTITION_KEY = LUW_NICKNAME__DATA_PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__PCT_FREE = LUW_NICKNAME__PCT_FREE;
+
+ /**
+ * The feature id for the '<em><b>Restrict On Drop</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__RESTRICT_ON_DROP = LUW_NICKNAME__RESTRICT_ON_DROP;
+
+ /**
+ * The feature id for the '<em><b>Partition Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__PARTITION_MODE = LUW_NICKNAME__PARTITION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Append Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__APPEND_MODE = LUW_NICKNAME__APPEND_MODE;
+
+ /**
+ * The feature id for the '<em><b>Log Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__LOG_MODE = LUW_NICKNAME__LOG_MODE;
+
+ /**
+ * The feature id for the '<em><b>Lock Size Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__LOCK_SIZE_ROW = LUW_NICKNAME__LOCK_SIZE_ROW;
+
+ /**
+ * The feature id for the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__VOLATILE = LUW_NICKNAME__VOLATILE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__OPTIONS = LUW_NICKNAME__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Security Policy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__SECURITY_POLICY = LUW_NICKNAME__SECURITY_POLICY;
+
+ /**
+ * The feature id for the '<em><b>Remote Data Set</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__REMOTE_DATA_SET = LUW_NICKNAME__REMOTE_DATA_SET;
+
+ /**
+ * The feature id for the '<em><b>Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__SERVER = LUW_NICKNAME__SERVER;
+
+ /**
+ * The feature id for the '<em><b>Non Rel Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME__NON_REL_SERVER = LUW_NICKNAME_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Non Relational Nickname</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_NICKNAME_FEATURE_COUNT = LUW_NICKNAME_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl <em>Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWServer()
+ * @generated
+ */
+ int LUW_SERVER = 18;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__SERVER_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Server Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__SERVER_VERSION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>User Mappings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__USER_MAPPINGS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Wrapper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__WRAPPER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Nicknames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__NICKNAMES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__LUW_DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__OPTIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Remote Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER__REMOTE_SERVER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SERVER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalServerImpl <em>Non Relational Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNonRelationalServer()
+ * @generated
+ */
+ int LUW_NON_RELATIONAL_SERVER = 13;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__EANNOTATIONS = LUW_SERVER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__NAME = LUW_SERVER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__DEPENDENCIES = LUW_SERVER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__DESCRIPTION = LUW_SERVER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__LABEL = LUW_SERVER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__COMMENTS = LUW_SERVER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__EXTENSIONS = LUW_SERVER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__PRIVILEGES = LUW_SERVER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__SERVER_TYPE = LUW_SERVER__SERVER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Server Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__SERVER_VERSION = LUW_SERVER__SERVER_VERSION;
+
+ /**
+ * The feature id for the '<em><b>User Mappings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__USER_MAPPINGS = LUW_SERVER__USER_MAPPINGS;
+
+ /**
+ * The feature id for the '<em><b>Wrapper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__WRAPPER = LUW_SERVER__WRAPPER;
+
+ /**
+ * The feature id for the '<em><b>Nicknames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__NICKNAMES = LUW_SERVER__NICKNAMES;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__LUW_DATABASE = LUW_SERVER__LUW_DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__OPTIONS = LUW_SERVER__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Remote Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__REMOTE_SERVER = LUW_SERVER__REMOTE_SERVER;
+
+ /**
+ * The feature id for the '<em><b>Non Rel Wrapper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__NON_REL_WRAPPER = LUW_SERVER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Non Rel Nicknames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER__NON_REL_NICKNAMES = LUW_SERVER_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Non Relational Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_SERVER_FEATURE_COUNT = LUW_SERVER_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalWrapperImpl <em>Non Relational Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNonRelationalWrapper()
+ * @generated
+ */
+ int LUW_NON_RELATIONAL_WRAPPER = 14;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__EANNOTATIONS = LUW_WRAPPER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__NAME = LUW_WRAPPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__DEPENDENCIES = LUW_WRAPPER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__DESCRIPTION = LUW_WRAPPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__LABEL = LUW_WRAPPER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__COMMENTS = LUW_WRAPPER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__EXTENSIONS = LUW_WRAPPER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__PRIVILEGES = LUW_WRAPPER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__VERSION = LUW_WRAPPER__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Library</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__LIBRARY = LUW_WRAPPER__LIBRARY;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__FENCED = LUW_WRAPPER__FENCED;
+
+ /**
+ * The feature id for the '<em><b>Wrapper Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__WRAPPER_TYPE = LUW_WRAPPER__WRAPPER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Data Source</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__DATA_SOURCE = LUW_WRAPPER__DATA_SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Discovered Libraries</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__DISCOVERED_LIBRARIES = LUW_WRAPPER__DISCOVERED_LIBRARIES;
+
+ /**
+ * The feature id for the '<em><b>Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__SERVERS = LUW_WRAPPER__SERVERS;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__LUW_DATABASE = LUW_WRAPPER__LUW_DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__OPTIONS = LUW_WRAPPER__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Non Rel Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER__NON_REL_SERVERS = LUW_WRAPPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Non Relational Wrapper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_NON_RELATIONAL_WRAPPER_FEATURE_COUNT = LUW_WRAPPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalNicknameImpl <em>Relational Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRelationalNickname()
+ * @generated
+ */
+ int LUW_RELATIONAL_NICKNAME = 15;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__EANNOTATIONS = LUW_NICKNAME__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__NAME = LUW_NICKNAME__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__DEPENDENCIES = LUW_NICKNAME__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__DESCRIPTION = LUW_NICKNAME__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__LABEL = LUW_NICKNAME__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__COMMENTS = LUW_NICKNAME__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__EXTENSIONS = LUW_NICKNAME__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__PRIVILEGES = LUW_NICKNAME__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__COLUMNS = LUW_NICKNAME__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__SUPERTABLE = LUW_NICKNAME__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__SUBTABLES = LUW_NICKNAME__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__SCHEMA = LUW_NICKNAME__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__UDT = LUW_NICKNAME__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__TRIGGERS = LUW_NICKNAME__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__INDEX = LUW_NICKNAME__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__SELF_REF_COLUMN_GENERATION = LUW_NICKNAME__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__INSERTABLE = LUW_NICKNAME__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__UPDATABLE = LUW_NICKNAME__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__CONSTRAINTS = LUW_NICKNAME__CONSTRAINTS;
+
+ /**
+ * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__REFERENCING_FOREIGN_KEYS = LUW_NICKNAME__REFERENCING_FOREIGN_KEYS;
+
+ /**
+ * The feature id for the '<em><b>Data Capture</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__DATA_CAPTURE = LUW_NICKNAME__DATA_CAPTURE;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__ACTIVATE_ROW_ACCESS_CONTROL = LUW_NICKNAME__ACTIVATE_ROW_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__ACTIVATE_COLUMN_ACCESS_CONTROL = LUW_NICKNAME__ACTIVATE_COLUMN_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Organize By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__ORGANIZE_BY = LUW_NICKNAME__ORGANIZE_BY;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__PACKAGES = LUW_NICKNAME__PACKAGES;
+
+ /**
+ * The feature id for the '<em><b>Periods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__PERIODS = LUW_NICKNAME__PERIODS;
+
+ /**
+ * The feature id for the '<em><b>History Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__HISTORY_TABLE = LUW_NICKNAME__HISTORY_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Temporal Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__TEMPORAL_TABLE = LUW_NICKNAME__TEMPORAL_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__MASKS = LUW_NICKNAME__MASKS;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__PERMISSIONS = LUW_NICKNAME__PERMISSIONS;
+
+ /**
+ * The feature id for the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__VALUE_COMPRESSION = LUW_NICKNAME__VALUE_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__ROW_COMPRESSION = LUW_NICKNAME__ROW_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression Empty</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__ROW_COMPRESSION_EMPTY = LUW_NICKNAME__ROW_COMPRESSION_EMPTY;
+
+ /**
+ * The feature id for the '<em><b>Compression Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__COMPRESSION_MODE = LUW_NICKNAME__COMPRESSION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__PARTITION_KEY = LUW_NICKNAME__PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__INDEX_DATA_TABLE_SPACE = LUW_NICKNAME__INDEX_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__LOB_DATA_TABLE_SPACE = LUW_NICKNAME__LOB_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__REGULAR_DATA_TABLE_SPACE = LUW_NICKNAME__REGULAR_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Data Partitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__DATA_PARTITIONS = LUW_NICKNAME__DATA_PARTITIONS;
+
+ /**
+ * The feature id for the '<em><b>Data Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__DATA_PARTITION_KEY = LUW_NICKNAME__DATA_PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__PCT_FREE = LUW_NICKNAME__PCT_FREE;
+
+ /**
+ * The feature id for the '<em><b>Restrict On Drop</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__RESTRICT_ON_DROP = LUW_NICKNAME__RESTRICT_ON_DROP;
+
+ /**
+ * The feature id for the '<em><b>Partition Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__PARTITION_MODE = LUW_NICKNAME__PARTITION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Append Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__APPEND_MODE = LUW_NICKNAME__APPEND_MODE;
+
+ /**
+ * The feature id for the '<em><b>Log Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__LOG_MODE = LUW_NICKNAME__LOG_MODE;
+
+ /**
+ * The feature id for the '<em><b>Lock Size Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__LOCK_SIZE_ROW = LUW_NICKNAME__LOCK_SIZE_ROW;
+
+ /**
+ * The feature id for the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__VOLATILE = LUW_NICKNAME__VOLATILE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__OPTIONS = LUW_NICKNAME__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Security Policy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__SECURITY_POLICY = LUW_NICKNAME__SECURITY_POLICY;
+
+ /**
+ * The feature id for the '<em><b>Remote Data Set</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__REMOTE_DATA_SET = LUW_NICKNAME__REMOTE_DATA_SET;
+
+ /**
+ * The feature id for the '<em><b>Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__SERVER = LUW_NICKNAME__SERVER;
+
+ /**
+ * The feature id for the '<em><b>Rel Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME__REL_SERVER = LUW_NICKNAME_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Relational Nickname</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_NICKNAME_FEATURE_COUNT = LUW_NICKNAME_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWUserMappingImpl <em>User Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWUserMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWUserMapping()
+ * @generated
+ */
+ int LUW_USER_MAPPING = 20;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Local Auth Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__LOCAL_AUTH_ID = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Server</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__SERVER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING__OPTIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>User Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_USER_MAPPING_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericUserMappingImpl <em>Generic User Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericUserMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericUserMapping()
+ * @generated
+ */
+ int LUW_GENERIC_USER_MAPPING = 16;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__EANNOTATIONS = LUW_USER_MAPPING__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__NAME = LUW_USER_MAPPING__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__DEPENDENCIES = LUW_USER_MAPPING__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__DESCRIPTION = LUW_USER_MAPPING__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__LABEL = LUW_USER_MAPPING__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__COMMENTS = LUW_USER_MAPPING__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__EXTENSIONS = LUW_USER_MAPPING__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__PRIVILEGES = LUW_USER_MAPPING__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Local Auth Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__LOCAL_AUTH_ID = LUW_USER_MAPPING__LOCAL_AUTH_ID;
+
+ /**
+ * The feature id for the '<em><b>Server</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__SERVER = LUW_USER_MAPPING__SERVER;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__OPTIONS = LUW_USER_MAPPING__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Remote User</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__REMOTE_USER = LUW_USER_MAPPING_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Remote Password</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD = LUW_USER_MAPPING_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Generic User Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_USER_MAPPING_FEATURE_COUNT = LUW_USER_MAPPING_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalWrapperImpl <em>Relational Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRelationalWrapper()
+ * @generated
+ */
+ int LUW_RELATIONAL_WRAPPER = 17;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__EANNOTATIONS = LUW_WRAPPER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__NAME = LUW_WRAPPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__DEPENDENCIES = LUW_WRAPPER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__DESCRIPTION = LUW_WRAPPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__LABEL = LUW_WRAPPER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__COMMENTS = LUW_WRAPPER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__EXTENSIONS = LUW_WRAPPER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__PRIVILEGES = LUW_WRAPPER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__VERSION = LUW_WRAPPER__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Library</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__LIBRARY = LUW_WRAPPER__LIBRARY;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__FENCED = LUW_WRAPPER__FENCED;
+
+ /**
+ * The feature id for the '<em><b>Wrapper Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__WRAPPER_TYPE = LUW_WRAPPER__WRAPPER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Data Source</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__DATA_SOURCE = LUW_WRAPPER__DATA_SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Discovered Libraries</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__DISCOVERED_LIBRARIES = LUW_WRAPPER__DISCOVERED_LIBRARIES;
+
+ /**
+ * The feature id for the '<em><b>Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__SERVERS = LUW_WRAPPER__SERVERS;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__LUW_DATABASE = LUW_WRAPPER__LUW_DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__OPTIONS = LUW_WRAPPER__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Rel Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER__REL_SERVERS = LUW_WRAPPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Relational Wrapper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_WRAPPER_FEATURE_COUNT = LUW_WRAPPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl <em>Type Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTypeMapping()
+ * @generated
+ */
+ int LUW_TYPE_MAPPING = 19;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__SERVER_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Server Vesion</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__SERVER_VESION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Server Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__SERVER_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Creation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__CREATION_TIME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Local Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__LOCAL_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Remote Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING__REMOTE_TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Type Mapping</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TYPE_MAPPING_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWOptionImpl <em>Option</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWOptionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWOption()
+ * @generated
+ */
+ int LUW_OPTION = 21;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION__VALUE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Option</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_OPTION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl <em>Relational Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRelationalServer()
+ * @generated
+ */
+ int LUW_RELATIONAL_SERVER = 22;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__EANNOTATIONS = LUW_SERVER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__NAME = LUW_SERVER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__DEPENDENCIES = LUW_SERVER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__DESCRIPTION = LUW_SERVER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__LABEL = LUW_SERVER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__COMMENTS = LUW_SERVER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__EXTENSIONS = LUW_SERVER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__PRIVILEGES = LUW_SERVER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__SERVER_TYPE = LUW_SERVER__SERVER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Server Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__SERVER_VERSION = LUW_SERVER__SERVER_VERSION;
+
+ /**
+ * The feature id for the '<em><b>User Mappings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__USER_MAPPINGS = LUW_SERVER__USER_MAPPINGS;
+
+ /**
+ * The feature id for the '<em><b>Wrapper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__WRAPPER = LUW_SERVER__WRAPPER;
+
+ /**
+ * The feature id for the '<em><b>Nicknames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__NICKNAMES = LUW_SERVER__NICKNAMES;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__LUW_DATABASE = LUW_SERVER__LUW_DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__OPTIONS = LUW_SERVER__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Remote Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__REMOTE_SERVER = LUW_SERVER__REMOTE_SERVER;
+
+ /**
+ * The feature id for the '<em><b>Cpu Ratio</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__CPU_RATIO = LUW_SERVER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Io Ratio</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__IO_RATIO = LUW_SERVER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Comm Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__COMM_RATE = LUW_SERVER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Fold Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__FOLD_ID = LUW_SERVER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Fold PW</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__FOLD_PW = LUW_SERVER_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Collating Sequence</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE = LUW_SERVER_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Pushdown</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__PUSHDOWN = LUW_SERVER_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Node</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__NODE = LUW_SERVER_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Db Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__DB_NAME = LUW_SERVER_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Iud App Svpt Enforce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE = LUW_SERVER_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Password</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__PASSWORD = LUW_SERVER_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Rel Nicknames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__REL_NICKNAMES = LUW_SERVER_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Rel Wrapper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER__REL_WRAPPER = LUW_SERVER_FEATURE_COUNT + 12;
+
+ /**
+ * The number of structural features of the '<em>Relational Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_RELATIONAL_SERVER_FEATURE_COUNT = LUW_SERVER_FEATURE_COUNT + 13;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl <em>Database</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabase()
+ * @generated
+ */
+ int LUW_DATABASE = 23;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__EANNOTATIONS = DB2ModelPackage.DB2_DATABASE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__NAME = DB2ModelPackage.DB2_DATABASE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__DEPENDENCIES = DB2ModelPackage.DB2_DATABASE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__DESCRIPTION = DB2ModelPackage.DB2_DATABASE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__LABEL = DB2ModelPackage.DB2_DATABASE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__COMMENTS = DB2ModelPackage.DB2_DATABASE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__EXTENSIONS = DB2ModelPackage.DB2_DATABASE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__PRIVILEGES = DB2ModelPackage.DB2_DATABASE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Vendor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__VENDOR = DB2ModelPackage.DB2_DATABASE__VENDOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__VERSION = DB2ModelPackage.DB2_DATABASE__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Schemas</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__SCHEMAS = DB2ModelPackage.DB2_DATABASE__SCHEMAS;
+
+ /**
+ * The feature id for the '<em><b>Events</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__EVENTS = DB2ModelPackage.DB2_DATABASE__EVENTS;
+
+ /**
+ * The feature id for the '<em><b>Catalogs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__CATALOGS = DB2ModelPackage.DB2_DATABASE__CATALOGS;
+
+ /**
+ * The feature id for the '<em><b>Authorization Ids</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__AUTHORIZATION_IDS = DB2ModelPackage.DB2_DATABASE__AUTHORIZATION_IDS;
+
+ /**
+ * The feature id for the '<em><b>Partitioned</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__PARTITIONED = DB2ModelPackage.DB2_DATABASE__PARTITIONED;
+
+ /**
+ * The feature id for the '<em><b>Default Organize By Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__DEFAULT_ORGANIZE_BY_ROW = DB2ModelPackage.DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__FEDERATED = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__GROUPS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Wrappers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__WRAPPERS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__SERVERS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Function Mappings</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__FUNCTION_MAPPINGS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Type Mappings</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__TYPE_MAPPINGS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Reverse Type Mappings</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__REVERSE_TYPE_MAPPINGS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Bufferpools</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__BUFFERPOOLS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Tablespaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__TABLESPACES = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Storage Groups</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__STORAGE_GROUPS = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Default Storage Group</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE__DEFAULT_STORAGE_GROUP = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 10;
+
+ /**
+ * The number of structural features of the '<em>Database</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_FEATURE_COUNT = DB2ModelPackage.DB2_DATABASE_FEATURE_COUNT + 11;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl <em>Column</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWColumn()
+ * @generated
+ */
+ int LUW_COLUMN = 24;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__EANNOTATIONS = DB2ModelPackage.DB2_COLUMN__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__NAME = DB2ModelPackage.DB2_COLUMN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__DEPENDENCIES = DB2ModelPackage.DB2_COLUMN__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__DESCRIPTION = DB2ModelPackage.DB2_COLUMN__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__LABEL = DB2ModelPackage.DB2_COLUMN__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__COMMENTS = DB2ModelPackage.DB2_COLUMN__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__EXTENSIONS = DB2ModelPackage.DB2_COLUMN__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__PRIVILEGES = DB2ModelPackage.DB2_COLUMN__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__CONTAINED_TYPE = DB2ModelPackage.DB2_COLUMN__CONTAINED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__REFERENCED_TYPE = DB2ModelPackage.DB2_COLUMN__REFERENCED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__TABLE = DB2ModelPackage.DB2_COLUMN__TABLE;
+
+ /**
+ * The feature id for the '<em><b>Identity Specifier</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__IDENTITY_SPECIFIER = DB2ModelPackage.DB2_COLUMN__IDENTITY_SPECIFIER;
+
+ /**
+ * The feature id for the '<em><b>Generate Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__GENERATE_EXPRESSION = DB2ModelPackage.DB2_COLUMN__GENERATE_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Implementation Dependent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__IMPLEMENTATION_DEPENDENT = DB2ModelPackage.DB2_COLUMN__IMPLEMENTATION_DEPENDENT;
+
+ /**
+ * The feature id for the '<em><b>Nullable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__NULLABLE = DB2ModelPackage.DB2_COLUMN__NULLABLE;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__DEFAULT_VALUE = DB2ModelPackage.DB2_COLUMN__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Scope Check</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__SCOPE_CHECK = DB2ModelPackage.DB2_COLUMN__SCOPE_CHECK;
+
+ /**
+ * The feature id for the '<em><b>Scope Checked</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__SCOPE_CHECKED = DB2ModelPackage.DB2_COLUMN__SCOPE_CHECKED;
+
+ /**
+ * The feature id for the '<em><b>Generation Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__GENERATION_TYPE = DB2ModelPackage.DB2_COLUMN__GENERATION_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Row Change Timestamp</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__ROW_CHANGE_TIMESTAMP = DB2ModelPackage.DB2_COLUMN__ROW_CHANGE_TIMESTAMP;
+
+ /**
+ * The feature id for the '<em><b>Row Begin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__ROW_BEGIN = DB2ModelPackage.DB2_COLUMN__ROW_BEGIN;
+
+ /**
+ * The feature id for the '<em><b>Row End</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__ROW_END = DB2ModelPackage.DB2_COLUMN__ROW_END;
+
+ /**
+ * The feature id for the '<em><b>Trans Start ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__TRANS_START_ID = DB2ModelPackage.DB2_COLUMN__TRANS_START_ID;
+
+ /**
+ * The feature id for the '<em><b>Begin Period</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__BEGIN_PERIOD = DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD;
+
+ /**
+ * The feature id for the '<em><b>End Period</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__END_PERIOD = DB2ModelPackage.DB2_COLUMN__END_PERIOD;
+
+ /**
+ * The feature id for the '<em><b>Lob Logged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__LOB_LOGGED = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Lob Compacted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__LOB_COMPACTED = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__COMPRESSION = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Inline Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__INLINE_LENGTH = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Hidden</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__HIDDEN = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Security Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__SECURITY_LABEL = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN__OPTIONS = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Column</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_COLUMN_FEATURE_COUNT = DB2ModelPackage.DB2_COLUMN_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericNicknameImpl <em>Generic Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericNickname()
+ * @generated
+ */
+ int LUW_GENERIC_NICKNAME = 25;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__EANNOTATIONS = LUW_NICKNAME__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__NAME = LUW_NICKNAME__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__DEPENDENCIES = LUW_NICKNAME__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__DESCRIPTION = LUW_NICKNAME__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__LABEL = LUW_NICKNAME__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__COMMENTS = LUW_NICKNAME__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__EXTENSIONS = LUW_NICKNAME__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__PRIVILEGES = LUW_NICKNAME__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__COLUMNS = LUW_NICKNAME__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__SUPERTABLE = LUW_NICKNAME__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__SUBTABLES = LUW_NICKNAME__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__SCHEMA = LUW_NICKNAME__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__UDT = LUW_NICKNAME__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__TRIGGERS = LUW_NICKNAME__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__INDEX = LUW_NICKNAME__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__SELF_REF_COLUMN_GENERATION = LUW_NICKNAME__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__INSERTABLE = LUW_NICKNAME__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__UPDATABLE = LUW_NICKNAME__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__CONSTRAINTS = LUW_NICKNAME__CONSTRAINTS;
+
+ /**
+ * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__REFERENCING_FOREIGN_KEYS = LUW_NICKNAME__REFERENCING_FOREIGN_KEYS;
+
+ /**
+ * The feature id for the '<em><b>Data Capture</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__DATA_CAPTURE = LUW_NICKNAME__DATA_CAPTURE;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__ACTIVATE_ROW_ACCESS_CONTROL = LUW_NICKNAME__ACTIVATE_ROW_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__ACTIVATE_COLUMN_ACCESS_CONTROL = LUW_NICKNAME__ACTIVATE_COLUMN_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Organize By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__ORGANIZE_BY = LUW_NICKNAME__ORGANIZE_BY;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__PACKAGES = LUW_NICKNAME__PACKAGES;
+
+ /**
+ * The feature id for the '<em><b>Periods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__PERIODS = LUW_NICKNAME__PERIODS;
+
+ /**
+ * The feature id for the '<em><b>History Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__HISTORY_TABLE = LUW_NICKNAME__HISTORY_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Temporal Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__TEMPORAL_TABLE = LUW_NICKNAME__TEMPORAL_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__MASKS = LUW_NICKNAME__MASKS;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__PERMISSIONS = LUW_NICKNAME__PERMISSIONS;
+
+ /**
+ * The feature id for the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__VALUE_COMPRESSION = LUW_NICKNAME__VALUE_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__ROW_COMPRESSION = LUW_NICKNAME__ROW_COMPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Row Compression Empty</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__ROW_COMPRESSION_EMPTY = LUW_NICKNAME__ROW_COMPRESSION_EMPTY;
+
+ /**
+ * The feature id for the '<em><b>Compression Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__COMPRESSION_MODE = LUW_NICKNAME__COMPRESSION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__PARTITION_KEY = LUW_NICKNAME__PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__INDEX_DATA_TABLE_SPACE = LUW_NICKNAME__INDEX_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__LOB_DATA_TABLE_SPACE = LUW_NICKNAME__LOB_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__REGULAR_DATA_TABLE_SPACE = LUW_NICKNAME__REGULAR_DATA_TABLE_SPACE;
+
+ /**
+ * The feature id for the '<em><b>Data Partitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__DATA_PARTITIONS = LUW_NICKNAME__DATA_PARTITIONS;
+
+ /**
+ * The feature id for the '<em><b>Data Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__DATA_PARTITION_KEY = LUW_NICKNAME__DATA_PARTITION_KEY;
+
+ /**
+ * The feature id for the '<em><b>PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__PCT_FREE = LUW_NICKNAME__PCT_FREE;
+
+ /**
+ * The feature id for the '<em><b>Restrict On Drop</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__RESTRICT_ON_DROP = LUW_NICKNAME__RESTRICT_ON_DROP;
+
+ /**
+ * The feature id for the '<em><b>Partition Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__PARTITION_MODE = LUW_NICKNAME__PARTITION_MODE;
+
+ /**
+ * The feature id for the '<em><b>Append Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__APPEND_MODE = LUW_NICKNAME__APPEND_MODE;
+
+ /**
+ * The feature id for the '<em><b>Log Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__LOG_MODE = LUW_NICKNAME__LOG_MODE;
+
+ /**
+ * The feature id for the '<em><b>Lock Size Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__LOCK_SIZE_ROW = LUW_NICKNAME__LOCK_SIZE_ROW;
+
+ /**
+ * The feature id for the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__VOLATILE = LUW_NICKNAME__VOLATILE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__OPTIONS = LUW_NICKNAME__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Security Policy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__SECURITY_POLICY = LUW_NICKNAME__SECURITY_POLICY;
+
+ /**
+ * The feature id for the '<em><b>Remote Data Set</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__REMOTE_DATA_SET = LUW_NICKNAME__REMOTE_DATA_SET;
+
+ /**
+ * The feature id for the '<em><b>Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__SERVER = LUW_NICKNAME__SERVER;
+
+ /**
+ * The feature id for the '<em><b>Generic Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME__GENERIC_SERVER = LUW_NICKNAME_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Generic Nickname</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_NICKNAME_FEATURE_COUNT = LUW_NICKNAME_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericServerImpl <em>Generic Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericServer()
+ * @generated
+ */
+ int LUW_GENERIC_SERVER = 26;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__EANNOTATIONS = LUW_SERVER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__NAME = LUW_SERVER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__DEPENDENCIES = LUW_SERVER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__DESCRIPTION = LUW_SERVER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__LABEL = LUW_SERVER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__COMMENTS = LUW_SERVER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__EXTENSIONS = LUW_SERVER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__PRIVILEGES = LUW_SERVER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__SERVER_TYPE = LUW_SERVER__SERVER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Server Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__SERVER_VERSION = LUW_SERVER__SERVER_VERSION;
+
+ /**
+ * The feature id for the '<em><b>User Mappings</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__USER_MAPPINGS = LUW_SERVER__USER_MAPPINGS;
+
+ /**
+ * The feature id for the '<em><b>Wrapper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__WRAPPER = LUW_SERVER__WRAPPER;
+
+ /**
+ * The feature id for the '<em><b>Nicknames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__NICKNAMES = LUW_SERVER__NICKNAMES;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__LUW_DATABASE = LUW_SERVER__LUW_DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__OPTIONS = LUW_SERVER__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Remote Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__REMOTE_SERVER = LUW_SERVER__REMOTE_SERVER;
+
+ /**
+ * The feature id for the '<em><b>Generic Nicknames</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__GENERIC_NICKNAMES = LUW_SERVER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Generic Wrapper</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER__GENERIC_WRAPPER = LUW_SERVER_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Generic Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_SERVER_FEATURE_COUNT = LUW_SERVER_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl <em>Materialized Query Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWMaterializedQueryTable()
+ * @generated
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE = 27;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__EANNOTATIONS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__NAME = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__DEPENDENCIES = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__DESCRIPTION = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__LABEL = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__COMMENTS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__EXTENSIONS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__PRIVILEGES = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__COLUMNS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__SUPERTABLE = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__SUBTABLES = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__SCHEMA = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__UDT = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__TRIGGERS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__INDEX = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__SELF_REF_COLUMN_GENERATION = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__INSERTABLE = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__UPDATABLE = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Query Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__QUERY_EXPRESSION = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__QUERY_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Refresh</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__REFRESH = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__REFRESH;
+
+ /**
+ * The feature id for the '<em><b>Optimize Query</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY;
+
+ /**
+ * The feature id for the '<em><b>Maintained By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__MAINTAINED_BY = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MAINTAINED_BY;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__MASKS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__PERMISSIONS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS;
+
+ /**
+ * The feature id for the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Row Compression Empty</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Compression Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Data Partitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Data Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 9;
+
+ /**
+ * The number of structural features of the '<em>Materialized Query Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT = DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT + 10;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericWrapperImpl <em>Generic Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericWrapper()
+ * @generated
+ */
+ int LUW_GENERIC_WRAPPER = 28;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__EANNOTATIONS = LUW_WRAPPER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__NAME = LUW_WRAPPER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__DEPENDENCIES = LUW_WRAPPER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__DESCRIPTION = LUW_WRAPPER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__LABEL = LUW_WRAPPER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__COMMENTS = LUW_WRAPPER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__EXTENSIONS = LUW_WRAPPER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__PRIVILEGES = LUW_WRAPPER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__VERSION = LUW_WRAPPER__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Library</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__LIBRARY = LUW_WRAPPER__LIBRARY;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__FENCED = LUW_WRAPPER__FENCED;
+
+ /**
+ * The feature id for the '<em><b>Wrapper Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__WRAPPER_TYPE = LUW_WRAPPER__WRAPPER_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Data Source</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__DATA_SOURCE = LUW_WRAPPER__DATA_SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Discovered Libraries</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__DISCOVERED_LIBRARIES = LUW_WRAPPER__DISCOVERED_LIBRARIES;
+
+ /**
+ * The feature id for the '<em><b>Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__SERVERS = LUW_WRAPPER__SERVERS;
+
+ /**
+ * The feature id for the '<em><b>LUW Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__LUW_DATABASE = LUW_WRAPPER__LUW_DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__OPTIONS = LUW_WRAPPER__OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Generic Servers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER__GENERIC_SERVERS = LUW_WRAPPER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Generic Wrapper</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GENERIC_WRAPPER_FEATURE_COUNT = LUW_WRAPPER_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable <em>Storage Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWStorageTable()
+ * @generated
+ */
+ int LUW_STORAGE_TABLE = 29;
+
+ /**
+ * The feature id for the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__VALUE_COMPRESSION = 0;
+
+ /**
+ * The feature id for the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__ROW_COMPRESSION = 1;
+
+ /**
+ * The feature id for the '<em><b>Row Compression Empty</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__ROW_COMPRESSION_EMPTY = 2;
+
+ /**
+ * The feature id for the '<em><b>Compression Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__COMPRESSION_MODE = 3;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__PARTITION_KEY = 4;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE = 5;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE = 6;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE = 7;
+
+ /**
+ * The feature id for the '<em><b>Data Partitions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__DATA_PARTITIONS = 8;
+
+ /**
+ * The feature id for the '<em><b>Data Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE__DATA_PARTITION_KEY = 9;
+
+ /**
+ * The number of structural features of the '<em>Storage Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_TABLE_FEATURE_COUNT = 10;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteServerImpl <em>Relational Remote Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRelationalRemoteServer()
+ * @generated
+ */
+ int RELATIONAL_REMOTE_SERVER = 30;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>LUW Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__LUW_SERVER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER__DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Relational Remote Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_SERVER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteDataSetImpl <em>Relational Remote Data Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteDataSetImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRelationalRemoteDataSet()
+ * @generated
+ */
+ int RELATIONAL_REMOTE_DATA_SET = 31;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Nickname</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__NICKNAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET__TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Relational Remote Data Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RELATIONAL_REMOTE_DATA_SET_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteServerImpl <em>Remote Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRemoteServer()
+ * @generated
+ */
+ int REMOTE_SERVER = 32;
+
+ /**
+ * The feature id for the '<em><b>LUW Server</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REMOTE_SERVER__LUW_SERVER = 0;
+
+ /**
+ * The number of structural features of the '<em>Remote Server</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REMOTE_SERVER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteDataSetImpl <em>Remote Data Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteDataSetImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRemoteDataSet()
+ * @generated
+ */
+ int REMOTE_DATA_SET = 33;
+
+ /**
+ * The feature id for the '<em><b>Nickname</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REMOTE_DATA_SET__NICKNAME = 0;
+
+ /**
+ * The number of structural features of the '<em>Remote Data Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REMOTE_DATA_SET_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl <em>Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWIndex()
+ * @generated
+ */
+ int LUW_INDEX = 34;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__EANNOTATIONS = DB2ModelPackage.DB2_INDEX__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__NAME = DB2ModelPackage.DB2_INDEX__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__DEPENDENCIES = DB2ModelPackage.DB2_INDEX__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__DESCRIPTION = DB2ModelPackage.DB2_INDEX__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__LABEL = DB2ModelPackage.DB2_INDEX__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__COMMENTS = DB2ModelPackage.DB2_INDEX__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__EXTENSIONS = DB2ModelPackage.DB2_INDEX__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__PRIVILEGES = DB2ModelPackage.DB2_INDEX__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__SCHEMA = DB2ModelPackage.DB2_INDEX__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Clustered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__CLUSTERED = DB2ModelPackage.DB2_INDEX__CLUSTERED;
+
+ /**
+ * The feature id for the '<em><b>Fill Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__FILL_FACTOR = DB2ModelPackage.DB2_INDEX__FILL_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__UNIQUE = DB2ModelPackage.DB2_INDEX__UNIQUE;
+
+ /**
+ * The feature id for the '<em><b>System Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__SYSTEM_GENERATED = DB2ModelPackage.DB2_INDEX__SYSTEM_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__MEMBERS = DB2ModelPackage.DB2_INDEX__MEMBERS;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__TABLE = DB2ModelPackage.DB2_INDEX__TABLE;
+
+ /**
+ * The feature id for the '<em><b>Foreign Key</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__FOREIGN_KEY = DB2ModelPackage.DB2_INDEX__FOREIGN_KEY;
+
+ /**
+ * The feature id for the '<em><b>Included Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__INCLUDED_MEMBERS = DB2ModelPackage.DB2_INDEX__INCLUDED_MEMBERS;
+
+ /**
+ * The feature id for the '<em><b>Index Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__INDEX_TYPE = DB2ModelPackage.DB2_INDEX__INDEX_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Bus Period Without Overlap</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__BUS_PERIOD_WITHOUT_OVERLAP = DB2ModelPackage.DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP;
+
+ /**
+ * The feature id for the '<em><b>Encoded Vector</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__ENCODED_VECTOR = DB2ModelPackage.DB2_INDEX__ENCODED_VECTOR;
+
+ /**
+ * The feature id for the '<em><b>DB2 Multidimensional Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__DB2_MULTIDIMENSIONAL_INDEX = DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX;
+
+ /**
+ * The feature id for the '<em><b>PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__PCT_FREE = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Min PCT Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__MIN_PCT_FREE = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Reverse Scan</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__REVERSE_SCAN = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Not Partitioned</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__NOT_PARTITIONED = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Xml Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__XML_PATTERN = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>As SQL Data Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__AS_SQL_DATA_TYPE = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>As SQL Data Type Hashed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__AS_SQL_DATA_TYPE_HASHED = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>System Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__SYSTEM_REQUIRED = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Page Split Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__PAGE_SPLIT_TYPE = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Level2 Pct Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__LEVEL2_PCT_FREE = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Min Pct Used</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__MIN_PCT_USED = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Compress</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__COMPRESS = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Collect Stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__COLLECT_STATS = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Sampled Stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__SAMPLED_STATS = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Detailed Stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__DETAILED_STATS = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Ignore Invalid Values</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__IGNORE_INVALID_VALUES = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Exclude Null Keys</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__EXCLUDE_NULL_KEYS = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Tablespace</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX__TABLESPACE = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 17;
+
+ /**
+ * The number of structural features of the '<em>Index</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_INDEX_FEATURE_COUNT = DB2ModelPackage.DB2_INDEX_FEATURE_COUNT + 18;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAttributeDefinitionImpl <em>Attribute Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAttributeDefinitionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWAttributeDefinition()
+ * @generated
+ */
+ int LUW_ATTRIBUTE_DEFINITION = 35;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__EANNOTATIONS = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__NAME = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__DEPENDENCIES = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__DESCRIPTION = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__LABEL = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__COMMENTS = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__EXTENSIONS = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__PRIVILEGES = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__CONTAINED_TYPE = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__CONTAINED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__REFERENCED_TYPE = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__REFERENCED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Scope Check</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__SCOPE_CHECK = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECK;
+
+ /**
+ * The feature id for the '<em><b>Scope Checked</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__SCOPE_CHECKED = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__SCOPE_CHECKED;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__DEFAULT_VALUE = SQLDataTypesPackage.ATTRIBUTE_DEFINITION__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>LOB Logged</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED = SQLDataTypesPackage.ATTRIBUTE_DEFINITION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>LOB Compacted</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED = SQLDataTypesPackage.ATTRIBUTE_DEFINITION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Attribute Definition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ATTRIBUTE_DEFINITION_FEATURE_COUNT = SQLDataTypesPackage.ATTRIBUTE_DEFINITION_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl <em>Federated Procedure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getFederatedProcedure()
+ * @generated
+ */
+ int FEDERATED_PROCEDURE = 36;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__EANNOTATIONS = DB2ModelPackage.DB2_PROCEDURE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__NAME = DB2ModelPackage.DB2_PROCEDURE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__DEPENDENCIES = DB2ModelPackage.DB2_PROCEDURE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__DESCRIPTION = DB2ModelPackage.DB2_PROCEDURE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__LABEL = DB2ModelPackage.DB2_PROCEDURE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__COMMENTS = DB2ModelPackage.DB2_PROCEDURE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__EXTENSIONS = DB2ModelPackage.DB2_PROCEDURE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__PRIVILEGES = DB2ModelPackage.DB2_PROCEDURE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__SPECIFIC_NAME = DB2ModelPackage.DB2_PROCEDURE__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__LANGUAGE = DB2ModelPackage.DB2_PROCEDURE__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__PARAMETER_STYLE = DB2ModelPackage.DB2_PROCEDURE__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__DETERMINISTIC = DB2ModelPackage.DB2_PROCEDURE__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__SQL_DATA_ACCESS = DB2ModelPackage.DB2_PROCEDURE__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__CREATION_TS = DB2ModelPackage.DB2_PROCEDURE__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__LAST_ALTERED_TS = DB2ModelPackage.DB2_PROCEDURE__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__AUTHORIZATION_ID = DB2ModelPackage.DB2_PROCEDURE__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__SECURITY = DB2ModelPackage.DB2_PROCEDURE__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__EXTERNAL_NAME = DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__PARAMETERS = DB2ModelPackage.DB2_PROCEDURE__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__SOURCE = DB2ModelPackage.DB2_PROCEDURE__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__SCHEMA = DB2ModelPackage.DB2_PROCEDURE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Max Result Sets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__MAX_RESULT_SETS = DB2ModelPackage.DB2_PROCEDURE__MAX_RESULT_SETS;
+
+ /**
+ * The feature id for the '<em><b>Old Save Point</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__OLD_SAVE_POINT = DB2ModelPackage.DB2_PROCEDURE__OLD_SAVE_POINT;
+
+ /**
+ * The feature id for the '<em><b>Result Set</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__RESULT_SET = DB2ModelPackage.DB2_PROCEDURE__RESULT_SET;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__FENCED = DB2ModelPackage.DB2_PROCEDURE__FENCED;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__THREADSAFE = DB2ModelPackage.DB2_PROCEDURE__THREADSAFE;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__DB_INFO = DB2ModelPackage.DB2_PROCEDURE__DB_INFO;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__IMPLICIT_SCHEMA = DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__FEDERATED = DB2ModelPackage.DB2_PROCEDURE__FEDERATED;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__PARM_CCSID = DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__SPECIAL_REGISTER = DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__CHANGE_STATE = DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__DEBUG_ID = DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__PROGRAM_TYPE = DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__ORIG_SCHEMA_NAME = DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__ORIG_PARM_SIG = DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__EXTENDED_OPTIONS = DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__ROUTINE_EXTENSIONS = DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Model Result Sets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__MODEL_RESULT_SETS = DB2ModelPackage.DB2_PROCEDURE__MODEL_RESULT_SETS;
+
+ /**
+ * The feature id for the '<em><b>Null Input</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__NULL_INPUT = DB2ModelPackage.DB2_PROCEDURE__NULL_INPUT;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__VERSION = DB2ModelPackage.DB2_PROCEDURE__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__DIALECT = DB2ModelPackage.DB2_PROCEDURE__DIALECT;
+
+ /**
+ * The feature id for the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__EXTERNAL_ACTION = DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_ACTION;
+
+ /**
+ * The feature id for the '<em><b>Return</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__RETURN = DB2ModelPackage.DB2_PROCEDURE__RETURN;
+
+ /**
+ * The feature id for the '<em><b>Java Options</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__JAVA_OPTIONS = DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Deploy</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__DEPLOY = DB2ModelPackage.DB2_PROCEDURE__DEPLOY;
+
+ /**
+ * The feature id for the '<em><b>Remote Unique Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Remote Server</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__REMOTE_SERVER = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Remote Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__REMOTE_SCHEMA = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Remote Package</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__REMOTE_PACKAGE = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Remote Procedure Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Number Of Parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Result Sets To Client</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Number Of Ref Cursors</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>All Result Sets To Caller</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Federated Procedure</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__FEDERATED_PROCEDURE = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Remote Procedure</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__REMOTE_PROCEDURE = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Federated Parameter</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE__FEDERATED_PARAMETER = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 11;
+
+ /**
+ * The number of structural features of the '<em>Federated Procedure</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PROCEDURE_FEATURE_COUNT = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 12;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl <em>Federated Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getFederatedParameter()
+ * @generated
+ */
+ int FEDERATED_PARAMETER = 37;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__EANNOTATIONS = SQLRoutinesPackage.PARAMETER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__NAME = SQLRoutinesPackage.PARAMETER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__DEPENDENCIES = SQLRoutinesPackage.PARAMETER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__DESCRIPTION = SQLRoutinesPackage.PARAMETER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__LABEL = SQLRoutinesPackage.PARAMETER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__COMMENTS = SQLRoutinesPackage.PARAMETER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__EXTENSIONS = SQLRoutinesPackage.PARAMETER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__PRIVILEGES = SQLRoutinesPackage.PARAMETER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__CONTAINED_TYPE = SQLRoutinesPackage.PARAMETER__CONTAINED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__REFERENCED_TYPE = SQLRoutinesPackage.PARAMETER__REFERENCED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__MODE = SQLRoutinesPackage.PARAMETER__MODE;
+
+ /**
+ * The feature id for the '<em><b>Locator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__LOCATOR = SQLRoutinesPackage.PARAMETER__LOCATOR;
+
+ /**
+ * The feature id for the '<em><b>Routine</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__ROUTINE = SQLRoutinesPackage.PARAMETER__ROUTINE;
+
+ /**
+ * The feature id for the '<em><b>String Type Option</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__STRING_TYPE_OPTION = SQLRoutinesPackage.PARAMETER__STRING_TYPE_OPTION;
+
+ /**
+ * The feature id for the '<em><b>Remote Code Page</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__REMOTE_CODE_PAGE = SQLRoutinesPackage.PARAMETER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Remote Param Type ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID = SQLRoutinesPackage.PARAMETER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Federated Procedure</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__FEDERATED_PROCEDURE = SQLRoutinesPackage.PARAMETER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Remote Parameter</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER__REMOTE_PARAMETER = SQLRoutinesPackage.PARAMETER_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Federated Parameter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FEDERATED_PARAMETER_FEATURE_COUNT = SQLRoutinesPackage.PARAMETER_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl <em>Partition Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionExpression()
+ * @generated
+ */
+ int LUW_PARTITION_EXPRESSION = 38;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Nulls Last</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__NULLS_LAST = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Key</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__KEY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Column</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__COLUMN = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Partition Elements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Partition Expression</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EXPRESSION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl <em>Partition Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionElement()
+ * @generated
+ */
+ int LUW_PARTITION_ELEMENT = 39;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Starting</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__STARTING = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Ending</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__ENDING = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>LUW Partition Expression</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Partition</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__PARTITION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Every Clause</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT__EVERY_CLAUSE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Partition Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_ELEMENT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl <em>Data Partition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDataPartition()
+ * @generated
+ */
+ int LUW_DATA_PARTITION = 40;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__ID = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Low Inclusive</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__LOW_INCLUSIVE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>High Inclusive</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__HIGH_INCLUSIVE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>LOB Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Regular Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Partition Elements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__PARTITION_ELEMENTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Index Data Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>Data Partition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionKeyImpl <em>Data Partition Key</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionKeyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDataPartitionKey()
+ * @generated
+ */
+ int LUW_DATA_PARTITION_KEY = 41;
+
+ /**
+ * The feature id for the '<em><b>Partition Method</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION_KEY__PARTITION_METHOD = 0;
+
+ /**
+ * The feature id for the '<em><b>Partition Expressions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION_KEY__TABLE = 2;
+
+ /**
+ * The number of structural features of the '<em>Data Partition Key</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATA_PARTITION_KEY_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl <em>Database Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabasePackage()
+ * @generated
+ */
+ int LUW_DATABASE_PACKAGE = 42;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__EANNOTATIONS = DB2ModelPackage.DB2_PACKAGE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__NAME = DB2ModelPackage.DB2_PACKAGE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__DEPENDENCIES = DB2ModelPackage.DB2_PACKAGE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__DESCRIPTION = DB2ModelPackage.DB2_PACKAGE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__LABEL = DB2ModelPackage.DB2_PACKAGE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__COMMENTS = DB2ModelPackage.DB2_PACKAGE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__EXTENSIONS = DB2ModelPackage.DB2_PACKAGE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__PRIVILEGES = DB2ModelPackage.DB2_PACKAGE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Operative</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__OPERATIVE = DB2ModelPackage.DB2_PACKAGE__OPERATIVE;
+
+ /**
+ * The feature id for the '<em><b>Valid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__VALID = DB2ModelPackage.DB2_PACKAGE__VALID;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__VERSION = DB2ModelPackage.DB2_PACKAGE__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Default Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__DEFAULT_SCHEMA = DB2ModelPackage.DB2_PACKAGE__DEFAULT_SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Sql Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__SQL_PATH = DB2ModelPackage.DB2_PACKAGE__SQL_PATH;
+
+ /**
+ * The feature id for the '<em><b>Reopt Var</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__REOPT_VAR = DB2ModelPackage.DB2_PACKAGE__REOPT_VAR;
+
+ /**
+ * The feature id for the '<em><b>Isolation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__ISOLATION = DB2ModelPackage.DB2_PACKAGE__ISOLATION;
+
+ /**
+ * The feature id for the '<em><b>Unique ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__UNIQUE_ID = DB2ModelPackage.DB2_PACKAGE__UNIQUE_ID;
+
+ /**
+ * The feature id for the '<em><b>Last Bind TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__LAST_BIND_TS = DB2ModelPackage.DB2_PACKAGE__LAST_BIND_TS;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__SCHEMA = DB2ModelPackage.DB2_PACKAGE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__STATEMENTS = DB2ModelPackage.DB2_PACKAGE__STATEMENTS;
+
+ /**
+ * The feature id for the '<em><b>Creator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__CREATOR = DB2ModelPackage.DB2_PACKAGE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Binder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__BINDER = DB2ModelPackage.DB2_PACKAGE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Cursor Block</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__CURSOR_BLOCK = DB2ModelPackage.DB2_PACKAGE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Number Of Sections</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS = DB2ModelPackage.DB2_PACKAGE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Optimization Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS = DB2ModelPackage.DB2_PACKAGE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Explain Snapshot</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT = DB2ModelPackage.DB2_PACKAGE_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Database Package</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_DATABASE_PACKAGE_FEATURE_COUNT = DB2ModelPackage.DB2_PACKAGE_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModule()
+ * @generated
+ */
+ int LUW_MODULE = 43;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__DIALECT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Owning Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__OWNING_SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Module Objects</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE__MODULE_OBJECTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Module</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject <em>Module Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleObject()
+ * @generated
+ */
+ int LUW_MODULE_OBJECT = 44;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_OBJECT__PUBLISHED = 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_OBJECT__MODULE = 1;
+
+ /**
+ * The number of structural features of the '<em>Module Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_OBJECT_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleFunctionImpl <em>Module Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleFunctionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleFunction()
+ * @generated
+ */
+ int LUW_MODULE_FUNCTION = 45;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__EANNOTATIONS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__NAME = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__DEPENDENCIES = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__DESCRIPTION = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__LABEL = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__COMMENTS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__EXTENSIONS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__PRIVILEGES = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SPECIFIC_NAME = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__LANGUAGE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__PARAMETER_STYLE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__DETERMINISTIC = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SQL_DATA_ACCESS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__CREATION_TS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__LAST_ALTERED_TS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__AUTHORIZATION_ID = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SECURITY = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__EXTERNAL_NAME = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__PARAMETERS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SOURCE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SCHEMA = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Null Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__NULL_CALL = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__NULL_CALL;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__STATIC = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__STATIC;
+
+ /**
+ * The feature id for the '<em><b>Transform Group</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__TRANSFORM_GROUP = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__TRANSFORM_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Type Preserving</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__TYPE_PRESERVING = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__TYPE_PRESERVING;
+
+ /**
+ * The feature id for the '<em><b>Mutator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__MUTATOR = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__MUTATOR;
+
+ /**
+ * The feature id for the '<em><b>Return Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__RETURN_TABLE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__RETURN_SCALAR = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_SCALAR;
+
+ /**
+ * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__RETURN_CAST = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CAST;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__FENCED = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__THREADSAFE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__DB_INFO = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__IMPLICIT_SCHEMA = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__FEDERATED = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__PARM_CCSID = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SPECIAL_REGISTER = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__CHANGE_STATE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__DEBUG_ID = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__PROGRAM_TYPE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__ORIG_SCHEMA_NAME = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__ORIG_PARM_SIG = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__EXTENDED_OPTIONS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__ROUTINE_EXTENSIONS = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Final Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__FINAL_CALL = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SCRATCH_PAD = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SCRATCH_PAD_LENGTH = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH;
+
+ /**
+ * The feature id for the '<em><b>Function Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__FUNCTION_TYPE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Predicate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__PREDICATE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE;
+
+ /**
+ * The feature id for the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__EXTERNAL_ACTION = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION;
+
+ /**
+ * The feature id for the '<em><b>Cardinality</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__CARDINALITY = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY;
+
+ /**
+ * The feature id for the '<em><b>Allow Parallel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__ALLOW_PARALLEL = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL;
+
+ /**
+ * The feature id for the '<em><b>Return Clause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__RETURN_CLAUSE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE;
+
+ /**
+ * The feature id for the '<em><b>Origin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__ORIGIN = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN;
+
+ /**
+ * The feature id for the '<em><b>Inherit Lock Request</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__INHERIT_LOCK_REQUEST = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__DIALECT = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT;
+
+ /**
+ * The feature id for the '<em><b>Inline</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__INLINE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__VERSION = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Secured</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__SECURED = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__PUBLISHED = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__MODULE = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Implemented</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION__IMPLEMENTED = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Module Function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_FUNCTION_FEATURE_COUNT = DB2ModelPackage.DB2_USER_DEFINED_FUNCTION_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleProcedureImpl <em>Module Procedure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleProcedureImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleProcedure()
+ * @generated
+ */
+ int LUW_MODULE_PROCEDURE = 46;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__EANNOTATIONS = DB2ModelPackage.DB2_PROCEDURE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__NAME = DB2ModelPackage.DB2_PROCEDURE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__DEPENDENCIES = DB2ModelPackage.DB2_PROCEDURE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__DESCRIPTION = DB2ModelPackage.DB2_PROCEDURE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__LABEL = DB2ModelPackage.DB2_PROCEDURE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__COMMENTS = DB2ModelPackage.DB2_PROCEDURE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__EXTENSIONS = DB2ModelPackage.DB2_PROCEDURE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__PRIVILEGES = DB2ModelPackage.DB2_PROCEDURE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__SPECIFIC_NAME = DB2ModelPackage.DB2_PROCEDURE__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__LANGUAGE = DB2ModelPackage.DB2_PROCEDURE__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__PARAMETER_STYLE = DB2ModelPackage.DB2_PROCEDURE__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__DETERMINISTIC = DB2ModelPackage.DB2_PROCEDURE__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__SQL_DATA_ACCESS = DB2ModelPackage.DB2_PROCEDURE__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__CREATION_TS = DB2ModelPackage.DB2_PROCEDURE__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__LAST_ALTERED_TS = DB2ModelPackage.DB2_PROCEDURE__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__AUTHORIZATION_ID = DB2ModelPackage.DB2_PROCEDURE__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__SECURITY = DB2ModelPackage.DB2_PROCEDURE__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__EXTERNAL_NAME = DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__PARAMETERS = DB2ModelPackage.DB2_PROCEDURE__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__SOURCE = DB2ModelPackage.DB2_PROCEDURE__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__SCHEMA = DB2ModelPackage.DB2_PROCEDURE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Max Result Sets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__MAX_RESULT_SETS = DB2ModelPackage.DB2_PROCEDURE__MAX_RESULT_SETS;
+
+ /**
+ * The feature id for the '<em><b>Old Save Point</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__OLD_SAVE_POINT = DB2ModelPackage.DB2_PROCEDURE__OLD_SAVE_POINT;
+
+ /**
+ * The feature id for the '<em><b>Result Set</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__RESULT_SET = DB2ModelPackage.DB2_PROCEDURE__RESULT_SET;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__FENCED = DB2ModelPackage.DB2_PROCEDURE__FENCED;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__THREADSAFE = DB2ModelPackage.DB2_PROCEDURE__THREADSAFE;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__DB_INFO = DB2ModelPackage.DB2_PROCEDURE__DB_INFO;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__IMPLICIT_SCHEMA = DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__FEDERATED = DB2ModelPackage.DB2_PROCEDURE__FEDERATED;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__PARM_CCSID = DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__SPECIAL_REGISTER = DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__CHANGE_STATE = DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__DEBUG_ID = DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__PROGRAM_TYPE = DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__ORIG_SCHEMA_NAME = DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__ORIG_PARM_SIG = DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__EXTENDED_OPTIONS = DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__ROUTINE_EXTENSIONS = DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Model Result Sets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__MODEL_RESULT_SETS = DB2ModelPackage.DB2_PROCEDURE__MODEL_RESULT_SETS;
+
+ /**
+ * The feature id for the '<em><b>Null Input</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__NULL_INPUT = DB2ModelPackage.DB2_PROCEDURE__NULL_INPUT;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__VERSION = DB2ModelPackage.DB2_PROCEDURE__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__DIALECT = DB2ModelPackage.DB2_PROCEDURE__DIALECT;
+
+ /**
+ * The feature id for the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__EXTERNAL_ACTION = DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_ACTION;
+
+ /**
+ * The feature id for the '<em><b>Return</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__RETURN = DB2ModelPackage.DB2_PROCEDURE__RETURN;
+
+ /**
+ * The feature id for the '<em><b>Java Options</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__JAVA_OPTIONS = DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Deploy</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__DEPLOY = DB2ModelPackage.DB2_PROCEDURE__DEPLOY;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__PUBLISHED = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__MODULE = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Implemented</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE__IMPLEMENTED = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Module Procedure</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_PROCEDURE_FEATURE_COUNT = DB2ModelPackage.DB2_PROCEDURE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleConditionImpl <em>Module Condition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleConditionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleCondition()
+ * @generated
+ */
+ int LUW_MODULE_CONDITION = 47;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__PUBLISHED = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__MODULE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Sqlstate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION__SQLSTATE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Module Condition</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CONDITION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl <em>Global Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGlobalVariable()
+ * @generated
+ */
+ int LUW_GLOBAL_VARIABLE = 48;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__EANNOTATIONS = SQLSchemaPackage.TYPED_ELEMENT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__NAME = SQLSchemaPackage.TYPED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__DEPENDENCIES = SQLSchemaPackage.TYPED_ELEMENT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__DESCRIPTION = SQLSchemaPackage.TYPED_ELEMENT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__LABEL = SQLSchemaPackage.TYPED_ELEMENT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__COMMENTS = SQLSchemaPackage.TYPED_ELEMENT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__EXTENSIONS = SQLSchemaPackage.TYPED_ELEMENT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__PRIVILEGES = SQLSchemaPackage.TYPED_ELEMENT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__CONTAINED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__CONTAINED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__REFERENCED_TYPE = SQLSchemaPackage.TYPED_ELEMENT__REFERENCED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__DEFAULT_VALUE = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__IS_CONSTANT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE__SCHEMA = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Global Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_GLOBAL_VARIABLE_FEATURE_COUNT = SQLSchemaPackage.TYPED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType <em>Module Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleType()
+ * @generated
+ */
+ int LUW_MODULE_TYPE = 49;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_TYPE__PUBLISHED = LUW_MODULE_OBJECT__PUBLISHED;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_TYPE__MODULE = LUW_MODULE_OBJECT__MODULE;
+
+ /**
+ * The number of structural features of the '<em>Module Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_TYPE_FEATURE_COUNT = LUW_MODULE_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRowDataTypeImpl <em>Row Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRowDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRowDataType()
+ * @generated
+ */
+ int LUW_ROW_DATA_TYPE = 55;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__EANNOTATIONS = SQLDataTypesPackage.USER_DEFINED_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__NAME = SQLDataTypesPackage.USER_DEFINED_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__DEPENDENCIES = SQLDataTypesPackage.USER_DEFINED_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__DESCRIPTION = SQLDataTypesPackage.USER_DEFINED_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__LABEL = SQLDataTypesPackage.USER_DEFINED_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__COMMENTS = SQLDataTypesPackage.USER_DEFINED_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__EXTENSIONS = SQLDataTypesPackage.USER_DEFINED_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__PRIVILEGES = SQLDataTypesPackage.USER_DEFINED_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__SCHEMA = SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__ORDERING = SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING;
+
+ /**
+ * The feature id for the '<em><b>Fields</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE__FIELDS = SQLDataTypesPackage.USER_DEFINED_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Row Data Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ROW_DATA_TYPE_FEATURE_COUNT = SQLDataTypesPackage.USER_DEFINED_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleRowDataTypeImpl <em>Module Row Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleRowDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleRowDataType()
+ * @generated
+ */
+ int LUW_MODULE_ROW_DATA_TYPE = 50;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__EANNOTATIONS = LUW_ROW_DATA_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__NAME = LUW_ROW_DATA_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__DEPENDENCIES = LUW_ROW_DATA_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__DESCRIPTION = LUW_ROW_DATA_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__LABEL = LUW_ROW_DATA_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__COMMENTS = LUW_ROW_DATA_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__EXTENSIONS = LUW_ROW_DATA_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__PRIVILEGES = LUW_ROW_DATA_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__SCHEMA = LUW_ROW_DATA_TYPE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__ORDERING = LUW_ROW_DATA_TYPE__ORDERING;
+
+ /**
+ * The feature id for the '<em><b>Fields</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__FIELDS = LUW_ROW_DATA_TYPE__FIELDS;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__PUBLISHED = LUW_ROW_DATA_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE__MODULE = LUW_ROW_DATA_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Module Row Data Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ROW_DATA_TYPE_FEATURE_COUNT = LUW_ROW_DATA_TYPE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl <em>Array Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWArrayDataType()
+ * @generated
+ */
+ int LUW_ARRAY_DATA_TYPE = 54;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__EANNOTATIONS = SQLDataTypesPackage.ARRAY_DATA_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__NAME = SQLDataTypesPackage.ARRAY_DATA_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__DEPENDENCIES = SQLDataTypesPackage.ARRAY_DATA_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__DESCRIPTION = SQLDataTypesPackage.ARRAY_DATA_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__LABEL = SQLDataTypesPackage.ARRAY_DATA_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__COMMENTS = SQLDataTypesPackage.ARRAY_DATA_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__EXTENSIONS = SQLDataTypesPackage.ARRAY_DATA_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__PRIVILEGES = SQLDataTypesPackage.ARRAY_DATA_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__ELEMENT_TYPE = SQLDataTypesPackage.ARRAY_DATA_TYPE__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Max Cardinality</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__MAX_CARDINALITY = SQLDataTypesPackage.ARRAY_DATA_TYPE__MAX_CARDINALITY;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__SCHEMA = SQLDataTypesPackage.ARRAY_DATA_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__ORDERING = SQLDataTypesPackage.ARRAY_DATA_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Array Index Element Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE = SQLDataTypesPackage.ARRAY_DATA_TYPE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Array Data Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_ARRAY_DATA_TYPE_FEATURE_COUNT = SQLDataTypesPackage.ARRAY_DATA_TYPE_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleArrayDataTypeImpl <em>Module Array Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleArrayDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleArrayDataType()
+ * @generated
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE = 51;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__EANNOTATIONS = LUW_ARRAY_DATA_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__NAME = LUW_ARRAY_DATA_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__DEPENDENCIES = LUW_ARRAY_DATA_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__DESCRIPTION = LUW_ARRAY_DATA_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__LABEL = LUW_ARRAY_DATA_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__COMMENTS = LUW_ARRAY_DATA_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__EXTENSIONS = LUW_ARRAY_DATA_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__PRIVILEGES = LUW_ARRAY_DATA_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Element Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__ELEMENT_TYPE = LUW_ARRAY_DATA_TYPE__ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Max Cardinality</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__MAX_CARDINALITY = LUW_ARRAY_DATA_TYPE__MAX_CARDINALITY;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__SCHEMA = LUW_ARRAY_DATA_TYPE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__ORDERING = LUW_ARRAY_DATA_TYPE__ORDERING;
+
+ /**
+ * The feature id for the '<em><b>Array Index Element Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE = LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED = LUW_ARRAY_DATA_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE__MODULE = LUW_ARRAY_DATA_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Module Array Data Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_ARRAY_DATA_TYPE_FEATURE_COUNT = LUW_ARRAY_DATA_TYPE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleDistinctTypeImpl <em>Module Distinct Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleDistinctTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleDistinctType()
+ * @generated
+ */
+ int LUW_MODULE_DISTINCT_TYPE = 52;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__EANNOTATIONS = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__NAME = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__DEPENDENCIES = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__DESCRIPTION = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__LABEL = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__COMMENTS = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__EXTENSIONS = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__PRIVILEGES = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__SCHEMA = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__ORDERING = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__ORDERING;
+
+ /**
+ * The feature id for the '<em><b>Predefined Representation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__PREDEFINED_REPRESENTATION = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__PUBLISHED = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE__MODULE = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Module Distinct Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_DISTINCT_TYPE_FEATURE_COUNT = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleGlobalVariableImpl <em>Module Global Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleGlobalVariableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleGlobalVariable()
+ * @generated
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE = 53;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__EANNOTATIONS = LUW_GLOBAL_VARIABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__NAME = LUW_GLOBAL_VARIABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__DEPENDENCIES = LUW_GLOBAL_VARIABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__DESCRIPTION = LUW_GLOBAL_VARIABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__LABEL = LUW_GLOBAL_VARIABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__COMMENTS = LUW_GLOBAL_VARIABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__EXTENSIONS = LUW_GLOBAL_VARIABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__PRIVILEGES = LUW_GLOBAL_VARIABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__CONTAINED_TYPE = LUW_GLOBAL_VARIABLE__CONTAINED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__REFERENCED_TYPE = LUW_GLOBAL_VARIABLE__REFERENCED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__DEFAULT_VALUE = LUW_GLOBAL_VARIABLE__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Is Constant</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__IS_CONSTANT = LUW_GLOBAL_VARIABLE__IS_CONSTANT;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__SCHEMA = LUW_GLOBAL_VARIABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED = LUW_GLOBAL_VARIABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE__MODULE = LUW_GLOBAL_VARIABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Module Global Variable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_GLOBAL_VARIABLE_FEATURE_COUNT = LUW_GLOBAL_VARIABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl <em>PLSQL Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPLSQLPackage()
+ * @generated
+ */
+ int PLSQL_PACKAGE = 56;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__EANNOTATIONS = LUW_MODULE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__NAME = LUW_MODULE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__DEPENDENCIES = LUW_MODULE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__DESCRIPTION = LUW_MODULE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__LABEL = LUW_MODULE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__COMMENTS = LUW_MODULE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__EXTENSIONS = LUW_MODULE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__PRIVILEGES = LUW_MODULE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__DIALECT = LUW_MODULE__DIALECT;
+
+ /**
+ * The feature id for the '<em><b>Owning Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__OWNING_SCHEMA = LUW_MODULE__OWNING_SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Module Objects</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__MODULE_OBJECTS = LUW_MODULE__MODULE_OBJECTS;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__SPECIFIC_NAME = LUW_MODULE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__LANGUAGE = LUW_MODULE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__PARAMETER_STYLE = LUW_MODULE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__DETERMINISTIC = LUW_MODULE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__SQL_DATA_ACCESS = LUW_MODULE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__CREATION_TS = LUW_MODULE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__LAST_ALTERED_TS = LUW_MODULE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__AUTHORIZATION_ID = LUW_MODULE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__SECURITY = LUW_MODULE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__EXTERNAL_NAME = LUW_MODULE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__PARAMETERS = LUW_MODULE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__SOURCE = LUW_MODULE_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__SCHEMA = LUW_MODULE_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__FENCED = LUW_MODULE_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__THREADSAFE = LUW_MODULE_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__DB_INFO = LUW_MODULE_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__IMPLICIT_SCHEMA = LUW_MODULE_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__FEDERATED = LUW_MODULE_FEATURE_COUNT + 17;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__PARM_CCSID = LUW_MODULE_FEATURE_COUNT + 18;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__SPECIAL_REGISTER = LUW_MODULE_FEATURE_COUNT + 19;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__CHANGE_STATE = LUW_MODULE_FEATURE_COUNT + 20;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__DEBUG_ID = LUW_MODULE_FEATURE_COUNT + 21;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__PROGRAM_TYPE = LUW_MODULE_FEATURE_COUNT + 22;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__ORIG_SCHEMA_NAME = LUW_MODULE_FEATURE_COUNT + 23;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__ORIG_PARM_SIG = LUW_MODULE_FEATURE_COUNT + 24;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__EXTENDED_OPTIONS = LUW_MODULE_FEATURE_COUNT + 25;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__ROUTINE_EXTENSIONS = LUW_MODULE_FEATURE_COUNT + 26;
+
+ /**
+ * The feature id for the '<em><b>Package Body</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE__PACKAGE_BODY = LUW_MODULE_FEATURE_COUNT + 27;
+
+ /**
+ * The number of structural features of the '<em>PLSQL Package</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_FEATURE_COUNT = LUW_MODULE_FEATURE_COUNT + 28;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageBodyImpl <em>PLSQL Package Body</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageBodyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPLSQLPackageBody()
+ * @generated
+ */
+ int PLSQL_PACKAGE_BODY = 57;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__EANNOTATIONS = SQLRoutinesPackage.SOURCE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__NAME = SQLRoutinesPackage.SOURCE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__DEPENDENCIES = SQLRoutinesPackage.SOURCE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__DESCRIPTION = SQLRoutinesPackage.SOURCE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__LABEL = SQLRoutinesPackage.SOURCE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__COMMENTS = SQLRoutinesPackage.SOURCE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__EXTENSIONS = SQLRoutinesPackage.SOURCE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__PRIVILEGES = SQLRoutinesPackage.SOURCE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__BODY = SQLRoutinesPackage.SOURCE__BODY;
+
+ /**
+ * The feature id for the '<em><b>Package</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY__PACKAGE = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>PLSQL Package Body</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PLSQL_PACKAGE_BODY_FEATURE_COUNT = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWCursorDataTypeImpl <em>Cursor Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWCursorDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWCursorDataType()
+ * @generated
+ */
+ int LUW_CURSOR_DATA_TYPE = 58;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__EANNOTATIONS = SQLDataTypesPackage.USER_DEFINED_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__NAME = SQLDataTypesPackage.USER_DEFINED_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__DEPENDENCIES = SQLDataTypesPackage.USER_DEFINED_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__DESCRIPTION = SQLDataTypesPackage.USER_DEFINED_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__LABEL = SQLDataTypesPackage.USER_DEFINED_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__COMMENTS = SQLDataTypesPackage.USER_DEFINED_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__EXTENSIONS = SQLDataTypesPackage.USER_DEFINED_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__PRIVILEGES = SQLDataTypesPackage.USER_DEFINED_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__SCHEMA = SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__ORDERING = SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING;
+
+ /**
+ * The feature id for the '<em><b>Row Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE__ROW_TYPE = SQLDataTypesPackage.USER_DEFINED_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cursor Data Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_CURSOR_DATA_TYPE_FEATURE_COUNT = SQLDataTypesPackage.USER_DEFINED_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleCursorDataTypeImpl <em>Module Cursor Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleCursorDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleCursorDataType()
+ * @generated
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE = 59;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__EANNOTATIONS = LUW_CURSOR_DATA_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__NAME = LUW_CURSOR_DATA_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__DEPENDENCIES = LUW_CURSOR_DATA_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__DESCRIPTION = LUW_CURSOR_DATA_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__LABEL = LUW_CURSOR_DATA_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__COMMENTS = LUW_CURSOR_DATA_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__EXTENSIONS = LUW_CURSOR_DATA_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__PRIVILEGES = LUW_CURSOR_DATA_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__SCHEMA = LUW_CURSOR_DATA_TYPE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__ORDERING = LUW_CURSOR_DATA_TYPE__ORDERING;
+
+ /**
+ * The feature id for the '<em><b>Row Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__ROW_TYPE = LUW_CURSOR_DATA_TYPE__ROW_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Published</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED = LUW_CURSOR_DATA_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE__MODULE = LUW_CURSOR_DATA_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Module Cursor Data Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MODULE_CURSOR_DATA_TYPE_FEATURE_COUNT = LUW_CURSOR_DATA_TYPE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolSizeExceptionImpl <em>Buffer Pool Size Exception</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolSizeExceptionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWBufferPoolSizeException()
+ * @generated
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION = 60;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Buffer Pool</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Partitions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Buffer Pool Size Exception</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_BUFFER_POOL_SIZE_EXCEPTION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl <em>Member</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWMember()
+ * @generated
+ */
+ int LUW_MEMBER = 61;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__EANNOTATIONS = DB2ModelPackage.DB2_MEMBER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__NAME = DB2ModelPackage.DB2_MEMBER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__DEPENDENCIES = DB2ModelPackage.DB2_MEMBER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__DESCRIPTION = DB2ModelPackage.DB2_MEMBER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__LABEL = DB2ModelPackage.DB2_MEMBER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__COMMENTS = DB2ModelPackage.DB2_MEMBER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__EXTENSIONS = DB2ModelPackage.DB2_MEMBER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__PRIVILEGES = DB2ModelPackage.DB2_MEMBER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__ID = DB2ModelPackage.DB2_MEMBER__ID;
+
+ /**
+ * The feature id for the '<em><b>Home Host</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__HOME_HOST = DB2ModelPackage.DB2_MEMBER__HOME_HOST;
+
+ /**
+ * The feature id for the '<em><b>Current Host</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__CURRENT_HOST = DB2ModelPackage.DB2_MEMBER__CURRENT_HOST;
+
+ /**
+ * The feature id for the '<em><b>State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__STATE = DB2ModelPackage.DB2_MEMBER__STATE;
+
+ /**
+ * The feature id for the '<em><b>Cluster</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__CLUSTER = DB2ModelPackage.DB2_MEMBER__CLUSTER;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__TYPE = DB2ModelPackage.DB2_MEMBER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Alert</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__ALERT = DB2ModelPackage.DB2_MEMBER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Db Partition Num</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__DB_PARTITION_NUM = DB2ModelPackage.DB2_MEMBER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Logical Port</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__LOGICAL_PORT = DB2ModelPackage.DB2_MEMBER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Net Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER__NET_NAME = DB2ModelPackage.DB2_MEMBER_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Member</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_MEMBER_FEATURE_COUNT = DB2ModelPackage.DB2_MEMBER_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl <em>Security Policy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityPolicy()
+ * @generated
+ */
+ int LUW_SECURITY_POLICY = 62;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Not Authorized Write</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Components</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__COMPONENTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Labels</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__LABELS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY__TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Security Policy</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_POLICY_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentImpl <em>Security Label Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelComponent()
+ * @generated
+ */
+ int LUW_SECURITY_LABEL_COMPONENT = 63;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__TYPE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>LUW Security Policy</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT__ELEMENTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Security Label Component</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelImpl <em>Security Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabel()
+ * @generated
+ */
+ int LUW_SECURITY_LABEL = 64;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Security Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__SECURITY_LABEL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Policy</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL__POLICY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Security Label</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentElementImpl <em>Security Label Component Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentElementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelComponentElement()
+ * @generated
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT = 65;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Parent Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>LUW Security Label Component</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Security Label Component Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_ELEMENT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl <em>Storage Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWStorageGroup()
+ * @generated
+ */
+ int LUW_STORAGE_GROUP = 66;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Storage Paths</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__STORAGE_PATHS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Overhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__OVERHEAD = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Device Read Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__DEVICE_READ_RATE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Data Tag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__DATA_TAG = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__DEFAULT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__DATABASE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Table Spaces</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP__TABLE_SPACES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Storage Group</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_STORAGE_GROUP_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryStorageTableImpl <em>Temporary Storage Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryStorageTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTemporaryStorageTable()
+ * @generated
+ */
+ int LUW_TEMPORARY_STORAGE_TABLE = 67;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY = 0;
+
+ /**
+ * The feature id for the '<em><b>User Temporary Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE = 1;
+
+ /**
+ * The number of structural features of the '<em>Temporary Storage Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_STORAGE_TABLE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl <em>Temporary Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTemporaryTable()
+ * @generated
+ */
+ int LUW_TEMPORARY_TABLE = 68;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__EANNOTATIONS = SQLTablesPackage.TEMPORARY_TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__NAME = SQLTablesPackage.TEMPORARY_TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__DEPENDENCIES = SQLTablesPackage.TEMPORARY_TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__DESCRIPTION = SQLTablesPackage.TEMPORARY_TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__LABEL = SQLTablesPackage.TEMPORARY_TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__COMMENTS = SQLTablesPackage.TEMPORARY_TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__EXTENSIONS = SQLTablesPackage.TEMPORARY_TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__PRIVILEGES = SQLTablesPackage.TEMPORARY_TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__COLUMNS = SQLTablesPackage.TEMPORARY_TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__SUPERTABLE = SQLTablesPackage.TEMPORARY_TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__SUBTABLES = SQLTablesPackage.TEMPORARY_TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__SCHEMA = SQLTablesPackage.TEMPORARY_TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__UDT = SQLTablesPackage.TEMPORARY_TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__TRIGGERS = SQLTablesPackage.TEMPORARY_TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__INDEX = SQLTablesPackage.TEMPORARY_TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__SELF_REF_COLUMN_GENERATION = SQLTablesPackage.TEMPORARY_TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__INSERTABLE = SQLTablesPackage.TEMPORARY_TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__UPDATABLE = SQLTablesPackage.TEMPORARY_TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__CONSTRAINTS = SQLTablesPackage.TEMPORARY_TABLE__CONSTRAINTS;
+
+ /**
+ * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__REFERENCING_FOREIGN_KEYS = SQLTablesPackage.TEMPORARY_TABLE__REFERENCING_FOREIGN_KEYS;
+
+ /**
+ * The feature id for the '<em><b>Local</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__LOCAL = SQLTablesPackage.TEMPORARY_TABLE__LOCAL;
+
+ /**
+ * The feature id for the '<em><b>Delete On Commit</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__DELETE_ON_COMMIT = SQLTablesPackage.TEMPORARY_TABLE__DELETE_ON_COMMIT;
+
+ /**
+ * The feature id for the '<em><b>Partition Key</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__PARTITION_KEY = SQLTablesPackage.TEMPORARY_TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>User Temporary Table Space</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE = SQLTablesPackage.TEMPORARY_TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__TABLE = SQLTablesPackage.TEMPORARY_TABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Log Option</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE__LOG_OPTION = SQLTablesPackage.TEMPORARY_TABLE_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Temporary Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_TEMPORARY_TABLE_FEATURE_COUNT = SQLTablesPackage.TEMPORARY_TABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.ArrayIndexElementTypeImpl <em>Array Index Element Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.ArrayIndexElementTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getArrayIndexElementType()
+ * @generated
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE = 69;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__EANNOTATIONS = SQLDataTypesPackage.ELEMENT_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__NAME = SQLDataTypesPackage.ELEMENT_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__DEPENDENCIES = SQLDataTypesPackage.ELEMENT_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__DESCRIPTION = SQLDataTypesPackage.ELEMENT_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__LABEL = SQLDataTypesPackage.ELEMENT_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__COMMENTS = SQLDataTypesPackage.ELEMENT_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__EXTENSIONS = SQLDataTypesPackage.ELEMENT_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__PRIVILEGES = SQLDataTypesPackage.ELEMENT_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__CONTAINED_TYPE = SQLDataTypesPackage.ELEMENT_TYPE__CONTAINED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__REFERENCED_TYPE = SQLDataTypesPackage.ELEMENT_TYPE__REFERENCED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Collection Data Type</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__COLLECTION_DATA_TYPE = SQLDataTypesPackage.ELEMENT_TYPE__COLLECTION_DATA_TYPE;
+
+ /**
+ * The feature id for the '<em><b>LUW Array Data Type</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE = SQLDataTypesPackage.ELEMENT_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Array Index Element Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARRAY_INDEX_ELEMENT_TYPE_FEATURE_COUNT = SQLDataTypesPackage.ELEMENT_TYPE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionEveryClauseElementImpl <em>Partition Every Clause Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionEveryClauseElementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionEveryClauseElement()
+ * @generated
+ */
+ int LUW_PARTITION_EVERY_CLAUSE_ELEMENT = 70;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE = 0;
+
+ /**
+ * The feature id for the '<em><b>Duration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION = 1;
+
+ /**
+ * The feature id for the '<em><b>LUW Partition Element</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT = 2;
+
+ /**
+ * The number of structural features of the '<em>Partition Every Clause Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LUW_PARTITION_EVERY_CLAUSE_ELEMENT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType <em>Container Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWContainerType()
+ * @generated
+ */
+ int LUW_CONTAINER_TYPE = 71;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType <em>Page Size Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPageSizeType()
+ * @generated
+ */
+ int PAGE_SIZE_TYPE = 72;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType <em>Buffer Pool Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getBufferPoolType()
+ * @generated
+ */
+ int BUFFER_POOL_TYPE = 73;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType <em>Table Space Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getTableSpaceType()
+ * @generated
+ */
+ int TABLE_SPACE_TYPE = 74;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType <em>Management Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getManagementType()
+ * @generated
+ */
+ int MANAGEMENT_TYPE = 75;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.CheckOptionType <em>Check Option Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CheckOptionType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getCheckOptionType()
+ * @generated
+ */
+ int CHECK_OPTION_TYPE = 76;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod <em>Partition Method</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPartitionMethod()
+ * @generated
+ */
+ int PARTITION_METHOD = 77;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.MaintenanceType <em>Maintenance Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.MaintenanceType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getMaintenanceType()
+ * @generated
+ */
+ int MAINTENANCE_TYPE = 78;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RefreshType <em>Refresh Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RefreshType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRefreshType()
+ * @generated
+ */
+ int REFRESH_TYPE = 79;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType <em>Wrapper Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getWrapperType()
+ * @generated
+ */
+ int WRAPPER_TYPE = 80;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod <em>Data Partition Method</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getDataPartitionMethod()
+ * @generated
+ */
+ int DATA_PARTITION_METHOD = 81;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType <em>Cursor Block Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getCursorBlockType()
+ * @generated
+ */
+ int CURSOR_BLOCK_TYPE = 82;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType <em>Explain Snaphot Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getExplainSnaphotType()
+ * @generated
+ */
+ int EXPLAIN_SNAPHOT_TYPE = 83;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType <em>File System Caching Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getFileSystemCachingType()
+ * @generated
+ */
+ int FILE_SYSTEM_CACHING_TYPE = 84;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType <em>Index Page Split Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWIndexPageSplitType()
+ * @generated
+ */
+ int LUW_INDEX_PAGE_SPLIT_TYPE = 85;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType <em>Index Compress Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWIndexCompressType()
+ * @generated
+ */
+ int LUW_INDEX_COMPRESS_TYPE = 86;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType <em>System Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getSystemType()
+ * @generated
+ */
+ int SYSTEM_TYPE = 87;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType <em>Average Table Size Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getAverageTableSizeType()
+ * @generated
+ */
+ int AVERAGE_TABLE_SIZE_TYPE = 88;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode <em>Storage Table Compression Mode</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWStorageTableCompressionMode()
+ * @generated
+ */
+ int LUW_STORAGE_TABLE_COMPRESSION_MODE = 89;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType <em>Member Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWMemberType()
+ * @generated
+ */
+ int LUW_MEMBER_TYPE = 90;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.MemberStateType <em>Member State Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.MemberStateType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getMemberStateType()
+ * @generated
+ */
+ int MEMBER_STATE_TYPE = 91;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType <em>Security Label Component Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelComponentType()
+ * @generated
+ */
+ int LUW_SECURITY_LABEL_COMPONENT_TYPE = 92;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction <em>Security Label Not Authorized Write Action</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelNotAuthorizedWriteAction()
+ * @generated
+ */
+ int LUW_SECURITY_LABEL_NOT_AUTHORIZED_WRITE_ACTION = 93;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource <em>Federated Data Source</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWFederatedDataSource()
+ * @generated
+ */
+ int LUW_FEDERATED_DATA_SOURCE = 94;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption <em>Temporary Table Logging Option</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTemporaryTableLoggingOption()
+ * @generated
+ */
+ int LUW_TEMPORARY_TABLE_LOGGING_OPTION = 95;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup <em>Partition Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Partition Group</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup
+ * @generated
+ */
+ EClass getLUWPartitionGroup();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Partitions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getPartitions()
+ * @see #getLUWPartitionGroup()
+ * @generated
+ */
+ EReference getLUWPartitionGroup_Partitions();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getTableSpaces <em>Table Spaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Table Spaces</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getTableSpaces()
+ * @see #getLUWPartitionGroup()
+ * @generated
+ */
+ EReference getLUWPartitionGroup_TableSpaces();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getDatabase()
+ * @see #getLUWPartitionGroup()
+ * @generated
+ */
+ EReference getLUWPartitionGroup_Database();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Buffer Pool</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getBufferPool()
+ * @see #getLUWPartitionGroup()
+ * @generated
+ */
+ EReference getLUWPartitionGroup_BufferPool();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace <em>Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace
+ * @generated
+ */
+ EClass getLUWTableSpace();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTemporaryStorageTables <em>Temporary Storage Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Temporary Storage Tables</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTemporaryStorageTables()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_TemporaryStorageTables();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTablespaceType <em>Tablespace Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Tablespace Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTablespaceType()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_TablespaceType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getManagementType <em>Management Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Management Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getManagementType()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_ManagementType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExtentSize <em>Extent Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Extent Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExtentSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_ExtentSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPreFetchSize <em>Pre Fetch Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pre Fetch Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPreFetchSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_PreFetchSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getOverhead <em>Overhead</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Overhead</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getOverhead()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_Overhead();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransferRate <em>Transfer Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Transfer Rate</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransferRate()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_TransferRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRecoverDroppedTableOn <em>Recover Dropped Table On</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Recover Dropped Table On</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRecoverDroppedTableOn()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_RecoverDroppedTableOn();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPageSize <em>Page Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Page Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPageSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_PageSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_Size();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isAutoResize <em>Auto Resize</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Auto Resize</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isAutoResize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_AutoResize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSize <em>Initial Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Initial Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_InitialSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSize <em>Increase Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Increase Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_IncreaseSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSize <em>Maximum Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Maximum Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_MaximumSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSizeUnit <em>Initial Size Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Initial Size Unit</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSizeUnit()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_InitialSizeUnit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSizeUnit <em>Maximum Size Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Maximum Size Unit</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSizeUnit()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_MaximumSizeUnit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSizeUnit <em>Increase Size Unit</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Increase Size Unit</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSizeUnit()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_IncreaseSizeUnit();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreasePercent <em>Increase Percent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Increase Percent</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreasePercent()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_IncreasePercent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getFileSystemCaching <em>File System Caching</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File System Caching</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getFileSystemCaching()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_FileSystemCaching();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageSeekTime <em>Average Seek Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Average Seek Time</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageSeekTime()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_AverageSeekTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRotationSpeed <em>Rotation Speed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Rotation Speed</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRotationSpeed()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_RotationSpeed();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransfer <em>Transfer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Transfer</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransfer()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_Transfer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSystemType <em>System Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>System Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSystemType()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_SystemType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageTableSize <em>Average Table Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Average Table Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageTableSize()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_AverageTableSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExternalContainerCount <em>External Container Count</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>External Container Count</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExternalContainerCount()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_ExternalContainerCount();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritOverhead <em>Inherit Overhead</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inherit Overhead</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritOverhead()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_InheritOverhead();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritTransferate <em>Inherit Transferate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inherit Transferate</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritTransferate()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_InheritTransferate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRebalance <em>Rebalance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Rebalance</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRebalance()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_Rebalance();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDataTag <em>Data Tag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data Tag</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDataTag()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_DataTag();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isSuspendRebalance <em>Suspend Rebalance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Suspend Rebalance</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isSuspendRebalance()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_SuspendRebalance();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isResumeRebalance <em>Resume Rebalance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Resume Rebalance</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isResumeRebalance()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EAttribute getLUWTableSpace_ResumeRebalance();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Group</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getGroup()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_Group();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getContainers <em>Containers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Containers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getContainers()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_Containers();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Buffer Pool</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getBufferPool()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_BufferPool();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataTables <em>Index Data Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Index Data Tables</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataTables()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_IndexDataTables();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataTables <em>LOB Data Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>LOB Data Tables</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataTables()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_LOBDataTables();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataTables <em>Regular Data Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Regular Data Tables</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataTables()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_RegularDataTables();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDatabase()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_Database();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataPartition <em>LOB Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>LOB Data Partition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataPartition()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_LOBDataPartition();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataPartition <em>Regular Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Regular Data Partition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataPartition()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_RegularDataPartition();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexes <em>Indexes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Indexes</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexes()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_Indexes();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataPartition <em>Index Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Index Data Partition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataPartition()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_IndexDataPartition();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getStorageGroup <em>Storage Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Storage Group</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getStorageGroup()
+ * @see #getLUWTableSpace()
+ * @generated
+ */
+ EReference getLUWTableSpace_StorageGroup();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition <em>Database Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Database Partition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition
+ * @generated
+ */
+ EClass getLUWDatabasePartition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getNumber <em>Number</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getNumber()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EAttribute getLUWDatabasePartition_Number();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getPortNumber <em>Port Number</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Port Number</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getPortNumber()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EAttribute getLUWDatabasePartition_PortNumber();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getHostName <em>Host Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Host Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getHostName()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EAttribute getLUWDatabasePartition_HostName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSwitchName <em>Switch Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Switch Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSwitchName()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EAttribute getLUWDatabasePartition_SwitchName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#isCatalogPartition <em>Catalog Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Catalog Partition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#isCatalogPartition()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EAttribute getLUWDatabasePartition_CatalogPartition();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Group</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getGroup()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EReference getLUWDatabasePartition_Group();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Buffer Pool</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getBufferPool()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EReference getLUWDatabasePartition_BufferPool();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getContainers <em>Containers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Containers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getContainers()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EReference getLUWDatabasePartition_Containers();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSizeException <em>Size Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Size Exception</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getSizeException()
+ * @see #getLUWDatabasePartition()
+ * @generated
+ */
+ EReference getLUWDatabasePartition_SizeException();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer <em>Database Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Database Container</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer
+ * @generated
+ */
+ EClass getLUWDatabaseContainer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getContainerType <em>Container Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Container Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getContainerType()
+ * @see #getLUWDatabaseContainer()
+ * @generated
+ */
+ EAttribute getLUWDatabaseContainer_ContainerType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeInPages <em>Size In Pages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size In Pages</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeInPages()
+ * @see #getLUWDatabaseContainer()
+ * @generated
+ */
+ EAttribute getLUWDatabaseContainer_SizeInPages();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSize()
+ * @see #getLUWDatabaseContainer()
+ * @generated
+ */
+ EAttribute getLUWDatabaseContainer_Size();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeUnits <em>Size Units</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size Units</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getSizeUnits()
+ * @see #getLUWDatabaseContainer()
+ * @generated
+ */
+ EAttribute getLUWDatabaseContainer_SizeUnits();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getTableSpace <em>Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getTableSpace()
+ * @see #getLUWDatabaseContainer()
+ * @generated
+ */
+ EReference getLUWDatabaseContainer_TableSpace();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Partitions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getPartitions()
+ * @see #getLUWDatabaseContainer()
+ * @generated
+ */
+ EReference getLUWDatabaseContainer_Partitions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAdminServer <em>Admin Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Admin Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAdminServer
+ * @generated
+ */
+ EClass getLUWAdminServer();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAdminServer#getInstances <em>Instances</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Instances</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAdminServer#getInstances()
+ * @see #getLUWAdminServer()
+ * @generated
+ */
+ EReference getLUWAdminServer_Instances();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Buffer Pool</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool
+ * @generated
+ */
+ EClass getLUWBufferPool();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getCreateType <em>Create Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Create Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getCreateType()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EAttribute getLUWBufferPool_CreateType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSize()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EAttribute getLUWBufferPool_Size();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPageSize <em>Page Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Page Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPageSize()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EAttribute getLUWBufferPool_PageSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getBlockSize <em>Block Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Block Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getBlockSize()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EAttribute getLUWBufferPool_BlockSize();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getNumBlockPages <em>Num Block Pages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num Block Pages</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getNumBlockPages()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EAttribute getLUWBufferPool_NumBlockPages();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isExtendedStorage <em>Extended Storage</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Extended Storage</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isExtendedStorage()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EAttribute getLUWBufferPool_ExtendedStorage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isAutomatic <em>Automatic</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Automatic</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#isAutomatic()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EAttribute getLUWBufferPool_Automatic();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getTableSpaces <em>Table Spaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Table Spaces</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getTableSpaces()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EReference getLUWBufferPool_TableSpaces();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Partitions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitions()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EReference getLUWBufferPool_Partitions();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitionGroup <em>Partition Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Partition Group</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitionGroup()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EReference getLUWBufferPool_PartitionGroup();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getDatabase()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EReference getLUWBufferPool_Database();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSizeException <em>Size Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Size Exception</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getSizeException()
+ * @see #getLUWBufferPool()
+ * @generated
+ */
+ EReference getLUWBufferPool_SizeException();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable
+ * @generated
+ */
+ EClass getLUWTable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPCTFree <em>PCT Free</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>PCT Free</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPCTFree()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EAttribute getLUWTable_PCTFree();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isRestrictOnDrop <em>Restrict On Drop</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restrict On Drop</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isRestrictOnDrop()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EAttribute getLUWTable_RestrictOnDrop();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPartitionMode <em>Partition Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Partition Mode</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPartitionMode()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EAttribute getLUWTable_PartitionMode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isAppendMode <em>Append Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Append Mode</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isAppendMode()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EAttribute getLUWTable_AppendMode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getLogMode <em>Log Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Log Mode</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getLogMode()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EAttribute getLUWTable_LogMode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isLockSizeRow <em>Lock Size Row</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lock Size Row</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isLockSizeRow()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EAttribute getLUWTable_LockSizeRow();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isVolatile <em>Volatile</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Volatile</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isVolatile()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EAttribute getLUWTable_Volatile();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getSecurityPolicy <em>Security Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Security Policy</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getSecurityPolicy()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EReference getLUWTable_SecurityPolicy();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getOptions()
+ * @see #getLUWTable()
+ * @generated
+ */
+ EReference getLUWTable_Options();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView <em>View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>View</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView
+ * @generated
+ */
+ EClass getLUWView();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isFederated <em>Federated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Federated</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isFederated()
+ * @see #getLUWView()
+ * @generated
+ */
+ EAttribute getLUWView_Federated();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isOptimizeQuery <em>Optimize Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Optimize Query</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isOptimizeQuery()
+ * @see #getLUWView()
+ * @generated
+ */
+ EAttribute getLUWView_OptimizeQuery();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey <em>Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Partition Key</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey
+ * @generated
+ */
+ EClass getLUWPartitionKey();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTemporaryStorageTable <em>Temporary Storage Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Temporary Storage Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTemporaryStorageTable()
+ * @see #getLUWPartitionKey()
+ * @generated
+ */
+ EReference getLUWPartitionKey_TemporaryStorageTable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getPartitionMethod <em>Partition Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Partition Method</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getPartitionMethod()
+ * @see #getLUWPartitionKey()
+ * @generated
+ */
+ EAttribute getLUWPartitionKey_PartitionMethod();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTable()
+ * @see #getLUWPartitionKey()
+ * @generated
+ */
+ EReference getLUWPartitionKey_Table();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getColumns <em>Columns</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Columns</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getColumns()
+ * @see #getLUWPartitionKey()
+ * @generated
+ */
+ EReference getLUWPartitionKey_Columns();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname <em>Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Nickname</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname
+ * @generated
+ */
+ EClass getLUWNickname();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getRemoteDataSet <em>Remote Data Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Remote Data Set</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getRemoteDataSet()
+ * @see #getLUWNickname()
+ * @generated
+ */
+ EReference getLUWNickname_RemoteDataSet();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getServer()
+ * @see #getLUWNickname()
+ * @generated
+ */
+ EReference getLUWNickname_Server();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping <em>Function Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Function Mapping</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping
+ * @generated
+ */
+ EClass getLUWFunctionMapping();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerType <em>Server Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerType()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_ServerType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerVersion <em>Server Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Version</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerVersion()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_ServerVersion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerName <em>Server Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getServerName()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_ServerName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getCreationTime <em>Creation Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Creation Time</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getCreationTime()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_CreationTime();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#isDisabled <em>Disabled</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Disabled</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#isDisabled()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_Disabled();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerInvoc <em>Insts Per Invoc</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Insts Per Invoc</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerInvoc()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_InstsPerInvoc();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerArgByte <em>Insts Per Arg Byte</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Insts Per Arg Byte</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getInstsPerArgByte()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_InstsPerArgByte();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerInvoc <em>Ios Per Invoc</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ios Per Invoc</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerInvoc()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_IosPerInvoc();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerArgByte <em>Ios Per Arg Byte</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ios Per Arg Byte</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getIosPerArgByte()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EAttribute getLUWFunctionMapping_IosPerArgByte();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getOptions()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EReference getLUWFunctionMapping_Options();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLocalFunction <em>Local Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Local Function</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLocalFunction()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EReference getLUWFunctionMapping_LocalFunction();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getRemoteFunction <em>Remote Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Remote Function</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getRemoteFunction()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EReference getLUWFunctionMapping_RemoteFunction();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLUWDatabase <em>LUW Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>LUW Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping#getLUWDatabase()
+ * @see #getLUWFunctionMapping()
+ * @generated
+ */
+ EReference getLUWFunctionMapping_LUWDatabase();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper <em>Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper
+ * @generated
+ */
+ EClass getLUWWrapper();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getVersion <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getVersion()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EAttribute getLUWWrapper_Version();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLibrary <em>Library</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Library</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLibrary()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EAttribute getLUWWrapper_Library();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#isFenced <em>Fenced</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Fenced</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#isFenced()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EAttribute getLUWWrapper_Fenced();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getWrapperType <em>Wrapper Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Wrapper Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getWrapperType()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EAttribute getLUWWrapper_WrapperType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getDataSource <em>Data Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data Source</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getDataSource()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EAttribute getLUWWrapper_DataSource();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getDiscoveredLibraries <em>Discovered Libraries</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Discovered Libraries</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getDiscoveredLibraries()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EAttribute getLUWWrapper_DiscoveredLibraries();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getServers <em>Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Servers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getServers()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EReference getLUWWrapper_Servers();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLUWDatabase <em>LUW Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>LUW Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLUWDatabase()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EReference getLUWWrapper_LUWDatabase();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getOptions()
+ * @see #getLUWWrapper()
+ * @generated
+ */
+ EReference getLUWWrapper_Options();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname <em>Non Relational Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Non Relational Nickname</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname
+ * @generated
+ */
+ EClass getLUWNonRelationalNickname();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname#getNonRelServer <em>Non Rel Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Non Rel Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname#getNonRelServer()
+ * @see #getLUWNonRelationalNickname()
+ * @generated
+ */
+ EReference getLUWNonRelationalNickname_NonRelServer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer <em>Non Relational Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Non Relational Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer
+ * @generated
+ */
+ EClass getLUWNonRelationalServer();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelWrapper <em>Non Rel Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Non Rel Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelWrapper()
+ * @see #getLUWNonRelationalServer()
+ * @generated
+ */
+ EReference getLUWNonRelationalServer_NonRelWrapper();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelNicknames <em>Non Rel Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Non Rel Nicknames</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer#getNonRelNicknames()
+ * @see #getLUWNonRelationalServer()
+ * @generated
+ */
+ EReference getLUWNonRelationalServer_NonRelNicknames();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper <em>Non Relational Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Non Relational Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper
+ * @generated
+ */
+ EClass getLUWNonRelationalWrapper();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper#getNonRelServers <em>Non Rel Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Non Rel Servers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper#getNonRelServers()
+ * @see #getLUWNonRelationalWrapper()
+ * @generated
+ */
+ EReference getLUWNonRelationalWrapper_NonRelServers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname <em>Relational Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Relational Nickname</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname
+ * @generated
+ */
+ EClass getLUWRelationalNickname();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname#getRelServer <em>Rel Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Rel Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname#getRelServer()
+ * @see #getLUWRelationalNickname()
+ * @generated
+ */
+ EReference getLUWRelationalNickname_RelServer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping <em>Generic User Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generic User Mapping</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping
+ * @generated
+ */
+ EClass getLUWGenericUserMapping();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemoteUser <em>Remote User</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote User</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemoteUser()
+ * @see #getLUWGenericUserMapping()
+ * @generated
+ */
+ EAttribute getLUWGenericUserMapping_RemoteUser();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemotePassword <em>Remote Password</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Password</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping#getRemotePassword()
+ * @see #getLUWGenericUserMapping()
+ * @generated
+ */
+ EAttribute getLUWGenericUserMapping_RemotePassword();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper <em>Relational Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Relational Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper
+ * @generated
+ */
+ EClass getLUWRelationalWrapper();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper#getRelServers <em>Rel Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Rel Servers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper#getRelServers()
+ * @see #getLUWRelationalWrapper()
+ * @generated
+ */
+ EReference getLUWRelationalWrapper_RelServers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer
+ * @generated
+ */
+ EClass getLUWServer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerType <em>Server Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerType()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EAttribute getLUWServer_ServerType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerVersion <em>Server Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Version</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerVersion()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EAttribute getLUWServer_ServerVersion();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getUserMappings <em>User Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>User Mappings</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getUserMappings()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EReference getLUWServer_UserMappings();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getWrapper <em>Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getWrapper()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EReference getLUWServer_Wrapper();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getNicknames <em>Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Nicknames</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getNicknames()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EReference getLUWServer_Nicknames();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getLUWDatabase <em>LUW Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>LUW Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getLUWDatabase()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EReference getLUWServer_LUWDatabase();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getOptions()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EReference getLUWServer_Options();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getRemoteServer <em>Remote Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Remote Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getRemoteServer()
+ * @see #getLUWServer()
+ * @generated
+ */
+ EReference getLUWServer_RemoteServer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping <em>Type Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Type Mapping</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping
+ * @generated
+ */
+ EClass getLUWTypeMapping();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerType <em>Server Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerType()
+ * @see #getLUWTypeMapping()
+ * @generated
+ */
+ EAttribute getLUWTypeMapping_ServerType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerVesion <em>Server Vesion</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Vesion</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerVesion()
+ * @see #getLUWTypeMapping()
+ * @generated
+ */
+ EAttribute getLUWTypeMapping_ServerVesion();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerName <em>Server Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Server Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerName()
+ * @see #getLUWTypeMapping()
+ * @generated
+ */
+ EAttribute getLUWTypeMapping_ServerName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getCreationTime <em>Creation Time</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Creation Time</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getCreationTime()
+ * @see #getLUWTypeMapping()
+ * @generated
+ */
+ EAttribute getLUWTypeMapping_CreationTime();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getLocalType <em>Local Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Local Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getLocalType()
+ * @see #getLUWTypeMapping()
+ * @generated
+ */
+ EReference getLUWTypeMapping_LocalType();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getRemoteType <em>Remote Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Remote Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getRemoteType()
+ * @see #getLUWTypeMapping()
+ * @generated
+ */
+ EReference getLUWTypeMapping_RemoteType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping <em>User Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>User Mapping</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping
+ * @generated
+ */
+ EClass getLUWUserMapping();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getLocalAuthId <em>Local Auth Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Local Auth Id</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getLocalAuthId()
+ * @see #getLUWUserMapping()
+ * @generated
+ */
+ EAttribute getLUWUserMapping_LocalAuthId();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getServer()
+ * @see #getLUWUserMapping()
+ * @generated
+ */
+ EReference getLUWUserMapping_Server();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getOptions()
+ * @see #getLUWUserMapping()
+ * @generated
+ */
+ EReference getLUWUserMapping_Options();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption <em>Option</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Option</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption
+ * @generated
+ */
+ EClass getLUWOption();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption#getValue()
+ * @see #getLUWOption()
+ * @generated
+ */
+ EAttribute getLUWOption_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer <em>Relational Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Relational Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer
+ * @generated
+ */
+ EClass getLUWRelationalServer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCpuRatio <em>Cpu Ratio</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cpu Ratio</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCpuRatio()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_CpuRatio();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getIoRatio <em>Io Ratio</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Io Ratio</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getIoRatio()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_IoRatio();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCommRate <em>Comm Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Comm Rate</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCommRate()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_CommRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldId <em>Fold Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Fold Id</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldId()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_FoldId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldPW <em>Fold PW</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Fold PW</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldPW()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_FoldPW();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isCollatingSequence <em>Collating Sequence</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Collating Sequence</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isCollatingSequence()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_CollatingSequence();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isPushdown <em>Pushdown</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pushdown</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isPushdown()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_Pushdown();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getNode <em>Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Node</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getNode()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_Node();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getDbName <em>Db Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Db Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getDbName()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_DbName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isIudAppSvptEnforce <em>Iud App Svpt Enforce</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Iud App Svpt Enforce</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isIudAppSvptEnforce()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_IudAppSvptEnforce();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getPassword <em>Password</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Password</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getPassword()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EAttribute getLUWRelationalServer_Password();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelNicknames <em>Rel Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Rel Nicknames</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelNicknames()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EReference getLUWRelationalServer_RelNicknames();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelWrapper <em>Rel Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Rel Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelWrapper()
+ * @see #getLUWRelationalServer()
+ * @generated
+ */
+ EReference getLUWRelationalServer_RelWrapper();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase
+ * @generated
+ */
+ EClass getLUWDatabase();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#isFederated <em>Federated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Federated</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#isFederated()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EAttribute getLUWDatabase_Federated();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getGroups <em>Groups</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Groups</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getGroups()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_Groups();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getWrappers <em>Wrappers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Wrappers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getWrappers()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_Wrappers();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getServers <em>Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Servers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getServers()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_Servers();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getFunctionMappings <em>Function Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Function Mappings</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getFunctionMappings()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_FunctionMappings();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTypeMappings <em>Type Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Type Mappings</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTypeMappings()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_TypeMappings();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getReverseTypeMappings <em>Reverse Type Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Reverse Type Mappings</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getReverseTypeMappings()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_ReverseTypeMappings();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getBufferpools <em>Bufferpools</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Bufferpools</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getBufferpools()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_Bufferpools();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTablespaces <em>Tablespaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Tablespaces</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTablespaces()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_Tablespaces();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getStorageGroups <em>Storage Groups</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Storage Groups</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getStorageGroups()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_StorageGroups();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getDefaultStorageGroup <em>Default Storage Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Default Storage Group</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getDefaultStorageGroup()
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ EReference getLUWDatabase_DefaultStorageGroup();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn <em>Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Column</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn
+ * @generated
+ */
+ EClass getLUWColumn();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobLogged <em>Lob Logged</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lob Logged</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobLogged()
+ * @see #getLUWColumn()
+ * @generated
+ */
+ EAttribute getLUWColumn_LobLogged();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobCompacted <em>Lob Compacted</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lob Compacted</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isLobCompacted()
+ * @see #getLUWColumn()
+ * @generated
+ */
+ EAttribute getLUWColumn_LobCompacted();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getCompression <em>Compression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Compression</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getCompression()
+ * @see #getLUWColumn()
+ * @generated
+ */
+ EAttribute getLUWColumn_Compression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getInlineLength <em>Inline Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inline Length</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getInlineLength()
+ * @see #getLUWColumn()
+ * @generated
+ */
+ EAttribute getLUWColumn_InlineLength();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isHidden <em>Hidden</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Hidden</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#isHidden()
+ * @see #getLUWColumn()
+ * @generated
+ */
+ EAttribute getLUWColumn_Hidden();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getSecurityLabel <em>Security Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Security Label</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getSecurityLabel()
+ * @see #getLUWColumn()
+ * @generated
+ */
+ EAttribute getLUWColumn_SecurityLabel();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getOptions <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn#getOptions()
+ * @see #getLUWColumn()
+ * @generated
+ */
+ EReference getLUWColumn_Options();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname <em>Generic Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generic Nickname</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname
+ * @generated
+ */
+ EClass getLUWGenericNickname();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname#getGenericServer <em>Generic Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Generic Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname#getGenericServer()
+ * @see #getLUWGenericNickname()
+ * @generated
+ */
+ EReference getLUWGenericNickname_GenericServer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer <em>Generic Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generic Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer
+ * @generated
+ */
+ EClass getLUWGenericServer();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericNicknames <em>Generic Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Generic Nicknames</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericNicknames()
+ * @see #getLUWGenericServer()
+ * @generated
+ */
+ EReference getLUWGenericServer_GenericNicknames();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericWrapper <em>Generic Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Generic Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer#getGenericWrapper()
+ * @see #getLUWGenericServer()
+ * @generated
+ */
+ EReference getLUWGenericServer_GenericWrapper();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable <em>Materialized Query Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Materialized Query Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable
+ * @generated
+ */
+ EClass getLUWMaterializedQueryTable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper <em>Generic Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Generic Wrapper</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper
+ * @generated
+ */
+ EClass getLUWGenericWrapper();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper#getGenericServers <em>Generic Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Generic Servers</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper#getGenericServers()
+ * @see #getLUWGenericWrapper()
+ * @generated
+ */
+ EReference getLUWGenericWrapper_GenericServers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable <em>Storage Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Storage Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable
+ * @generated
+ */
+ EClass getLUWStorageTable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isValueCompression <em>Value Compression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value Compression</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isValueCompression()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EAttribute getLUWStorageTable_ValueCompression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompression <em>Row Compression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Row Compression</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompression()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EAttribute getLUWStorageTable_RowCompression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompressionEmpty <em>Row Compression Empty</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Row Compression Empty</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompressionEmpty()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EAttribute getLUWStorageTable_RowCompressionEmpty();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getCompressionMode <em>Compression Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Compression Mode</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getCompressionMode()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EAttribute getLUWStorageTable_CompressionMode();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getPartitionKey <em>Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Partition Key</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getPartitionKey()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EReference getLUWStorageTable_PartitionKey();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getIndexDataTableSpace <em>Index Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Index Data Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getIndexDataTableSpace()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EReference getLUWStorageTable_IndexDataTableSpace();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getLOBDataTableSpace <em>LOB Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>LOB Data Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getLOBDataTableSpace()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EReference getLUWStorageTable_LOBDataTableSpace();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getRegularDataTableSpace <em>Regular Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Regular Data Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getRegularDataTableSpace()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EReference getLUWStorageTable_RegularDataTableSpace();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitions <em>Data Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Data Partitions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitions()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EReference getLUWStorageTable_DataPartitions();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitionKey <em>Data Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Data Partition Key</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitionKey()
+ * @see #getLUWStorageTable()
+ * @generated
+ */
+ EReference getLUWStorageTable_DataPartitionKey();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer <em>Relational Remote Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Relational Remote Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer
+ * @generated
+ */
+ EClass getRelationalRemoteServer();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer#getDatabase()
+ * @see #getRelationalRemoteServer()
+ * @generated
+ */
+ EReference getRelationalRemoteServer_Database();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet <em>Relational Remote Data Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Relational Remote Data Set</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet
+ * @generated
+ */
+ EClass getRelationalRemoteDataSet();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet#getTable()
+ * @see #getRelationalRemoteDataSet()
+ * @generated
+ */
+ EReference getRelationalRemoteDataSet_Table();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer <em>Remote Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Remote Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer
+ * @generated
+ */
+ EClass getRemoteServer();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer#getLUWServer <em>LUW Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>LUW Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer#getLUWServer()
+ * @see #getRemoteServer()
+ * @generated
+ */
+ EReference getRemoteServer_LUWServer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet <em>Remote Data Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Remote Data Set</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet
+ * @generated
+ */
+ EClass getRemoteDataSet();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet#getNickname <em>Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Nickname</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet#getNickname()
+ * @see #getRemoteDataSet()
+ * @generated
+ */
+ EReference getRemoteDataSet_Nickname();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex <em>Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Index</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex
+ * @generated
+ */
+ EClass getLUWIndex();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPCTFree <em>PCT Free</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>PCT Free</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPCTFree()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_PCTFree();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPCTFree <em>Min PCT Free</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Min PCT Free</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPCTFree()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_MinPCTFree();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isReverseScan <em>Reverse Scan</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Reverse Scan</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isReverseScan()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_ReverseScan();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isNotPartitioned <em>Not Partitioned</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Not Partitioned</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isNotPartitioned()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_NotPartitioned();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getXmlPattern <em>Xml Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Xml Pattern</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getXmlPattern()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_XmlPattern();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getAsSQLDataType <em>As SQL Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>As SQL Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getAsSQLDataType()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EReference getLUWIndex_AsSQLDataType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isAsSQLDataTypeHashed <em>As SQL Data Type Hashed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>As SQL Data Type Hashed</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isAsSQLDataTypeHashed()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_AsSQLDataTypeHashed();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSystemRequired <em>System Required</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>System Required</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSystemRequired()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_SystemRequired();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPageSplitType <em>Page Split Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Page Split Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getPageSplitType()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_PageSplitType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getLevel2PctFree <em>Level2 Pct Free</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Level2 Pct Free</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getLevel2PctFree()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_Level2PctFree();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPctUsed <em>Min Pct Used</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Min Pct Used</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getMinPctUsed()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_MinPctUsed();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getCompress <em>Compress</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Compress</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getCompress()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_Compress();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isCollectStats <em>Collect Stats</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Collect Stats</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isCollectStats()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_CollectStats();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSampledStats <em>Sampled Stats</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sampled Stats</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isSampledStats()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_SampledStats();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isDetailedStats <em>Detailed Stats</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Detailed Stats</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isDetailedStats()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_DetailedStats();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isIgnoreInvalidValues <em>Ignore Invalid Values</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ignore Invalid Values</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isIgnoreInvalidValues()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_IgnoreInvalidValues();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isExcludeNullKeys <em>Exclude Null Keys</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Exclude Null Keys</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#isExcludeNullKeys()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EAttribute getLUWIndex_ExcludeNullKeys();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getTablespace <em>Tablespace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Tablespace</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getTablespace()
+ * @see #getLUWIndex()
+ * @generated
+ */
+ EReference getLUWIndex_Tablespace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition <em>Attribute Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Attribute Definition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition
+ * @generated
+ */
+ EClass getLUWAttributeDefinition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBLogged <em>LOB Logged</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>LOB Logged</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBLogged()
+ * @see #getLUWAttributeDefinition()
+ * @generated
+ */
+ EAttribute getLUWAttributeDefinition_LOBLogged();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBCompacted <em>LOB Compacted</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>LOB Compacted</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition#isLOBCompacted()
+ * @see #getLUWAttributeDefinition()
+ * @generated
+ */
+ EAttribute getLUWAttributeDefinition_LOBCompacted();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure <em>Federated Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Federated Procedure</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure
+ * @generated
+ */
+ EClass getFederatedProcedure();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteUniqueId <em>Remote Unique Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Unique Id</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteUniqueId()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_RemoteUniqueId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteServer <em>Remote Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteServer()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_RemoteServer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteSchema <em>Remote Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteSchema()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_RemoteSchema();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemotePackage <em>Remote Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Package</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemotePackage()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_RemotePackage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteProcedureName <em>Remote Procedure Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Procedure Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteProcedureName()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_RemoteProcedureName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfParameters <em>Number Of Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Parameters</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfParameters()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_NumberOfParameters();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getResultSetsToClient <em>Result Sets To Client</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Result Sets To Client</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getResultSetsToClient()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_ResultSetsToClient();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfRefCursors <em>Number Of Ref Cursors</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Ref Cursors</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getNumberOfRefCursors()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_NumberOfRefCursors();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#isAllResultSetsToCaller <em>All Result Sets To Caller</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>All Result Sets To Caller</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#isAllResultSetsToCaller()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EAttribute getFederatedProcedure_AllResultSetsToCaller();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedProcedure <em>Federated Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Federated Procedure</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedProcedure()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EReference getFederatedProcedure_FederatedProcedure();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteProcedure <em>Remote Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Remote Procedure</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getRemoteProcedure()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EReference getFederatedProcedure_RemoteProcedure();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedParameter <em>Federated Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Federated Parameter</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure#getFederatedParameter()
+ * @see #getFederatedProcedure()
+ * @generated
+ */
+ EReference getFederatedProcedure_FederatedParameter();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter <em>Federated Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Federated Parameter</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter
+ * @generated
+ */
+ EClass getFederatedParameter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteCodePage <em>Remote Code Page</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Code Page</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteCodePage()
+ * @see #getFederatedParameter()
+ * @generated
+ */
+ EAttribute getFederatedParameter_RemoteCodePage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteParamTypeID <em>Remote Param Type ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Remote Param Type ID</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteParamTypeID()
+ * @see #getFederatedParameter()
+ * @generated
+ */
+ EAttribute getFederatedParameter_RemoteParamTypeID();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getFederatedProcedure <em>Federated Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Federated Procedure</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getFederatedProcedure()
+ * @see #getFederatedParameter()
+ * @generated
+ */
+ EReference getFederatedParameter_FederatedProcedure();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteParameter <em>Remote Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Remote Parameter</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter#getRemoteParameter()
+ * @see #getFederatedParameter()
+ * @generated
+ */
+ EReference getFederatedParameter_RemoteParameter();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression <em>Partition Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Partition Expression</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression
+ * @generated
+ */
+ EClass getLUWPartitionExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#isNullsLast <em>Nulls Last</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nulls Last</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#isNullsLast()
+ * @see #getLUWPartitionExpression()
+ * @generated
+ */
+ EAttribute getLUWPartitionExpression_NullsLast();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getKey <em>Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Key</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getKey()
+ * @see #getLUWPartitionExpression()
+ * @generated
+ */
+ EReference getLUWPartitionExpression_Key();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getColumn <em>Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Column</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getColumn()
+ * @see #getLUWPartitionExpression()
+ * @generated
+ */
+ EReference getLUWPartitionExpression_Column();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getPartitionElements <em>Partition Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Partition Elements</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getPartitionElements()
+ * @see #getLUWPartitionExpression()
+ * @generated
+ */
+ EReference getLUWPartitionExpression_PartitionElements();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement <em>Partition Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Partition Element</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement
+ * @generated
+ */
+ EClass getLUWPartitionElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getStarting <em>Starting</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Starting</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getStarting()
+ * @see #getLUWPartitionElement()
+ * @generated
+ */
+ EAttribute getLUWPartitionElement_Starting();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEnding <em>Ending</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ending</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEnding()
+ * @see #getLUWPartitionElement()
+ * @generated
+ */
+ EAttribute getLUWPartitionElement_Ending();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getLUWPartitionExpression <em>LUW Partition Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>LUW Partition Expression</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getLUWPartitionExpression()
+ * @see #getLUWPartitionElement()
+ * @generated
+ */
+ EReference getLUWPartitionElement_LUWPartitionExpression();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getPartition <em>Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Partition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getPartition()
+ * @see #getLUWPartitionElement()
+ * @generated
+ */
+ EReference getLUWPartitionElement_Partition();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEveryClause <em>Every Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Every Clause</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEveryClause()
+ * @see #getLUWPartitionElement()
+ * @generated
+ */
+ EReference getLUWPartitionElement_EveryClause();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition <em>Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Partition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition
+ * @generated
+ */
+ EClass getLUWDataPartition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getId()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EAttribute getLUWDataPartition_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isLowInclusive <em>Low Inclusive</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Low Inclusive</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isLowInclusive()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EAttribute getLUWDataPartition_LowInclusive();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isHighInclusive <em>High Inclusive</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>High Inclusive</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#isHighInclusive()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EAttribute getLUWDataPartition_HighInclusive();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getLOBDataTableSpace <em>LOB Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>LOB Data Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getLOBDataTableSpace()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EReference getLUWDataPartition_LOBDataTableSpace();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getRegularDataTableSpace <em>Regular Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Regular Data Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getRegularDataTableSpace()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EReference getLUWDataPartition_RegularDataTableSpace();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getPartitionElements <em>Partition Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Partition Elements</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getPartitionElements()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EReference getLUWDataPartition_PartitionElements();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getTable()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EReference getLUWDataPartition_Table();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getIndexDataTableSpace <em>Index Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Index Data Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getIndexDataTableSpace()
+ * @see #getLUWDataPartition()
+ * @generated
+ */
+ EReference getLUWDataPartition_IndexDataTableSpace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey <em>Data Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Partition Key</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey
+ * @generated
+ */
+ EClass getLUWDataPartitionKey();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionMethod <em>Partition Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Partition Method</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionMethod()
+ * @see #getLUWDataPartitionKey()
+ * @generated
+ */
+ EAttribute getLUWDataPartitionKey_PartitionMethod();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionExpressions <em>Partition Expressions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Partition Expressions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionExpressions()
+ * @see #getLUWDataPartitionKey()
+ * @generated
+ */
+ EReference getLUWDataPartitionKey_PartitionExpressions();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getTable()
+ * @see #getLUWDataPartitionKey()
+ * @generated
+ */
+ EReference getLUWDataPartitionKey_Table();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage <em>Database Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Database Package</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage
+ * @generated
+ */
+ EClass getLUWDatabasePackage();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCreator <em>Creator</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Creator</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCreator()
+ * @see #getLUWDatabasePackage()
+ * @generated
+ */
+ EAttribute getLUWDatabasePackage_Creator();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getBinder <em>Binder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Binder</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getBinder()
+ * @see #getLUWDatabasePackage()
+ * @generated
+ */
+ EAttribute getLUWDatabasePackage_Binder();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCursorBlock <em>Cursor Block</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cursor Block</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getCursorBlock()
+ * @see #getLUWDatabasePackage()
+ * @generated
+ */
+ EAttribute getLUWDatabasePackage_CursorBlock();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getNumberOfSections <em>Number Of Sections</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Number Of Sections</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getNumberOfSections()
+ * @see #getLUWDatabasePackage()
+ * @generated
+ */
+ EAttribute getLUWDatabasePackage_NumberOfSections();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getOptimizationClass <em>Optimization Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Optimization Class</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getOptimizationClass()
+ * @see #getLUWDatabasePackage()
+ * @generated
+ */
+ EAttribute getLUWDatabasePackage_OptimizationClass();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getExplainSnapshot <em>Explain Snapshot</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Explain Snapshot</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage#getExplainSnapshot()
+ * @see #getLUWDatabasePackage()
+ * @generated
+ */
+ EAttribute getLUWDatabasePackage_ExplainSnapshot();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule
+ * @generated
+ */
+ EClass getLUWModule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getDialect <em>Dialect</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dialect</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getDialect()
+ * @see #getLUWModule()
+ * @generated
+ */
+ EAttribute getLUWModule_Dialect();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getOwningSchema <em>Owning Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Owning Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getOwningSchema()
+ * @see #getLUWModule()
+ * @generated
+ */
+ EReference getLUWModule_OwningSchema();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getModuleObjects <em>Module Objects</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Module Objects</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule#getModuleObjects()
+ * @see #getLUWModule()
+ * @generated
+ */
+ EReference getLUWModule_ModuleObjects();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject <em>Module Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Object</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject
+ * @generated
+ */
+ EClass getLUWModuleObject();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#isPublished <em>Published</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Published</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#isPublished()
+ * @see #getLUWModuleObject()
+ * @generated
+ */
+ EAttribute getLUWModuleObject_Published();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#getModule <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Module</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject#getModule()
+ * @see #getLUWModuleObject()
+ * @generated
+ */
+ EReference getLUWModuleObject_Module();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction <em>Module Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Function</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction
+ * @generated
+ */
+ EClass getLUWModuleFunction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction#isImplemented <em>Implemented</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Implemented</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction#isImplemented()
+ * @see #getLUWModuleFunction()
+ * @generated
+ */
+ EAttribute getLUWModuleFunction_Implemented();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure <em>Module Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Procedure</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure
+ * @generated
+ */
+ EClass getLUWModuleProcedure();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure#isImplemented <em>Implemented</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Implemented</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure#isImplemented()
+ * @see #getLUWModuleProcedure()
+ * @generated
+ */
+ EAttribute getLUWModuleProcedure_Implemented();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition <em>Module Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Condition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition
+ * @generated
+ */
+ EClass getLUWModuleCondition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition#getSqlstate <em>Sqlstate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sqlstate</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition#getSqlstate()
+ * @see #getLUWModuleCondition()
+ * @generated
+ */
+ EAttribute getLUWModuleCondition_Sqlstate();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable <em>Global Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Global Variable</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable
+ * @generated
+ */
+ EClass getLUWGlobalVariable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getDefaultValue <em>Default Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default Value</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getDefaultValue()
+ * @see #getLUWGlobalVariable()
+ * @generated
+ */
+ EAttribute getLUWGlobalVariable_DefaultValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#isIsConstant <em>Is Constant</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Constant</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#isIsConstant()
+ * @see #getLUWGlobalVariable()
+ * @generated
+ */
+ EAttribute getLUWGlobalVariable_IsConstant();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable#getSchema()
+ * @see #getLUWGlobalVariable()
+ * @generated
+ */
+ EReference getLUWGlobalVariable_Schema();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType <em>Module Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType
+ * @generated
+ */
+ EClass getLUWModuleType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleRowDataType <em>Module Row Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Row Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleRowDataType
+ * @generated
+ */
+ EClass getLUWModuleRowDataType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleArrayDataType <em>Module Array Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Array Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleArrayDataType
+ * @generated
+ */
+ EClass getLUWModuleArrayDataType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleDistinctType <em>Module Distinct Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Distinct Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleDistinctType
+ * @generated
+ */
+ EClass getLUWModuleDistinctType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleGlobalVariable <em>Module Global Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Global Variable</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleGlobalVariable
+ * @generated
+ */
+ EClass getLUWModuleGlobalVariable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType <em>Array Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Array Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType
+ * @generated
+ */
+ EClass getLUWArrayDataType();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType#getArrayIndexElementType <em>Array Index Element Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Array Index Element Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType#getArrayIndexElementType()
+ * @see #getLUWArrayDataType()
+ * @generated
+ */
+ EReference getLUWArrayDataType_ArrayIndexElementType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType <em>Row Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Row Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType
+ * @generated
+ */
+ EClass getLUWRowDataType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage <em>PLSQL Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>PLSQL Package</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage
+ * @generated
+ */
+ EClass getPLSQLPackage();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage#getPackageBody <em>Package Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Package Body</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage#getPackageBody()
+ * @see #getPLSQLPackage()
+ * @generated
+ */
+ EReference getPLSQLPackage_PackageBody();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody <em>PLSQL Package Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>PLSQL Package Body</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody
+ * @generated
+ */
+ EClass getPLSQLPackageBody();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody#getPackage <em>Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Package</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody#getPackage()
+ * @see #getPLSQLPackageBody()
+ * @generated
+ */
+ EReference getPLSQLPackageBody_Package();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType <em>Cursor Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cursor Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType
+ * @generated
+ */
+ EClass getLUWCursorDataType();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType#getRowType <em>Row Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Row Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType#getRowType()
+ * @see #getLUWCursorDataType()
+ * @generated
+ */
+ EReference getLUWCursorDataType_RowType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCursorDataType <em>Module Cursor Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module Cursor Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCursorDataType
+ * @generated
+ */
+ EClass getLUWModuleCursorDataType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException <em>Buffer Pool Size Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Buffer Pool Size Exception</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException
+ * @generated
+ */
+ EClass getLUWBufferPoolSizeException();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getSize()
+ * @see #getLUWBufferPoolSizeException()
+ * @generated
+ */
+ EAttribute getLUWBufferPoolSizeException_Size();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Buffer Pool</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getBufferPool()
+ * @see #getLUWBufferPoolSizeException()
+ * @generated
+ */
+ EReference getLUWBufferPoolSizeException_BufferPool();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getPartitions <em>Partitions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Partitions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException#getPartitions()
+ * @see #getLUWBufferPoolSizeException()
+ * @generated
+ */
+ EReference getLUWBufferPoolSizeException_Partitions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember <em>Member</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Member</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember
+ * @generated
+ */
+ EClass getLUWMember();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getType()
+ * @see #getLUWMember()
+ * @generated
+ */
+ EAttribute getLUWMember_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getAlert <em>Alert</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Alert</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getAlert()
+ * @see #getLUWMember()
+ * @generated
+ */
+ EAttribute getLUWMember_Alert();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getDbPartitionNum <em>Db Partition Num</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Db Partition Num</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getDbPartitionNum()
+ * @see #getLUWMember()
+ * @generated
+ */
+ EAttribute getLUWMember_DbPartitionNum();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getLogicalPort <em>Logical Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Logical Port</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getLogicalPort()
+ * @see #getLUWMember()
+ * @generated
+ */
+ EAttribute getLUWMember_LogicalPort();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getNetName <em>Net Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Net Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember#getNetName()
+ * @see #getLUWMember()
+ * @generated
+ */
+ EAttribute getLUWMember_NetName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy <em>Security Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Security Policy</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy
+ * @generated
+ */
+ EClass getLUWSecurityPolicy();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getNotAuthorizedWrite <em>Not Authorized Write</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Not Authorized Write</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getNotAuthorizedWrite()
+ * @see #getLUWSecurityPolicy()
+ * @generated
+ */
+ EAttribute getLUWSecurityPolicy_NotAuthorizedWrite();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getComponents <em>Components</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Components</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getComponents()
+ * @see #getLUWSecurityPolicy()
+ * @generated
+ */
+ EReference getLUWSecurityPolicy_Components();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getLabels <em>Labels</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Labels</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getLabels()
+ * @see #getLUWSecurityPolicy()
+ * @generated
+ */
+ EReference getLUWSecurityPolicy_Labels();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getTable()
+ * @see #getLUWSecurityPolicy()
+ * @generated
+ */
+ EReference getLUWSecurityPolicy_Table();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent <em>Security Label Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Security Label Component</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent
+ * @generated
+ */
+ EClass getLUWSecurityLabelComponent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getType()
+ * @see #getLUWSecurityLabelComponent()
+ * @generated
+ */
+ EAttribute getLUWSecurityLabelComponent_Type();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getLUWSecurityPolicy <em>LUW Security Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>LUW Security Policy</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getLUWSecurityPolicy()
+ * @see #getLUWSecurityLabelComponent()
+ * @generated
+ */
+ EReference getLUWSecurityLabelComponent_LUWSecurityPolicy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getElements <em>Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Elements</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getElements()
+ * @see #getLUWSecurityLabelComponent()
+ * @generated
+ */
+ EReference getLUWSecurityLabelComponent_Elements();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel <em>Security Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Security Label</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel
+ * @generated
+ */
+ EClass getLUWSecurityLabel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getSecurityLabel <em>Security Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Security Label</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getSecurityLabel()
+ * @see #getLUWSecurityLabel()
+ * @generated
+ */
+ EAttribute getLUWSecurityLabel_SecurityLabel();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getPolicy <em>Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Policy</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getPolicy()
+ * @see #getLUWSecurityLabel()
+ * @generated
+ */
+ EReference getLUWSecurityLabel_Policy();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement <em>Security Label Component Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Security Label Component Element</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement
+ * @generated
+ */
+ EClass getLUWSecurityLabelComponentElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getValue()
+ * @see #getLUWSecurityLabelComponentElement()
+ * @generated
+ */
+ EAttribute getLUWSecurityLabelComponentElement_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getParentValue <em>Parent Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Parent Value</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getParentValue()
+ * @see #getLUWSecurityLabelComponentElement()
+ * @generated
+ */
+ EAttribute getLUWSecurityLabelComponentElement_ParentValue();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getLUWSecurityLabelComponent <em>LUW Security Label Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>LUW Security Label Component</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getLUWSecurityLabelComponent()
+ * @see #getLUWSecurityLabelComponentElement()
+ * @generated
+ */
+ EReference getLUWSecurityLabelComponentElement_LUWSecurityLabelComponent();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup <em>Storage Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Storage Group</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup
+ * @generated
+ */
+ EClass getLUWStorageGroup();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getStoragePaths <em>Storage Paths</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Storage Paths</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getStoragePaths()
+ * @see #getLUWStorageGroup()
+ * @generated
+ */
+ EAttribute getLUWStorageGroup_StoragePaths();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getOverhead <em>Overhead</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Overhead</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getOverhead()
+ * @see #getLUWStorageGroup()
+ * @generated
+ */
+ EAttribute getLUWStorageGroup_Overhead();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDeviceReadRate <em>Device Read Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Device Read Rate</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDeviceReadRate()
+ * @see #getLUWStorageGroup()
+ * @generated
+ */
+ EAttribute getLUWStorageGroup_DeviceReadRate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDataTag <em>Data Tag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data Tag</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDataTag()
+ * @see #getLUWStorageGroup()
+ * @generated
+ */
+ EAttribute getLUWStorageGroup_DataTag();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#isDefault <em>Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#isDefault()
+ * @see #getLUWStorageGroup()
+ * @generated
+ */
+ EAttribute getLUWStorageGroup_Default();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDatabase()
+ * @see #getLUWStorageGroup()
+ * @generated
+ */
+ EReference getLUWStorageGroup_Database();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getTableSpaces <em>Table Spaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Table Spaces</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getTableSpaces()
+ * @see #getLUWStorageGroup()
+ * @generated
+ */
+ EReference getLUWStorageGroup_TableSpaces();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable <em>Temporary Storage Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Storage Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable
+ * @generated
+ */
+ EClass getLUWTemporaryStorageTable();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getPartitionKey <em>Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Partition Key</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getPartitionKey()
+ * @see #getLUWTemporaryStorageTable()
+ * @generated
+ */
+ EReference getLUWTemporaryStorageTable_PartitionKey();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getUserTemporaryTableSpace <em>User Temporary Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>User Temporary Table Space</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getUserTemporaryTableSpace()
+ * @see #getLUWTemporaryStorageTable()
+ * @generated
+ */
+ EReference getLUWTemporaryStorageTable_UserTemporaryTableSpace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable <em>Temporary Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Temporary Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable
+ * @generated
+ */
+ EClass getLUWTemporaryTable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getTable()
+ * @see #getLUWTemporaryTable()
+ * @generated
+ */
+ EReference getLUWTemporaryTable_Table();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getLogOption <em>Log Option</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Log Option</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getLogOption()
+ * @see #getLUWTemporaryTable()
+ * @generated
+ */
+ EAttribute getLUWTemporaryTable_LogOption();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType <em>Array Index Element Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Array Index Element Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType
+ * @generated
+ */
+ EClass getArrayIndexElementType();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType#getLUWArrayDataType <em>LUW Array Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>LUW Array Data Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType#getLUWArrayDataType()
+ * @see #getArrayIndexElementType()
+ * @generated
+ */
+ EReference getArrayIndexElementType_LUWArrayDataType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement <em>Partition Every Clause Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Partition Every Clause Element</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement
+ * @generated
+ */
+ EClass getLUWPartitionEveryClauseElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getValue()
+ * @see #getLUWPartitionEveryClauseElement()
+ * @generated
+ */
+ EAttribute getLUWPartitionEveryClauseElement_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getDuration <em>Duration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Duration</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getDuration()
+ * @see #getLUWPartitionEveryClauseElement()
+ * @generated
+ */
+ EAttribute getLUWPartitionEveryClauseElement_Duration();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getLUWPartitionElement <em>LUW Partition Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>LUW Partition Element</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getLUWPartitionElement()
+ * @see #getLUWPartitionEveryClauseElement()
+ * @generated
+ */
+ EReference getLUWPartitionEveryClauseElement_LUWPartitionElement();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType <em>Container Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Container Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType
+ * @generated
+ */
+ EEnum getLUWContainerType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType <em>Page Size Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Page Size Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType
+ * @generated
+ */
+ EEnum getPageSizeType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType <em>Buffer Pool Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Buffer Pool Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType
+ * @generated
+ */
+ EEnum getBufferPoolType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType <em>Table Space Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Table Space Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType
+ * @generated
+ */
+ EEnum getTableSpaceType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType <em>Management Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Management Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType
+ * @generated
+ */
+ EEnum getManagementType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.CheckOptionType <em>Check Option Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Check Option Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CheckOptionType
+ * @generated
+ */
+ EEnum getCheckOptionType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod <em>Partition Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Partition Method</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod
+ * @generated
+ */
+ EEnum getPartitionMethod();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.MaintenanceType <em>Maintenance Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Maintenance Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.MaintenanceType
+ * @generated
+ */
+ EEnum getMaintenanceType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RefreshType <em>Refresh Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Refresh Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RefreshType
+ * @generated
+ */
+ EEnum getRefreshType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType <em>Wrapper Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Wrapper Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType
+ * @generated
+ */
+ EEnum getWrapperType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod <em>Data Partition Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Data Partition Method</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod
+ * @generated
+ */
+ EEnum getDataPartitionMethod();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType <em>Cursor Block Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Cursor Block Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType
+ * @generated
+ */
+ EEnum getCursorBlockType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType <em>Explain Snaphot Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Explain Snaphot Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType
+ * @generated
+ */
+ EEnum getExplainSnaphotType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType <em>File System Caching Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>File System Caching Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType
+ * @generated
+ */
+ EEnum getFileSystemCachingType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType <em>Index Page Split Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Index Page Split Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType
+ * @generated
+ */
+ EEnum getLUWIndexPageSplitType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType <em>Index Compress Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Index Compress Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType
+ * @generated
+ */
+ EEnum getLUWIndexCompressType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType <em>System Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>System Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType
+ * @generated
+ */
+ EEnum getSystemType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType <em>Average Table Size Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Average Table Size Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType
+ * @generated
+ */
+ EEnum getAverageTableSizeType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode <em>Storage Table Compression Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Storage Table Compression Mode</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode
+ * @generated
+ */
+ EEnum getLUWStorageTableCompressionMode();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType <em>Member Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Member Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType
+ * @generated
+ */
+ EEnum getLUWMemberType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.MemberStateType <em>Member State Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Member State Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.MemberStateType
+ * @generated
+ */
+ EEnum getMemberStateType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType <em>Security Label Component Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Security Label Component Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType
+ * @generated
+ */
+ EEnum getLUWSecurityLabelComponentType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction <em>Security Label Not Authorized Write Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Security Label Not Authorized Write Action</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction
+ * @generated
+ */
+ EEnum getLUWSecurityLabelNotAuthorizedWriteAction();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource <em>Federated Data Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Federated Data Source</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource
+ * @generated
+ */
+ EEnum getLUWFederatedDataSource();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption <em>Temporary Table Logging Option</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Temporary Table Logging Option</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption
+ * @generated
+ */
+ EEnum getLUWTemporaryTableLoggingOption();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ LUWFactory getLUWFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl <em>Partition Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionGroup()
+ * @generated
+ */
+ EClass LUW_PARTITION_GROUP = eINSTANCE.getLUWPartitionGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Partitions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_GROUP__PARTITIONS = eINSTANCE.getLUWPartitionGroup_Partitions();
+
+ /**
+ * The meta object literal for the '<em><b>Table Spaces</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_GROUP__TABLE_SPACES = eINSTANCE.getLUWPartitionGroup_TableSpaces();
+
+ /**
+ * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_GROUP__DATABASE = eINSTANCE.getLUWPartitionGroup_Database();
+
+ /**
+ * The meta object literal for the '<em><b>Buffer Pool</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_GROUP__BUFFER_POOL = eINSTANCE.getLUWPartitionGroup_BufferPool();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl <em>Table Space</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTableSpace()
+ * @generated
+ */
+ EClass LUW_TABLE_SPACE = eINSTANCE.getLUWTableSpace();
+
+ /**
+ * The meta object literal for the '<em><b>Temporary Storage Tables</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES = eINSTANCE.getLUWTableSpace_TemporaryStorageTables();
+
+ /**
+ * The meta object literal for the '<em><b>Tablespace Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__TABLESPACE_TYPE = eINSTANCE.getLUWTableSpace_TablespaceType();
+
+ /**
+ * The meta object literal for the '<em><b>Management Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__MANAGEMENT_TYPE = eINSTANCE.getLUWTableSpace_ManagementType();
+
+ /**
+ * The meta object literal for the '<em><b>Extent Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__EXTENT_SIZE = eINSTANCE.getLUWTableSpace_ExtentSize();
+
+ /**
+ * The meta object literal for the '<em><b>Pre Fetch Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__PRE_FETCH_SIZE = eINSTANCE.getLUWTableSpace_PreFetchSize();
+
+ /**
+ * The meta object literal for the '<em><b>Overhead</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__OVERHEAD = eINSTANCE.getLUWTableSpace_Overhead();
+
+ /**
+ * The meta object literal for the '<em><b>Transfer Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__TRANSFER_RATE = eINSTANCE.getLUWTableSpace_TransferRate();
+
+ /**
+ * The meta object literal for the '<em><b>Recover Dropped Table On</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON = eINSTANCE.getLUWTableSpace_RecoverDroppedTableOn();
+
+ /**
+ * The meta object literal for the '<em><b>Page Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__PAGE_SIZE = eINSTANCE.getLUWTableSpace_PageSize();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__SIZE = eINSTANCE.getLUWTableSpace_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Auto Resize</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__AUTO_RESIZE = eINSTANCE.getLUWTableSpace_AutoResize();
+
+ /**
+ * The meta object literal for the '<em><b>Initial Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__INITIAL_SIZE = eINSTANCE.getLUWTableSpace_InitialSize();
+
+ /**
+ * The meta object literal for the '<em><b>Increase Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__INCREASE_SIZE = eINSTANCE.getLUWTableSpace_IncreaseSize();
+
+ /**
+ * The meta object literal for the '<em><b>Maximum Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__MAXIMUM_SIZE = eINSTANCE.getLUWTableSpace_MaximumSize();
+
+ /**
+ * The meta object literal for the '<em><b>Initial Size Unit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__INITIAL_SIZE_UNIT = eINSTANCE.getLUWTableSpace_InitialSizeUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Maximum Size Unit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT = eINSTANCE.getLUWTableSpace_MaximumSizeUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Increase Size Unit</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__INCREASE_SIZE_UNIT = eINSTANCE.getLUWTableSpace_IncreaseSizeUnit();
+
+ /**
+ * The meta object literal for the '<em><b>Increase Percent</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__INCREASE_PERCENT = eINSTANCE.getLUWTableSpace_IncreasePercent();
+
+ /**
+ * The meta object literal for the '<em><b>File System Caching</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__FILE_SYSTEM_CACHING = eINSTANCE.getLUWTableSpace_FileSystemCaching();
+
+ /**
+ * The meta object literal for the '<em><b>Average Seek Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__AVERAGE_SEEK_TIME = eINSTANCE.getLUWTableSpace_AverageSeekTime();
+
+ /**
+ * The meta object literal for the '<em><b>Rotation Speed</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__ROTATION_SPEED = eINSTANCE.getLUWTableSpace_RotationSpeed();
+
+ /**
+ * The meta object literal for the '<em><b>Transfer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__TRANSFER = eINSTANCE.getLUWTableSpace_Transfer();
+
+ /**
+ * The meta object literal for the '<em><b>System Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__SYSTEM_TYPE = eINSTANCE.getLUWTableSpace_SystemType();
+
+ /**
+ * The meta object literal for the '<em><b>Average Table Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE = eINSTANCE.getLUWTableSpace_AverageTableSize();
+
+ /**
+ * The meta object literal for the '<em><b>External Container Count</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT = eINSTANCE.getLUWTableSpace_ExternalContainerCount();
+
+ /**
+ * The meta object literal for the '<em><b>Inherit Overhead</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__INHERIT_OVERHEAD = eINSTANCE.getLUWTableSpace_InheritOverhead();
+
+ /**
+ * The meta object literal for the '<em><b>Inherit Transferate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__INHERIT_TRANSFERATE = eINSTANCE.getLUWTableSpace_InheritTransferate();
+
+ /**
+ * The meta object literal for the '<em><b>Rebalance</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__REBALANCE = eINSTANCE.getLUWTableSpace_Rebalance();
+
+ /**
+ * The meta object literal for the '<em><b>Data Tag</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__DATA_TAG = eINSTANCE.getLUWTableSpace_DataTag();
+
+ /**
+ * The meta object literal for the '<em><b>Suspend Rebalance</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__SUSPEND_REBALANCE = eINSTANCE.getLUWTableSpace_SuspendRebalance();
+
+ /**
+ * The meta object literal for the '<em><b>Resume Rebalance</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE_SPACE__RESUME_REBALANCE = eINSTANCE.getLUWTableSpace_ResumeRebalance();
+
+ /**
+ * The meta object literal for the '<em><b>Group</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__GROUP = eINSTANCE.getLUWTableSpace_Group();
+
+ /**
+ * The meta object literal for the '<em><b>Containers</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__CONTAINERS = eINSTANCE.getLUWTableSpace_Containers();
+
+ /**
+ * The meta object literal for the '<em><b>Buffer Pool</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__BUFFER_POOL = eINSTANCE.getLUWTableSpace_BufferPool();
+
+ /**
+ * The meta object literal for the '<em><b>Index Data Tables</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__INDEX_DATA_TABLES = eINSTANCE.getLUWTableSpace_IndexDataTables();
+
+ /**
+ * The meta object literal for the '<em><b>LOB Data Tables</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__LOB_DATA_TABLES = eINSTANCE.getLUWTableSpace_LOBDataTables();
+
+ /**
+ * The meta object literal for the '<em><b>Regular Data Tables</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__REGULAR_DATA_TABLES = eINSTANCE.getLUWTableSpace_RegularDataTables();
+
+ /**
+ * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__DATABASE = eINSTANCE.getLUWTableSpace_Database();
+
+ /**
+ * The meta object literal for the '<em><b>LOB Data Partition</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__LOB_DATA_PARTITION = eINSTANCE.getLUWTableSpace_LOBDataPartition();
+
+ /**
+ * The meta object literal for the '<em><b>Regular Data Partition</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__REGULAR_DATA_PARTITION = eINSTANCE.getLUWTableSpace_RegularDataPartition();
+
+ /**
+ * The meta object literal for the '<em><b>Indexes</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__INDEXES = eINSTANCE.getLUWTableSpace_Indexes();
+
+ /**
+ * The meta object literal for the '<em><b>Index Data Partition</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__INDEX_DATA_PARTITION = eINSTANCE.getLUWTableSpace_IndexDataPartition();
+
+ /**
+ * The meta object literal for the '<em><b>Storage Group</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE_SPACE__STORAGE_GROUP = eINSTANCE.getLUWTableSpace_StorageGroup();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl <em>Database Partition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabasePartition()
+ * @generated
+ */
+ EClass LUW_DATABASE_PARTITION = eINSTANCE.getLUWDatabasePartition();
+
+ /**
+ * The meta object literal for the '<em><b>Number</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PARTITION__NUMBER = eINSTANCE.getLUWDatabasePartition_Number();
+
+ /**
+ * The meta object literal for the '<em><b>Port Number</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PARTITION__PORT_NUMBER = eINSTANCE.getLUWDatabasePartition_PortNumber();
+
+ /**
+ * The meta object literal for the '<em><b>Host Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PARTITION__HOST_NAME = eINSTANCE.getLUWDatabasePartition_HostName();
+
+ /**
+ * The meta object literal for the '<em><b>Switch Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PARTITION__SWITCH_NAME = eINSTANCE.getLUWDatabasePartition_SwitchName();
+
+ /**
+ * The meta object literal for the '<em><b>Catalog Partition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PARTITION__CATALOG_PARTITION = eINSTANCE.getLUWDatabasePartition_CatalogPartition();
+
+ /**
+ * The meta object literal for the '<em><b>Group</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE_PARTITION__GROUP = eINSTANCE.getLUWDatabasePartition_Group();
+
+ /**
+ * The meta object literal for the '<em><b>Buffer Pool</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE_PARTITION__BUFFER_POOL = eINSTANCE.getLUWDatabasePartition_BufferPool();
+
+ /**
+ * The meta object literal for the '<em><b>Containers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE_PARTITION__CONTAINERS = eINSTANCE.getLUWDatabasePartition_Containers();
+
+ /**
+ * The meta object literal for the '<em><b>Size Exception</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE_PARTITION__SIZE_EXCEPTION = eINSTANCE.getLUWDatabasePartition_SizeException();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl <em>Database Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabaseContainer()
+ * @generated
+ */
+ EClass LUW_DATABASE_CONTAINER = eINSTANCE.getLUWDatabaseContainer();
+
+ /**
+ * The meta object literal for the '<em><b>Container Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_CONTAINER__CONTAINER_TYPE = eINSTANCE.getLUWDatabaseContainer_ContainerType();
+
+ /**
+ * The meta object literal for the '<em><b>Size In Pages</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_CONTAINER__SIZE_IN_PAGES = eINSTANCE.getLUWDatabaseContainer_SizeInPages();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_CONTAINER__SIZE = eINSTANCE.getLUWDatabaseContainer_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Size Units</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_CONTAINER__SIZE_UNITS = eINSTANCE.getLUWDatabaseContainer_SizeUnits();
+
+ /**
+ * The meta object literal for the '<em><b>Table Space</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE_CONTAINER__TABLE_SPACE = eINSTANCE.getLUWDatabaseContainer_TableSpace();
+
+ /**
+ * The meta object literal for the '<em><b>Partitions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE_CONTAINER__PARTITIONS = eINSTANCE.getLUWDatabaseContainer_Partitions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAdminServerImpl <em>Admin Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAdminServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWAdminServer()
+ * @generated
+ */
+ EClass LUW_ADMIN_SERVER = eINSTANCE.getLUWAdminServer();
+
+ /**
+ * The meta object literal for the '<em><b>Instances</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_ADMIN_SERVER__INSTANCES = eINSTANCE.getLUWAdminServer_Instances();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl <em>Buffer Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWBufferPool()
+ * @generated
+ */
+ EClass LUW_BUFFER_POOL = eINSTANCE.getLUWBufferPool();
+
+ /**
+ * The meta object literal for the '<em><b>Create Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL__CREATE_TYPE = eINSTANCE.getLUWBufferPool_CreateType();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL__SIZE = eINSTANCE.getLUWBufferPool_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Page Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL__PAGE_SIZE = eINSTANCE.getLUWBufferPool_PageSize();
+
+ /**
+ * The meta object literal for the '<em><b>Block Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL__BLOCK_SIZE = eINSTANCE.getLUWBufferPool_BlockSize();
+
+ /**
+ * The meta object literal for the '<em><b>Num Block Pages</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL__NUM_BLOCK_PAGES = eINSTANCE.getLUWBufferPool_NumBlockPages();
+
+ /**
+ * The meta object literal for the '<em><b>Extended Storage</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL__EXTENDED_STORAGE = eINSTANCE.getLUWBufferPool_ExtendedStorage();
+
+ /**
+ * The meta object literal for the '<em><b>Automatic</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL__AUTOMATIC = eINSTANCE.getLUWBufferPool_Automatic();
+
+ /**
+ * The meta object literal for the '<em><b>Table Spaces</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_BUFFER_POOL__TABLE_SPACES = eINSTANCE.getLUWBufferPool_TableSpaces();
+
+ /**
+ * The meta object literal for the '<em><b>Partitions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_BUFFER_POOL__PARTITIONS = eINSTANCE.getLUWBufferPool_Partitions();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Group</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_BUFFER_POOL__PARTITION_GROUP = eINSTANCE.getLUWBufferPool_PartitionGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_BUFFER_POOL__DATABASE = eINSTANCE.getLUWBufferPool_Database();
+
+ /**
+ * The meta object literal for the '<em><b>Size Exception</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_BUFFER_POOL__SIZE_EXCEPTION = eINSTANCE.getLUWBufferPool_SizeException();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl <em>Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTable()
+ * @generated
+ */
+ EClass LUW_TABLE = eINSTANCE.getLUWTable();
+
+ /**
+ * The meta object literal for the '<em><b>PCT Free</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE__PCT_FREE = eINSTANCE.getLUWTable_PCTFree();
+
+ /**
+ * The meta object literal for the '<em><b>Restrict On Drop</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE__RESTRICT_ON_DROP = eINSTANCE.getLUWTable_RestrictOnDrop();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE__PARTITION_MODE = eINSTANCE.getLUWTable_PartitionMode();
+
+ /**
+ * The meta object literal for the '<em><b>Append Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE__APPEND_MODE = eINSTANCE.getLUWTable_AppendMode();
+
+ /**
+ * The meta object literal for the '<em><b>Log Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE__LOG_MODE = eINSTANCE.getLUWTable_LogMode();
+
+ /**
+ * The meta object literal for the '<em><b>Lock Size Row</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE__LOCK_SIZE_ROW = eINSTANCE.getLUWTable_LockSizeRow();
+
+ /**
+ * The meta object literal for the '<em><b>Volatile</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TABLE__VOLATILE = eINSTANCE.getLUWTable_Volatile();
+
+ /**
+ * The meta object literal for the '<em><b>Security Policy</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE__SECURITY_POLICY = eINSTANCE.getLUWTable_SecurityPolicy();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TABLE__OPTIONS = eINSTANCE.getLUWTable_Options();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWViewImpl <em>View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWViewImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWView()
+ * @generated
+ */
+ EClass LUW_VIEW = eINSTANCE.getLUWView();
+
+ /**
+ * The meta object literal for the '<em><b>Federated</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_VIEW__FEDERATED = eINSTANCE.getLUWView_Federated();
+
+ /**
+ * The meta object literal for the '<em><b>Optimize Query</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_VIEW__OPTIMIZE_QUERY = eINSTANCE.getLUWView_OptimizeQuery();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl <em>Partition Key</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionKey()
+ * @generated
+ */
+ EClass LUW_PARTITION_KEY = eINSTANCE.getLUWPartitionKey();
+
+ /**
+ * The meta object literal for the '<em><b>Temporary Storage Table</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE = eINSTANCE.getLUWPartitionKey_TemporaryStorageTable();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Method</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_PARTITION_KEY__PARTITION_METHOD = eINSTANCE.getLUWPartitionKey_PartitionMethod();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_KEY__TABLE = eINSTANCE.getLUWPartitionKey_Table();
+
+ /**
+ * The meta object literal for the '<em><b>Columns</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_KEY__COLUMNS = eINSTANCE.getLUWPartitionKey_Columns();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNicknameImpl <em>Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNickname()
+ * @generated
+ */
+ EClass LUW_NICKNAME = eINSTANCE.getLUWNickname();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Data Set</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_NICKNAME__REMOTE_DATA_SET = eINSTANCE.getLUWNickname_RemoteDataSet();
+
+ /**
+ * The meta object literal for the '<em><b>Server</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_NICKNAME__SERVER = eINSTANCE.getLUWNickname_Server();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl <em>Function Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWFunctionMapping()
+ * @generated
+ */
+ EClass LUW_FUNCTION_MAPPING = eINSTANCE.getLUWFunctionMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Server Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__SERVER_TYPE = eINSTANCE.getLUWFunctionMapping_ServerType();
+
+ /**
+ * The meta object literal for the '<em><b>Server Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__SERVER_VERSION = eINSTANCE.getLUWFunctionMapping_ServerVersion();
+
+ /**
+ * The meta object literal for the '<em><b>Server Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__SERVER_NAME = eINSTANCE.getLUWFunctionMapping_ServerName();
+
+ /**
+ * The meta object literal for the '<em><b>Creation Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__CREATION_TIME = eINSTANCE.getLUWFunctionMapping_CreationTime();
+
+ /**
+ * The meta object literal for the '<em><b>Disabled</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__DISABLED = eINSTANCE.getLUWFunctionMapping_Disabled();
+
+ /**
+ * The meta object literal for the '<em><b>Insts Per Invoc</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__INSTS_PER_INVOC = eINSTANCE.getLUWFunctionMapping_InstsPerInvoc();
+
+ /**
+ * The meta object literal for the '<em><b>Insts Per Arg Byte</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE = eINSTANCE.getLUWFunctionMapping_InstsPerArgByte();
+
+ /**
+ * The meta object literal for the '<em><b>Ios Per Invoc</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__IOS_PER_INVOC = eINSTANCE.getLUWFunctionMapping_IosPerInvoc();
+
+ /**
+ * The meta object literal for the '<em><b>Ios Per Arg Byte</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE = eINSTANCE.getLUWFunctionMapping_IosPerArgByte();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_FUNCTION_MAPPING__OPTIONS = eINSTANCE.getLUWFunctionMapping_Options();
+
+ /**
+ * The meta object literal for the '<em><b>Local Function</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_FUNCTION_MAPPING__LOCAL_FUNCTION = eINSTANCE.getLUWFunctionMapping_LocalFunction();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Function</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_FUNCTION_MAPPING__REMOTE_FUNCTION = eINSTANCE.getLUWFunctionMapping_RemoteFunction();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_FUNCTION_MAPPING__LUW_DATABASE = eINSTANCE.getLUWFunctionMapping_LUWDatabase();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl <em>Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWWrapper()
+ * @generated
+ */
+ EClass LUW_WRAPPER = eINSTANCE.getLUWWrapper();
+
+ /**
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_WRAPPER__VERSION = eINSTANCE.getLUWWrapper_Version();
+
+ /**
+ * The meta object literal for the '<em><b>Library</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_WRAPPER__LIBRARY = eINSTANCE.getLUWWrapper_Library();
+
+ /**
+ * The meta object literal for the '<em><b>Fenced</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_WRAPPER__FENCED = eINSTANCE.getLUWWrapper_Fenced();
+
+ /**
+ * The meta object literal for the '<em><b>Wrapper Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_WRAPPER__WRAPPER_TYPE = eINSTANCE.getLUWWrapper_WrapperType();
+
+ /**
+ * The meta object literal for the '<em><b>Data Source</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_WRAPPER__DATA_SOURCE = eINSTANCE.getLUWWrapper_DataSource();
+
+ /**
+ * The meta object literal for the '<em><b>Discovered Libraries</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_WRAPPER__DISCOVERED_LIBRARIES = eINSTANCE.getLUWWrapper_DiscoveredLibraries();
+
+ /**
+ * The meta object literal for the '<em><b>Servers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_WRAPPER__SERVERS = eINSTANCE.getLUWWrapper_Servers();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_WRAPPER__LUW_DATABASE = eINSTANCE.getLUWWrapper_LUWDatabase();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_WRAPPER__OPTIONS = eINSTANCE.getLUWWrapper_Options();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalNicknameImpl <em>Non Relational Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNonRelationalNickname()
+ * @generated
+ */
+ EClass LUW_NON_RELATIONAL_NICKNAME = eINSTANCE.getLUWNonRelationalNickname();
+
+ /**
+ * The meta object literal for the '<em><b>Non Rel Server</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_NON_RELATIONAL_NICKNAME__NON_REL_SERVER = eINSTANCE.getLUWNonRelationalNickname_NonRelServer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalServerImpl <em>Non Relational Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNonRelationalServer()
+ * @generated
+ */
+ EClass LUW_NON_RELATIONAL_SERVER = eINSTANCE.getLUWNonRelationalServer();
+
+ /**
+ * The meta object literal for the '<em><b>Non Rel Wrapper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_NON_RELATIONAL_SERVER__NON_REL_WRAPPER = eINSTANCE.getLUWNonRelationalServer_NonRelWrapper();
+
+ /**
+ * The meta object literal for the '<em><b>Non Rel Nicknames</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_NON_RELATIONAL_SERVER__NON_REL_NICKNAMES = eINSTANCE.getLUWNonRelationalServer_NonRelNicknames();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalWrapperImpl <em>Non Relational Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWNonRelationalWrapper()
+ * @generated
+ */
+ EClass LUW_NON_RELATIONAL_WRAPPER = eINSTANCE.getLUWNonRelationalWrapper();
+
+ /**
+ * The meta object literal for the '<em><b>Non Rel Servers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_NON_RELATIONAL_WRAPPER__NON_REL_SERVERS = eINSTANCE.getLUWNonRelationalWrapper_NonRelServers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalNicknameImpl <em>Relational Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRelationalNickname()
+ * @generated
+ */
+ EClass LUW_RELATIONAL_NICKNAME = eINSTANCE.getLUWRelationalNickname();
+
+ /**
+ * The meta object literal for the '<em><b>Rel Server</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_RELATIONAL_NICKNAME__REL_SERVER = eINSTANCE.getLUWRelationalNickname_RelServer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericUserMappingImpl <em>Generic User Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericUserMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericUserMapping()
+ * @generated
+ */
+ EClass LUW_GENERIC_USER_MAPPING = eINSTANCE.getLUWGenericUserMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Remote User</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_GENERIC_USER_MAPPING__REMOTE_USER = eINSTANCE.getLUWGenericUserMapping_RemoteUser();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Password</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD = eINSTANCE.getLUWGenericUserMapping_RemotePassword();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalWrapperImpl <em>Relational Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRelationalWrapper()
+ * @generated
+ */
+ EClass LUW_RELATIONAL_WRAPPER = eINSTANCE.getLUWRelationalWrapper();
+
+ /**
+ * The meta object literal for the '<em><b>Rel Servers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_RELATIONAL_WRAPPER__REL_SERVERS = eINSTANCE.getLUWRelationalWrapper_RelServers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl <em>Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWServer()
+ * @generated
+ */
+ EClass LUW_SERVER = eINSTANCE.getLUWServer();
+
+ /**
+ * The meta object literal for the '<em><b>Server Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_SERVER__SERVER_TYPE = eINSTANCE.getLUWServer_ServerType();
+
+ /**
+ * The meta object literal for the '<em><b>Server Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_SERVER__SERVER_VERSION = eINSTANCE.getLUWServer_ServerVersion();
+
+ /**
+ * The meta object literal for the '<em><b>User Mappings</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SERVER__USER_MAPPINGS = eINSTANCE.getLUWServer_UserMappings();
+
+ /**
+ * The meta object literal for the '<em><b>Wrapper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SERVER__WRAPPER = eINSTANCE.getLUWServer_Wrapper();
+
+ /**
+ * The meta object literal for the '<em><b>Nicknames</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SERVER__NICKNAMES = eINSTANCE.getLUWServer_Nicknames();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SERVER__LUW_DATABASE = eINSTANCE.getLUWServer_LUWDatabase();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SERVER__OPTIONS = eINSTANCE.getLUWServer_Options();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Server</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SERVER__REMOTE_SERVER = eINSTANCE.getLUWServer_RemoteServer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl <em>Type Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTypeMapping()
+ * @generated
+ */
+ EClass LUW_TYPE_MAPPING = eINSTANCE.getLUWTypeMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Server Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TYPE_MAPPING__SERVER_TYPE = eINSTANCE.getLUWTypeMapping_ServerType();
+
+ /**
+ * The meta object literal for the '<em><b>Server Vesion</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TYPE_MAPPING__SERVER_VESION = eINSTANCE.getLUWTypeMapping_ServerVesion();
+
+ /**
+ * The meta object literal for the '<em><b>Server Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TYPE_MAPPING__SERVER_NAME = eINSTANCE.getLUWTypeMapping_ServerName();
+
+ /**
+ * The meta object literal for the '<em><b>Creation Time</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TYPE_MAPPING__CREATION_TIME = eINSTANCE.getLUWTypeMapping_CreationTime();
+
+ /**
+ * The meta object literal for the '<em><b>Local Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TYPE_MAPPING__LOCAL_TYPE = eINSTANCE.getLUWTypeMapping_LocalType();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TYPE_MAPPING__REMOTE_TYPE = eINSTANCE.getLUWTypeMapping_RemoteType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWUserMappingImpl <em>User Mapping</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWUserMappingImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWUserMapping()
+ * @generated
+ */
+ EClass LUW_USER_MAPPING = eINSTANCE.getLUWUserMapping();
+
+ /**
+ * The meta object literal for the '<em><b>Local Auth Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_USER_MAPPING__LOCAL_AUTH_ID = eINSTANCE.getLUWUserMapping_LocalAuthId();
+
+ /**
+ * The meta object literal for the '<em><b>Server</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_USER_MAPPING__SERVER = eINSTANCE.getLUWUserMapping_Server();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_USER_MAPPING__OPTIONS = eINSTANCE.getLUWUserMapping_Options();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWOptionImpl <em>Option</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWOptionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWOption()
+ * @generated
+ */
+ EClass LUW_OPTION = eINSTANCE.getLUWOption();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_OPTION__VALUE = eINSTANCE.getLUWOption_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl <em>Relational Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRelationalServer()
+ * @generated
+ */
+ EClass LUW_RELATIONAL_SERVER = eINSTANCE.getLUWRelationalServer();
+
+ /**
+ * The meta object literal for the '<em><b>Cpu Ratio</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__CPU_RATIO = eINSTANCE.getLUWRelationalServer_CpuRatio();
+
+ /**
+ * The meta object literal for the '<em><b>Io Ratio</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__IO_RATIO = eINSTANCE.getLUWRelationalServer_IoRatio();
+
+ /**
+ * The meta object literal for the '<em><b>Comm Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__COMM_RATE = eINSTANCE.getLUWRelationalServer_CommRate();
+
+ /**
+ * The meta object literal for the '<em><b>Fold Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__FOLD_ID = eINSTANCE.getLUWRelationalServer_FoldId();
+
+ /**
+ * The meta object literal for the '<em><b>Fold PW</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__FOLD_PW = eINSTANCE.getLUWRelationalServer_FoldPW();
+
+ /**
+ * The meta object literal for the '<em><b>Collating Sequence</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE = eINSTANCE.getLUWRelationalServer_CollatingSequence();
+
+ /**
+ * The meta object literal for the '<em><b>Pushdown</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__PUSHDOWN = eINSTANCE.getLUWRelationalServer_Pushdown();
+
+ /**
+ * The meta object literal for the '<em><b>Node</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__NODE = eINSTANCE.getLUWRelationalServer_Node();
+
+ /**
+ * The meta object literal for the '<em><b>Db Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__DB_NAME = eINSTANCE.getLUWRelationalServer_DbName();
+
+ /**
+ * The meta object literal for the '<em><b>Iud App Svpt Enforce</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE = eINSTANCE.getLUWRelationalServer_IudAppSvptEnforce();
+
+ /**
+ * The meta object literal for the '<em><b>Password</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_RELATIONAL_SERVER__PASSWORD = eINSTANCE.getLUWRelationalServer_Password();
+
+ /**
+ * The meta object literal for the '<em><b>Rel Nicknames</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_RELATIONAL_SERVER__REL_NICKNAMES = eINSTANCE.getLUWRelationalServer_RelNicknames();
+
+ /**
+ * The meta object literal for the '<em><b>Rel Wrapper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_RELATIONAL_SERVER__REL_WRAPPER = eINSTANCE.getLUWRelationalServer_RelWrapper();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl <em>Database</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabase()
+ * @generated
+ */
+ EClass LUW_DATABASE = eINSTANCE.getLUWDatabase();
+
+ /**
+ * The meta object literal for the '<em><b>Federated</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE__FEDERATED = eINSTANCE.getLUWDatabase_Federated();
+
+ /**
+ * The meta object literal for the '<em><b>Groups</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__GROUPS = eINSTANCE.getLUWDatabase_Groups();
+
+ /**
+ * The meta object literal for the '<em><b>Wrappers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__WRAPPERS = eINSTANCE.getLUWDatabase_Wrappers();
+
+ /**
+ * The meta object literal for the '<em><b>Servers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__SERVERS = eINSTANCE.getLUWDatabase_Servers();
+
+ /**
+ * The meta object literal for the '<em><b>Function Mappings</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__FUNCTION_MAPPINGS = eINSTANCE.getLUWDatabase_FunctionMappings();
+
+ /**
+ * The meta object literal for the '<em><b>Type Mappings</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__TYPE_MAPPINGS = eINSTANCE.getLUWDatabase_TypeMappings();
+
+ /**
+ * The meta object literal for the '<em><b>Reverse Type Mappings</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__REVERSE_TYPE_MAPPINGS = eINSTANCE.getLUWDatabase_ReverseTypeMappings();
+
+ /**
+ * The meta object literal for the '<em><b>Bufferpools</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__BUFFERPOOLS = eINSTANCE.getLUWDatabase_Bufferpools();
+
+ /**
+ * The meta object literal for the '<em><b>Tablespaces</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__TABLESPACES = eINSTANCE.getLUWDatabase_Tablespaces();
+
+ /**
+ * The meta object literal for the '<em><b>Storage Groups</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__STORAGE_GROUPS = eINSTANCE.getLUWDatabase_StorageGroups();
+
+ /**
+ * The meta object literal for the '<em><b>Default Storage Group</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATABASE__DEFAULT_STORAGE_GROUP = eINSTANCE.getLUWDatabase_DefaultStorageGroup();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl <em>Column</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWColumn()
+ * @generated
+ */
+ EClass LUW_COLUMN = eINSTANCE.getLUWColumn();
+
+ /**
+ * The meta object literal for the '<em><b>Lob Logged</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_COLUMN__LOB_LOGGED = eINSTANCE.getLUWColumn_LobLogged();
+
+ /**
+ * The meta object literal for the '<em><b>Lob Compacted</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_COLUMN__LOB_COMPACTED = eINSTANCE.getLUWColumn_LobCompacted();
+
+ /**
+ * The meta object literal for the '<em><b>Compression</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_COLUMN__COMPRESSION = eINSTANCE.getLUWColumn_Compression();
+
+ /**
+ * The meta object literal for the '<em><b>Inline Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_COLUMN__INLINE_LENGTH = eINSTANCE.getLUWColumn_InlineLength();
+
+ /**
+ * The meta object literal for the '<em><b>Hidden</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_COLUMN__HIDDEN = eINSTANCE.getLUWColumn_Hidden();
+
+ /**
+ * The meta object literal for the '<em><b>Security Label</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_COLUMN__SECURITY_LABEL = eINSTANCE.getLUWColumn_SecurityLabel();
+
+ /**
+ * The meta object literal for the '<em><b>Options</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_COLUMN__OPTIONS = eINSTANCE.getLUWColumn_Options();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericNicknameImpl <em>Generic Nickname</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericNicknameImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericNickname()
+ * @generated
+ */
+ EClass LUW_GENERIC_NICKNAME = eINSTANCE.getLUWGenericNickname();
+
+ /**
+ * The meta object literal for the '<em><b>Generic Server</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_GENERIC_NICKNAME__GENERIC_SERVER = eINSTANCE.getLUWGenericNickname_GenericServer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericServerImpl <em>Generic Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericServer()
+ * @generated
+ */
+ EClass LUW_GENERIC_SERVER = eINSTANCE.getLUWGenericServer();
+
+ /**
+ * The meta object literal for the '<em><b>Generic Nicknames</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_GENERIC_SERVER__GENERIC_NICKNAMES = eINSTANCE.getLUWGenericServer_GenericNicknames();
+
+ /**
+ * The meta object literal for the '<em><b>Generic Wrapper</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_GENERIC_SERVER__GENERIC_WRAPPER = eINSTANCE.getLUWGenericServer_GenericWrapper();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl <em>Materialized Query Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWMaterializedQueryTable()
+ * @generated
+ */
+ EClass LUW_MATERIALIZED_QUERY_TABLE = eINSTANCE.getLUWMaterializedQueryTable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericWrapperImpl <em>Generic Wrapper</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericWrapperImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGenericWrapper()
+ * @generated
+ */
+ EClass LUW_GENERIC_WRAPPER = eINSTANCE.getLUWGenericWrapper();
+
+ /**
+ * The meta object literal for the '<em><b>Generic Servers</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_GENERIC_WRAPPER__GENERIC_SERVERS = eINSTANCE.getLUWGenericWrapper_GenericServers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable <em>Storage Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWStorageTable()
+ * @generated
+ */
+ EClass LUW_STORAGE_TABLE = eINSTANCE.getLUWStorageTable();
+
+ /**
+ * The meta object literal for the '<em><b>Value Compression</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_TABLE__VALUE_COMPRESSION = eINSTANCE.getLUWStorageTable_ValueCompression();
+
+ /**
+ * The meta object literal for the '<em><b>Row Compression</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_TABLE__ROW_COMPRESSION = eINSTANCE.getLUWStorageTable_RowCompression();
+
+ /**
+ * The meta object literal for the '<em><b>Row Compression Empty</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_TABLE__ROW_COMPRESSION_EMPTY = eINSTANCE.getLUWStorageTable_RowCompressionEmpty();
+
+ /**
+ * The meta object literal for the '<em><b>Compression Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_TABLE__COMPRESSION_MODE = eINSTANCE.getLUWStorageTable_CompressionMode();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Key</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_TABLE__PARTITION_KEY = eINSTANCE.getLUWStorageTable_PartitionKey();
+
+ /**
+ * The meta object literal for the '<em><b>Index Data Table Space</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE = eINSTANCE.getLUWStorageTable_IndexDataTableSpace();
+
+ /**
+ * The meta object literal for the '<em><b>LOB Data Table Space</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE = eINSTANCE.getLUWStorageTable_LOBDataTableSpace();
+
+ /**
+ * The meta object literal for the '<em><b>Regular Data Table Space</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE = eINSTANCE.getLUWStorageTable_RegularDataTableSpace();
+
+ /**
+ * The meta object literal for the '<em><b>Data Partitions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_TABLE__DATA_PARTITIONS = eINSTANCE.getLUWStorageTable_DataPartitions();
+
+ /**
+ * The meta object literal for the '<em><b>Data Partition Key</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_TABLE__DATA_PARTITION_KEY = eINSTANCE.getLUWStorageTable_DataPartitionKey();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteServerImpl <em>Relational Remote Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRelationalRemoteServer()
+ * @generated
+ */
+ EClass RELATIONAL_REMOTE_SERVER = eINSTANCE.getRelationalRemoteServer();
+
+ /**
+ * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RELATIONAL_REMOTE_SERVER__DATABASE = eINSTANCE.getRelationalRemoteServer_Database();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteDataSetImpl <em>Relational Remote Data Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteDataSetImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRelationalRemoteDataSet()
+ * @generated
+ */
+ EClass RELATIONAL_REMOTE_DATA_SET = eINSTANCE.getRelationalRemoteDataSet();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RELATIONAL_REMOTE_DATA_SET__TABLE = eINSTANCE.getRelationalRemoteDataSet_Table();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteServerImpl <em>Remote Server</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteServerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRemoteServer()
+ * @generated
+ */
+ EClass REMOTE_SERVER = eINSTANCE.getRemoteServer();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Server</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REMOTE_SERVER__LUW_SERVER = eINSTANCE.getRemoteServer_LUWServer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteDataSetImpl <em>Remote Data Set</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteDataSetImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRemoteDataSet()
+ * @generated
+ */
+ EClass REMOTE_DATA_SET = eINSTANCE.getRemoteDataSet();
+
+ /**
+ * The meta object literal for the '<em><b>Nickname</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REMOTE_DATA_SET__NICKNAME = eINSTANCE.getRemoteDataSet_Nickname();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl <em>Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWIndex()
+ * @generated
+ */
+ EClass LUW_INDEX = eINSTANCE.getLUWIndex();
+
+ /**
+ * The meta object literal for the '<em><b>PCT Free</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__PCT_FREE = eINSTANCE.getLUWIndex_PCTFree();
+
+ /**
+ * The meta object literal for the '<em><b>Min PCT Free</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__MIN_PCT_FREE = eINSTANCE.getLUWIndex_MinPCTFree();
+
+ /**
+ * The meta object literal for the '<em><b>Reverse Scan</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__REVERSE_SCAN = eINSTANCE.getLUWIndex_ReverseScan();
+
+ /**
+ * The meta object literal for the '<em><b>Not Partitioned</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__NOT_PARTITIONED = eINSTANCE.getLUWIndex_NotPartitioned();
+
+ /**
+ * The meta object literal for the '<em><b>Xml Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__XML_PATTERN = eINSTANCE.getLUWIndex_XmlPattern();
+
+ /**
+ * The meta object literal for the '<em><b>As SQL Data Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_INDEX__AS_SQL_DATA_TYPE = eINSTANCE.getLUWIndex_AsSQLDataType();
+
+ /**
+ * The meta object literal for the '<em><b>As SQL Data Type Hashed</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__AS_SQL_DATA_TYPE_HASHED = eINSTANCE.getLUWIndex_AsSQLDataTypeHashed();
+
+ /**
+ * The meta object literal for the '<em><b>System Required</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__SYSTEM_REQUIRED = eINSTANCE.getLUWIndex_SystemRequired();
+
+ /**
+ * The meta object literal for the '<em><b>Page Split Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__PAGE_SPLIT_TYPE = eINSTANCE.getLUWIndex_PageSplitType();
+
+ /**
+ * The meta object literal for the '<em><b>Level2 Pct Free</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__LEVEL2_PCT_FREE = eINSTANCE.getLUWIndex_Level2PctFree();
+
+ /**
+ * The meta object literal for the '<em><b>Min Pct Used</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__MIN_PCT_USED = eINSTANCE.getLUWIndex_MinPctUsed();
+
+ /**
+ * The meta object literal for the '<em><b>Compress</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__COMPRESS = eINSTANCE.getLUWIndex_Compress();
+
+ /**
+ * The meta object literal for the '<em><b>Collect Stats</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__COLLECT_STATS = eINSTANCE.getLUWIndex_CollectStats();
+
+ /**
+ * The meta object literal for the '<em><b>Sampled Stats</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__SAMPLED_STATS = eINSTANCE.getLUWIndex_SampledStats();
+
+ /**
+ * The meta object literal for the '<em><b>Detailed Stats</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__DETAILED_STATS = eINSTANCE.getLUWIndex_DetailedStats();
+
+ /**
+ * The meta object literal for the '<em><b>Ignore Invalid Values</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__IGNORE_INVALID_VALUES = eINSTANCE.getLUWIndex_IgnoreInvalidValues();
+
+ /**
+ * The meta object literal for the '<em><b>Exclude Null Keys</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_INDEX__EXCLUDE_NULL_KEYS = eINSTANCE.getLUWIndex_ExcludeNullKeys();
+
+ /**
+ * The meta object literal for the '<em><b>Tablespace</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_INDEX__TABLESPACE = eINSTANCE.getLUWIndex_Tablespace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAttributeDefinitionImpl <em>Attribute Definition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAttributeDefinitionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWAttributeDefinition()
+ * @generated
+ */
+ EClass LUW_ATTRIBUTE_DEFINITION = eINSTANCE.getLUWAttributeDefinition();
+
+ /**
+ * The meta object literal for the '<em><b>LOB Logged</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED = eINSTANCE.getLUWAttributeDefinition_LOBLogged();
+
+ /**
+ * The meta object literal for the '<em><b>LOB Compacted</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED = eINSTANCE.getLUWAttributeDefinition_LOBCompacted();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl <em>Federated Procedure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getFederatedProcedure()
+ * @generated
+ */
+ EClass FEDERATED_PROCEDURE = eINSTANCE.getFederatedProcedure();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Unique Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID = eINSTANCE.getFederatedProcedure_RemoteUniqueId();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Server</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__REMOTE_SERVER = eINSTANCE.getFederatedProcedure_RemoteServer();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Schema</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__REMOTE_SCHEMA = eINSTANCE.getFederatedProcedure_RemoteSchema();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Package</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__REMOTE_PACKAGE = eINSTANCE.getFederatedProcedure_RemotePackage();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Procedure Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME = eINSTANCE.getFederatedProcedure_RemoteProcedureName();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Parameters</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS = eINSTANCE.getFederatedProcedure_NumberOfParameters();
+
+ /**
+ * The meta object literal for the '<em><b>Result Sets To Client</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT = eINSTANCE.getFederatedProcedure_ResultSetsToClient();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Ref Cursors</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS = eINSTANCE.getFederatedProcedure_NumberOfRefCursors();
+
+ /**
+ * The meta object literal for the '<em><b>All Result Sets To Caller</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER = eINSTANCE.getFederatedProcedure_AllResultSetsToCaller();
+
+ /**
+ * The meta object literal for the '<em><b>Federated Procedure</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEDERATED_PROCEDURE__FEDERATED_PROCEDURE = eINSTANCE.getFederatedProcedure_FederatedProcedure();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Procedure</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEDERATED_PROCEDURE__REMOTE_PROCEDURE = eINSTANCE.getFederatedProcedure_RemoteProcedure();
+
+ /**
+ * The meta object literal for the '<em><b>Federated Parameter</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEDERATED_PROCEDURE__FEDERATED_PARAMETER = eINSTANCE.getFederatedProcedure_FederatedParameter();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl <em>Federated Parameter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getFederatedParameter()
+ * @generated
+ */
+ EClass FEDERATED_PARAMETER = eINSTANCE.getFederatedParameter();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Code Page</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PARAMETER__REMOTE_CODE_PAGE = eINSTANCE.getFederatedParameter_RemoteCodePage();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Param Type ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID = eINSTANCE.getFederatedParameter_RemoteParamTypeID();
+
+ /**
+ * The meta object literal for the '<em><b>Federated Procedure</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEDERATED_PARAMETER__FEDERATED_PROCEDURE = eINSTANCE.getFederatedParameter_FederatedProcedure();
+
+ /**
+ * The meta object literal for the '<em><b>Remote Parameter</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference FEDERATED_PARAMETER__REMOTE_PARAMETER = eINSTANCE.getFederatedParameter_RemoteParameter();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl <em>Partition Expression</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionExpression()
+ * @generated
+ */
+ EClass LUW_PARTITION_EXPRESSION = eINSTANCE.getLUWPartitionExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Nulls Last</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_PARTITION_EXPRESSION__NULLS_LAST = eINSTANCE.getLUWPartitionExpression_NullsLast();
+
+ /**
+ * The meta object literal for the '<em><b>Key</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_EXPRESSION__KEY = eINSTANCE.getLUWPartitionExpression_Key();
+
+ /**
+ * The meta object literal for the '<em><b>Column</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_EXPRESSION__COLUMN = eINSTANCE.getLUWPartitionExpression_Column();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Elements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS = eINSTANCE.getLUWPartitionExpression_PartitionElements();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl <em>Partition Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionElement()
+ * @generated
+ */
+ EClass LUW_PARTITION_ELEMENT = eINSTANCE.getLUWPartitionElement();
+
+ /**
+ * The meta object literal for the '<em><b>Starting</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_PARTITION_ELEMENT__STARTING = eINSTANCE.getLUWPartitionElement_Starting();
+
+ /**
+ * The meta object literal for the '<em><b>Ending</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_PARTITION_ELEMENT__ENDING = eINSTANCE.getLUWPartitionElement_Ending();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Partition Expression</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION = eINSTANCE.getLUWPartitionElement_LUWPartitionExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Partition</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_ELEMENT__PARTITION = eINSTANCE.getLUWPartitionElement_Partition();
+
+ /**
+ * The meta object literal for the '<em><b>Every Clause</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_ELEMENT__EVERY_CLAUSE = eINSTANCE.getLUWPartitionElement_EveryClause();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl <em>Data Partition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDataPartition()
+ * @generated
+ */
+ EClass LUW_DATA_PARTITION = eINSTANCE.getLUWDataPartition();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATA_PARTITION__ID = eINSTANCE.getLUWDataPartition_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Low Inclusive</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATA_PARTITION__LOW_INCLUSIVE = eINSTANCE.getLUWDataPartition_LowInclusive();
+
+ /**
+ * The meta object literal for the '<em><b>High Inclusive</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATA_PARTITION__HIGH_INCLUSIVE = eINSTANCE.getLUWDataPartition_HighInclusive();
+
+ /**
+ * The meta object literal for the '<em><b>LOB Data Table Space</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE = eINSTANCE.getLUWDataPartition_LOBDataTableSpace();
+
+ /**
+ * The meta object literal for the '<em><b>Regular Data Table Space</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE = eINSTANCE.getLUWDataPartition_RegularDataTableSpace();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Elements</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATA_PARTITION__PARTITION_ELEMENTS = eINSTANCE.getLUWDataPartition_PartitionElements();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATA_PARTITION__TABLE = eINSTANCE.getLUWDataPartition_Table();
+
+ /**
+ * The meta object literal for the '<em><b>Index Data Table Space</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE = eINSTANCE.getLUWDataPartition_IndexDataTableSpace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionKeyImpl <em>Data Partition Key</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionKeyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDataPartitionKey()
+ * @generated
+ */
+ EClass LUW_DATA_PARTITION_KEY = eINSTANCE.getLUWDataPartitionKey();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Method</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATA_PARTITION_KEY__PARTITION_METHOD = eINSTANCE.getLUWDataPartitionKey_PartitionMethod();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Expressions</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS = eINSTANCE.getLUWDataPartitionKey_PartitionExpressions();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_DATA_PARTITION_KEY__TABLE = eINSTANCE.getLUWDataPartitionKey_Table();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl <em>Database Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWDatabasePackage()
+ * @generated
+ */
+ EClass LUW_DATABASE_PACKAGE = eINSTANCE.getLUWDatabasePackage();
+
+ /**
+ * The meta object literal for the '<em><b>Creator</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PACKAGE__CREATOR = eINSTANCE.getLUWDatabasePackage_Creator();
+
+ /**
+ * The meta object literal for the '<em><b>Binder</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PACKAGE__BINDER = eINSTANCE.getLUWDatabasePackage_Binder();
+
+ /**
+ * The meta object literal for the '<em><b>Cursor Block</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PACKAGE__CURSOR_BLOCK = eINSTANCE.getLUWDatabasePackage_CursorBlock();
+
+ /**
+ * The meta object literal for the '<em><b>Number Of Sections</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS = eINSTANCE.getLUWDatabasePackage_NumberOfSections();
+
+ /**
+ * The meta object literal for the '<em><b>Optimization Class</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS = eINSTANCE.getLUWDatabasePackage_OptimizationClass();
+
+ /**
+ * The meta object literal for the '<em><b>Explain Snapshot</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT = eINSTANCE.getLUWDatabasePackage_ExplainSnapshot();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModule()
+ * @generated
+ */
+ EClass LUW_MODULE = eINSTANCE.getLUWModule();
+
+ /**
+ * The meta object literal for the '<em><b>Dialect</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MODULE__DIALECT = eINSTANCE.getLUWModule_Dialect();
+
+ /**
+ * The meta object literal for the '<em><b>Owning Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_MODULE__OWNING_SCHEMA = eINSTANCE.getLUWModule_OwningSchema();
+
+ /**
+ * The meta object literal for the '<em><b>Module Objects</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_MODULE__MODULE_OBJECTS = eINSTANCE.getLUWModule_ModuleObjects();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject <em>Module Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleObject()
+ * @generated
+ */
+ EClass LUW_MODULE_OBJECT = eINSTANCE.getLUWModuleObject();
+
+ /**
+ * The meta object literal for the '<em><b>Published</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MODULE_OBJECT__PUBLISHED = eINSTANCE.getLUWModuleObject_Published();
+
+ /**
+ * The meta object literal for the '<em><b>Module</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_MODULE_OBJECT__MODULE = eINSTANCE.getLUWModuleObject_Module();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleFunctionImpl <em>Module Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleFunctionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleFunction()
+ * @generated
+ */
+ EClass LUW_MODULE_FUNCTION = eINSTANCE.getLUWModuleFunction();
+
+ /**
+ * The meta object literal for the '<em><b>Implemented</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MODULE_FUNCTION__IMPLEMENTED = eINSTANCE.getLUWModuleFunction_Implemented();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleProcedureImpl <em>Module Procedure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleProcedureImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleProcedure()
+ * @generated
+ */
+ EClass LUW_MODULE_PROCEDURE = eINSTANCE.getLUWModuleProcedure();
+
+ /**
+ * The meta object literal for the '<em><b>Implemented</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MODULE_PROCEDURE__IMPLEMENTED = eINSTANCE.getLUWModuleProcedure_Implemented();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleConditionImpl <em>Module Condition</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleConditionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleCondition()
+ * @generated
+ */
+ EClass LUW_MODULE_CONDITION = eINSTANCE.getLUWModuleCondition();
+
+ /**
+ * The meta object literal for the '<em><b>Sqlstate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MODULE_CONDITION__SQLSTATE = eINSTANCE.getLUWModuleCondition_Sqlstate();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl <em>Global Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWGlobalVariable()
+ * @generated
+ */
+ EClass LUW_GLOBAL_VARIABLE = eINSTANCE.getLUWGlobalVariable();
+
+ /**
+ * The meta object literal for the '<em><b>Default Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_GLOBAL_VARIABLE__DEFAULT_VALUE = eINSTANCE.getLUWGlobalVariable_DefaultValue();
+
+ /**
+ * The meta object literal for the '<em><b>Is Constant</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_GLOBAL_VARIABLE__IS_CONSTANT = eINSTANCE.getLUWGlobalVariable_IsConstant();
+
+ /**
+ * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_GLOBAL_VARIABLE__SCHEMA = eINSTANCE.getLUWGlobalVariable_Schema();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType <em>Module Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleType()
+ * @generated
+ */
+ EClass LUW_MODULE_TYPE = eINSTANCE.getLUWModuleType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleRowDataTypeImpl <em>Module Row Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleRowDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleRowDataType()
+ * @generated
+ */
+ EClass LUW_MODULE_ROW_DATA_TYPE = eINSTANCE.getLUWModuleRowDataType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleArrayDataTypeImpl <em>Module Array Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleArrayDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleArrayDataType()
+ * @generated
+ */
+ EClass LUW_MODULE_ARRAY_DATA_TYPE = eINSTANCE.getLUWModuleArrayDataType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleDistinctTypeImpl <em>Module Distinct Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleDistinctTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleDistinctType()
+ * @generated
+ */
+ EClass LUW_MODULE_DISTINCT_TYPE = eINSTANCE.getLUWModuleDistinctType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleGlobalVariableImpl <em>Module Global Variable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleGlobalVariableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleGlobalVariable()
+ * @generated
+ */
+ EClass LUW_MODULE_GLOBAL_VARIABLE = eINSTANCE.getLUWModuleGlobalVariable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl <em>Array Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWArrayDataType()
+ * @generated
+ */
+ EClass LUW_ARRAY_DATA_TYPE = eINSTANCE.getLUWArrayDataType();
+
+ /**
+ * The meta object literal for the '<em><b>Array Index Element Type</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE = eINSTANCE.getLUWArrayDataType_ArrayIndexElementType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRowDataTypeImpl <em>Row Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRowDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWRowDataType()
+ * @generated
+ */
+ EClass LUW_ROW_DATA_TYPE = eINSTANCE.getLUWRowDataType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl <em>PLSQL Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPLSQLPackage()
+ * @generated
+ */
+ EClass PLSQL_PACKAGE = eINSTANCE.getPLSQLPackage();
+
+ /**
+ * The meta object literal for the '<em><b>Package Body</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PLSQL_PACKAGE__PACKAGE_BODY = eINSTANCE.getPLSQLPackage_PackageBody();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageBodyImpl <em>PLSQL Package Body</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageBodyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPLSQLPackageBody()
+ * @generated
+ */
+ EClass PLSQL_PACKAGE_BODY = eINSTANCE.getPLSQLPackageBody();
+
+ /**
+ * The meta object literal for the '<em><b>Package</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PLSQL_PACKAGE_BODY__PACKAGE = eINSTANCE.getPLSQLPackageBody_Package();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWCursorDataTypeImpl <em>Cursor Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWCursorDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWCursorDataType()
+ * @generated
+ */
+ EClass LUW_CURSOR_DATA_TYPE = eINSTANCE.getLUWCursorDataType();
+
+ /**
+ * The meta object literal for the '<em><b>Row Type</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_CURSOR_DATA_TYPE__ROW_TYPE = eINSTANCE.getLUWCursorDataType_RowType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleCursorDataTypeImpl <em>Module Cursor Data Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleCursorDataTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWModuleCursorDataType()
+ * @generated
+ */
+ EClass LUW_MODULE_CURSOR_DATA_TYPE = eINSTANCE.getLUWModuleCursorDataType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolSizeExceptionImpl <em>Buffer Pool Size Exception</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolSizeExceptionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWBufferPoolSizeException()
+ * @generated
+ */
+ EClass LUW_BUFFER_POOL_SIZE_EXCEPTION = eINSTANCE.getLUWBufferPoolSizeException();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE = eINSTANCE.getLUWBufferPoolSizeException_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Buffer Pool</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL = eINSTANCE.getLUWBufferPoolSizeException_BufferPool();
+
+ /**
+ * The meta object literal for the '<em><b>Partitions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS = eINSTANCE.getLUWBufferPoolSizeException_Partitions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl <em>Member</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWMember()
+ * @generated
+ */
+ EClass LUW_MEMBER = eINSTANCE.getLUWMember();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MEMBER__TYPE = eINSTANCE.getLUWMember_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Alert</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MEMBER__ALERT = eINSTANCE.getLUWMember_Alert();
+
+ /**
+ * The meta object literal for the '<em><b>Db Partition Num</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MEMBER__DB_PARTITION_NUM = eINSTANCE.getLUWMember_DbPartitionNum();
+
+ /**
+ * The meta object literal for the '<em><b>Logical Port</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MEMBER__LOGICAL_PORT = eINSTANCE.getLUWMember_LogicalPort();
+
+ /**
+ * The meta object literal for the '<em><b>Net Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_MEMBER__NET_NAME = eINSTANCE.getLUWMember_NetName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl <em>Security Policy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityPolicy()
+ * @generated
+ */
+ EClass LUW_SECURITY_POLICY = eINSTANCE.getLUWSecurityPolicy();
+
+ /**
+ * The meta object literal for the '<em><b>Not Authorized Write</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE = eINSTANCE.getLUWSecurityPolicy_NotAuthorizedWrite();
+
+ /**
+ * The meta object literal for the '<em><b>Components</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SECURITY_POLICY__COMPONENTS = eINSTANCE.getLUWSecurityPolicy_Components();
+
+ /**
+ * The meta object literal for the '<em><b>Labels</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SECURITY_POLICY__LABELS = eINSTANCE.getLUWSecurityPolicy_Labels();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SECURITY_POLICY__TABLE = eINSTANCE.getLUWSecurityPolicy_Table();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentImpl <em>Security Label Component</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelComponent()
+ * @generated
+ */
+ EClass LUW_SECURITY_LABEL_COMPONENT = eINSTANCE.getLUWSecurityLabelComponent();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_SECURITY_LABEL_COMPONENT__TYPE = eINSTANCE.getLUWSecurityLabelComponent_Type();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Security Policy</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY = eINSTANCE.getLUWSecurityLabelComponent_LUWSecurityPolicy();
+
+ /**
+ * The meta object literal for the '<em><b>Elements</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SECURITY_LABEL_COMPONENT__ELEMENTS = eINSTANCE.getLUWSecurityLabelComponent_Elements();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelImpl <em>Security Label</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabel()
+ * @generated
+ */
+ EClass LUW_SECURITY_LABEL = eINSTANCE.getLUWSecurityLabel();
+
+ /**
+ * The meta object literal for the '<em><b>Security Label</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_SECURITY_LABEL__SECURITY_LABEL = eINSTANCE.getLUWSecurityLabel_SecurityLabel();
+
+ /**
+ * The meta object literal for the '<em><b>Policy</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SECURITY_LABEL__POLICY = eINSTANCE.getLUWSecurityLabel_Policy();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentElementImpl <em>Security Label Component Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentElementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelComponentElement()
+ * @generated
+ */
+ EClass LUW_SECURITY_LABEL_COMPONENT_ELEMENT = eINSTANCE.getLUWSecurityLabelComponentElement();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE = eINSTANCE.getLUWSecurityLabelComponentElement_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Parent Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE = eINSTANCE.getLUWSecurityLabelComponentElement_ParentValue();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Security Label Component</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT = eINSTANCE.getLUWSecurityLabelComponentElement_LUWSecurityLabelComponent();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl <em>Storage Group</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWStorageGroup()
+ * @generated
+ */
+ EClass LUW_STORAGE_GROUP = eINSTANCE.getLUWStorageGroup();
+
+ /**
+ * The meta object literal for the '<em><b>Storage Paths</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_GROUP__STORAGE_PATHS = eINSTANCE.getLUWStorageGroup_StoragePaths();
+
+ /**
+ * The meta object literal for the '<em><b>Overhead</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_GROUP__OVERHEAD = eINSTANCE.getLUWStorageGroup_Overhead();
+
+ /**
+ * The meta object literal for the '<em><b>Device Read Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_GROUP__DEVICE_READ_RATE = eINSTANCE.getLUWStorageGroup_DeviceReadRate();
+
+ /**
+ * The meta object literal for the '<em><b>Data Tag</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_GROUP__DATA_TAG = eINSTANCE.getLUWStorageGroup_DataTag();
+
+ /**
+ * The meta object literal for the '<em><b>Default</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_STORAGE_GROUP__DEFAULT = eINSTANCE.getLUWStorageGroup_Default();
+
+ /**
+ * The meta object literal for the '<em><b>Database</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_GROUP__DATABASE = eINSTANCE.getLUWStorageGroup_Database();
+
+ /**
+ * The meta object literal for the '<em><b>Table Spaces</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_STORAGE_GROUP__TABLE_SPACES = eINSTANCE.getLUWStorageGroup_TableSpaces();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryStorageTableImpl <em>Temporary Storage Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryStorageTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTemporaryStorageTable()
+ * @generated
+ */
+ EClass LUW_TEMPORARY_STORAGE_TABLE = eINSTANCE.getLUWTemporaryStorageTable();
+
+ /**
+ * The meta object literal for the '<em><b>Partition Key</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY = eINSTANCE.getLUWTemporaryStorageTable_PartitionKey();
+
+ /**
+ * The meta object literal for the '<em><b>User Temporary Table Space</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE = eINSTANCE.getLUWTemporaryStorageTable_UserTemporaryTableSpace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl <em>Temporary Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTemporaryTable()
+ * @generated
+ */
+ EClass LUW_TEMPORARY_TABLE = eINSTANCE.getLUWTemporaryTable();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_TEMPORARY_TABLE__TABLE = eINSTANCE.getLUWTemporaryTable_Table();
+
+ /**
+ * The meta object literal for the '<em><b>Log Option</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_TEMPORARY_TABLE__LOG_OPTION = eINSTANCE.getLUWTemporaryTable_LogOption();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.ArrayIndexElementTypeImpl <em>Array Index Element Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.ArrayIndexElementTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getArrayIndexElementType()
+ * @generated
+ */
+ EClass ARRAY_INDEX_ELEMENT_TYPE = eINSTANCE.getArrayIndexElementType();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Array Data Type</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE = eINSTANCE.getArrayIndexElementType_LUWArrayDataType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionEveryClauseElementImpl <em>Partition Every Clause Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionEveryClauseElementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWPartitionEveryClauseElement()
+ * @generated
+ */
+ EClass LUW_PARTITION_EVERY_CLAUSE_ELEMENT = eINSTANCE.getLUWPartitionEveryClauseElement();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE = eINSTANCE.getLUWPartitionEveryClauseElement_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Duration</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION = eINSTANCE.getLUWPartitionEveryClauseElement_Duration();
+
+ /**
+ * The meta object literal for the '<em><b>LUW Partition Element</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT = eINSTANCE.getLUWPartitionEveryClauseElement_LUWPartitionElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType <em>Container Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWContainerType()
+ * @generated
+ */
+ EEnum LUW_CONTAINER_TYPE = eINSTANCE.getLUWContainerType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType <em>Page Size Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPageSizeType()
+ * @generated
+ */
+ EEnum PAGE_SIZE_TYPE = eINSTANCE.getPageSizeType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType <em>Buffer Pool Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getBufferPoolType()
+ * @generated
+ */
+ EEnum BUFFER_POOL_TYPE = eINSTANCE.getBufferPoolType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType <em>Table Space Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getTableSpaceType()
+ * @generated
+ */
+ EEnum TABLE_SPACE_TYPE = eINSTANCE.getTableSpaceType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType <em>Management Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getManagementType()
+ * @generated
+ */
+ EEnum MANAGEMENT_TYPE = eINSTANCE.getManagementType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.CheckOptionType <em>Check Option Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CheckOptionType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getCheckOptionType()
+ * @generated
+ */
+ EEnum CHECK_OPTION_TYPE = eINSTANCE.getCheckOptionType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod <em>Partition Method</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getPartitionMethod()
+ * @generated
+ */
+ EEnum PARTITION_METHOD = eINSTANCE.getPartitionMethod();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.MaintenanceType <em>Maintenance Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.MaintenanceType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getMaintenanceType()
+ * @generated
+ */
+ EEnum MAINTENANCE_TYPE = eINSTANCE.getMaintenanceType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RefreshType <em>Refresh Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RefreshType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getRefreshType()
+ * @generated
+ */
+ EEnum REFRESH_TYPE = eINSTANCE.getRefreshType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType <em>Wrapper Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getWrapperType()
+ * @generated
+ */
+ EEnum WRAPPER_TYPE = eINSTANCE.getWrapperType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod <em>Data Partition Method</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getDataPartitionMethod()
+ * @generated
+ */
+ EEnum DATA_PARTITION_METHOD = eINSTANCE.getDataPartitionMethod();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType <em>Cursor Block Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getCursorBlockType()
+ * @generated
+ */
+ EEnum CURSOR_BLOCK_TYPE = eINSTANCE.getCursorBlockType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType <em>Explain Snaphot Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getExplainSnaphotType()
+ * @generated
+ */
+ EEnum EXPLAIN_SNAPHOT_TYPE = eINSTANCE.getExplainSnaphotType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType <em>File System Caching Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getFileSystemCachingType()
+ * @generated
+ */
+ EEnum FILE_SYSTEM_CACHING_TYPE = eINSTANCE.getFileSystemCachingType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType <em>Index Page Split Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWIndexPageSplitType()
+ * @generated
+ */
+ EEnum LUW_INDEX_PAGE_SPLIT_TYPE = eINSTANCE.getLUWIndexPageSplitType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType <em>Index Compress Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWIndexCompressType()
+ * @generated
+ */
+ EEnum LUW_INDEX_COMPRESS_TYPE = eINSTANCE.getLUWIndexCompressType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType <em>System Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getSystemType()
+ * @generated
+ */
+ EEnum SYSTEM_TYPE = eINSTANCE.getSystemType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType <em>Average Table Size Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getAverageTableSizeType()
+ * @generated
+ */
+ EEnum AVERAGE_TABLE_SIZE_TYPE = eINSTANCE.getAverageTableSizeType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode <em>Storage Table Compression Mode</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWStorageTableCompressionMode()
+ * @generated
+ */
+ EEnum LUW_STORAGE_TABLE_COMPRESSION_MODE = eINSTANCE.getLUWStorageTableCompressionMode();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType <em>Member Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWMemberType()
+ * @generated
+ */
+ EEnum LUW_MEMBER_TYPE = eINSTANCE.getLUWMemberType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.MemberStateType <em>Member State Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.MemberStateType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getMemberStateType()
+ * @generated
+ */
+ EEnum MEMBER_STATE_TYPE = eINSTANCE.getMemberStateType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType <em>Security Label Component Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelComponentType()
+ * @generated
+ */
+ EEnum LUW_SECURITY_LABEL_COMPONENT_TYPE = eINSTANCE.getLUWSecurityLabelComponentType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction <em>Security Label Not Authorized Write Action</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWSecurityLabelNotAuthorizedWriteAction()
+ * @generated
+ */
+ EEnum LUW_SECURITY_LABEL_NOT_AUTHORIZED_WRITE_ACTION = eINSTANCE.getLUWSecurityLabelNotAuthorizedWriteAction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource <em>Federated Data Source</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWFederatedDataSource()
+ * @generated
+ */
+ EEnum LUW_FEDERATED_DATA_SOURCE = eINSTANCE.getLUWFederatedDataSource();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption <em>Temporary Table Logging Option</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPackageImpl#getLUWTemporaryTableLoggingOption()
+ * @generated
+ */
+ EEnum LUW_TEMPORARY_TABLE_LOGGING_OPTION = eINSTANCE.getLUWTemporaryTableLoggingOption();
+
+ }
+
+} //LUWPackage
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionElement.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionElement.java
new file mode 100644
index 0000000..8ca6f34
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionElement.java
@@ -0,0 +1,176 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWPartitionElement.java,v 1.4 2007/10/12 23:05:36 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Partition Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getStarting <em>Starting</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEnding <em>Ending</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getLUWPartitionExpression <em>LUW Partition Expression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getPartition <em>Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEveryClause <em>Every Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionElement()
+ * @model
+ * @generated
+ */
+public interface LUWPartitionElement extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Starting</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Starting</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Starting</em>' attribute.
+ * @see #setStarting(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionElement_Starting()
+ * @model
+ * @generated
+ */
+ String getStarting();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getStarting <em>Starting</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Starting</em>' attribute.
+ * @see #getStarting()
+ * @generated
+ */
+ void setStarting(String value);
+
+ /**
+ * Returns the value of the '<em><b>Ending</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ending</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ending</em>' attribute.
+ * @see #setEnding(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionElement_Ending()
+ * @model
+ * @generated
+ */
+ String getEnding();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEnding <em>Ending</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ending</em>' attribute.
+ * @see #getEnding()
+ * @generated
+ */
+ void setEnding(String value);
+
+ /**
+ * Returns the value of the '<em><b>LUW Partition Expression</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getPartitionElements <em>Partition Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Partition Expression</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Partition Expression</em>' container reference.
+ * @see #setLUWPartitionExpression(LUWPartitionExpression)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionElement_LUWPartitionExpression()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getPartitionElements
+ * @model opposite="partitionElements" required="true"
+ * @generated
+ */
+ LUWPartitionExpression getLUWPartitionExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getLUWPartitionExpression <em>LUW Partition Expression</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LUW Partition Expression</em>' container reference.
+ * @see #getLUWPartitionExpression()
+ * @generated
+ */
+ void setLUWPartitionExpression(LUWPartitionExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Partition</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getPartitionElements <em>Partition Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition</em>' reference.
+ * @see #setPartition(LUWDataPartition)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionElement_Partition()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getPartitionElements
+ * @model opposite="partitionElements" required="true"
+ * @generated
+ */
+ LUWDataPartition getPartition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getPartition <em>Partition</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Partition</em>' reference.
+ * @see #getPartition()
+ * @generated
+ */
+ void setPartition(LUWDataPartition value);
+
+ /**
+ * Returns the value of the '<em><b>Every Clause</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getLUWPartitionElement <em>LUW Partition Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Every Clause</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Every Clause</em>' containment reference.
+ * @see #setEveryClause(LUWPartitionEveryClauseElement)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionElement_EveryClause()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getLUWPartitionElement
+ * @model opposite="LUWPartitionElement" containment="true"
+ * @generated
+ */
+ LUWPartitionEveryClauseElement getEveryClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEveryClause <em>Every Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Every Clause</em>' containment reference.
+ * @see #getEveryClause()
+ * @generated
+ */
+ void setEveryClause(LUWPartitionEveryClauseElement value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ Boolean hasEveryClause();
+
+} // LUWPartitionElement
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionEveryClauseElement.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionEveryClauseElement.java
new file mode 100644
index 0000000..cf577dd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionEveryClauseElement.java
@@ -0,0 +1,106 @@
+/**
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Partition Every Clause Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getDuration <em>Duration</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getLUWPartitionElement <em>LUW Partition Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionEveryClauseElement()
+ * @model
+ * @generated
+ */
+public interface LUWPartitionEveryClauseElement extends EObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(Double)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionEveryClauseElement_Value()
+ * @model
+ * @generated
+ */
+ Double getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(Double value);
+
+ /**
+ * Returns the value of the '<em><b>Duration</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Duration</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Duration</em>' attribute.
+ * @see #setDuration(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionEveryClauseElement_Duration()
+ * @model
+ * @generated
+ */
+ String getDuration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getDuration <em>Duration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Duration</em>' attribute.
+ * @see #getDuration()
+ * @generated
+ */
+ void setDuration(String value);
+
+ /**
+ * Returns the value of the '<em><b>LUW Partition Element</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEveryClause <em>Every Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Partition Element</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Partition Element</em>' container reference.
+ * @see #setLUWPartitionElement(LUWPartitionElement)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionEveryClauseElement_LUWPartitionElement()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getEveryClause
+ * @model opposite="everyClause" required="true"
+ * @generated
+ */
+ LUWPartitionElement getLUWPartitionElement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement#getLUWPartitionElement <em>LUW Partition Element</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LUW Partition Element</em>' container reference.
+ * @see #getLUWPartitionElement()
+ * @generated
+ */
+ void setLUWPartitionElement(LUWPartitionElement value);
+
+} // LUWPartitionEveryClauseElement
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionExpression.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionExpression.java
new file mode 100644
index 0000000..af86c0c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionExpression.java
@@ -0,0 +1,132 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWPartitionExpression.java,v 1.5 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Partition Expression</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#isNullsLast <em>Nulls Last</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getColumn <em>Column</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getPartitionElements <em>Partition Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionExpression()
+ * @model
+ * @generated
+ */
+public interface LUWPartitionExpression extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Nulls Last</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nulls Last</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nulls Last</em>' attribute.
+ * @see #setNullsLast(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionExpression_NullsLast()
+ * @model default="true"
+ * @generated
+ */
+ boolean isNullsLast();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#isNullsLast <em>Nulls Last</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nulls Last</em>' attribute.
+ * @see #isNullsLast()
+ * @generated
+ */
+ void setNullsLast(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Key</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionExpressions <em>Partition Expressions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Key</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Key</em>' container reference.
+ * @see #setKey(LUWDataPartitionKey)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionExpression_Key()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getPartitionExpressions
+ * @model opposite="partitionExpressions" required="true"
+ * @generated
+ */
+ LUWDataPartitionKey getKey();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getKey <em>Key</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Key</em>' container reference.
+ * @see #getKey()
+ * @generated
+ */
+ void setKey(LUWDataPartitionKey value);
+
+ /**
+ * Returns the value of the '<em><b>Column</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Column</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Column</em>' reference.
+ * @see #setColumn(Column)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionExpression_Column()
+ * @model required="true"
+ * @generated
+ */
+ Column getColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression#getColumn <em>Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Column</em>' reference.
+ * @see #getColumn()
+ * @generated
+ */
+ void setColumn(Column value);
+
+ /**
+ * Returns the value of the '<em><b>Partition Elements</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getLUWPartitionExpression <em>LUW Partition Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Elements</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Elements</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionExpression_PartitionElements()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement#getLUWPartitionExpression
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement" opposite="LUWPartitionExpression" containment="true" required="true"
+ * @generated
+ */
+ EList getPartitionElements();
+
+} // LUWPartitionExpression
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionGroup.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionGroup.java
new file mode 100644
index 0000000..7169f95
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionGroup.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Partition Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Database partition groups
+ *
+ * A database partition group is a set of one or more database partitions. When you want to create tables for the database, you first create the database partition group where the table spaces will be stored, then you create the table space where the tables will be stored.
+ *
+ * Data partitioning
+ * DB2(R) extends the database manager to the parallel, multi-node environment. A database partition is a part of a database that consists of its own data, indexes, configuration files, and transaction logs. A database partition is sometimes called a node or a database node.
+ *
+ * A single-partition database is a database having only one database partition. All data in the database is stored in that partition. In this case database partition groups, while present, provide no additional capability.
+ *
+ * A partitioned database is a database with two or more database partitions. Tables can be located in one or more database partitions. When a table is in a database partition group consisting of multiple partitions, some of its rows are stored in one partition, and other rows are stored in other partitions.
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getPartitions <em>Partitions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getTableSpaces <em>Table Spaces</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getBufferPool <em>Buffer Pool</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionGroup()
+ * @model
+ * @generated
+ */
+public interface LUWPartitionGroup extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Partitions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partitions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partitions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionGroup_Partitions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition#getGroup
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition" opposite="group" required="true"
+ * @generated
+ */
+ EList getPartitions();
+
+ /**
+ * Returns the value of the '<em><b>Table Spaces</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Spaces</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Spaces</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionGroup_TableSpaces()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getGroup
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace" opposite="group"
+ * @generated
+ */
+ EList getTableSpaces();
+
+ /**
+ * Returns the value of the '<em><b>Database</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getGroups <em>Groups</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Database</em>' reference.
+ * @see #setDatabase(LUWDatabase)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionGroup_Database()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getGroups
+ * @model opposite="groups" required="true"
+ * @generated
+ */
+ LUWDatabase getDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getDatabase <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Database</em>' reference.
+ * @see #getDatabase()
+ * @generated
+ */
+ void setDatabase(LUWDatabase value);
+
+ /**
+ * Returns the value of the '<em><b>Buffer Pool</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitionGroup <em>Partition Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Buffer Pool</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Buffer Pool</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionGroup_BufferPool()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getPartitionGroup
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool" opposite="partitionGroup"
+ * @generated
+ */
+ EList getBufferPool();
+
+} // LUWPartitionGroup
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionKey.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionKey.java
new file mode 100644
index 0000000..e0da655
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWPartitionKey.java
@@ -0,0 +1,157 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Partition Key</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Data partitioning across multiple partitions
+ *
+ * DB2 allows great flexibility in spreading data across multiple partitions (nodes) of a partitioned database. Users can choose how to partition their data by declaring partitioning keys, and can determine which and how many partitions their table data can be spread across by selecting the database partition group and table space in which the data should be stored. In addition, a partitioning map (which is updatable) specifies the mapping of partitioning key values to partitions. This makes it possible for flexible workload parallelization across a partitioned database for large tables, while allowing smaller tables to be stored on one or a small number of partitions if the application designer so chooses. Each local partition may have local indexes on the data it stores to provide high performance local data access.
+ *
+ * A partitioned database supports a partitioned storage model, in which the partitioning key is used to partition table data across a set of database partitions. Index data is also partitioned with its corresponding tables, and stored locally at each partition. Before partitions can be used to store database data, they must be defined to the database manager. Partitions are defined in a file called db2nodes.cfg.
+ *
+ * The partitioning key for a table in a table space on a partitioned database partition group is specified in the CREATE TABLE statement or the ALTER TABLE statement. If not specified, a partitioning key for a table is created by default from the first column of the primary key. If no primary key is defined, the default partitioning key is the first column defined in that table that has a data type other than a long or a LOB data type. Partitioned tables must have at least one column that is neither a long nor a LOB data type. A table in a table space that is in a single partition database partition group will have a partitioning key only if it is explicitly specified.
+ *
+ * Hash partitioning is used to place a row in a partition as follows:
+ * 1. A hashing algorithm (partitioning function) is applied to all of the columns of the partitioning key, which results in the generation of a partitioning map index value.
+ * 2. The partition number at that index value in the partitioning map identifies the partition in which the row is to be stored.
+ *
+ * DB2 supports partial declustering, which means that a table can be partitioned across a subset of partitions in the system (that is, a database partition group). Tables do not have to be partitioned across all of the partitions in the system. DB2 has the capability of recognizing when data being accessed for a join or a subquery is located at the same partition in the same database partition group. This is known as table collocation. Rows in collocated tables with the same partitioning key values are located on the same partition. DB2 can choose to perform join or subquery processing at the partition in which the data is stored. This can have significant performance advantages.
+ *
+ * Collocated tables must:
+ * - Be in the same database partition group, one that is not being redistributed. (During redistribution, tables in the database partition group may be using different partitioning maps - they are not collocated.)
+ * - Have partitioning keys with the same number of columns.
+ * - Have the corresponding columns of the partitioning key be partition compatible.
+ * - Be in a single partition database partition group defined on the same partition.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTemporaryStorageTable <em>Temporary Storage Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getPartitionMethod <em>Partition Method</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getColumns <em>Columns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionKey()
+ * @model
+ * @generated
+ */
+public interface LUWPartitionKey extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Temporary Storage Table</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getPartitionKey <em>Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporary Storage Table</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporary Storage Table</em>' container reference.
+ * @see #setTemporaryStorageTable(LUWTemporaryStorageTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionKey_TemporaryStorageTable()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getPartitionKey
+ * @model opposite="partitionKey" required="true"
+ * @generated
+ */
+ LUWTemporaryStorageTable getTemporaryStorageTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTemporaryStorageTable <em>Temporary Storage Table</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Temporary Storage Table</em>' container reference.
+ * @see #getTemporaryStorageTable()
+ * @generated
+ */
+ void setTemporaryStorageTable(LUWTemporaryStorageTable value);
+
+ /**
+ * Returns the value of the '<em><b>Partition Method</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Method</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Method</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod
+ * @see #setPartitionMethod(PartitionMethod)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionKey_PartitionMethod()
+ * @model
+ * @generated
+ */
+ PartitionMethod getPartitionMethod();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getPartitionMethod <em>Partition Method</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Partition Method</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod
+ * @see #getPartitionMethod()
+ * @generated
+ */
+ void setPartitionMethod(PartitionMethod value);
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getPartitionKey <em>Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' container reference.
+ * @see #setTable(LUWStorageTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionKey_Table()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getPartitionKey
+ * @model opposite="partitionKey" required="true"
+ * @generated
+ */
+ LUWStorageTable getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTable <em>Table</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' container reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(LUWStorageTable value);
+
+ /**
+ * Returns the value of the '<em><b>Columns</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.modelbase.sql.tables.Column}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Columns</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Columns</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWPartitionKey_Columns()
+ * @model type="org.eclipse.datatools.modelbase.sql.tables.Column" required="true"
+ * @generated
+ */
+ EList getColumns();
+
+} // LUWPartitionKey
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalNickname.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalNickname.java
new file mode 100644
index 0000000..a726ce0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalNickname.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Relational Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname#getRelServer <em>Rel Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalNickname()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWRelationalNickname extends LUWNickname{
+ /**
+ * Returns the value of the '<em><b>Rel Server</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelNicknames <em>Rel Nicknames</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rel Server</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rel Server</em>' reference.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalNickname_RelServer()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelNicknames
+ * @model opposite="relNicknames" required="true" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ LUWRelationalServer getRelServer();
+
+} // LUWRelationalNickname
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalServer.java
new file mode 100644
index 0000000..abbd223
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalServer.java
@@ -0,0 +1,386 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Relational Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCpuRatio <em>Cpu Ratio</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getIoRatio <em>Io Ratio</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCommRate <em>Comm Rate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldId <em>Fold Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldPW <em>Fold PW</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isCollatingSequence <em>Collating Sequence</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isPushdown <em>Pushdown</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getNode <em>Node</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getDbName <em>Db Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isIudAppSvptEnforce <em>Iud App Svpt Enforce</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getPassword <em>Password</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelNicknames <em>Rel Nicknames</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelWrapper <em>Rel Wrapper</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWRelationalServer extends LUWServer {
+ /**
+ * Returns the value of the '<em><b>Cpu Ratio</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cpu Ratio</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cpu Ratio</em>' attribute.
+ * @see #setCpuRatio(long)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_CpuRatio()
+ * @model
+ * @generated
+ */
+ long getCpuRatio();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCpuRatio <em>Cpu Ratio</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cpu Ratio</em>' attribute.
+ * @see #getCpuRatio()
+ * @generated
+ */
+ void setCpuRatio(long value);
+
+ /**
+ * Returns the value of the '<em><b>Io Ratio</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Io Ratio</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Io Ratio</em>' attribute.
+ * @see #setIoRatio(long)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_IoRatio()
+ * @model
+ * @generated
+ */
+ long getIoRatio();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getIoRatio <em>Io Ratio</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Io Ratio</em>' attribute.
+ * @see #getIoRatio()
+ * @generated
+ */
+ void setIoRatio(long value);
+
+ /**
+ * Returns the value of the '<em><b>Comm Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Comm Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Comm Rate</em>' attribute.
+ * @see #setCommRate(long)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_CommRate()
+ * @model
+ * @generated
+ */
+ long getCommRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getCommRate <em>Comm Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Comm Rate</em>' attribute.
+ * @see #getCommRate()
+ * @generated
+ */
+ void setCommRate(long value);
+
+ /**
+ * Returns the value of the '<em><b>Fold Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fold Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Fold Id</em>' attribute.
+ * @see #setFoldId(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_FoldId()
+ * @model
+ * @generated
+ */
+ boolean isFoldId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldId <em>Fold Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fold Id</em>' attribute.
+ * @see #isFoldId()
+ * @generated
+ */
+ void setFoldId(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Fold PW</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fold PW</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Fold PW</em>' attribute.
+ * @see #setFoldPW(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_FoldPW()
+ * @model
+ * @generated
+ */
+ boolean isFoldPW();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isFoldPW <em>Fold PW</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fold PW</em>' attribute.
+ * @see #isFoldPW()
+ * @generated
+ */
+ void setFoldPW(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Collating Sequence</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Collating Sequence</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Collating Sequence</em>' attribute.
+ * @see #setCollatingSequence(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_CollatingSequence()
+ * @model
+ * @generated
+ */
+ boolean isCollatingSequence();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isCollatingSequence <em>Collating Sequence</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Collating Sequence</em>' attribute.
+ * @see #isCollatingSequence()
+ * @generated
+ */
+ void setCollatingSequence(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Pushdown</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pushdown</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pushdown</em>' attribute.
+ * @see #setPushdown(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_Pushdown()
+ * @model
+ * @generated
+ */
+ boolean isPushdown();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isPushdown <em>Pushdown</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pushdown</em>' attribute.
+ * @see #isPushdown()
+ * @generated
+ */
+ void setPushdown(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Node</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Node</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Node</em>' attribute.
+ * @see #setNode(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_Node()
+ * @model
+ * @generated
+ */
+ String getNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getNode <em>Node</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Node</em>' attribute.
+ * @see #getNode()
+ * @generated
+ */
+ void setNode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Db Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Db Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Db Name</em>' attribute.
+ * @see #setDbName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_DbName()
+ * @model
+ * @generated
+ */
+ String getDbName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getDbName <em>Db Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Db Name</em>' attribute.
+ * @see #getDbName()
+ * @generated
+ */
+ void setDbName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Iud App Svpt Enforce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Iud App Svpt Enforce</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Iud App Svpt Enforce</em>' attribute.
+ * @see #setIudAppSvptEnforce(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_IudAppSvptEnforce()
+ * @model
+ * @generated
+ */
+ boolean isIudAppSvptEnforce();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#isIudAppSvptEnforce <em>Iud App Svpt Enforce</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Iud App Svpt Enforce</em>' attribute.
+ * @see #isIudAppSvptEnforce()
+ * @generated
+ */
+ void setIudAppSvptEnforce(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Password</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Password</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Password</em>' attribute.
+ * @see #setPassword(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_Password()
+ * @model
+ * @generated
+ */
+ String getPassword();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getPassword <em>Password</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Password</em>' attribute.
+ * @see #getPassword()
+ * @generated
+ */
+ void setPassword(String value);
+
+ /**
+ * Returns the value of the '<em><b>Rel Wrapper</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper#getRelServers <em>Rel Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rel Wrapper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rel Wrapper</em>' reference.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_RelWrapper()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper#getRelServers
+ * @model opposite="relServers" required="true" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ LUWRelationalWrapper getRelWrapper();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" many="false"
+ * @generated
+ */
+ EList getFunctionMappings();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" many="false"
+ * @generated
+ */
+ EList getTypeMappings();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" many="false"
+ * @generated
+ */
+ EList getReverseTypeMappings();
+
+ /**
+ * Returns the value of the '<em><b>Rel Nicknames</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname#getRelServer <em>Rel Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rel Nicknames</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rel Nicknames</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalServer_RelNicknames()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname#getRelServer
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname" opposite="relServer" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ EList getRelNicknames();
+
+} // LUWRelationalServer
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalWrapper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalWrapper.java
new file mode 100644
index 0000000..5735513
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRelationalWrapper.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Relational Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper#getRelServers <em>Rel Servers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalWrapper()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWRelationalWrapper extends LUWWrapper{
+ /**
+ * Returns the value of the '<em><b>Rel Servers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelWrapper <em>Rel Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rel Servers</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rel Servers</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRelationalWrapper_RelServers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer#getRelWrapper
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer" opposite="relWrapper" transient="true" changeable="false" volatile="true"
+ * @generated
+ */
+ EList getRelServers();
+
+} // LUWRelationalWrapper
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRowDataType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRowDataType.java
new file mode 100644
index 0000000..a1f10b4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWRowDataType.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWRowDataType.java,v 1.1 2009/02/16 19:01:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Row Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWRowDataType()
+ * @model
+ * @generated
+ */
+public interface LUWRowDataType extends UserDefinedType, RowDataType {
+} // LUWRowDataType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabel.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabel.java
new file mode 100644
index 0000000..26475e1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabel.java
@@ -0,0 +1,83 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Security Label</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getSecurityLabel <em>Security Label</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getPolicy <em>Policy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabel()
+ * @model
+ * @generated
+ */
+public interface LUWSecurityLabel extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Security Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Security Label</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Security Label</em>' attribute.
+ * @see #setSecurityLabel(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabel_SecurityLabel()
+ * @model
+ * @generated
+ */
+ String getSecurityLabel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getSecurityLabel <em>Security Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Security Label</em>' attribute.
+ * @see #getSecurityLabel()
+ * @generated
+ */
+ void setSecurityLabel(String value);
+
+ /**
+ * Returns the value of the '<em><b>Policy</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getLabels <em>Labels</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Policy</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Policy</em>' reference.
+ * @see #setPolicy(LUWSecurityPolicy)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabel_Policy()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getLabels
+ * @model opposite="labels" required="true"
+ * @generated
+ */
+ LUWSecurityPolicy getPolicy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getPolicy <em>Policy</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Policy</em>' reference.
+ * @see #getPolicy()
+ * @generated
+ */
+ void setPolicy(LUWSecurityPolicy value);
+
+} // LUWSecurityLabel
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponent.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponent.java
new file mode 100644
index 0000000..8b4908a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponent.java
@@ -0,0 +1,97 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Security Label Component</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getLUWSecurityPolicy <em>LUW Security Policy</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponent()
+ * @model
+ * @generated
+ */
+public interface LUWSecurityLabelComponent extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType
+ * @see #setType(LUWSecurityLabelComponentType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponent_Type()
+ * @model
+ * @generated
+ */
+ LUWSecurityLabelComponentType getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType
+ * @see #getType()
+ * @generated
+ */
+ void setType(LUWSecurityLabelComponentType value);
+
+ /**
+ * Returns the value of the '<em><b>LUW Security Policy</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getComponents <em>Components</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Security Policy</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Security Policy</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponent_LUWSecurityPolicy()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getComponents
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy" opposite="components"
+ * @generated
+ */
+ EList getLUWSecurityPolicy();
+
+ /**
+ * Returns the value of the '<em><b>Elements</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getLUWSecurityLabelComponent <em>LUW Security Label Component</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Elements</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Elements</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponent_Elements()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getLUWSecurityLabelComponent
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement" opposite="LUWSecurityLabelComponent"
+ * @generated
+ */
+ EList getElements();
+
+} // LUWSecurityLabelComponent
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponentElement.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponentElement.java
new file mode 100644
index 0000000..416aca3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponentElement.java
@@ -0,0 +1,101 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Security Label Component Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getParentValue <em>Parent Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getLUWSecurityLabelComponent <em>LUW Security Label Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponentElement()
+ * @model
+ * @generated
+ */
+public interface LUWSecurityLabelComponentElement extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponentElement_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Parent Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent Value</em>' attribute.
+ * @see #setParentValue(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponentElement_ParentValue()
+ * @model
+ * @generated
+ */
+ String getParentValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement#getParentValue <em>Parent Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent Value</em>' attribute.
+ * @see #getParentValue()
+ * @generated
+ */
+ void setParentValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>LUW Security Label Component</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getElements <em>Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Security Label Component</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Security Label Component</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponentElement_LUWSecurityLabelComponent()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getElements
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent" opposite="elements"
+ * @generated
+ */
+ EList getLUWSecurityLabelComponent();
+
+} // LUWSecurityLabelComponentElement
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponentType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponentType.java
new file mode 100644
index 0000000..f165fdb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelComponentType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Security Label Component Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelComponentType()
+ * @model
+ * @generated
+ */
+public final class LUWSecurityLabelComponentType extends AbstractEnumerator {
+ /**
+ * The '<em><b>SET</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SET</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SET_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SET = 0;
+
+ /**
+ * The '<em><b>ARRAY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ARRAY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ARRAY_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ARRAY = 1;
+
+ /**
+ * The '<em><b>TREE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TREE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TREE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TREE = 2;
+
+ /**
+ * The '<em><b>SET</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SET
+ * @generated
+ * @ordered
+ */
+ public static final LUWSecurityLabelComponentType SET_LITERAL = new LUWSecurityLabelComponentType(SET, "SET", "SET"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ARRAY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ARRAY
+ * @generated
+ * @ordered
+ */
+ public static final LUWSecurityLabelComponentType ARRAY_LITERAL = new LUWSecurityLabelComponentType(ARRAY, "ARRAY", "ARRAY"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>TREE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TREE
+ * @generated
+ * @ordered
+ */
+ public static final LUWSecurityLabelComponentType TREE_LITERAL = new LUWSecurityLabelComponentType(TREE, "TREE", "TREE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Security Label Component Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWSecurityLabelComponentType[] VALUES_ARRAY =
+ new LUWSecurityLabelComponentType[] {
+ SET_LITERAL,
+ ARRAY_LITERAL,
+ TREE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Security Label Component Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Security Label Component Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWSecurityLabelComponentType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWSecurityLabelComponentType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Security Label Component Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWSecurityLabelComponentType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWSecurityLabelComponentType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Security Label Component Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWSecurityLabelComponentType get(int value) {
+ switch (value) {
+ case SET: return SET_LITERAL;
+ case ARRAY: return ARRAY_LITERAL;
+ case TREE: return TREE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWSecurityLabelComponentType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWSecurityLabelComponentType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelNotAuthorizedWriteAction.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelNotAuthorizedWriteAction.java
new file mode 100644
index 0000000..c334cec
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityLabelNotAuthorizedWriteAction.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Security Label Not Authorized Write Action</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityLabelNotAuthorizedWriteAction()
+ * @model
+ * @generated
+ */
+public final class LUWSecurityLabelNotAuthorizedWriteAction extends AbstractEnumerator {
+ /**
+ * The '<em><b>OVERRIDE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>OVERRIDE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #OVERRIDE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int OVERRIDE = 0;
+
+ /**
+ * The '<em><b>RESTRICT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESTRICT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESTRICT_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESTRICT = 1;
+
+ /**
+ * The '<em><b>OVERRIDE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #OVERRIDE
+ * @generated
+ * @ordered
+ */
+ public static final LUWSecurityLabelNotAuthorizedWriteAction OVERRIDE_LITERAL = new LUWSecurityLabelNotAuthorizedWriteAction(OVERRIDE, "OVERRIDE", "OVERRIDE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>RESTRICT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESTRICT
+ * @generated
+ * @ordered
+ */
+ public static final LUWSecurityLabelNotAuthorizedWriteAction RESTRICT_LITERAL = new LUWSecurityLabelNotAuthorizedWriteAction(RESTRICT, "RESTRICT", "RESTRICT"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Security Label Not Authorized Write Action</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWSecurityLabelNotAuthorizedWriteAction[] VALUES_ARRAY =
+ new LUWSecurityLabelNotAuthorizedWriteAction[] {
+ OVERRIDE_LITERAL,
+ RESTRICT_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Security Label Not Authorized Write Action</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Security Label Not Authorized Write Action</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWSecurityLabelNotAuthorizedWriteAction get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWSecurityLabelNotAuthorizedWriteAction result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Security Label Not Authorized Write Action</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWSecurityLabelNotAuthorizedWriteAction getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWSecurityLabelNotAuthorizedWriteAction result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Security Label Not Authorized Write Action</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWSecurityLabelNotAuthorizedWriteAction get(int value) {
+ switch (value) {
+ case OVERRIDE: return OVERRIDE_LITERAL;
+ case RESTRICT: return RESTRICT_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWSecurityLabelNotAuthorizedWriteAction(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWSecurityLabelNotAuthorizedWriteAction
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityPolicy.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityPolicy.java
new file mode 100644
index 0000000..1a2ad39
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWSecurityPolicy.java
@@ -0,0 +1,126 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Security Policy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getNotAuthorizedWrite <em>Not Authorized Write</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getComponents <em>Components</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getLabels <em>Labels</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityPolicy()
+ * @model
+ * @generated
+ */
+public interface LUWSecurityPolicy extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Not Authorized Write</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Not Authorized Write</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Not Authorized Write</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction
+ * @see #setNotAuthorizedWrite(LUWSecurityLabelNotAuthorizedWriteAction)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityPolicy_NotAuthorizedWrite()
+ * @model
+ * @generated
+ */
+ LUWSecurityLabelNotAuthorizedWriteAction getNotAuthorizedWrite();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getNotAuthorizedWrite <em>Not Authorized Write</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Not Authorized Write</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction
+ * @see #getNotAuthorizedWrite()
+ * @generated
+ */
+ void setNotAuthorizedWrite(LUWSecurityLabelNotAuthorizedWriteAction value);
+
+ /**
+ * Returns the value of the '<em><b>Components</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getLUWSecurityPolicy <em>LUW Security Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Components</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Components</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityPolicy_Components()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent#getLUWSecurityPolicy
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent" opposite="LUWSecurityPolicy"
+ * @generated
+ */
+ EList getComponents();
+
+ /**
+ * Returns the value of the '<em><b>Labels</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getPolicy <em>Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Labels</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Labels</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityPolicy_Labels()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel#getPolicy
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel" opposite="policy"
+ * @generated
+ */
+ EList getLabels();
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getSecurityPolicy <em>Security Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' reference.
+ * @see #setTable(LUWTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWSecurityPolicy_Table()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getSecurityPolicy
+ * @model opposite="securityPolicy" required="true"
+ * @generated
+ */
+ LUWTable getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getTable <em>Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(LUWTable value);
+
+} // LUWSecurityPolicy
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWServer.java
new file mode 100644
index 0000000..7feeb2e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWServer.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerType <em>Server Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerVersion <em>Server Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getUserMappings <em>User Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getWrapper <em>Wrapper</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getNicknames <em>Nicknames</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getLUWDatabase <em>LUW Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getRemoteServer <em>Remote Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWServer extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Type</em>' attribute.
+ * @see #setServerType(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_ServerType()
+ * @model
+ * @generated
+ */
+ String getServerType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerType <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Type</em>' attribute.
+ * @see #getServerType()
+ * @generated
+ */
+ void setServerType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Server Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Version</em>' attribute.
+ * @see #setServerVersion(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_ServerVersion()
+ * @model
+ * @generated
+ */
+ String getServerVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getServerVersion <em>Server Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Version</em>' attribute.
+ * @see #getServerVersion()
+ * @generated
+ */
+ void setServerVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>User Mappings</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>User Mappings</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>User Mappings</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_UserMappings()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getServer
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping" opposite="server" containment="true"
+ * @generated
+ */
+ EList getUserMappings();
+
+ /**
+ * Returns the value of the '<em><b>Wrapper</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getServers <em>Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Wrapper</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Wrapper</em>' reference.
+ * @see #setWrapper(LUWWrapper)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_Wrapper()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getServers
+ * @model opposite="servers" required="true"
+ * @generated
+ */
+ LUWWrapper getWrapper();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getWrapper <em>Wrapper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Wrapper</em>' reference.
+ * @see #getWrapper()
+ * @generated
+ */
+ void setWrapper(LUWWrapper value);
+
+ /**
+ * Returns the value of the '<em><b>Nicknames</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nicknames</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nicknames</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_Nicknames()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getServer
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname" opposite="server"
+ * @generated
+ */
+ EList getNicknames();
+
+ /**
+ * Returns the value of the '<em><b>LUW Database</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getServers <em>Servers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Database</em>' reference.
+ * @see #setLUWDatabase(LUWDatabase)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_LUWDatabase()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getServers
+ * @model opposite="servers" required="true"
+ * @generated
+ */
+ LUWDatabase getLUWDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getLUWDatabase <em>LUW Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LUW Database</em>' reference.
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ void setLUWDatabase(LUWDatabase value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_Options()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption" containment="true"
+ * @generated
+ */
+ EList getOptions();
+
+ /**
+ * Returns the value of the '<em><b>Remote Server</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer#getLUWServer <em>LUW Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Server</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Server</em>' reference.
+ * @see #setRemoteServer(RemoteServer)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWServer_RemoteServer()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer#getLUWServer
+ * @model opposite="LUWServer" required="true"
+ * @generated
+ */
+ RemoteServer getRemoteServer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getRemoteServer <em>Remote Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Server</em>' reference.
+ * @see #getRemoteServer()
+ * @generated
+ */
+ void setRemoteServer(RemoteServer value);
+
+} // LUWServer
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageGroup.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageGroup.java
new file mode 100644
index 0000000..0ab2bb9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageGroup.java
@@ -0,0 +1,202 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Storage Group</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getStoragePaths <em>Storage Paths</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getOverhead <em>Overhead</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDeviceReadRate <em>Device Read Rate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDataTag <em>Data Tag</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#isDefault <em>Default</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getTableSpaces <em>Table Spaces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup()
+ * @model
+ * @generated
+ */
+public interface LUWStorageGroup extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Storage Paths</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Storage Paths</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Storage Paths</em>' attribute list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup_StoragePaths()
+ * @model required="true"
+ * @generated
+ */
+ EList getStoragePaths();
+
+ /**
+ * Returns the value of the '<em><b>Overhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Overhead</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Overhead</em>' attribute.
+ * @see #setOverhead(double)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup_Overhead()
+ * @model
+ * @generated
+ */
+ double getOverhead();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getOverhead <em>Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Overhead</em>' attribute.
+ * @see #getOverhead()
+ * @generated
+ */
+ void setOverhead(double value);
+
+ /**
+ * Returns the value of the '<em><b>Device Read Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Device Read Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Device Read Rate</em>' attribute.
+ * @see #setDeviceReadRate(double)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup_DeviceReadRate()
+ * @model
+ * @generated
+ */
+ double getDeviceReadRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDeviceReadRate <em>Device Read Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Device Read Rate</em>' attribute.
+ * @see #getDeviceReadRate()
+ * @generated
+ */
+ void setDeviceReadRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Data Tag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Tag</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data Tag</em>' attribute.
+ * @see #setDataTag(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup_DataTag()
+ * @model
+ * @generated
+ */
+ String getDataTag();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDataTag <em>Data Tag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data Tag</em>' attribute.
+ * @see #getDataTag()
+ * @generated
+ */
+ void setDataTag(String value);
+
+ /**
+ * Returns the value of the '<em><b>Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default</em>' attribute.
+ * @see #setDefault(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup_Default()
+ * @model
+ * @generated
+ */
+ boolean isDefault();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#isDefault <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default</em>' attribute.
+ * @see #isDefault()
+ * @generated
+ */
+ void setDefault(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Database</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getStorageGroups <em>Storage Groups</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Database</em>' reference.
+ * @see #setDatabase(LUWDatabase)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup_Database()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getStorageGroups
+ * @model opposite="storageGroups" required="true"
+ * @generated
+ */
+ LUWDatabase getDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getDatabase <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Database</em>' reference.
+ * @see #getDatabase()
+ * @generated
+ */
+ void setDatabase(LUWDatabase value);
+
+ /**
+ * Returns the value of the '<em><b>Table Spaces</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getStorageGroup <em>Storage Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table Spaces</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table Spaces</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageGroup_TableSpaces()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getStorageGroup
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace" opposite="storageGroup"
+ * @generated
+ */
+ EList getTableSpaces();
+
+} // LUWStorageGroup
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageTable.java
new file mode 100644
index 0000000..a8e30a7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageTable.java
@@ -0,0 +1,315 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWStorageTable.java,v 1.11 2008/01/29 00:04:56 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Storage Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isValueCompression <em>Value Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompression <em>Row Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompressionEmpty <em>Row Compression Empty</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getCompressionMode <em>Compression Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getPartitionKey <em>Partition Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getIndexDataTableSpace <em>Index Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getLOBDataTableSpace <em>LOB Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getRegularDataTableSpace <em>Regular Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitions <em>Data Partitions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitionKey <em>Data Partition Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface LUWStorageTable extends EObject {
+ /**
+ * Returns the value of the '<em><b>Value Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value Compression</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value Compression</em>' attribute.
+ * @see #setValueCompression(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_ValueCompression()
+ * @model
+ * @generated
+ */
+ boolean isValueCompression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isValueCompression <em>Value Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value Compression</em>' attribute.
+ * @see #isValueCompression()
+ * @generated
+ */
+ void setValueCompression(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Row Compression</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Row Compression</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Row Compression</em>' attribute.
+ * @see #setRowCompression(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_RowCompression()
+ * @model
+ * @generated
+ */
+ boolean isRowCompression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompression <em>Row Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Row Compression</em>' attribute.
+ * @see #isRowCompression()
+ * @generated
+ */
+ void setRowCompression(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Row Compression Empty</b></em>' attribute.
+ * The default value is <code>"True"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Row Compression Empty</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Row Compression Empty</em>' attribute.
+ * @see #setRowCompressionEmpty(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_RowCompressionEmpty()
+ * @model default="True"
+ * @generated
+ */
+ boolean isRowCompressionEmpty();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#isRowCompressionEmpty <em>Row Compression Empty</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Row Compression Empty</em>' attribute.
+ * @see #isRowCompressionEmpty()
+ * @generated
+ */
+ void setRowCompressionEmpty(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Compression Mode</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Compression Mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Compression Mode</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode
+ * @see #setCompressionMode(LUWStorageTableCompressionMode)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_CompressionMode()
+ * @model
+ * @generated
+ */
+ LUWStorageTableCompressionMode getCompressionMode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getCompressionMode <em>Compression Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compression Mode</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode
+ * @see #getCompressionMode()
+ * @generated
+ */
+ void setCompressionMode(LUWStorageTableCompressionMode value);
+
+ /**
+ * Returns the value of the '<em><b>Partition Key</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Key</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Key</em>' containment reference.
+ * @see #setPartitionKey(LUWPartitionKey)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_PartitionKey()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTable
+ * @model opposite="table" containment="true"
+ * @generated
+ */
+ LUWPartitionKey getPartitionKey();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getPartitionKey <em>Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Partition Key</em>' containment reference.
+ * @see #getPartitionKey()
+ * @generated
+ */
+ void setPartitionKey(LUWPartitionKey value);
+
+ /**
+ * Returns the value of the '<em><b>Index Data Table Space</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataTables <em>Index Data Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Index Data Table Space</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Index Data Table Space</em>' reference.
+ * @see #setIndexDataTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_IndexDataTableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataTables
+ * @model opposite="indexDataTables"
+ * @generated
+ */
+ LUWTableSpace getIndexDataTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getIndexDataTableSpace <em>Index Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Index Data Table Space</em>' reference.
+ * @see #getIndexDataTableSpace()
+ * @generated
+ */
+ void setIndexDataTableSpace(LUWTableSpace value);
+
+ /**
+ * Returns the value of the '<em><b>LOB Data Table Space</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataTables <em>LOB Data Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LOB Data Table Space</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LOB Data Table Space</em>' reference.
+ * @see #setLOBDataTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_LOBDataTableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataTables
+ * @model opposite="LOBDataTables"
+ * @generated
+ */
+ LUWTableSpace getLOBDataTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getLOBDataTableSpace <em>LOB Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LOB Data Table Space</em>' reference.
+ * @see #getLOBDataTableSpace()
+ * @generated
+ */
+ void setLOBDataTableSpace(LUWTableSpace value);
+
+ /**
+ * Returns the value of the '<em><b>Regular Data Table Space</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataTables <em>Regular Data Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Regular Data Table Space</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Regular Data Table Space</em>' reference.
+ * @see #setRegularDataTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_RegularDataTableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataTables
+ * @model opposite="regularDataTables" required="true"
+ * @generated
+ */
+ LUWTableSpace getRegularDataTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getRegularDataTableSpace <em>Regular Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Regular Data Table Space</em>' reference.
+ * @see #getRegularDataTableSpace()
+ * @generated
+ */
+ void setRegularDataTableSpace(LUWTableSpace value);
+
+ /**
+ * Returns the value of the '<em><b>Data Partitions</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Partitions</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data Partitions</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_DataPartitions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getTable
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition" opposite="table" containment="true"
+ * @generated
+ */
+ EList getDataPartitions();
+
+ /**
+ * Returns the value of the '<em><b>Data Partition Key</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Partition Key</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data Partition Key</em>' containment reference.
+ * @see #setDataPartitionKey(LUWDataPartitionKey)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTable_DataPartitionKey()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey#getTable
+ * @model opposite="table" containment="true"
+ * @generated
+ */
+ LUWDataPartitionKey getDataPartitionKey();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getDataPartitionKey <em>Data Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data Partition Key</em>' containment reference.
+ * @see #getDataPartitionKey()
+ * @generated
+ */
+ void setDataPartitionKey(LUWDataPartitionKey value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" dataType="org.eclipse.datatools.modelbase.sql.schema.List" many="false"
+ * @generated
+ */
+ List getTableSpaces();
+
+} // LUWStorageTable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageTableCompressionMode.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageTableCompressionMode.java
new file mode 100644
index 0000000..0cfc1f1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWStorageTableCompressionMode.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Storage Table Compression Mode</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWStorageTableCompressionMode()
+ * @model
+ * @generated
+ */
+public final class LUWStorageTableCompressionMode extends AbstractEnumerator {
+ /**
+ * The '<em><b>NO SELECTION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NO SELECTION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NO_SELECTION_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NO_SELECTION = 0;
+
+ /**
+ * The '<em><b>ADAPTIVE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ADAPTIVE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ADAPTIVE_LITERAL
+ * @model literal="Adaptive"
+ * @generated
+ * @ordered
+ */
+ public static final int ADAPTIVE = 1;
+
+ /**
+ * The '<em><b>STATIC</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STATIC</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STATIC_LITERAL
+ * @model literal="Static"
+ * @generated
+ * @ordered
+ */
+ public static final int STATIC = 2;
+
+ /**
+ * The '<em><b>NO SELECTION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NO_SELECTION
+ * @generated
+ * @ordered
+ */
+ public static final LUWStorageTableCompressionMode NO_SELECTION_LITERAL = new LUWStorageTableCompressionMode(NO_SELECTION, "NO_SELECTION", "NO_SELECTION"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ADAPTIVE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ADAPTIVE
+ * @generated
+ * @ordered
+ */
+ public static final LUWStorageTableCompressionMode ADAPTIVE_LITERAL = new LUWStorageTableCompressionMode(ADAPTIVE, "ADAPTIVE", "Adaptive"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>STATIC</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STATIC
+ * @generated
+ * @ordered
+ */
+ public static final LUWStorageTableCompressionMode STATIC_LITERAL = new LUWStorageTableCompressionMode(STATIC, "STATIC", "Static"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Storage Table Compression Mode</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWStorageTableCompressionMode[] VALUES_ARRAY =
+ new LUWStorageTableCompressionMode[] {
+ NO_SELECTION_LITERAL,
+ ADAPTIVE_LITERAL,
+ STATIC_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Storage Table Compression Mode</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Storage Table Compression Mode</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWStorageTableCompressionMode get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWStorageTableCompressionMode result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Storage Table Compression Mode</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWStorageTableCompressionMode getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWStorageTableCompressionMode result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Storage Table Compression Mode</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWStorageTableCompressionMode get(int value) {
+ switch (value) {
+ case NO_SELECTION: return NO_SELECTION_LITERAL;
+ case ADAPTIVE: return ADAPTIVE_LITERAL;
+ case STATIC: return STATIC_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWStorageTableCompressionMode(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWStorageTableCompressionMode
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTable.java
new file mode 100644
index 0000000..856d115
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTable.java
@@ -0,0 +1,280 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Tables
+ *
+ * Tables are logical structures maintained by the database manager. Tables are made up of columns and rows. The rows are not necessarily ordered within a table (order is determined by the application program). At the intersection of every column and row is a specific data item called a value. A column is a set of values of the same type or one of its subtypes. A row is a sequence of values arranged so that the nth value is a value of the nth column of the table.
+ *
+ * A base table is created with the CREATE TABLE statement and is used to hold persistent user data. A result table is a set of rows that the database manager selects or generates from one or more base tables to satisfy a query.
+ *
+ * A summary table is a table defined by a query that is also used to determine the data in the table. Summary tables can be used to improve the performance of queries. If the database manager determines that a portion of a query can be resolved using a summary table, the database manager can rewrite the query to use the summary table. This decision is based on database configuration settings, such as the CURRENT REFRESH AGE and the CURRENT QUERY OPTIMIZATION special registers.
+ *
+ * A table can define the data type of each column separately, or base the types on the attributes of a user-defined structured type. This is called a typed table. A user-defined structured type may be part of a type hierarchy. A subtype inherits attributes from its supertype. Similarly, a typed table can be part of a table hierarchy. A subtable inherits columns from its supertable. Note that the term subtype applies to a user-defined structured type and all user-defined structured types that are below it in the type hierarchy. A proper subtype of a structured type T is a structured type below T in the type hierarchy. Similarly, the term subtable applies to a typed table and all typed tables that are below it in the table hierarchy. A proper subtable of a table T is a table below T in the table hierarchy.
+ *
+ * A declared temporary table is created with a DECLARE GLOBAL TEMPORARY TABLE statement and is used to hold temporary data on behalf of a single application. This table is dropped implicitly when the application disconnects from the database.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPCTFree <em>PCT Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isRestrictOnDrop <em>Restrict On Drop</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPartitionMode <em>Partition Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isAppendMode <em>Append Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getLogMode <em>Log Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isLockSizeRow <em>Lock Size Row</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isVolatile <em>Volatile</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getSecurityPolicy <em>Security Policy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable()
+ * @model
+ * @generated
+ */
+public interface LUWTable extends DB2Table, LUWStorageTable {
+ /**
+ * Returns the value of the '<em><b>PCT Free</b></em>' attribute.
+ * The default value is <code>"-1"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>PCT Free</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>PCT Free</em>' attribute.
+ * @see #setPCTFree(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_PCTFree()
+ * @model default="-1"
+ * @generated
+ */
+ int getPCTFree();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPCTFree <em>PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>PCT Free</em>' attribute.
+ * @see #getPCTFree()
+ * @generated
+ */
+ void setPCTFree(int value);
+
+ /**
+ * Returns the value of the '<em><b>Restrict On Drop</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restrict On Drop</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restrict On Drop</em>' attribute.
+ * @see #setRestrictOnDrop(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_RestrictOnDrop()
+ * @model
+ * @generated
+ */
+ boolean isRestrictOnDrop();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isRestrictOnDrop <em>Restrict On Drop</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restrict On Drop</em>' attribute.
+ * @see #isRestrictOnDrop()
+ * @generated
+ */
+ void setRestrictOnDrop(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Partition Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Possible values: "USING HASHING", :REPLICATED", "" (w/o quotes)
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Partition Mode</em>' attribute.
+ * @see #setPartitionMode(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_PartitionMode()
+ * @model
+ * @generated
+ */
+ String getPartitionMode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getPartitionMode <em>Partition Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Partition Mode</em>' attribute.
+ * @see #getPartitionMode()
+ * @generated
+ */
+ void setPartitionMode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Append Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Append Mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Append Mode</em>' attribute.
+ * @see #setAppendMode(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_AppendMode()
+ * @model
+ * @generated
+ */
+ boolean isAppendMode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isAppendMode <em>Append Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Append Mode</em>' attribute.
+ * @see #isAppendMode()
+ * @generated
+ */
+ void setAppendMode(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Log Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Possible values: "NOT LOGGED INITIALLY", "LOGGED INITIALLY", or "LOGGED INITIALLY WITH EMPTY TABLE" (w/o quotes)
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Log Mode</em>' attribute.
+ * @see #setLogMode(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_LogMode()
+ * @model
+ * @generated
+ */
+ String getLogMode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getLogMode <em>Log Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Log Mode</em>' attribute.
+ * @see #getLogMode()
+ * @generated
+ */
+ void setLogMode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Lock Size Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Row lock if True else Table lock
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Lock Size Row</em>' attribute.
+ * @see #setLockSizeRow(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_LockSizeRow()
+ * @model
+ * @generated
+ */
+ boolean isLockSizeRow();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isLockSizeRow <em>Lock Size Row</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lock Size Row</em>' attribute.
+ * @see #isLockSizeRow()
+ * @generated
+ */
+ void setLockSizeRow(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Volatile</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Volatile</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Volatile</em>' attribute.
+ * @see #setVolatile(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_Volatile()
+ * @model
+ * @generated
+ */
+ boolean isVolatile();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#isVolatile <em>Volatile</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Volatile</em>' attribute.
+ * @see #isVolatile()
+ * @generated
+ */
+ void setVolatile(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Security Policy</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Security Policy</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Security Policy</em>' reference.
+ * @see #setSecurityPolicy(LUWSecurityPolicy)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_SecurityPolicy()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy#getTable
+ * @model opposite="table" required="true"
+ * @generated
+ */
+ LUWSecurityPolicy getSecurityPolicy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable#getSecurityPolicy <em>Security Policy</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Security Policy</em>' reference.
+ * @see #getSecurityPolicy()
+ * @generated
+ */
+ void setSecurityPolicy(LUWSecurityPolicy value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTable_Options()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption" containment="true"
+ * @generated
+ */
+ EList getOptions();
+
+} // LUWTable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTableSpace.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTableSpace.java
new file mode 100644
index 0000000..820171a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTableSpace.java
@@ -0,0 +1,1219 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.UnitType;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Table Space</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Table space design
+ *
+ * A table space is a storage structure containing tables, indexes, large objects, and long data. Table spaces reside in database partition groups. They allow you to assign the location of database and table data directly onto containers. (A container can be a directory name, a device name, or a file name.) This can provide improved performance and more flexible configuration.
+ *
+ * Since table spaces reside in database partition groups, the table space selected to hold a table defines how the data for that table is distributed across the database partitions in a database partition group. A single table space can span several containers. It is possible for multiple containers (from one or more table spaces) to be created on the same physical disk (or drive). For improved performance, each container should use a different disk. Figure 14 illustrates the relationship between tables and table spaces within a database, and the containers associated with that database.
+ *
+ * Creating table spaces in database partition groups
+ *
+ * By placing a table space in a multiple-partition database partition group, all of the tables within the table space are divided or partitioned across each partition in the database partition group. The table space is created into a database partition group. Once in a database partition group, the table space must remain there; it cannot be changed to another database partition group. The CREATE TABLESPACE statement is used to associate a table space with a database partition group.
+ *
+ *
+ * IBMR DB2 Universal Database - SQL Reference Volume 1 - Version 8
+ *
+ * Table spaces and other storage structures
+ *
+ * Storage structures contain database objects. The basic storage structure is the table space; it contains tables, indexes, large objects, and data defined with a LONG data type.
+ *
+ * There are two types of table spaces:
+ * - Database managed space (DMS): a table space that is managed by the database manager.
+ * - System managed space (SMS): a table space that is managed by the operating system.
+ *
+ * All table spaces consist of containers. A container describes where objects are stored. A subdirectory in a file system is an example of a container. When data is read from table space containers, it is placed in an area of memory called a buffer pool. A buffer pool is associated with a specific table space, thereby allowing control over which data will share the same memory areas for data buffering.
+ *
+ * Creation:
+ *
+ * EXTENTSIZE number-of-pages
+ * Specifies the number of PAGESIZE pages that will be written to a container before skipping to the next container. The extent size value can also be specified as an integer value followed by K (for kilobytes), M (for megabytes), or G (for gigabytes). If specified in this way, the floor of the number of bytes divided by the pagesize is used to determine the number of pages value for extent size. The database manager cycles repeatedly through the containers as data is stored. The default value is provided by the DFT_EXTENT_SZ configuration parameter.
+ *
+ * PREFETCHSIZE number-of-pages
+ * Specifies the number of PAGESIZE pages that will be read from the tablespace when data prefetching is being performed. The prefetch size value can also be specified as an integer value followed by K (for kilobytes), M (for megabytes), or G (for gigabytes). If specified in this way, the floor of the number of bytes divided by the pagesize is used to determine the number of pages value for prefetch size. Prefetching reads in data needed by a query prior to it being referenced by the query, so that the query need not wait for I/O to be performed. The default value is provided by the DFT_PREFETCH_SZ
+ * configuration parameter.
+ *
+ * BUFFERPOOL bufferpool-name
+ * The name of the buffer pool used for tables in this tablespace. The buffer pool must exist (SQLSTATE 42704). If not specified, the default buffer pool (IBMDEFAULTBP) is used. The page size of the bufferpool must match the page size specified (or defaulted) for the tablespace (SQLSTATE 428CB). The database partition group of the tablespace must be defined for the bufferpool (SQLSTATE 42735).
+ *
+ * OVERHEAD number-of-milliseconds
+ * Any numeric literal (integer, decimal, or floating point) that specifies the I/O controller overhead and disk seek and latency time, in milliseconds. The number should be an average for all containers that belong to the tablespace, if not the same for all containers. This value is used to determine the cost of I/O during query optimization.
+ *
+ * TRANSFERRATE number-of-milliseconds
+ * Any numeric literal (integer, decimal, or floating point) that specifies the time to read one page into memory, in milliseconds. The number should be an average for all containers that belong to the tablespace, if not the same for all containers. This value is used to determine the cost of I/O during query optimization.
+ *
+ * DROPPED TABLE RECOVERY
+ * Dropped tables in the specified tablespace may be recovered using the RECOVER TABLE ON option of the ROLLFORWARD command. This clause can only be specified for a REGULAR tablespace (SQLSTATE 42613).
+ *
+ *
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTemporaryStorageTables <em>Temporary Storage Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTablespaceType <em>Tablespace Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getManagementType <em>Management Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExtentSize <em>Extent Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPreFetchSize <em>Pre Fetch Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getOverhead <em>Overhead</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransferRate <em>Transfer Rate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRecoverDroppedTableOn <em>Recover Dropped Table On</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPageSize <em>Page Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isAutoResize <em>Auto Resize</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSize <em>Initial Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSize <em>Increase Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSize <em>Maximum Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSizeUnit <em>Initial Size Unit</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSizeUnit <em>Maximum Size Unit</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSizeUnit <em>Increase Size Unit</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreasePercent <em>Increase Percent</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getFileSystemCaching <em>File System Caching</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageSeekTime <em>Average Seek Time</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRotationSpeed <em>Rotation Speed</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransfer <em>Transfer</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSystemType <em>System Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageTableSize <em>Average Table Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExternalContainerCount <em>External Container Count</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritOverhead <em>Inherit Overhead</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritTransferate <em>Inherit Transferate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRebalance <em>Rebalance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDataTag <em>Data Tag</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isSuspendRebalance <em>Suspend Rebalance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isResumeRebalance <em>Resume Rebalance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getContainers <em>Containers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getBufferPool <em>Buffer Pool</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataTables <em>Index Data Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataTables <em>LOB Data Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataTables <em>Regular Data Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getLOBDataPartition <em>LOB Data Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRegularDataPartition <em>Regular Data Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexes <em>Indexes</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIndexDataPartition <em>Index Data Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getStorageGroup <em>Storage Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace()
+ * @model
+ * @generated
+ */
+public interface LUWTableSpace extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Temporary Storage Tables</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getUserTemporaryTableSpace <em>User Temporary Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporary Storage Tables</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporary Storage Tables</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_TemporaryStorageTables()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getUserTemporaryTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable" opposite="userTemporaryTableSpace"
+ * @generated
+ */
+ EList getTemporaryStorageTables();
+
+ /**
+ * Returns the value of the '<em><b>Tablespace Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Tablespace Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Tablespace Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType
+ * @see #setTablespaceType(TableSpaceType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_TablespaceType()
+ * @model
+ * @generated
+ */
+ TableSpaceType getTablespaceType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTablespaceType <em>Tablespace Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Tablespace Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType
+ * @see #getTablespaceType()
+ * @generated
+ */
+ void setTablespaceType(TableSpaceType value);
+
+ /**
+ * Returns the value of the '<em><b>Management Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Management Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Management Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType
+ * @see #setManagementType(ManagementType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_ManagementType()
+ * @model
+ * @generated
+ */
+ ManagementType getManagementType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getManagementType <em>Management Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Management Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType
+ * @see #getManagementType()
+ * @generated
+ */
+ void setManagementType(ManagementType value);
+
+ /**
+ * Returns the value of the '<em><b>Extent Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Extent Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extent Size</em>' attribute.
+ * @see #setExtentSize(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_ExtentSize()
+ * @model
+ * @generated
+ */
+ int getExtentSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExtentSize <em>Extent Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Extent Size</em>' attribute.
+ * @see #getExtentSize()
+ * @generated
+ */
+ void setExtentSize(int value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Fetch Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pre Fetch Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pre Fetch Size</em>' attribute.
+ * @see #setPreFetchSize(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_PreFetchSize()
+ * @model
+ * @generated
+ */
+ int getPreFetchSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPreFetchSize <em>Pre Fetch Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Fetch Size</em>' attribute.
+ * @see #getPreFetchSize()
+ * @generated
+ */
+ void setPreFetchSize(int value);
+
+ /**
+ * Returns the value of the '<em><b>Overhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Overhead</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Overhead</em>' attribute.
+ * @see #setOverhead(double)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Overhead()
+ * @model
+ * @generated
+ */
+ double getOverhead();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getOverhead <em>Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Overhead</em>' attribute.
+ * @see #getOverhead()
+ * @generated
+ */
+ void setOverhead(double value);
+
+ /**
+ * Returns the value of the '<em><b>Transfer Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transfer Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transfer Rate</em>' attribute.
+ * @see #setTransferRate(double)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_TransferRate()
+ * @model
+ * @generated
+ */
+ double getTransferRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransferRate <em>Transfer Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transfer Rate</em>' attribute.
+ * @see #getTransferRate()
+ * @generated
+ */
+ void setTransferRate(double value);
+
+ /**
+ * Returns the value of the '<em><b>Recover Dropped Table On</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Recover Dropped Table On</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Recover Dropped Table On</em>' attribute.
+ * @see #setRecoverDroppedTableOn(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_RecoverDroppedTableOn()
+ * @model
+ * @generated
+ */
+ boolean isRecoverDroppedTableOn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRecoverDroppedTableOn <em>Recover Dropped Table On</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Recover Dropped Table On</em>' attribute.
+ * @see #isRecoverDroppedTableOn()
+ * @generated
+ */
+ void setRecoverDroppedTableOn(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Page Size</b></em>' attribute.
+ * The default value is <code>"FOUR_K"</code>.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Page Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Page Size</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType
+ * @see #setPageSize(PageSizeType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_PageSize()
+ * @model default="FOUR_K"
+ * @generated
+ */
+ PageSizeType getPageSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getPageSize <em>Page Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Page Size</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType
+ * @see #getPageSize()
+ * @generated
+ */
+ void setPageSize(PageSizeType value);
+
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' attribute.
+ * @see #setSize(long)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Size()
+ * @model
+ * @generated
+ */
+ long getSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSize <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' attribute.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(long value);
+
+ /**
+ * Returns the value of the '<em><b>Auto Resize</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Auto Resize</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Auto Resize</em>' attribute.
+ * @see #setAutoResize(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_AutoResize()
+ * @model
+ * @generated
+ */
+ boolean isAutoResize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isAutoResize <em>Auto Resize</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Auto Resize</em>' attribute.
+ * @see #isAutoResize()
+ * @generated
+ */
+ void setAutoResize(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Initial Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initial Size</em>' attribute.
+ * @see #setInitialSize(long)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_InitialSize()
+ * @model
+ * @generated
+ */
+ long getInitialSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSize <em>Initial Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial Size</em>' attribute.
+ * @see #getInitialSize()
+ * @generated
+ */
+ void setInitialSize(long value);
+
+ /**
+ * Returns the value of the '<em><b>Increase Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Increase Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Increase Size</em>' attribute.
+ * @see #setIncreaseSize(long)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_IncreaseSize()
+ * @model
+ * @generated
+ */
+ long getIncreaseSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSize <em>Increase Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Increase Size</em>' attribute.
+ * @see #getIncreaseSize()
+ * @generated
+ */
+ void setIncreaseSize(long value);
+
+ /**
+ * Returns the value of the '<em><b>Maximum Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Maximum Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Maximum Size</em>' attribute.
+ * @see #setMaximumSize(long)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_MaximumSize()
+ * @model
+ * @generated
+ */
+ long getMaximumSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSize <em>Maximum Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Maximum Size</em>' attribute.
+ * @see #getMaximumSize()
+ * @generated
+ */
+ void setMaximumSize(long value);
+
+ /**
+ * Returns the value of the '<em><b>Initial Size Unit</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.UnitType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Initial Size Unit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Initial Size Unit</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #setInitialSizeUnit(UnitType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_InitialSizeUnit()
+ * @model
+ * @generated
+ */
+ UnitType getInitialSizeUnit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getInitialSizeUnit <em>Initial Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Initial Size Unit</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #getInitialSizeUnit()
+ * @generated
+ */
+ void setInitialSizeUnit(UnitType value);
+
+ /**
+ * Returns the value of the '<em><b>Maximum Size Unit</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.UnitType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Maximum Size Unit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Maximum Size Unit</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #setMaximumSizeUnit(UnitType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_MaximumSizeUnit()
+ * @model
+ * @generated
+ */
+ UnitType getMaximumSizeUnit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getMaximumSizeUnit <em>Maximum Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Maximum Size Unit</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #getMaximumSizeUnit()
+ * @generated
+ */
+ void setMaximumSizeUnit(UnitType value);
+
+ /**
+ * Returns the value of the '<em><b>Increase Size Unit</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.UnitType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Increase Size Unit</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Increase Size Unit</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #setIncreaseSizeUnit(UnitType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_IncreaseSizeUnit()
+ * @model
+ * @generated
+ */
+ UnitType getIncreaseSizeUnit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreaseSizeUnit <em>Increase Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Increase Size Unit</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see #getIncreaseSizeUnit()
+ * @generated
+ */
+ void setIncreaseSizeUnit(UnitType value);
+
+ /**
+ * Returns the value of the '<em><b>Increase Percent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Increase Percent</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Increase Percent</em>' attribute.
+ * @see #setIncreasePercent(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_IncreasePercent()
+ * @model
+ * @generated
+ */
+ int getIncreasePercent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getIncreasePercent <em>Increase Percent</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Increase Percent</em>' attribute.
+ * @see #getIncreasePercent()
+ * @generated
+ */
+ void setIncreasePercent(int value);
+
+ /**
+ * Returns the value of the '<em><b>File System Caching</b></em>' attribute.
+ * The default value is <code>"NONE"</code>.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>File System Caching</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>File System Caching</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType
+ * @see #setFileSystemCaching(FileSystemCachingType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_FileSystemCaching()
+ * @model default="NONE"
+ * @generated
+ */
+ FileSystemCachingType getFileSystemCaching();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getFileSystemCaching <em>File System Caching</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File System Caching</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType
+ * @see #getFileSystemCaching()
+ * @generated
+ */
+ void setFileSystemCaching(FileSystemCachingType value);
+
+ /**
+ * Returns the value of the '<em><b>Average Seek Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Average Seek Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Average Seek Time</em>' attribute.
+ * @see #setAverageSeekTime(double)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_AverageSeekTime()
+ * @model
+ * @generated
+ */
+ double getAverageSeekTime();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageSeekTime <em>Average Seek Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Average Seek Time</em>' attribute.
+ * @see #getAverageSeekTime()
+ * @generated
+ */
+ void setAverageSeekTime(double value);
+
+ /**
+ * Returns the value of the '<em><b>Rotation Speed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rotation Speed</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rotation Speed</em>' attribute.
+ * @see #setRotationSpeed(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_RotationSpeed()
+ * @model
+ * @generated
+ */
+ int getRotationSpeed();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getRotationSpeed <em>Rotation Speed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Rotation Speed</em>' attribute.
+ * @see #getRotationSpeed()
+ * @generated
+ */
+ void setRotationSpeed(int value);
+
+ /**
+ * Returns the value of the '<em><b>Transfer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Transfer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Transfer</em>' attribute.
+ * @see #setTransfer(double)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Transfer()
+ * @model
+ * @generated
+ */
+ double getTransfer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTransfer <em>Transfer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Transfer</em>' attribute.
+ * @see #getTransfer()
+ * @generated
+ */
+ void setTransfer(double value);
+
+ /**
+ * Returns the value of the '<em><b>System Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>System Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>System Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType
+ * @see #setSystemType(SystemType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_SystemType()
+ * @model
+ * @generated
+ */
+ SystemType getSystemType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getSystemType <em>System Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>System Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType
+ * @see #getSystemType()
+ * @generated
+ */
+ void setSystemType(SystemType value);
+
+ /**
+ * Returns the value of the '<em><b>Average Table Size</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Average Table Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Average Table Size</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType
+ * @see #setAverageTableSize(AverageTableSizeType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_AverageTableSize()
+ * @model
+ * @generated
+ */
+ AverageTableSizeType getAverageTableSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getAverageTableSize <em>Average Table Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Average Table Size</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType
+ * @see #getAverageTableSize()
+ * @generated
+ */
+ void setAverageTableSize(AverageTableSizeType value);
+
+ /**
+ * Returns the value of the '<em><b>External Container Count</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>External Container Count</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>External Container Count</em>' attribute.
+ * @see #setExternalContainerCount(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_ExternalContainerCount()
+ * @model
+ * @generated
+ */
+ int getExternalContainerCount();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getExternalContainerCount <em>External Container Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>External Container Count</em>' attribute.
+ * @see #getExternalContainerCount()
+ * @generated
+ */
+ void setExternalContainerCount(int value);
+
+ /**
+ * Returns the value of the '<em><b>Inherit Overhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inherit Overhead</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inherit Overhead</em>' attribute.
+ * @see #setInheritOverhead(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_InheritOverhead()
+ * @model
+ * @generated
+ */
+ boolean isInheritOverhead();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritOverhead <em>Inherit Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inherit Overhead</em>' attribute.
+ * @see #isInheritOverhead()
+ * @generated
+ */
+ void setInheritOverhead(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Inherit Transferate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inherit Transferate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inherit Transferate</em>' attribute.
+ * @see #setInheritTransferate(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_InheritTransferate()
+ * @model
+ * @generated
+ */
+ boolean isInheritTransferate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isInheritTransferate <em>Inherit Transferate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inherit Transferate</em>' attribute.
+ * @see #isInheritTransferate()
+ * @generated
+ */
+ void setInheritTransferate(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Rebalance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rebalance</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rebalance</em>' attribute.
+ * @see #setRebalance(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Rebalance()
+ * @model
+ * @generated
+ */
+ boolean isRebalance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isRebalance <em>Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Rebalance</em>' attribute.
+ * @see #isRebalance()
+ * @generated
+ */
+ void setRebalance(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Data Tag</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Tag</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data Tag</em>' attribute.
+ * @see #setDataTag(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_DataTag()
+ * @model
+ * @generated
+ */
+ String getDataTag();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDataTag <em>Data Tag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data Tag</em>' attribute.
+ * @see #getDataTag()
+ * @generated
+ */
+ void setDataTag(String value);
+
+ /**
+ * Returns the value of the '<em><b>Suspend Rebalance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Suspend Rebalance</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Suspend Rebalance</em>' attribute.
+ * @see #setSuspendRebalance(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_SuspendRebalance()
+ * @model
+ * @generated
+ */
+ boolean isSuspendRebalance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isSuspendRebalance <em>Suspend Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Suspend Rebalance</em>' attribute.
+ * @see #isSuspendRebalance()
+ * @generated
+ */
+ void setSuspendRebalance(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Resume Rebalance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Resume Rebalance</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Resume Rebalance</em>' attribute.
+ * @see #setResumeRebalance(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_ResumeRebalance()
+ * @model
+ * @generated
+ */
+ boolean isResumeRebalance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#isResumeRebalance <em>Resume Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Resume Rebalance</em>' attribute.
+ * @see #isResumeRebalance()
+ * @generated
+ */
+ void setResumeRebalance(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getTableSpaces <em>Table Spaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group</em>' reference.
+ * @see #setGroup(LUWPartitionGroup)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Group()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup#getTableSpaces
+ * @model opposite="tableSpaces" required="true"
+ * @generated
+ */
+ LUWPartitionGroup getGroup();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getGroup <em>Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Group</em>' reference.
+ * @see #getGroup()
+ * @generated
+ */
+ void setGroup(LUWPartitionGroup value);
+
+ /**
+ * Returns the value of the '<em><b>Containers</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getTableSpace <em>Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Containers</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Containers</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Containers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer#getTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer" opposite="tableSpace" containment="true" required="true"
+ * @generated
+ */
+ EList getContainers();
+
+ /**
+ * Returns the value of the '<em><b>Buffer Pool</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getTableSpaces <em>Table Spaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Buffer Pool</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Buffer Pool</em>' reference.
+ * @see #setBufferPool(LUWBufferPool)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_BufferPool()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool#getTableSpaces
+ * @model opposite="tableSpaces" required="true"
+ * @generated
+ */
+ LUWBufferPool getBufferPool();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getBufferPool <em>Buffer Pool</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Buffer Pool</em>' reference.
+ * @see #getBufferPool()
+ * @generated
+ */
+ void setBufferPool(LUWBufferPool value);
+
+ /**
+ * Returns the value of the '<em><b>Regular Data Tables</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getRegularDataTableSpace <em>Regular Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Regular Data Tables</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Regular Data Tables</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_RegularDataTables()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getRegularDataTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable" opposite="regularDataTableSpace"
+ * @generated
+ */
+ EList getRegularDataTables();
+
+ /**
+ * Returns the value of the '<em><b>Database</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTablespaces <em>Tablespaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Database</em>' reference.
+ * @see #setDatabase(LUWDatabase)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Database()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getTablespaces
+ * @model opposite="tablespaces" required="true"
+ * @generated
+ */
+ LUWDatabase getDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getDatabase <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Database</em>' reference.
+ * @see #getDatabase()
+ * @generated
+ */
+ void setDatabase(LUWDatabase value);
+
+ /**
+ * Returns the value of the '<em><b>LOB Data Partition</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getLOBDataTableSpace <em>LOB Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LOB Data Partition</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LOB Data Partition</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_LOBDataPartition()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getLOBDataTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition" opposite="LOBDataTableSpace"
+ * @generated
+ */
+ EList getLOBDataPartition();
+
+ /**
+ * Returns the value of the '<em><b>Regular Data Partition</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getRegularDataTableSpace <em>Regular Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Regular Data Partition</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Regular Data Partition</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_RegularDataPartition()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getRegularDataTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition" opposite="regularDataTableSpace"
+ * @generated
+ */
+ EList getRegularDataPartition();
+
+ /**
+ * Returns the value of the '<em><b>Indexes</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getTablespace <em>Tablespace</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Indexes</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Indexes</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_Indexes()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex#getTablespace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex" opposite="tablespace"
+ * @generated
+ */
+ EList getIndexes();
+
+ /**
+ * Returns the value of the '<em><b>Index Data Partition</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getIndexDataTableSpace <em>Index Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Index Data Partition</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Index Data Partition</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_IndexDataPartition()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition#getIndexDataTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition" opposite="indexDataTableSpace"
+ * @generated
+ */
+ EList getIndexDataPartition();
+
+ /**
+ * Returns the value of the '<em><b>Storage Group</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getTableSpaces <em>Table Spaces</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Storage Group</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Storage Group</em>' reference.
+ * @see #setStorageGroup(LUWStorageGroup)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_StorageGroup()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup#getTableSpaces
+ * @model opposite="tableSpaces"
+ * @generated
+ */
+ LUWStorageGroup getStorageGroup();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getStorageGroup <em>Storage Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Storage Group</em>' reference.
+ * @see #getStorageGroup()
+ * @generated
+ */
+ void setStorageGroup(LUWStorageGroup value);
+
+ /**
+ * Returns the value of the '<em><b>Index Data Tables</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getIndexDataTableSpace <em>Index Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Index Data Tables</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Index Data Tables</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_IndexDataTables()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getIndexDataTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable" opposite="indexDataTableSpace"
+ * @generated
+ */
+ EList getIndexDataTables();
+
+ /**
+ * Returns the value of the '<em><b>LOB Data Tables</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getLOBDataTableSpace <em>LOB Data Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LOB Data Tables</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LOB Data Tables</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTableSpace_LOBDataTables()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable#getLOBDataTableSpace
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable" opposite="LOBDataTableSpace"
+ * @generated
+ */
+ EList getLOBDataTables();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" dataType="org.eclipse.datatools.modelbase.sql.schema.List" many="false"
+ * @generated
+ */
+ List getTables();
+
+} // LUWTableSpace
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryStorageTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryStorageTable.java
new file mode 100644
index 0000000..953d01d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryStorageTable.java
@@ -0,0 +1,89 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Storage Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Introduced to support the created global temporary table needs in DB2 LUW.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getPartitionKey <em>Partition Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getUserTemporaryTableSpace <em>User Temporary Table Space</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTemporaryStorageTable()
+ * @model
+ * @generated
+ */
+public interface LUWTemporaryStorageTable extends EObject {
+ /**
+ * Returns the value of the '<em><b>Partition Key</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTemporaryStorageTable <em>Temporary Storage Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partition Key</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partition Key</em>' containment reference.
+ * @see #setPartitionKey(LUWPartitionKey)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTemporaryStorageTable_PartitionKey()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey#getTemporaryStorageTable
+ * @model opposite="temporaryStorageTable" containment="true"
+ * @generated
+ */
+ LUWPartitionKey getPartitionKey();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getPartitionKey <em>Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Partition Key</em>' containment reference.
+ * @see #getPartitionKey()
+ * @generated
+ */
+ void setPartitionKey(LUWPartitionKey value);
+
+ /**
+ * Returns the value of the '<em><b>User Temporary Table Space</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTemporaryStorageTables <em>Temporary Storage Tables</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>User Temporary Table Space</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>User Temporary Table Space</em>' reference.
+ * @see #setUserTemporaryTableSpace(LUWTableSpace)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTemporaryStorageTable_UserTemporaryTableSpace()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace#getTemporaryStorageTables
+ * @model opposite="temporaryStorageTables"
+ * @generated
+ */
+ LUWTableSpace getUserTemporaryTableSpace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable#getUserTemporaryTableSpace <em>User Temporary Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>User Temporary Table Space</em>' reference.
+ * @see #getUserTemporaryTableSpace()
+ * @generated
+ */
+ void setUserTemporaryTableSpace(LUWTableSpace value);
+
+} // LUWTemporaryStorageTable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryTable.java
new file mode 100644
index 0000000..f1e3376
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryTable.java
@@ -0,0 +1,89 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.TemporaryTable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Temporary Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Represents the Created Global Temporary Table introduced in DB2 LUW v9.7
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getLogOption <em>Log Option</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTemporaryTable()
+ * @model
+ * @generated
+ */
+public interface LUWTemporaryTable extends TemporaryTable, LUWTemporaryStorageTable {
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' reference.
+ * @see #setTable(Table)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTemporaryTable_Table()
+ * @model
+ * @generated
+ */
+ Table getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getTable <em>Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(Table value);
+
+ /**
+ * Returns the value of the '<em><b>Log Option</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Log Option</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Log Option</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption
+ * @see #setLogOption(LUWTemporaryTableLoggingOption)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTemporaryTable_LogOption()
+ * @model
+ * @generated
+ */
+ LUWTemporaryTableLoggingOption getLogOption();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable#getLogOption <em>Log Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Log Option</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption
+ * @see #getLogOption()
+ * @generated
+ */
+ void setLogOption(LUWTemporaryTableLoggingOption value);
+
+} // LUWTemporaryTable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryTableLoggingOption.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryTableLoggingOption.java
new file mode 100644
index 0000000..2e95ee4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTemporaryTableLoggingOption.java
@@ -0,0 +1,184 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Temporary Table Logging Option</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * There are three options:
+ * NOT_LOGGED_DELETE_ROWS - Not logged On Rollback Delete Rows
+ * NOT_LOGGED_PRESERVE_ROWS - Not Logged On Rollback PreserveRows
+ * LOGGED - Logged
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTemporaryTableLoggingOption()
+ * @model
+ * @generated
+ */
+public final class LUWTemporaryTableLoggingOption extends AbstractEnumerator {
+ /**
+ * The '<em><b>NOT LOGGED DELETE ROWS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NOT LOGGED DELETE ROWS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NOT_LOGGED_DELETE_ROWS_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NOT_LOGGED_DELETE_ROWS = 0;
+
+ /**
+ * The '<em><b>NOT LOGGED PRESERVE ROWS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NOT LOGGED PRESERVE ROWS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NOT_LOGGED_PRESERVE_ROWS_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NOT_LOGGED_PRESERVE_ROWS = 1;
+
+ /**
+ * The '<em><b>LOGGED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LOGGED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LOGGED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LOGGED = 2;
+
+ /**
+ * The '<em><b>NOT LOGGED DELETE ROWS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NOT_LOGGED_DELETE_ROWS
+ * @generated
+ * @ordered
+ */
+ public static final LUWTemporaryTableLoggingOption NOT_LOGGED_DELETE_ROWS_LITERAL = new LUWTemporaryTableLoggingOption(NOT_LOGGED_DELETE_ROWS, "NOT_LOGGED_DELETE_ROWS", "NOT_LOGGED_DELETE_ROWS"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>NOT LOGGED PRESERVE ROWS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NOT_LOGGED_PRESERVE_ROWS
+ * @generated
+ * @ordered
+ */
+ public static final LUWTemporaryTableLoggingOption NOT_LOGGED_PRESERVE_ROWS_LITERAL = new LUWTemporaryTableLoggingOption(NOT_LOGGED_PRESERVE_ROWS, "NOT_LOGGED_PRESERVE_ROWS", "NOT_LOGGED_PRESERVE_ROWS"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>LOGGED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LOGGED
+ * @generated
+ * @ordered
+ */
+ public static final LUWTemporaryTableLoggingOption LOGGED_LITERAL = new LUWTemporaryTableLoggingOption(LOGGED, "LOGGED", "LOGGED"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Temporary Table Logging Option</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final LUWTemporaryTableLoggingOption[] VALUES_ARRAY =
+ new LUWTemporaryTableLoggingOption[] {
+ NOT_LOGGED_DELETE_ROWS_LITERAL,
+ NOT_LOGGED_PRESERVE_ROWS_LITERAL,
+ LOGGED_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Temporary Table Logging Option</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Temporary Table Logging Option</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWTemporaryTableLoggingOption get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWTemporaryTableLoggingOption result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Temporary Table Logging Option</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWTemporaryTableLoggingOption getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ LUWTemporaryTableLoggingOption result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Temporary Table Logging Option</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWTemporaryTableLoggingOption get(int value) {
+ switch (value) {
+ case NOT_LOGGED_DELETE_ROWS: return NOT_LOGGED_DELETE_ROWS_LITERAL;
+ case NOT_LOGGED_PRESERVE_ROWS: return NOT_LOGGED_PRESERVE_ROWS_LITERAL;
+ case LOGGED: return LOGGED_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private LUWTemporaryTableLoggingOption(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //LUWTemporaryTableLoggingOption
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTypeMapping.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTypeMapping.java
new file mode 100644
index 0000000..78ffd4f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWTypeMapping.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Date;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Type Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerType <em>Server Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerVesion <em>Server Vesion</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerName <em>Server Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getCreationTime <em>Creation Time</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getLocalType <em>Local Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getRemoteType <em>Remote Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTypeMapping()
+ * @model
+ * @generated
+ */
+public interface LUWTypeMapping extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Server Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Type</em>' attribute.
+ * @see #setServerType(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTypeMapping_ServerType()
+ * @model
+ * @generated
+ */
+ String getServerType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerType <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Type</em>' attribute.
+ * @see #getServerType()
+ * @generated
+ */
+ void setServerType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Server Vesion</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Vesion</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Vesion</em>' attribute.
+ * @see #setServerVesion(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTypeMapping_ServerVesion()
+ * @model
+ * @generated
+ */
+ String getServerVesion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerVesion <em>Server Vesion</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Vesion</em>' attribute.
+ * @see #getServerVesion()
+ * @generated
+ */
+ void setServerVesion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Server Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server Name</em>' attribute.
+ * @see #setServerName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTypeMapping_ServerName()
+ * @model
+ * @generated
+ */
+ String getServerName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getServerName <em>Server Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server Name</em>' attribute.
+ * @see #getServerName()
+ * @generated
+ */
+ void setServerName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Creation Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Creation Time</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Creation Time</em>' attribute.
+ * @see #setCreationTime(Date)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTypeMapping_CreationTime()
+ * @model dataType="org.eclipse.datatools.modelbase.sql.schema.Date"
+ * @generated
+ */
+ Date getCreationTime();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getCreationTime <em>Creation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Creation Time</em>' attribute.
+ * @see #getCreationTime()
+ * @generated
+ */
+ void setCreationTime(Date value);
+
+ /**
+ * Returns the value of the '<em><b>Local Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Local Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Local Type</em>' reference.
+ * @see #setLocalType(PredefinedDataType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTypeMapping_LocalType()
+ * @model required="true"
+ * @generated
+ */
+ PredefinedDataType getLocalType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getLocalType <em>Local Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Local Type</em>' reference.
+ * @see #getLocalType()
+ * @generated
+ */
+ void setLocalType(PredefinedDataType value);
+
+ /**
+ * Returns the value of the '<em><b>Remote Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Remote Type</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Remote Type</em>' reference.
+ * @see #setRemoteType(PredefinedDataType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWTypeMapping_RemoteType()
+ * @model required="true"
+ * @generated
+ */
+ PredefinedDataType getRemoteType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping#getRemoteType <em>Remote Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Remote Type</em>' reference.
+ * @see #getRemoteType()
+ * @generated
+ */
+ void setRemoteType(PredefinedDataType value);
+
+} // LUWTypeMapping
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWUserMapping.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWUserMapping.java
new file mode 100644
index 0000000..dafc79f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWUserMapping.java
@@ -0,0 +1,102 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>User Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getLocalAuthId <em>Local Auth Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getServer <em>Server</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getOptions <em>Options</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWUserMapping()
+ * @model
+ * @generated
+ */
+public interface LUWUserMapping extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Local Auth Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Local Auth Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Local Auth Id</em>' attribute.
+ * @see #setLocalAuthId(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWUserMapping_LocalAuthId()
+ * @model
+ * @generated
+ */
+ String getLocalAuthId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getLocalAuthId <em>Local Auth Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Local Auth Id</em>' attribute.
+ * @see #getLocalAuthId()
+ * @generated
+ */
+ void setLocalAuthId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Server</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getUserMappings <em>User Mappings</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server</em>' container reference.
+ * @see #setServer(LUWServer)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWUserMapping_Server()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getUserMappings
+ * @model opposite="userMappings" required="true"
+ * @generated
+ */
+ LUWServer getServer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping#getServer <em>Server</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Server</em>' container reference.
+ * @see #getServer()
+ * @generated
+ */
+ void setServer(LUWServer value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWUserMapping_Options()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption" containment="true"
+ * @generated
+ */
+ EList getOptions();
+
+} // LUWUserMapping
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWView.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWView.java
new file mode 100644
index 0000000..47548f9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWView.java
@@ -0,0 +1,97 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2View;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>View</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Views
+ *
+ * A view provides a different way of looking at the data in one or more tables; it is a named specification of a result table. The specification is a SELECT statement that is run whenever the view is referenced in an SQL statement. A view has columns and rows just like a base table. All views can be used just like base tables for data retrieval. Whether a view can be used in an insert, update, or delete operation depends on its definition. You can use views to control access to sensitive data, because views allow multiple users to see different presentations of the same data.
+ *
+ * For example, several users may be accessing a table of data about employees. A manager sees data about his or her employees but not employees in another department. A recruitment officer sees the hire dates of all employees, but not their salaries; a financial officer sees the salaries, but not the hire dates. Each of these users works with a view derived from the base table. Each view appears to be a table and has its own name.
+ *
+ * When the column of a view is directly derived from the column of a base table, that view column inherits any constraints that apply to the base table column. For example, if a view includes a foreign key of its base table, insert and update operations using that view are subject to the same referential constraints as is the base table. Also, if the base table of a view is a parent table, delete and update operations using that view are subject to the same rules as are delete and update operations on the base table.
+ *
+ * A view can derive the data type of each column from the result table, or base the types on the attributes of a user-defined structured type. This is called a typed view. Similar to a typed table, a typed view can be part of a view hierarchy. A subview inherits columns from its superview. The term subview applies to a typed view and to all typed views that are below it in the view hierarchy. A proper subview of a view V is a view below V in the typed view hierarchy. A view can become inoperative (for example, if the base table is dropped); if this occurs, the view is no longer available for SQL operations.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isOptimizeQuery <em>Optimize Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWView()
+ * @model
+ * @generated
+ */
+public interface LUWView extends DB2View {
+ /**
+ * Returns the value of the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Federated</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Federated</em>' attribute.
+ * @see #setFederated(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWView_Federated()
+ * @model derived="true"
+ * @generated
+ */
+ boolean isFederated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isFederated <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Federated</em>' attribute.
+ * @see #isFederated()
+ * @generated
+ */
+ void setFederated(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Optimize Query</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optimize Query</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optimize Query</em>' attribute.
+ * @see #setOptimizeQuery(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWView_OptimizeQuery()
+ * @model
+ * @generated
+ */
+ boolean isOptimizeQuery();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView#isOptimizeQuery <em>Optimize Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optimize Query</em>' attribute.
+ * @see #isOptimizeQuery()
+ * @generated
+ */
+ void setOptimizeQuery(boolean value);
+
+} // LUWView
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWWrapper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWWrapper.java
new file mode 100644
index 0000000..1d2413f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/LUWWrapper.java
@@ -0,0 +1,253 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLibrary <em>Library</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#isFenced <em>Fenced</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getWrapperType <em>Wrapper Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getDataSource <em>Data Source</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getDiscoveredLibraries <em>Discovered Libraries</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getServers <em>Servers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLUWDatabase <em>LUW Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getOptions <em>Options</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LUWWrapper extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_Version()
+ * @model
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Library</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Library</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Library</em>' attribute.
+ * @see #setLibrary(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_Library()
+ * @model
+ * @generated
+ */
+ String getLibrary();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLibrary <em>Library</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Library</em>' attribute.
+ * @see #getLibrary()
+ * @generated
+ */
+ void setLibrary(String value);
+
+ /**
+ * Returns the value of the '<em><b>Fenced</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Fenced</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Fenced</em>' attribute.
+ * @see #setFenced(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_Fenced()
+ * @model default="true"
+ * @generated
+ */
+ boolean isFenced();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#isFenced <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fenced</em>' attribute.
+ * @see #isFenced()
+ * @generated
+ */
+ void setFenced(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Wrapper Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Wrapper Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Wrapper Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType
+ * @see #setWrapperType(WrapperType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_WrapperType()
+ * @model
+ * @generated
+ */
+ WrapperType getWrapperType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getWrapperType <em>Wrapper Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Wrapper Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType
+ * @see #getWrapperType()
+ * @generated
+ */
+ void setWrapperType(WrapperType value);
+
+ /**
+ * Returns the value of the '<em><b>Data Source</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Source</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data Source</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource
+ * @see #setDataSource(LUWFederatedDataSource)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_DataSource()
+ * @model
+ * @generated
+ */
+ LUWFederatedDataSource getDataSource();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getDataSource <em>Data Source</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data Source</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource
+ * @see #getDataSource()
+ * @generated
+ */
+ void setDataSource(LUWFederatedDataSource value);
+
+ /**
+ * Returns the value of the '<em><b>Discovered Libraries</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Discovered Libraries</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Discovered Libraries</em>' attribute list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_DiscoveredLibraries()
+ * @model transient="true"
+ * @generated
+ */
+ EList getDiscoveredLibraries();
+
+ /**
+ * Returns the value of the '<em><b>Servers</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getWrapper <em>Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Servers</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Servers</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_Servers()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getWrapper
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer" opposite="wrapper"
+ * @generated
+ */
+ EList getServers();
+
+ /**
+ * Returns the value of the '<em><b>LUW Database</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getWrappers <em>Wrappers</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Database</em>' reference.
+ * @see #setLUWDatabase(LUWDatabase)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_LUWDatabase()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase#getWrappers
+ * @model opposite="wrappers" required="true"
+ * @generated
+ */
+ LUWDatabase getLUWDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper#getLUWDatabase <em>LUW Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LUW Database</em>' reference.
+ * @see #getLUWDatabase()
+ * @generated
+ */
+ void setLUWDatabase(LUWDatabase value);
+
+ /**
+ * Returns the value of the '<em><b>Options</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Options</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Options</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getLUWWrapper_Options()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption" containment="true"
+ * @generated
+ */
+ EList getOptions();
+
+} // LUWWrapper
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/MaintenanceType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/MaintenanceType.java
new file mode 100644
index 0000000..36307a5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/MaintenanceType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: MaintenanceType.java,v 1.7 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Maintenance Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getMaintenanceType()
+ * @model
+ * @generated
+ */
+public final class MaintenanceType extends AbstractEnumerator {
+ /**
+ * The '<em><b>SYSTEM</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SYSTEM_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SYSTEM = 0;
+
+ /**
+ * The '<em><b>USER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USER_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USER = 1;
+
+ /**
+ * The '<em><b>SYSTEM</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SYSTEM</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SYSTEM
+ * @generated
+ * @ordered
+ */
+ public static final MaintenanceType SYSTEM_LITERAL = new MaintenanceType(SYSTEM, "SYSTEM", "SYSTEM"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>USER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USER
+ * @generated
+ * @ordered
+ */
+ public static final MaintenanceType USER_LITERAL = new MaintenanceType(USER, "USER", "USER"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Maintenance Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MaintenanceType[] VALUES_ARRAY =
+ new MaintenanceType[] {
+ SYSTEM_LITERAL,
+ USER_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Maintenance Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Maintenance Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MaintenanceType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MaintenanceType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Maintenance Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MaintenanceType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MaintenanceType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Maintenance Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MaintenanceType get(int value) {
+ switch (value) {
+ case SYSTEM: return SYSTEM_LITERAL;
+ case USER: return USER_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MaintenanceType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //MaintenanceType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ManagementType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ManagementType.java
new file mode 100644
index 0000000..d8b3506
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/ManagementType.java
@@ -0,0 +1,184 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ManagementType.java,v 1.9 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Management Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getManagementType()
+ * @model
+ * @generated
+ */
+public final class ManagementType extends AbstractEnumerator {
+ /**
+ * The '<em><b>SYSTEM MANAGED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SYSTEM_MANAGED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SYSTEM_MANAGED = 0;
+
+ /**
+ * The '<em><b>DATABASE MANAGED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DATABASE_MANAGED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DATABASE_MANAGED = 1;
+
+ /**
+ * The '<em><b>AUTOMATIC STORAGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AUTOMATIC_STORAGE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AUTOMATIC_STORAGE = 2;
+
+ /**
+ * The '<em><b>SYSTEM MANAGED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SYSTEM MANAGED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SYSTEM_MANAGED
+ * @generated
+ * @ordered
+ */
+ public static final ManagementType SYSTEM_MANAGED_LITERAL = new ManagementType(SYSTEM_MANAGED, "SYSTEM_MANAGED", "SYSTEM_MANAGED"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>DATABASE MANAGED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DATABASE MANAGED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DATABASE_MANAGED
+ * @generated
+ * @ordered
+ */
+ public static final ManagementType DATABASE_MANAGED_LITERAL = new ManagementType(DATABASE_MANAGED, "DATABASE_MANAGED", "DATABASE_MANAGED"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>AUTOMATIC STORAGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AUTOMATIC STORAGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AUTOMATIC_STORAGE
+ * @generated
+ * @ordered
+ */
+ public static final ManagementType AUTOMATIC_STORAGE_LITERAL = new ManagementType(AUTOMATIC_STORAGE, "AUTOMATIC_STORAGE", "AUTOMATIC_STORAGE"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Management Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ManagementType[] VALUES_ARRAY =
+ new ManagementType[] {
+ SYSTEM_MANAGED_LITERAL,
+ DATABASE_MANAGED_LITERAL,
+ AUTOMATIC_STORAGE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Management Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Management Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ManagementType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ManagementType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Management Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ManagementType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ManagementType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Management Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ManagementType get(int value) {
+ switch (value) {
+ case SYSTEM_MANAGED: return SYSTEM_MANAGED_LITERAL;
+ case DATABASE_MANAGED: return DATABASE_MANAGED_LITERAL;
+ case AUTOMATIC_STORAGE: return AUTOMATIC_STORAGE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ManagementType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //ManagementType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/MemberStateType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/MemberStateType.java
new file mode 100644
index 0000000..96b0d9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/MemberStateType.java
@@ -0,0 +1,361 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Member State Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getMemberStateType()
+ * @model
+ * @generated
+ */
+public final class MemberStateType extends AbstractEnumerator {
+ /**
+ * The '<em><b>STARTED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STARTED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STARTED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STARTED = 0;
+
+ /**
+ * The '<em><b>STOPPED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STOPPED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STOPPED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STOPPED = 1;
+
+ /**
+ * The '<em><b>RESTARTING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RESTARTING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RESTARTING_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RESTARTING = 2;
+
+ /**
+ * The '<em><b>WAITING FOR FAILBACK</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>WAITING FOR FAILBACK</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #WAITING_FOR_FAILBACK_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int WAITING_FOR_FAILBACK = 3;
+
+ /**
+ * The '<em><b>ERROR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ERROR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ERROR_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ERROR = 4;
+
+ /**
+ * The '<em><b>UNKNOWN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNKNOWN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNKNOWN_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNKNOWN = 5;
+
+ /**
+ * The '<em><b>BECOMING PRIMARY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BECOMING PRIMARY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BECOMING_PRIMARY_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BECOMING_PRIMARY = 6;
+
+ /**
+ * The '<em><b>PRIMARY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PRIMARY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PRIMARY_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PRIMARY = 7;
+
+ /**
+ * The '<em><b>CATCHUP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CATCHUP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CATCHUP_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CATCHUP = 8;
+
+ /**
+ * The '<em><b>PEER</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PEER</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PEER_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PEER = 9;
+
+ /**
+ * The '<em><b>STARTED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STARTED
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType STARTED_LITERAL = new MemberStateType(STARTED, "STARTED", "STARTED"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>STOPPED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STOPPED
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType STOPPED_LITERAL = new MemberStateType(STOPPED, "STOPPED", "STOPPED"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>RESTARTING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RESTARTING
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType RESTARTING_LITERAL = new MemberStateType(RESTARTING, "RESTARTING", "RESTARTING"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>WAITING FOR FAILBACK</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #WAITING_FOR_FAILBACK
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType WAITING_FOR_FAILBACK_LITERAL = new MemberStateType(WAITING_FOR_FAILBACK, "WAITING_FOR_FAILBACK", "WAITING_FOR_FAILBACK"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ERROR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ERROR
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType ERROR_LITERAL = new MemberStateType(ERROR, "ERROR", "ERROR"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>UNKNOWN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNKNOWN
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType UNKNOWN_LITERAL = new MemberStateType(UNKNOWN, "UNKNOWN", "UNKNOWN"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>BECOMING PRIMARY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BECOMING_PRIMARY
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType BECOMING_PRIMARY_LITERAL = new MemberStateType(BECOMING_PRIMARY, "BECOMING_PRIMARY", "BECOMING_PRIMARY"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>PRIMARY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PRIMARY
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType PRIMARY_LITERAL = new MemberStateType(PRIMARY, "PRIMARY", "PRIMARY"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>CATCHUP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CATCHUP
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType CATCHUP_LITERAL = new MemberStateType(CATCHUP, "CATCHUP", "CATCHUP"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>PEER</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PEER
+ * @generated
+ * @ordered
+ */
+ public static final MemberStateType PEER_LITERAL = new MemberStateType(PEER, "PEER", "PEER"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Member State Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final MemberStateType[] VALUES_ARRAY =
+ new MemberStateType[] {
+ STARTED_LITERAL,
+ STOPPED_LITERAL,
+ RESTARTING_LITERAL,
+ WAITING_FOR_FAILBACK_LITERAL,
+ ERROR_LITERAL,
+ UNKNOWN_LITERAL,
+ BECOMING_PRIMARY_LITERAL,
+ PRIMARY_LITERAL,
+ CATCHUP_LITERAL,
+ PEER_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Member State Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Member State Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MemberStateType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MemberStateType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Member State Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MemberStateType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ MemberStateType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Member State Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static MemberStateType get(int value) {
+ switch (value) {
+ case STARTED: return STARTED_LITERAL;
+ case STOPPED: return STOPPED_LITERAL;
+ case RESTARTING: return RESTARTING_LITERAL;
+ case WAITING_FOR_FAILBACK: return WAITING_FOR_FAILBACK_LITERAL;
+ case ERROR: return ERROR_LITERAL;
+ case UNKNOWN: return UNKNOWN_LITERAL;
+ case BECOMING_PRIMARY: return BECOMING_PRIMARY_LITERAL;
+ case PRIMARY: return PRIMARY_LITERAL;
+ case CATCHUP: return CATCHUP_LITERAL;
+ case PEER: return PEER_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private MemberStateType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //MemberStateType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PLSQLPackage.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PLSQLPackage.java
new file mode 100644
index 0000000..3c13840
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PLSQLPackage.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PLSQLPackage.java,v 1.2 2009/03/06 22:38:09 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>PLSQL Package</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage#getPackageBody <em>Package Body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getPLSQLPackage()
+ * @model
+ * @generated
+ */
+public interface PLSQLPackage extends LUWModule, DB2Routine {
+ /**
+ * Returns the value of the '<em><b>Package Body</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody#getPackage <em>Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package Body</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Package Body</em>' containment reference.
+ * @see #setPackageBody(PLSQLPackageBody)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getPLSQLPackage_PackageBody()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody#getPackage
+ * @model opposite="package" containment="true"
+ * @generated
+ */
+ PLSQLPackageBody getPackageBody();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage#getPackageBody <em>Package Body</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Package Body</em>' containment reference.
+ * @see #getPackageBody()
+ * @generated
+ */
+ void setPackageBody(PLSQLPackageBody value);
+
+} // PLSQLPackage
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PLSQLPackageBody.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PLSQLPackageBody.java
new file mode 100644
index 0000000..88d7431
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PLSQLPackageBody.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PLSQLPackageBody.java,v 1.1 2009/02/25 19:05:46 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>PLSQL Package Body</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody#getPackage <em>Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getPLSQLPackageBody()
+ * @model
+ * @generated
+ */
+public interface PLSQLPackageBody extends Source {
+ /**
+ * Returns the value of the '<em><b>Package</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage#getPackageBody <em>Package Body</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Package</em>' container reference.
+ * @see #setPackage(PLSQLPackage)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getPLSQLPackageBody_Package()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage#getPackageBody
+ * @model opposite="packageBody" required="true"
+ * @generated
+ */
+ PLSQLPackage getPackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody#getPackage <em>Package</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Package</em>' container reference.
+ * @see #getPackage()
+ * @generated
+ */
+ void setPackage(PLSQLPackage value);
+
+} // PLSQLPackageBody
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PageSizeType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PageSizeType.java
new file mode 100644
index 0000000..53f0395
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PageSizeType.java
@@ -0,0 +1,321 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PageSizeType.java,v 1.8 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Page Size Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * PAGESIZE integer [K]
+ *
+ * Defines the size of pages used for the bufferpool. The valid values for integer without the suffix K are 4 096, 8 192, 16 384 or 32 768. The valid values for integer with the suffix K are 4, 8, 16 or 32. An error occurs if the page size is not one of these values (SQLSTATE 428DE). The default is 4 096 byte (4K) pages. Any number of spaces is allowed between integer and K, including no space.
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getPageSizeType()
+ * @model
+ * @generated
+ */
+public final class PageSizeType extends AbstractEnumerator {
+ /**
+ * The '<em><b>FOUR K</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOUR_K_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOUR_K = 4096;
+
+ /**
+ * The '<em><b>EIGHT K</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EIGHT_K_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EIGHT_K = 8192;
+
+ /**
+ * The '<em><b>SIXTEEN K</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SIXTEEN_K_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SIXTEEN_K = 16384;
+
+ /**
+ * The '<em><b>THIRTY TWO K</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #THIRTY_TWO_K_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int THIRTY_TWO_K = 32768;
+
+ /**
+ * The '<em><b>FOUR KB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FOUR_KB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int FOUR_KB = 4;
+
+ /**
+ * The '<em><b>EIGHT KB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #EIGHT_KB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int EIGHT_KB = 8;
+
+ /**
+ * The '<em><b>SIXTEEN KB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SIXTEEN_KB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SIXTEEN_KB = 16;
+
+ /**
+ * The '<em><b>THIRTY TWO KB</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #THIRTY_TWO_KB_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int THIRTY_TWO_KB = 32;
+
+ /**
+ * The '<em><b>FOUR K</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOUR K</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOUR_K
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType FOUR_K_LITERAL = new PageSizeType(FOUR_K, "FOUR_K", "FOUR_K"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>EIGHT K</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EIGHT K</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EIGHT_K
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType EIGHT_K_LITERAL = new PageSizeType(EIGHT_K, "EIGHT_K", "EIGHT_K"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>SIXTEEN K</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SIXTEEN K</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SIXTEEN_K
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType SIXTEEN_K_LITERAL = new PageSizeType(SIXTEEN_K, "SIXTEEN_K", "SIXTEEN_K"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>THIRTY TWO K</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>THIRTY TWO K</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #THIRTY_TWO_K
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType THIRTY_TWO_K_LITERAL = new PageSizeType(THIRTY_TWO_K, "THIRTY_TWO_K", "THIRTY_TWO_K"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>FOUR KB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>FOUR KB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #FOUR_KB
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType FOUR_KB_LITERAL = new PageSizeType(FOUR_KB, "FOUR_KB", "FOUR_KB"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>EIGHT KB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>EIGHT KB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #EIGHT_KB
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType EIGHT_KB_LITERAL = new PageSizeType(EIGHT_KB, "EIGHT_KB", "EIGHT_KB"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>SIXTEEN KB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SIXTEEN KB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SIXTEEN_KB
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType SIXTEEN_KB_LITERAL = new PageSizeType(SIXTEEN_KB, "SIXTEEN_KB", "SIXTEEN_KB"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>THIRTY TWO KB</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>THIRTY TWO KB</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #THIRTY_TWO_KB
+ * @generated
+ * @ordered
+ */
+ public static final PageSizeType THIRTY_TWO_KB_LITERAL = new PageSizeType(THIRTY_TWO_KB, "THIRTY_TWO_KB", "THIRTY_TWO_KB"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Page Size Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PageSizeType[] VALUES_ARRAY =
+ new PageSizeType[] {
+ FOUR_K_LITERAL,
+ EIGHT_K_LITERAL,
+ SIXTEEN_K_LITERAL,
+ THIRTY_TWO_K_LITERAL,
+ FOUR_KB_LITERAL,
+ EIGHT_KB_LITERAL,
+ SIXTEEN_KB_LITERAL,
+ THIRTY_TWO_KB_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Page Size Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Page Size Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PageSizeType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PageSizeType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Page Size Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PageSizeType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PageSizeType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Page Size Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PageSizeType get(int value) {
+ switch (value) {
+ case FOUR_K: return FOUR_K_LITERAL;
+ case EIGHT_K: return EIGHT_K_LITERAL;
+ case SIXTEEN_K: return SIXTEEN_K_LITERAL;
+ case THIRTY_TWO_K: return THIRTY_TWO_K_LITERAL;
+ case FOUR_KB: return FOUR_KB_LITERAL;
+ case EIGHT_KB: return EIGHT_KB_LITERAL;
+ case SIXTEEN_KB: return SIXTEEN_KB_LITERAL;
+ case THIRTY_TWO_KB: return THIRTY_TWO_KB_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private PageSizeType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //PageSizeType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PartitionMethod.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PartitionMethod.java
new file mode 100644
index 0000000..003310d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/PartitionMethod.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PartitionMethod.java,v 1.9 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Partition Method</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getPartitionMethod()
+ * @model
+ * @generated
+ */
+public final class PartitionMethod extends AbstractEnumerator {
+ /**
+ * The '<em><b>HASHING</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HASHING_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int HASHING = 0;
+
+ /**
+ * The '<em><b>TABLE REPLICATED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TABLE_REPLICATED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TABLE_REPLICATED = 1;
+
+ /**
+ * The '<em><b>HASHING</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>HASHING</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #HASHING
+ * @generated
+ * @ordered
+ */
+ public static final PartitionMethod HASHING_LITERAL = new PartitionMethod(HASHING, "HASHING", "HASHING"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>TABLE REPLICATED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TABLE REPLICATED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TABLE_REPLICATED
+ * @generated
+ * @ordered
+ */
+ public static final PartitionMethod TABLE_REPLICATED_LITERAL = new PartitionMethod(TABLE_REPLICATED, "TABLE_REPLICATED", "TABLE_REPLICATED"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Partition Method</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final PartitionMethod[] VALUES_ARRAY =
+ new PartitionMethod[] {
+ HASHING_LITERAL,
+ TABLE_REPLICATED_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Partition Method</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Partition Method</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PartitionMethod get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PartitionMethod result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Partition Method</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PartitionMethod getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ PartitionMethod result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Partition Method</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PartitionMethod get(int value) {
+ switch (value) {
+ case HASHING: return HASHING_LITERAL;
+ case TABLE_REPLICATED: return TABLE_REPLICATED_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private PartitionMethod(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //PartitionMethod
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RefreshType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RefreshType.java
new file mode 100644
index 0000000..e843753
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RefreshType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RefreshType.java,v 1.8 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Refresh Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRefreshType()
+ * @model
+ * @generated
+ */
+public final class RefreshType extends AbstractEnumerator {
+ /**
+ * The '<em><b>DEFERRED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DEFERRED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DEFERRED = 0;
+
+ /**
+ * The '<em><b>IMMEDIATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #IMMEDIATE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int IMMEDIATE = 1;
+
+ /**
+ * The '<em><b>DEFERRED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DEFERRED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DEFERRED
+ * @generated
+ * @ordered
+ */
+ public static final RefreshType DEFERRED_LITERAL = new RefreshType(DEFERRED, "DEFERRED", "DEFERRED"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>IMMEDIATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>IMMEDIATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #IMMEDIATE
+ * @generated
+ * @ordered
+ */
+ public static final RefreshType IMMEDIATE_LITERAL = new RefreshType(IMMEDIATE, "IMMEDIATE", "IMMEDIATE"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Refresh Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final RefreshType[] VALUES_ARRAY =
+ new RefreshType[] {
+ DEFERRED_LITERAL,
+ IMMEDIATE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Refresh Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Refresh Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RefreshType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RefreshType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Refresh Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RefreshType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ RefreshType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Refresh Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static RefreshType get(int value) {
+ switch (value) {
+ case DEFERRED: return DEFERRED_LITERAL;
+ case IMMEDIATE: return IMMEDIATE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private RefreshType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //RefreshType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RelationalRemoteDataSet.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RelationalRemoteDataSet.java
new file mode 100644
index 0000000..66ceba3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RelationalRemoteDataSet.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RelationalRemoteDataSet.java,v 1.7 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Remote Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRelationalRemoteDataSet()
+ * @model
+ * @generated
+ */
+public interface RelationalRemoteDataSet extends SQLObject, RemoteDataSet {
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' reference.
+ * @see #setTable(BaseTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRelationalRemoteDataSet_Table()
+ * @model
+ * @generated
+ */
+ BaseTable getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet#getTable <em>Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(BaseTable value);
+
+} // RemoteTable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RelationalRemoteServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RelationalRemoteServer.java
new file mode 100644
index 0000000..a75cc26
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RelationalRemoteServer.java
@@ -0,0 +1,55 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RelationalRemoteServer.java,v 1.7 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Remote Database</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer#getDatabase <em>Database</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRelationalRemoteServer()
+ * @model
+ * @generated
+ */
+public interface RelationalRemoteServer extends SQLObject, RemoteServer {
+ /**
+ * Returns the value of the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Database</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Database</em>' reference.
+ * @see #setDatabase(Database)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRelationalRemoteServer_Database()
+ * @model
+ * @generated
+ */
+ Database getDatabase();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer#getDatabase <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Database</em>' reference.
+ * @see #getDatabase()
+ * @generated
+ */
+ void setDatabase(Database value);
+
+} // RemoteDatabase
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RemoteDataSet.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RemoteDataSet.java
new file mode 100644
index 0000000..01747cd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RemoteDataSet.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RemoteDataSet.java,v 1.8 2008/01/29 00:04:56 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Remote Data Set</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet#getNickname <em>Nickname</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRemoteDataSet()
+ * @model
+ * @generated
+ */
+public interface RemoteDataSet extends EObject {
+ /**
+ * Returns the value of the '<em><b>Nickname</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getRemoteDataSet <em>Remote Data Set</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nickname</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nickname</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRemoteDataSet_Nickname()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname#getRemoteDataSet
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname" opposite="remoteDataSet"
+ * @generated
+ */
+ EList getNickname();
+
+} // RemoteDataSet
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RemoteServer.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RemoteServer.java
new file mode 100644
index 0000000..831a661
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/RemoteServer.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RemoteServer.java,v 1.8 2008/01/29 00:04:56 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Remote Server</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer#getLUWServer <em>LUW Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRemoteServer()
+ * @model
+ * @generated
+ */
+public interface RemoteServer extends EObject {
+ /**
+ * Returns the value of the '<em><b>LUW Server</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getRemoteServer <em>Remote Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>LUW Server</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>LUW Server</em>' reference.
+ * @see #setLUWServer(LUWServer)
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getRemoteServer_LUWServer()
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer#getRemoteServer
+ * @model opposite="remoteServer" required="true"
+ * @generated
+ */
+ LUWServer getLUWServer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer#getLUWServer <em>LUW Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>LUW Server</em>' reference.
+ * @see #getLUWServer()
+ * @generated
+ */
+ void setLUWServer(LUWServer value);
+
+} // RemoteServer
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/SystemType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/SystemType.java
new file mode 100644
index 0000000..3820445
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/SystemType.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>System Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getSystemType()
+ * @model
+ * @generated
+ */
+public final class SystemType extends AbstractEnumerator {
+ /**
+ * The '<em><b>SATA</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SATA</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SATA_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SATA = 0;
+
+ /**
+ * The '<em><b>SAS 10K</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SAS 10K</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SAS_10K_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SAS_10K = 1;
+
+ /**
+ * The '<em><b>SAS 15K</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SAS 15K</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SAS_15K_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SAS_15K = 2;
+
+ /**
+ * The '<em><b>SSD</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SSD</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SSD_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SSD = 3;
+
+ /**
+ * The '<em><b>SATA</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SATA
+ * @generated
+ * @ordered
+ */
+ public static final SystemType SATA_LITERAL = new SystemType(SATA, "SATA", "SATA"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>SAS 10K</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SAS_10K
+ * @generated
+ * @ordered
+ */
+ public static final SystemType SAS_10K_LITERAL = new SystemType(SAS_10K, "SAS_10K", "SAS_10K"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>SAS 15K</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SAS_15K
+ * @generated
+ * @ordered
+ */
+ public static final SystemType SAS_15K_LITERAL = new SystemType(SAS_15K, "SAS_15K", "SAS_15K"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>SSD</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SSD
+ * @generated
+ * @ordered
+ */
+ public static final SystemType SSD_LITERAL = new SystemType(SSD, "SSD", "SSD"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>System Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SystemType[] VALUES_ARRAY =
+ new SystemType[] {
+ SATA_LITERAL,
+ SAS_10K_LITERAL,
+ SAS_15K_LITERAL,
+ SSD_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>System Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>System Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SystemType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SystemType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>System Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SystemType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SystemType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>System Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SystemType get(int value) {
+ switch (value) {
+ case SATA: return SATA_LITERAL;
+ case SAS_10K: return SAS_10K_LITERAL;
+ case SAS_15K: return SAS_15K_LITERAL;
+ case SSD: return SSD_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SystemType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //SystemType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/TableSpaceType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/TableSpaceType.java
new file mode 100644
index 0000000..0ce0e51
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/TableSpaceType.java
@@ -0,0 +1,211 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: TableSpaceType.java,v 1.7 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Table Space Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * DB2 Universal Database SQL Reference Version 8.1 (Vol.1 and 2)
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getTableSpaceType()
+ * @model
+ * @generated
+ */
+public final class TableSpaceType extends AbstractEnumerator {
+ /**
+ * The '<em><b>REGULAR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REGULAR_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REGULAR = 0;
+
+ /**
+ * The '<em><b>LARGE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LARGE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int LARGE = 1;
+
+ /**
+ * The '<em><b>SYSTEM TEMP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SYSTEM_TEMP_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SYSTEM_TEMP = 2;
+
+ /**
+ * The '<em><b>USER TEMP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USER_TEMP_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int USER_TEMP = 3;
+
+ /**
+ * The '<em><b>REGULAR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REGULAR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REGULAR
+ * @generated
+ * @ordered
+ */
+ public static final TableSpaceType REGULAR_LITERAL = new TableSpaceType(REGULAR, "REGULAR", "REGULAR"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>LARGE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>LARGE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #LARGE
+ * @generated
+ * @ordered
+ */
+ public static final TableSpaceType LARGE_LITERAL = new TableSpaceType(LARGE, "LARGE", "LARGE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>SYSTEM TEMP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SYSTEM TEMP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SYSTEM_TEMP
+ * @generated
+ * @ordered
+ */
+ public static final TableSpaceType SYSTEM_TEMP_LITERAL = new TableSpaceType(SYSTEM_TEMP, "SYSTEM_TEMP", "SYSTEM_TEMP"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>USER TEMP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>USER TEMP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USER_TEMP
+ * @generated
+ * @ordered
+ */
+ public static final TableSpaceType USER_TEMP_LITERAL = new TableSpaceType(USER_TEMP, "USER_TEMP", "USER_TEMP"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Table Space Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final TableSpaceType[] VALUES_ARRAY =
+ new TableSpaceType[] {
+ REGULAR_LITERAL,
+ LARGE_LITERAL,
+ SYSTEM_TEMP_LITERAL,
+ USER_TEMP_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Table Space Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Table Space Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TableSpaceType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TableSpaceType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Table Space Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TableSpaceType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ TableSpaceType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Table Space Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TableSpaceType get(int value) {
+ switch (value) {
+ case REGULAR: return REGULAR_LITERAL;
+ case LARGE: return LARGE_LITERAL;
+ case SYSTEM_TEMP: return SYSTEM_TEMP_LITERAL;
+ case USER_TEMP: return USER_TEMP_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private TableSpaceType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //TableSpaceType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/WrapperType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/WrapperType.java
new file mode 100644
index 0000000..1555cf9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/WrapperType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: WrapperType.java,v 1.8 2008/02/05 02:01:24 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Wrapper Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#getWrapperType()
+ * @model
+ * @generated
+ */
+public final class WrapperType extends AbstractEnumerator {
+ /**
+ * The '<em><b>RELATIONAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #RELATIONAL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int RELATIONAL = 0;
+
+ /**
+ * The '<em><b>NON RELATIONAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NON_RELATIONAL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NON_RELATIONAL = 1;
+
+ /**
+ * The '<em><b>RELATIONAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>RELATIONAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #RELATIONAL
+ * @generated
+ * @ordered
+ */
+ public static final WrapperType RELATIONAL_LITERAL = new WrapperType(RELATIONAL, "RELATIONAL", "RELATIONAL"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>NON RELATIONAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NON RELATIONAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NON_RELATIONAL
+ * @generated
+ * @ordered
+ */
+ public static final WrapperType NON_RELATIONAL_LITERAL = new WrapperType(NON_RELATIONAL, "NON_RELATIONAL", "NON_RELATIONAL"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Wrapper Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final WrapperType[] VALUES_ARRAY =
+ new WrapperType[] {
+ RELATIONAL_LITERAL,
+ NON_RELATIONAL_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Wrapper Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Wrapper Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WrapperType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WrapperType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Wrapper Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WrapperType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ WrapperType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Wrapper Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static WrapperType get(int value) {
+ switch (value) {
+ case RELATIONAL: return RELATIONAL_LITERAL;
+ case NON_RELATIONAL: return NON_RELATIONAL_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private WrapperType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //WrapperType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/ArrayIndexElementTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/ArrayIndexElementTypeImpl.java
new file mode 100644
index 0000000..cbcc1fb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/ArrayIndexElementTypeImpl.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.ElementTypeImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Array Index Element Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.ArrayIndexElementTypeImpl#getLUWArrayDataType <em>LUW Array Data Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArrayIndexElementTypeImpl extends ElementTypeImpl implements ArrayIndexElementType {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArrayIndexElementTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.ARRAY_INDEX_ELEMENT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWArrayDataType getLUWArrayDataType() {
+ if (eContainerFeatureID() != LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE) return null;
+ return (LUWArrayDataType)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWArrayDataType(LUWArrayDataType newLUWArrayDataType, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newLUWArrayDataType, LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWArrayDataType(LUWArrayDataType newLUWArrayDataType) {
+ if (newLUWArrayDataType != eInternalContainer() || (eContainerFeatureID() != LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE && newLUWArrayDataType != null)) {
+ if (EcoreUtil.isAncestor(this, newLUWArrayDataType))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newLUWArrayDataType != null)
+ msgs = ((InternalEObject)newLUWArrayDataType).eInverseAdd(this, LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE, LUWArrayDataType.class, msgs);
+ msgs = basicSetLUWArrayDataType(newLUWArrayDataType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE, newLUWArrayDataType, newLUWArrayDataType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetLUWArrayDataType((LUWArrayDataType)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE:
+ return basicSetLUWArrayDataType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE, LUWArrayDataType.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE:
+ return getLUWArrayDataType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE:
+ setLUWArrayDataType((LUWArrayDataType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE:
+ setLUWArrayDataType((LUWArrayDataType)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE:
+ return getLUWArrayDataType() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArrayIndexElementTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/FederatedParameterImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/FederatedParameterImpl.java
new file mode 100644
index 0000000..9dcf4c2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/FederatedParameterImpl.java
@@ -0,0 +1,365 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FederatedParameterImpl.java,v 1.6 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.impl.ParameterImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Federated Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl#getRemoteCodePage <em>Remote Code Page</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl#getRemoteParamTypeID <em>Remote Param Type ID</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl#getFederatedProcedure <em>Federated Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedParameterImpl#getRemoteParameter <em>Remote Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FederatedParameterImpl extends ParameterImpl implements FederatedParameter {
+ /**
+ * The default value of the '{@link #getRemoteCodePage() <em>Remote Code Page</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteCodePage()
+ * @generated
+ * @ordered
+ */
+ protected static final int REMOTE_CODE_PAGE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getRemoteCodePage() <em>Remote Code Page</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteCodePage()
+ * @generated
+ * @ordered
+ */
+ protected int remoteCodePage = REMOTE_CODE_PAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteParamTypeID() <em>Remote Param Type ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteParamTypeID()
+ * @generated
+ * @ordered
+ */
+ protected static final int REMOTE_PARAM_TYPE_ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getRemoteParamTypeID() <em>Remote Param Type ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteParamTypeID()
+ * @generated
+ * @ordered
+ */
+ protected int remoteParamTypeID = REMOTE_PARAM_TYPE_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFederatedProcedure() <em>Federated Procedure</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFederatedProcedure()
+ * @generated
+ * @ordered
+ */
+ protected FederatedProcedure federatedProcedure;
+
+ /**
+ * The cached value of the '{@link #getRemoteParameter() <em>Remote Parameter</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteParameter()
+ * @generated
+ * @ordered
+ */
+ protected EList remoteParameter;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FederatedParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.FEDERATED_PARAMETER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getRemoteCodePage() {
+ return remoteCodePage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteCodePage(int newRemoteCodePage) {
+ int oldRemoteCodePage = remoteCodePage;
+ remoteCodePage = newRemoteCodePage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PARAMETER__REMOTE_CODE_PAGE, oldRemoteCodePage, remoteCodePage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getRemoteParamTypeID() {
+ return remoteParamTypeID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteParamTypeID(int newRemoteParamTypeID) {
+ int oldRemoteParamTypeID = remoteParamTypeID;
+ remoteParamTypeID = newRemoteParamTypeID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID, oldRemoteParamTypeID, remoteParamTypeID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FederatedProcedure getFederatedProcedure() {
+ if (federatedProcedure != null && federatedProcedure.eIsProxy()) {
+ InternalEObject oldFederatedProcedure = (InternalEObject)federatedProcedure;
+ federatedProcedure = (FederatedProcedure)eResolveProxy(oldFederatedProcedure);
+ if (federatedProcedure != oldFederatedProcedure) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE, oldFederatedProcedure, federatedProcedure));
+ }
+ }
+ return federatedProcedure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FederatedProcedure basicGetFederatedProcedure() {
+ return federatedProcedure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFederatedProcedure(FederatedProcedure newFederatedProcedure, NotificationChain msgs) {
+ FederatedProcedure oldFederatedProcedure = federatedProcedure;
+ federatedProcedure = newFederatedProcedure;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE, oldFederatedProcedure, newFederatedProcedure);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFederatedProcedure(FederatedProcedure newFederatedProcedure) {
+ if (newFederatedProcedure != federatedProcedure) {
+ NotificationChain msgs = null;
+ if (federatedProcedure != null)
+ msgs = ((InternalEObject)federatedProcedure).eInverseRemove(this, LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER, FederatedProcedure.class, msgs);
+ if (newFederatedProcedure != null)
+ msgs = ((InternalEObject)newFederatedProcedure).eInverseAdd(this, LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER, FederatedProcedure.class, msgs);
+ msgs = basicSetFederatedProcedure(newFederatedProcedure, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE, newFederatedProcedure, newFederatedProcedure));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRemoteParameter() {
+ if (remoteParameter == null) {
+ remoteParameter = new EObjectResolvingEList(Parameter.class, this, LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAMETER);
+ }
+ return remoteParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE:
+ if (federatedProcedure != null)
+ msgs = ((InternalEObject)federatedProcedure).eInverseRemove(this, LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER, FederatedProcedure.class, msgs);
+ return basicSetFederatedProcedure((FederatedProcedure)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE:
+ return basicSetFederatedProcedure(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_CODE_PAGE:
+ return new Integer(getRemoteCodePage());
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID:
+ return new Integer(getRemoteParamTypeID());
+ case LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE:
+ if (resolve) return getFederatedProcedure();
+ return basicGetFederatedProcedure();
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAMETER:
+ return getRemoteParameter();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_CODE_PAGE:
+ setRemoteCodePage(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID:
+ setRemoteParamTypeID(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE:
+ setFederatedProcedure((FederatedProcedure)newValue);
+ return;
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAMETER:
+ getRemoteParameter().clear();
+ getRemoteParameter().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_CODE_PAGE:
+ setRemoteCodePage(REMOTE_CODE_PAGE_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID:
+ setRemoteParamTypeID(REMOTE_PARAM_TYPE_ID_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE:
+ setFederatedProcedure((FederatedProcedure)null);
+ return;
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAMETER:
+ getRemoteParameter().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_CODE_PAGE:
+ return remoteCodePage != REMOTE_CODE_PAGE_EDEFAULT;
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID:
+ return remoteParamTypeID != REMOTE_PARAM_TYPE_ID_EDEFAULT;
+ case LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE:
+ return federatedProcedure != null;
+ case LUWPackage.FEDERATED_PARAMETER__REMOTE_PARAMETER:
+ return remoteParameter != null && !remoteParameter.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (remoteCodePage: "); //$NON-NLS-1$
+ result.append(remoteCodePage);
+ result.append(", remoteParamTypeID: "); //$NON-NLS-1$
+ result.append(remoteParamTypeID);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FederatedParameterImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/FederatedProcedureImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/FederatedProcedureImpl.java
new file mode 100644
index 0000000..e725a5e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/FederatedProcedureImpl.java
@@ -0,0 +1,729 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FederatedProcedureImpl.java,v 1.6 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Federated Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getRemoteUniqueId <em>Remote Unique Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getRemoteServer <em>Remote Server</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getRemoteSchema <em>Remote Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getRemotePackage <em>Remote Package</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getRemoteProcedureName <em>Remote Procedure Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getNumberOfParameters <em>Number Of Parameters</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getResultSetsToClient <em>Result Sets To Client</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getNumberOfRefCursors <em>Number Of Ref Cursors</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#isAllResultSetsToCaller <em>All Result Sets To Caller</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getFederatedProcedure <em>Federated Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getRemoteProcedure <em>Remote Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.FederatedProcedureImpl#getFederatedParameter <em>Federated Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FederatedProcedureImpl extends DB2ProcedureImpl implements FederatedProcedure {
+ /**
+ * The default value of the '{@link #getRemoteUniqueId() <em>Remote Unique Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteUniqueId()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_UNIQUE_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemoteUniqueId() <em>Remote Unique Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteUniqueId()
+ * @generated
+ * @ordered
+ */
+ protected String remoteUniqueId = REMOTE_UNIQUE_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteServer() <em>Remote Server</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteServer()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_SERVER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemoteServer() <em>Remote Server</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteServer()
+ * @generated
+ * @ordered
+ */
+ protected String remoteServer = REMOTE_SERVER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteSchema() <em>Remote Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteSchema()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_SCHEMA_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemoteSchema() <em>Remote Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteSchema()
+ * @generated
+ * @ordered
+ */
+ protected String remoteSchema = REMOTE_SCHEMA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemotePackage() <em>Remote Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemotePackage()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_PACKAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemotePackage() <em>Remote Package</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemotePackage()
+ * @generated
+ * @ordered
+ */
+ protected String remotePackage = REMOTE_PACKAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteProcedureName() <em>Remote Procedure Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteProcedureName()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_PROCEDURE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemoteProcedureName() <em>Remote Procedure Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteProcedureName()
+ * @generated
+ * @ordered
+ */
+ protected String remoteProcedureName = REMOTE_PROCEDURE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNumberOfParameters() <em>Number Of Parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfParameters()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUMBER_OF_PARAMETERS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNumberOfParameters() <em>Number Of Parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfParameters()
+ * @generated
+ * @ordered
+ */
+ protected int numberOfParameters = NUMBER_OF_PARAMETERS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getResultSetsToClient() <em>Result Sets To Client</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResultSetsToClient()
+ * @generated
+ * @ordered
+ */
+ protected static final String RESULT_SETS_TO_CLIENT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getResultSetsToClient() <em>Result Sets To Client</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getResultSetsToClient()
+ * @generated
+ * @ordered
+ */
+ protected String resultSetsToClient = RESULT_SETS_TO_CLIENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNumberOfRefCursors() <em>Number Of Ref Cursors</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfRefCursors()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUMBER_OF_REF_CURSORS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNumberOfRefCursors() <em>Number Of Ref Cursors</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfRefCursors()
+ * @generated
+ * @ordered
+ */
+ protected int numberOfRefCursors = NUMBER_OF_REF_CURSORS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAllResultSetsToCaller() <em>All Result Sets To Caller</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllResultSetsToCaller()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ALL_RESULT_SETS_TO_CALLER_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAllResultSetsToCaller() <em>All Result Sets To Caller</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllResultSetsToCaller()
+ * @generated
+ * @ordered
+ */
+ protected boolean allResultSetsToCaller = ALL_RESULT_SETS_TO_CALLER_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFederatedProcedure() <em>Federated Procedure</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFederatedProcedure()
+ * @generated
+ * @ordered
+ */
+ protected EList federatedProcedure;
+
+ /**
+ * The cached value of the '{@link #getRemoteProcedure() <em>Remote Procedure</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteProcedure()
+ * @generated
+ * @ordered
+ */
+ protected EList remoteProcedure;
+
+ /**
+ * The cached value of the '{@link #getFederatedParameter() <em>Federated Parameter</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFederatedParameter()
+ * @generated
+ * @ordered
+ */
+ protected EList federatedParameter;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FederatedProcedureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.FEDERATED_PROCEDURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteUniqueId() {
+ return remoteUniqueId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteUniqueId(String newRemoteUniqueId) {
+ String oldRemoteUniqueId = remoteUniqueId;
+ remoteUniqueId = newRemoteUniqueId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID, oldRemoteUniqueId, remoteUniqueId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteServer() {
+ return remoteServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteServer(String newRemoteServer) {
+ String oldRemoteServer = remoteServer;
+ remoteServer = newRemoteServer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__REMOTE_SERVER, oldRemoteServer, remoteServer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteSchema() {
+ return remoteSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteSchema(String newRemoteSchema) {
+ String oldRemoteSchema = remoteSchema;
+ remoteSchema = newRemoteSchema;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__REMOTE_SCHEMA, oldRemoteSchema, remoteSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemotePackage() {
+ return remotePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemotePackage(String newRemotePackage) {
+ String oldRemotePackage = remotePackage;
+ remotePackage = newRemotePackage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__REMOTE_PACKAGE, oldRemotePackage, remotePackage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteProcedureName() {
+ return remoteProcedureName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteProcedureName(String newRemoteProcedureName) {
+ String oldRemoteProcedureName = remoteProcedureName;
+ remoteProcedureName = newRemoteProcedureName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME, oldRemoteProcedureName, remoteProcedureName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getNumberOfParameters() {
+ return numberOfParameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfParameters(int newNumberOfParameters) {
+ int oldNumberOfParameters = numberOfParameters;
+ numberOfParameters = newNumberOfParameters;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS, oldNumberOfParameters, numberOfParameters));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getResultSetsToClient() {
+ return resultSetsToClient;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setResultSetsToClient(String newResultSetsToClient) {
+ String oldResultSetsToClient = resultSetsToClient;
+ resultSetsToClient = newResultSetsToClient;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT, oldResultSetsToClient, resultSetsToClient));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getNumberOfRefCursors() {
+ return numberOfRefCursors;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfRefCursors(int newNumberOfRefCursors) {
+ int oldNumberOfRefCursors = numberOfRefCursors;
+ numberOfRefCursors = newNumberOfRefCursors;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS, oldNumberOfRefCursors, numberOfRefCursors));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAllResultSetsToCaller() {
+ return allResultSetsToCaller;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAllResultSetsToCaller(boolean newAllResultSetsToCaller) {
+ boolean oldAllResultSetsToCaller = allResultSetsToCaller;
+ allResultSetsToCaller = newAllResultSetsToCaller;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER, oldAllResultSetsToCaller, allResultSetsToCaller));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getFederatedProcedure() {
+ if (federatedProcedure == null) {
+ federatedProcedure = new EObjectResolvingEList(FederatedProcedure.class, this, LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PROCEDURE);
+ }
+ return federatedProcedure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRemoteProcedure() {
+ if (remoteProcedure == null) {
+ remoteProcedure = new EObjectResolvingEList(Procedure.class, this, LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE);
+ }
+ return remoteProcedure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getFederatedParameter() {
+ if (federatedParameter == null) {
+ federatedParameter = new EObjectWithInverseResolvingEList(FederatedParameter.class, this, LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER, LUWPackage.FEDERATED_PARAMETER__FEDERATED_PROCEDURE);
+ }
+ return federatedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER:
+ return ((InternalEList)getFederatedParameter()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER:
+ return ((InternalEList)getFederatedParameter()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID:
+ return getRemoteUniqueId();
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SERVER:
+ return getRemoteServer();
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SCHEMA:
+ return getRemoteSchema();
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PACKAGE:
+ return getRemotePackage();
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME:
+ return getRemoteProcedureName();
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS:
+ return new Integer(getNumberOfParameters());
+ case LUWPackage.FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT:
+ return getResultSetsToClient();
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS:
+ return new Integer(getNumberOfRefCursors());
+ case LUWPackage.FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER:
+ return isAllResultSetsToCaller() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PROCEDURE:
+ return getFederatedProcedure();
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE:
+ return getRemoteProcedure();
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER:
+ return getFederatedParameter();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID:
+ setRemoteUniqueId((String)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SERVER:
+ setRemoteServer((String)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SCHEMA:
+ setRemoteSchema((String)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PACKAGE:
+ setRemotePackage((String)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME:
+ setRemoteProcedureName((String)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS:
+ setNumberOfParameters(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT:
+ setResultSetsToClient((String)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS:
+ setNumberOfRefCursors(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER:
+ setAllResultSetsToCaller(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PROCEDURE:
+ getFederatedProcedure().clear();
+ getFederatedProcedure().addAll((Collection)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE:
+ getRemoteProcedure().clear();
+ getRemoteProcedure().addAll((Collection)newValue);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER:
+ getFederatedParameter().clear();
+ getFederatedParameter().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID:
+ setRemoteUniqueId(REMOTE_UNIQUE_ID_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SERVER:
+ setRemoteServer(REMOTE_SERVER_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SCHEMA:
+ setRemoteSchema(REMOTE_SCHEMA_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PACKAGE:
+ setRemotePackage(REMOTE_PACKAGE_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME:
+ setRemoteProcedureName(REMOTE_PROCEDURE_NAME_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS:
+ setNumberOfParameters(NUMBER_OF_PARAMETERS_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT:
+ setResultSetsToClient(RESULT_SETS_TO_CLIENT_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS:
+ setNumberOfRefCursors(NUMBER_OF_REF_CURSORS_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER:
+ setAllResultSetsToCaller(ALL_RESULT_SETS_TO_CALLER_EDEFAULT);
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PROCEDURE:
+ getFederatedProcedure().clear();
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE:
+ getRemoteProcedure().clear();
+ return;
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER:
+ getFederatedParameter().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID:
+ return REMOTE_UNIQUE_ID_EDEFAULT == null ? remoteUniqueId != null : !REMOTE_UNIQUE_ID_EDEFAULT.equals(remoteUniqueId);
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SERVER:
+ return REMOTE_SERVER_EDEFAULT == null ? remoteServer != null : !REMOTE_SERVER_EDEFAULT.equals(remoteServer);
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_SCHEMA:
+ return REMOTE_SCHEMA_EDEFAULT == null ? remoteSchema != null : !REMOTE_SCHEMA_EDEFAULT.equals(remoteSchema);
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PACKAGE:
+ return REMOTE_PACKAGE_EDEFAULT == null ? remotePackage != null : !REMOTE_PACKAGE_EDEFAULT.equals(remotePackage);
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME:
+ return REMOTE_PROCEDURE_NAME_EDEFAULT == null ? remoteProcedureName != null : !REMOTE_PROCEDURE_NAME_EDEFAULT.equals(remoteProcedureName);
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS:
+ return numberOfParameters != NUMBER_OF_PARAMETERS_EDEFAULT;
+ case LUWPackage.FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT:
+ return RESULT_SETS_TO_CLIENT_EDEFAULT == null ? resultSetsToClient != null : !RESULT_SETS_TO_CLIENT_EDEFAULT.equals(resultSetsToClient);
+ case LUWPackage.FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS:
+ return numberOfRefCursors != NUMBER_OF_REF_CURSORS_EDEFAULT;
+ case LUWPackage.FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER:
+ return allResultSetsToCaller != ALL_RESULT_SETS_TO_CALLER_EDEFAULT;
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PROCEDURE:
+ return federatedProcedure != null && !federatedProcedure.isEmpty();
+ case LUWPackage.FEDERATED_PROCEDURE__REMOTE_PROCEDURE:
+ return remoteProcedure != null && !remoteProcedure.isEmpty();
+ case LUWPackage.FEDERATED_PROCEDURE__FEDERATED_PARAMETER:
+ return federatedParameter != null && !federatedParameter.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (remoteUniqueId: "); //$NON-NLS-1$
+ result.append(remoteUniqueId);
+ result.append(", remoteServer: "); //$NON-NLS-1$
+ result.append(remoteServer);
+ result.append(", remoteSchema: "); //$NON-NLS-1$
+ result.append(remoteSchema);
+ result.append(", remotePackage: "); //$NON-NLS-1$
+ result.append(remotePackage);
+ result.append(", remoteProcedureName: "); //$NON-NLS-1$
+ result.append(remoteProcedureName);
+ result.append(", numberOfParameters: "); //$NON-NLS-1$
+ result.append(numberOfParameters);
+ result.append(", resultSetsToClient: "); //$NON-NLS-1$
+ result.append(resultSetsToClient);
+ result.append(", numberOfRefCursors: "); //$NON-NLS-1$
+ result.append(numberOfRefCursors);
+ result.append(", allResultSetsToCaller: "); //$NON-NLS-1$
+ result.append(allResultSetsToCaller);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FederatedProcedureImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWAdminServerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWAdminServerImpl.java
new file mode 100644
index 0000000..92fc261
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWAdminServerImpl.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAdminServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Admin Server</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAdminServerImpl#getInstances <em>Instances</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWAdminServerImpl extends SQLObjectImpl implements LUWAdminServer {
+ /**
+ * The cached value of the '{@link #getInstances() <em>Instances</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstances()
+ * @generated
+ * @ordered
+ */
+ protected EList instances;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWAdminServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_ADMIN_SERVER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getInstances() {
+ if (instances == null) {
+ instances = new EObjectWithInverseResolvingEList.ManyInverse(DB2DatabaseManager.class, this, LUWPackage.LUW_ADMIN_SERVER__INSTANCES, DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER);
+ }
+ return instances;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_ADMIN_SERVER__INSTANCES:
+ return ((InternalEList)getInstances()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_ADMIN_SERVER__INSTANCES:
+ return ((InternalEList)getInstances()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_ADMIN_SERVER__INSTANCES:
+ return getInstances();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_ADMIN_SERVER__INSTANCES:
+ getInstances().clear();
+ getInstances().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ADMIN_SERVER__INSTANCES:
+ getInstances().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ADMIN_SERVER__INSTANCES:
+ return instances != null && !instances.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWAdminServerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWArrayDataTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWArrayDataTypeImpl.java
new file mode 100644
index 0000000..da60233
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWArrayDataTypeImpl.java
@@ -0,0 +1,383 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWArrayDataTypeImpl.java,v 1.1 2009/02/16 19:01:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedTypeOrdering;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Array Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl#getOrdering <em>Ordering</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWArrayDataTypeImpl#getArrayIndexElementType <em>Array Index Element Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWArrayDataTypeImpl extends ArrayDataTypeImpl implements LUWArrayDataType {
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected Schema schema;
+
+ /**
+ * The cached value of the '{@link #getOrdering() <em>Ordering</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrdering()
+ * @generated
+ * @ordered
+ */
+ protected UserDefinedTypeOrdering ordering;
+
+ /**
+ * The cached value of the '{@link #getArrayIndexElementType() <em>Array Index Element Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getArrayIndexElementType()
+ * @generated
+ * @ordered
+ */
+ protected ArrayIndexElementType arrayIndexElementType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWArrayDataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_ARRAY_DATA_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+ Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES, Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES, Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UserDefinedTypeOrdering getOrdering() {
+ return ordering;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOrdering(UserDefinedTypeOrdering newOrdering, NotificationChain msgs) {
+ UserDefinedTypeOrdering oldOrdering = ordering;
+ ordering = newOrdering;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING, oldOrdering, newOrdering);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrdering(UserDefinedTypeOrdering newOrdering) {
+ if (newOrdering != ordering) {
+ NotificationChain msgs = null;
+ if (ordering != null)
+ msgs = ((InternalEObject)ordering).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING, null, msgs);
+ if (newOrdering != null)
+ msgs = ((InternalEObject)newOrdering).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING, null, msgs);
+ msgs = basicSetOrdering(newOrdering, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING, newOrdering, newOrdering));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArrayIndexElementType getArrayIndexElementType() {
+ return arrayIndexElementType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetArrayIndexElementType(ArrayIndexElementType newArrayIndexElementType, NotificationChain msgs) {
+ ArrayIndexElementType oldArrayIndexElementType = arrayIndexElementType;
+ arrayIndexElementType = newArrayIndexElementType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE, oldArrayIndexElementType, newArrayIndexElementType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setArrayIndexElementType(ArrayIndexElementType newArrayIndexElementType) {
+ if (newArrayIndexElementType != arrayIndexElementType) {
+ NotificationChain msgs = null;
+ if (arrayIndexElementType != null)
+ msgs = ((InternalEObject)arrayIndexElementType).eInverseRemove(this, LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE, ArrayIndexElementType.class, msgs);
+ if (newArrayIndexElementType != null)
+ msgs = ((InternalEObject)newArrayIndexElementType).eInverseAdd(this, LUWPackage.ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE, ArrayIndexElementType.class, msgs);
+ msgs = basicSetArrayIndexElementType(newArrayIndexElementType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE, newArrayIndexElementType, newArrayIndexElementType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES, Schema.class, msgs);
+ return basicSetSchema((Schema)otherEnd, msgs);
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE:
+ if (arrayIndexElementType != null)
+ msgs = ((InternalEObject)arrayIndexElementType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE, null, msgs);
+ return basicSetArrayIndexElementType((ArrayIndexElementType)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA:
+ return basicSetSchema(null, msgs);
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING:
+ return basicSetOrdering(null, msgs);
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE:
+ return basicSetArrayIndexElementType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING:
+ return getOrdering();
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE:
+ return getArrayIndexElementType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA:
+ setSchema((Schema)newValue);
+ return;
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING:
+ setOrdering((UserDefinedTypeOrdering)newValue);
+ return;
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE:
+ setArrayIndexElementType((ArrayIndexElementType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA:
+ setSchema((Schema)null);
+ return;
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING:
+ setOrdering((UserDefinedTypeOrdering)null);
+ return;
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE:
+ setArrayIndexElementType((ArrayIndexElementType)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA:
+ return schema != null;
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING:
+ return ordering != null;
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE:
+ return arrayIndexElementType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == UserDefinedType.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA: return SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA;
+ case LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING: return SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == UserDefinedType.class) {
+ switch (baseFeatureID) {
+ case SQLDataTypesPackage.USER_DEFINED_TYPE__SCHEMA: return LUWPackage.LUW_ARRAY_DATA_TYPE__SCHEMA;
+ case SQLDataTypesPackage.USER_DEFINED_TYPE__ORDERING: return LUWPackage.LUW_ARRAY_DATA_TYPE__ORDERING;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+} //LUWArrayDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWAttributeDefinitionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWAttributeDefinitionImpl.java
new file mode 100644
index 0000000..37706ec
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWAttributeDefinitionImpl.java
@@ -0,0 +1,213 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWAttributeDefinitionImpl.java,v 1.6 2008/01/29 00:04:54 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.AttributeDefinitionImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Attribute Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAttributeDefinitionImpl#isLOBLogged <em>LOB Logged</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWAttributeDefinitionImpl#isLOBCompacted <em>LOB Compacted</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWAttributeDefinitionImpl extends AttributeDefinitionImpl implements LUWAttributeDefinition {
+ /**
+ * The default value of the '{@link #isLOBLogged() <em>LOB Logged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLOBLogged()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOB_LOGGED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isLOBLogged() <em>LOB Logged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLOBLogged()
+ * @generated
+ * @ordered
+ */
+ protected boolean lobLogged = LOB_LOGGED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isLOBCompacted() <em>LOB Compacted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLOBCompacted()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOB_COMPACTED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isLOBCompacted() <em>LOB Compacted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLOBCompacted()
+ * @generated
+ * @ordered
+ */
+ protected boolean lobCompacted = LOB_COMPACTED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWAttributeDefinitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_ATTRIBUTE_DEFINITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLOBLogged() {
+ return lobLogged;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLOBLogged(boolean newLOBLogged) {
+ boolean oldLOBLogged = lobLogged;
+ lobLogged = newLOBLogged;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED, oldLOBLogged, lobLogged));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLOBCompacted() {
+ return lobCompacted;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLOBCompacted(boolean newLOBCompacted) {
+ boolean oldLOBCompacted = lobCompacted;
+ lobCompacted = newLOBCompacted;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED, oldLOBCompacted, lobCompacted));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED:
+ return isLOBLogged() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED:
+ return isLOBCompacted() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED:
+ setLOBLogged(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED:
+ setLOBCompacted(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED:
+ setLOBLogged(LOB_LOGGED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED:
+ setLOBCompacted(LOB_COMPACTED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED:
+ return lobLogged != LOB_LOGGED_EDEFAULT;
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED:
+ return lobCompacted != LOB_COMPACTED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (LOBLogged: "); //$NON-NLS-1$
+ result.append(lobLogged);
+ result.append(", LOBCompacted: "); //$NON-NLS-1$
+ result.append(lobCompacted);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWAttributeDefinitionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWBufferPoolImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWBufferPoolImpl.java
new file mode 100644
index 0000000..881ff5e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWBufferPoolImpl.java
@@ -0,0 +1,761 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Buffer Pool</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getCreateType <em>Create Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getPageSize <em>Page Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getBlockSize <em>Block Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getNumBlockPages <em>Num Block Pages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#isExtendedStorage <em>Extended Storage</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#isAutomatic <em>Automatic</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getTableSpaces <em>Table Spaces</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getPartitions <em>Partitions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getPartitionGroup <em>Partition Group</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolImpl#getSizeException <em>Size Exception</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWBufferPoolImpl extends SQLObjectImpl implements LUWBufferPool {
+ /**
+ * The default value of the '{@link #getCreateType() <em>Create Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreateType()
+ * @generated
+ * @ordered
+ */
+ protected static final BufferPoolType CREATE_TYPE_EDEFAULT = BufferPoolType.IMMEDIATE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getCreateType() <em>Create Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreateType()
+ * @generated
+ * @ordered
+ */
+ protected BufferPoolType createType = CREATE_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected int size = SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPageSize() <em>Page Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPageSize()
+ * @generated
+ * @ordered
+ */
+ protected static final PageSizeType PAGE_SIZE_EDEFAULT= PageSizeType.FOUR_K_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getPageSize() <em>Page Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPageSize()
+ * @generated
+ * @ordered
+ */
+ protected PageSizeType pageSize = PAGE_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBlockSize() <em>Block Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlockSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int BLOCK_SIZE_EDEFAULT = 32;
+
+ /**
+ * The cached value of the '{@link #getBlockSize() <em>Block Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlockSize()
+ * @generated
+ * @ordered
+ */
+ protected int blockSize = BLOCK_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNumBlockPages() <em>Num Block Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumBlockPages()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_BLOCK_PAGES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNumBlockPages() <em>Num Block Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumBlockPages()
+ * @generated
+ * @ordered
+ */
+ protected int numBlockPages = NUM_BLOCK_PAGES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isExtendedStorage() <em>Extended Storage</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExtendedStorage()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXTENDED_STORAGE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isExtendedStorage() <em>Extended Storage</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExtendedStorage()
+ * @generated
+ * @ordered
+ */
+ protected boolean extendedStorage = EXTENDED_STORAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAutomatic() <em>Automatic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAutomatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean AUTOMATIC_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isAutomatic() <em>Automatic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAutomatic()
+ * @generated
+ * @ordered
+ */
+ protected boolean automatic = AUTOMATIC_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTableSpaces() <em>Table Spaces</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTableSpaces()
+ * @generated
+ * @ordered
+ */
+ protected EList tableSpaces;
+
+ /**
+ * The cached value of the '{@link #getPartitions() <em>Partitions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitions()
+ * @generated
+ * @ordered
+ */
+ protected EList partitions;
+
+ /**
+ * The cached value of the '{@link #getPartitionGroup() <em>Partition Group</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionGroup()
+ * @generated
+ * @ordered
+ */
+ protected EList partitionGroup;
+
+ /**
+ * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDatabase()
+ * @generated
+ * @ordered
+ */
+ protected LUWDatabase database;
+
+ /**
+ * The cached value of the '{@link #getSizeException() <em>Size Exception</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeException()
+ * @generated
+ * @ordered
+ */
+ protected EList sizeException;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWBufferPoolImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_BUFFER_POOL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BufferPoolType getCreateType() {
+ return createType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreateType(BufferPoolType newCreateType) {
+ BufferPoolType oldCreateType = createType;
+ createType = newCreateType == null ? CREATE_TYPE_EDEFAULT : newCreateType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__CREATE_TYPE, oldCreateType, createType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(int newSize) {
+ int oldSize = size;
+ size = newSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__SIZE, oldSize, size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PageSizeType getPageSize() {
+ return pageSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPageSize(PageSizeType newPageSize) {
+ PageSizeType oldPageSize = pageSize;
+ pageSize = newPageSize == null ? PAGE_SIZE_EDEFAULT : newPageSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__PAGE_SIZE, oldPageSize, pageSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getBlockSize() {
+ return blockSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBlockSize(int newBlockSize) {
+ int oldBlockSize = blockSize;
+ blockSize = newBlockSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__BLOCK_SIZE, oldBlockSize, blockSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getNumBlockPages() {
+ return numBlockPages;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumBlockPages(int newNumBlockPages) {
+ int oldNumBlockPages = numBlockPages;
+ numBlockPages = newNumBlockPages;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__NUM_BLOCK_PAGES, oldNumBlockPages, numBlockPages));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isExtendedStorage() {
+ return extendedStorage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExtendedStorage(boolean newExtendedStorage) {
+ boolean oldExtendedStorage = extendedStorage;
+ extendedStorage = newExtendedStorage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__EXTENDED_STORAGE, oldExtendedStorage, extendedStorage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAutomatic() {
+ return automatic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAutomatic(boolean newAutomatic) {
+ boolean oldAutomatic = automatic;
+ automatic = newAutomatic;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__AUTOMATIC, oldAutomatic, automatic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTableSpaces() {
+ if (tableSpaces == null) {
+ tableSpaces = new EObjectWithInverseResolvingEList(LUWTableSpace.class, this, LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES, LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL);
+ }
+ return tableSpaces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitions() {
+ if (partitions == null) {
+ partitions = new EObjectWithInverseResolvingEList(LUWDatabasePartition.class, this, LUWPackage.LUW_BUFFER_POOL__PARTITIONS, LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL);
+ }
+ return partitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitionGroup() {
+ if (partitionGroup == null) {
+ partitionGroup = new EObjectWithInverseResolvingEList.ManyInverse(LUWPartitionGroup.class, this, LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP, LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL);
+ }
+ return partitionGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase getDatabase() {
+ if (database != null && database.eIsProxy()) {
+ InternalEObject oldDatabase = (InternalEObject)database;
+ database = (LUWDatabase)eResolveProxy(oldDatabase);
+ if (database != oldDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_BUFFER_POOL__DATABASE, oldDatabase, database));
+ }
+ }
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase basicGetDatabase() {
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDatabase(LUWDatabase newDatabase, NotificationChain msgs) {
+ LUWDatabase oldDatabase = database;
+ database = newDatabase;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__DATABASE, oldDatabase, newDatabase);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDatabase(LUWDatabase newDatabase) {
+ if (newDatabase != database) {
+ NotificationChain msgs = null;
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__BUFFERPOOLS, LUWDatabase.class, msgs);
+ if (newDatabase != null)
+ msgs = ((InternalEObject)newDatabase).eInverseAdd(this, LUWPackage.LUW_DATABASE__BUFFERPOOLS, LUWDatabase.class, msgs);
+ msgs = basicSetDatabase(newDatabase, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL__DATABASE, newDatabase, newDatabase));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getSizeException() {
+ if (sizeException == null) {
+ sizeException = new EObjectContainmentWithInverseEList(LUWBufferPoolSizeException.class, this, LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL);
+ }
+ return sizeException;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES:
+ return ((InternalEList)getTableSpaces()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP:
+ return ((InternalEList)getPartitionGroup()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__DATABASE:
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__BUFFERPOOLS, LUWDatabase.class, msgs);
+ return basicSetDatabase((LUWDatabase)otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION:
+ return ((InternalEList)getSizeException()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES:
+ return ((InternalEList)getTableSpaces()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP:
+ return ((InternalEList)getPartitionGroup()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__DATABASE:
+ return basicSetDatabase(null, msgs);
+ case LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION:
+ return ((InternalEList)getSizeException()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL__CREATE_TYPE:
+ return getCreateType();
+ case LUWPackage.LUW_BUFFER_POOL__SIZE:
+ return new Integer(getSize());
+ case LUWPackage.LUW_BUFFER_POOL__PAGE_SIZE:
+ return getPageSize();
+ case LUWPackage.LUW_BUFFER_POOL__BLOCK_SIZE:
+ return new Integer(getBlockSize());
+ case LUWPackage.LUW_BUFFER_POOL__NUM_BLOCK_PAGES:
+ return new Integer(getNumBlockPages());
+ case LUWPackage.LUW_BUFFER_POOL__EXTENDED_STORAGE:
+ return isExtendedStorage() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_BUFFER_POOL__AUTOMATIC:
+ return isAutomatic() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES:
+ return getTableSpaces();
+ case LUWPackage.LUW_BUFFER_POOL__PARTITIONS:
+ return getPartitions();
+ case LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP:
+ return getPartitionGroup();
+ case LUWPackage.LUW_BUFFER_POOL__DATABASE:
+ if (resolve) return getDatabase();
+ return basicGetDatabase();
+ case LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION:
+ return getSizeException();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL__CREATE_TYPE:
+ setCreateType((BufferPoolType)newValue);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__SIZE:
+ setSize(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__PAGE_SIZE:
+ setPageSize((PageSizeType)newValue);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__BLOCK_SIZE:
+ setBlockSize(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__NUM_BLOCK_PAGES:
+ setNumBlockPages(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__EXTENDED_STORAGE:
+ setExtendedStorage(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__AUTOMATIC:
+ setAutomatic(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES:
+ getTableSpaces().clear();
+ getTableSpaces().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__PARTITIONS:
+ getPartitions().clear();
+ getPartitions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP:
+ getPartitionGroup().clear();
+ getPartitionGroup().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__DATABASE:
+ setDatabase((LUWDatabase)newValue);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION:
+ getSizeException().clear();
+ getSizeException().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL__CREATE_TYPE:
+ setCreateType(CREATE_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__SIZE:
+ setSize(SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__PAGE_SIZE:
+ setPageSize(PAGE_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__BLOCK_SIZE:
+ setBlockSize(BLOCK_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__NUM_BLOCK_PAGES:
+ setNumBlockPages(NUM_BLOCK_PAGES_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__EXTENDED_STORAGE:
+ setExtendedStorage(EXTENDED_STORAGE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__AUTOMATIC:
+ setAutomatic(AUTOMATIC_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES:
+ getTableSpaces().clear();
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__PARTITIONS:
+ getPartitions().clear();
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP:
+ getPartitionGroup().clear();
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__DATABASE:
+ setDatabase((LUWDatabase)null);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION:
+ getSizeException().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL__CREATE_TYPE:
+ return createType != CREATE_TYPE_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL__SIZE:
+ return size != SIZE_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL__PAGE_SIZE:
+ return pageSize != PAGE_SIZE_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL__BLOCK_SIZE:
+ return blockSize != BLOCK_SIZE_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL__NUM_BLOCK_PAGES:
+ return numBlockPages != NUM_BLOCK_PAGES_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL__EXTENDED_STORAGE:
+ return extendedStorage != EXTENDED_STORAGE_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL__AUTOMATIC:
+ return automatic != AUTOMATIC_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES:
+ return tableSpaces != null && !tableSpaces.isEmpty();
+ case LUWPackage.LUW_BUFFER_POOL__PARTITIONS:
+ return partitions != null && !partitions.isEmpty();
+ case LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP:
+ return partitionGroup != null && !partitionGroup.isEmpty();
+ case LUWPackage.LUW_BUFFER_POOL__DATABASE:
+ return database != null;
+ case LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION:
+ return sizeException != null && !sizeException.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (createType: "); //$NON-NLS-1$
+ result.append(createType);
+ result.append(", size: "); //$NON-NLS-1$
+ result.append(size);
+ result.append(", pageSize: "); //$NON-NLS-1$
+ result.append(pageSize);
+ result.append(", blockSize: "); //$NON-NLS-1$
+ result.append(blockSize);
+ result.append(", numBlockPages: "); //$NON-NLS-1$
+ result.append(numBlockPages);
+ result.append(", extendedStorage: "); //$NON-NLS-1$
+ result.append(extendedStorage);
+ result.append(", automatic: "); //$NON-NLS-1$
+ result.append(automatic);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWBufferPoolImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWBufferPoolSizeExceptionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWBufferPoolSizeExceptionImpl.java
new file mode 100644
index 0000000..dd00ced
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWBufferPoolSizeExceptionImpl.java
@@ -0,0 +1,305 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWBufferPoolSizeExceptionImpl.java,v 1.1 2009/02/27 23:12:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Buffer Pool Size Exception</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolSizeExceptionImpl#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolSizeExceptionImpl#getBufferPool <em>Buffer Pool</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWBufferPoolSizeExceptionImpl#getPartitions <em>Partitions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWBufferPoolSizeExceptionImpl extends SQLObjectImpl implements LUWBufferPoolSizeException {
+ /**
+ * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected int size = SIZE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPartitions() <em>Partitions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitions()
+ * @generated
+ * @ordered
+ */
+ protected EList partitions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWBufferPoolSizeExceptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_BUFFER_POOL_SIZE_EXCEPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(int newSize) {
+ int oldSize = size;
+ size = newSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE, oldSize, size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPool getBufferPool() {
+ if (eContainerFeatureID() != LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL) return null;
+ return (LUWBufferPool)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBufferPool(LUWBufferPool newBufferPool, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newBufferPool, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBufferPool(LUWBufferPool newBufferPool) {
+ if (newBufferPool != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL && newBufferPool != null)) {
+ if (EcoreUtil.isAncestor(this, newBufferPool))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newBufferPool != null)
+ msgs = ((InternalEObject)newBufferPool).eInverseAdd(this, LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION, LUWBufferPool.class, msgs);
+ msgs = basicSetBufferPool(newBufferPool, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL, newBufferPool, newBufferPool));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitions() {
+ if (partitions == null) {
+ partitions = new EObjectWithInverseResolvingEList(LUWDatabasePartition.class, this, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS, LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION);
+ }
+ return partitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetBufferPool((LUWBufferPool)otherEnd, msgs);
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL:
+ return basicSetBufferPool(null, msgs);
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_BUFFER_POOL__SIZE_EXCEPTION, LUWBufferPool.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE:
+ return new Integer(getSize());
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL:
+ return getBufferPool();
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS:
+ return getPartitions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE:
+ setSize(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL:
+ setBufferPool((LUWBufferPool)newValue);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS:
+ getPartitions().clear();
+ getPartitions().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE:
+ setSize(SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL:
+ setBufferPool((LUWBufferPool)null);
+ return;
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS:
+ getPartitions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE:
+ return size != SIZE_EDEFAULT;
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL:
+ return getBufferPool() != null;
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS:
+ return partitions != null && !partitions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (size: "); //$NON-NLS-1$
+ result.append(size);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWBufferPoolSizeExceptionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWColumnImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWColumnImpl.java
new file mode 100644
index 0000000..1390a73
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWColumnImpl.java
@@ -0,0 +1,485 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWColumnImpl.java,v 1.14 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl#isLobLogged <em>Lob Logged</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl#isLobCompacted <em>Lob Compacted</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl#getCompression <em>Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl#getInlineLength <em>Inline Length</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl#isHidden <em>Hidden</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl#getSecurityLabel <em>Security Label</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWColumnImpl#getOptions <em>Options</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWColumnImpl extends DB2ColumnImpl implements LUWColumn {
+ /**
+ * The default value of the '{@link #isLobLogged() <em>Lob Logged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLobLogged()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOB_LOGGED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isLobLogged() <em>Lob Logged</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLobLogged()
+ * @generated
+ * @ordered
+ */
+ protected boolean lobLogged = LOB_LOGGED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isLobCompacted() <em>Lob Compacted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLobCompacted()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOB_COMPACTED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isLobCompacted() <em>Lob Compacted</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLobCompacted()
+ * @generated
+ * @ordered
+ */
+ protected boolean lobCompacted = LOB_COMPACTED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCompression() <em>Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompression()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCompression() <em>Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompression()
+ * @generated
+ * @ordered
+ */
+ protected String compression = COMPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInlineLength() <em>Inline Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInlineLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int INLINE_LENGTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getInlineLength() <em>Inline Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInlineLength()
+ * @generated
+ * @ordered
+ */
+ protected int inlineLength = INLINE_LENGTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isHidden() <em>Hidden</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHidden()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean HIDDEN_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isHidden() <em>Hidden</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHidden()
+ * @generated
+ * @ordered
+ */
+ protected boolean hidden = HIDDEN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSecurityLabel() <em>Security Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecurityLabel()
+ * @generated
+ * @ordered
+ */
+ protected static final String SECURITY_LABEL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSecurityLabel() <em>Security Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecurityLabel()
+ * @generated
+ * @ordered
+ */
+ protected String securityLabel = SECURITY_LABEL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList options;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWColumnImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_COLUMN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLobLogged() {
+ return lobLogged;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLobLogged(boolean newLobLogged) {
+ boolean oldLobLogged = lobLogged;
+ lobLogged = newLobLogged;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_COLUMN__LOB_LOGGED, oldLobLogged, lobLogged));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLobCompacted() {
+ return lobCompacted;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLobCompacted(boolean newLobCompacted) {
+ boolean oldLobCompacted = lobCompacted;
+ lobCompacted = newLobCompacted;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_COLUMN__LOB_COMPACTED, oldLobCompacted, lobCompacted));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCompression() {
+ return compression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompression(String newCompression) {
+ String oldCompression = compression;
+ compression = newCompression;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_COLUMN__COMPRESSION, oldCompression, compression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getInlineLength() {
+ return inlineLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInlineLength(int newInlineLength) {
+ int oldInlineLength = inlineLength;
+ inlineLength = newInlineLength;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_COLUMN__INLINE_LENGTH, oldInlineLength, inlineLength));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isHidden() {
+ return hidden;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHidden(boolean newHidden) {
+ boolean oldHidden = hidden;
+ hidden = newHidden;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_COLUMN__HIDDEN, oldHidden, hidden));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSecurityLabel() {
+ return securityLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSecurityLabel(String newSecurityLabel) {
+ String oldSecurityLabel = securityLabel;
+ securityLabel = newSecurityLabel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_COLUMN__SECURITY_LABEL, oldSecurityLabel, securityLabel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getOptions() {
+ if (options == null) {
+ options = new EObjectContainmentEList(LUWOption.class, this, LUWPackage.LUW_COLUMN__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_COLUMN__OPTIONS:
+ return ((InternalEList)getOptions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_COLUMN__LOB_LOGGED:
+ return isLobLogged() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_COLUMN__LOB_COMPACTED:
+ return isLobCompacted() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_COLUMN__COMPRESSION:
+ return getCompression();
+ case LUWPackage.LUW_COLUMN__INLINE_LENGTH:
+ return new Integer(getInlineLength());
+ case LUWPackage.LUW_COLUMN__HIDDEN:
+ return isHidden() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_COLUMN__SECURITY_LABEL:
+ return getSecurityLabel();
+ case LUWPackage.LUW_COLUMN__OPTIONS:
+ return getOptions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_COLUMN__LOB_LOGGED:
+ setLobLogged(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_COLUMN__LOB_COMPACTED:
+ setLobCompacted(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_COLUMN__COMPRESSION:
+ setCompression((String)newValue);
+ return;
+ case LUWPackage.LUW_COLUMN__INLINE_LENGTH:
+ setInlineLength(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_COLUMN__HIDDEN:
+ setHidden(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_COLUMN__SECURITY_LABEL:
+ setSecurityLabel((String)newValue);
+ return;
+ case LUWPackage.LUW_COLUMN__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_COLUMN__LOB_LOGGED:
+ setLobLogged(LOB_LOGGED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_COLUMN__LOB_COMPACTED:
+ setLobCompacted(LOB_COMPACTED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_COLUMN__COMPRESSION:
+ setCompression(COMPRESSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_COLUMN__INLINE_LENGTH:
+ setInlineLength(INLINE_LENGTH_EDEFAULT);
+ return;
+ case LUWPackage.LUW_COLUMN__HIDDEN:
+ setHidden(HIDDEN_EDEFAULT);
+ return;
+ case LUWPackage.LUW_COLUMN__SECURITY_LABEL:
+ setSecurityLabel(SECURITY_LABEL_EDEFAULT);
+ return;
+ case LUWPackage.LUW_COLUMN__OPTIONS:
+ getOptions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_COLUMN__LOB_LOGGED:
+ return lobLogged != LOB_LOGGED_EDEFAULT;
+ case LUWPackage.LUW_COLUMN__LOB_COMPACTED:
+ return lobCompacted != LOB_COMPACTED_EDEFAULT;
+ case LUWPackage.LUW_COLUMN__COMPRESSION:
+ return COMPRESSION_EDEFAULT == null ? compression != null : !COMPRESSION_EDEFAULT.equals(compression);
+ case LUWPackage.LUW_COLUMN__INLINE_LENGTH:
+ return inlineLength != INLINE_LENGTH_EDEFAULT;
+ case LUWPackage.LUW_COLUMN__HIDDEN:
+ return hidden != HIDDEN_EDEFAULT;
+ case LUWPackage.LUW_COLUMN__SECURITY_LABEL:
+ return SECURITY_LABEL_EDEFAULT == null ? securityLabel != null : !SECURITY_LABEL_EDEFAULT.equals(securityLabel);
+ case LUWPackage.LUW_COLUMN__OPTIONS:
+ return options != null && !options.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (lobLogged: "); //$NON-NLS-1$
+ result.append(lobLogged);
+ result.append(", lobCompacted: "); //$NON-NLS-1$
+ result.append(lobCompacted);
+ result.append(", compression: "); //$NON-NLS-1$
+ result.append(compression);
+ result.append(", inlineLength: "); //$NON-NLS-1$
+ result.append(inlineLength);
+ result.append(", hidden: "); //$NON-NLS-1$
+ result.append(hidden);
+ result.append(", securityLabel: "); //$NON-NLS-1$
+ result.append(securityLabel);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWColumnImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWCursorDataTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWCursorDataTypeImpl.java
new file mode 100644
index 0000000..a30dea8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWCursorDataTypeImpl.java
@@ -0,0 +1,157 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWCursorDataTypeImpl.java,v 1.1 2009/02/27 18:42:01 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cursor Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWCursorDataTypeImpl#getRowType <em>Row Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWCursorDataTypeImpl extends UserDefinedTypeImpl implements LUWCursorDataType {
+ /**
+ * The cached value of the '{@link #getRowType() <em>Row Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRowType()
+ * @generated
+ * @ordered
+ */
+ protected LUWRowDataType rowType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWCursorDataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_CURSOR_DATA_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWRowDataType getRowType() {
+ if (rowType != null && rowType.eIsProxy()) {
+ InternalEObject oldRowType = (InternalEObject)rowType;
+ rowType = (LUWRowDataType)eResolveProxy(oldRowType);
+ if (rowType != oldRowType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_CURSOR_DATA_TYPE__ROW_TYPE, oldRowType, rowType));
+ }
+ }
+ return rowType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWRowDataType basicGetRowType() {
+ return rowType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowType(LUWRowDataType newRowType) {
+ LUWRowDataType oldRowType = rowType;
+ rowType = newRowType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_CURSOR_DATA_TYPE__ROW_TYPE, oldRowType, rowType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_CURSOR_DATA_TYPE__ROW_TYPE:
+ if (resolve) return getRowType();
+ return basicGetRowType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_CURSOR_DATA_TYPE__ROW_TYPE:
+ setRowType((LUWRowDataType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_CURSOR_DATA_TYPE__ROW_TYPE:
+ setRowType((LUWRowDataType)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_CURSOR_DATA_TYPE__ROW_TYPE:
+ return rowType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWCursorDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDataPartitionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDataPartitionImpl.java
new file mode 100644
index 0000000..c5112d7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDataPartitionImpl.java
@@ -0,0 +1,674 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWDataPartitionImpl.java,v 1.9 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Partition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#isLowInclusive <em>Low Inclusive</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#isHighInclusive <em>High Inclusive</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#getLOBDataTableSpace <em>LOB Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#getRegularDataTableSpace <em>Regular Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#getPartitionElements <em>Partition Elements</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionImpl#getIndexDataTableSpace <em>Index Data Table Space</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWDataPartitionImpl extends SQLObjectImpl implements LUWDataPartition {
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final int ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected int id = ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isLowInclusive() <em>Low Inclusive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLowInclusive()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOW_INCLUSIVE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isLowInclusive() <em>Low Inclusive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLowInclusive()
+ * @generated
+ * @ordered
+ */
+ protected boolean lowInclusive = LOW_INCLUSIVE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isHighInclusive() <em>High Inclusive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHighInclusive()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean HIGH_INCLUSIVE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isHighInclusive() <em>High Inclusive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHighInclusive()
+ * @generated
+ * @ordered
+ */
+ protected boolean highInclusive = HIGH_INCLUSIVE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLOBDataTableSpace() <em>LOB Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLOBDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace lobDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getRegularDataTableSpace() <em>Regular Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRegularDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace regularDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getPartitionElements() <em>Partition Elements</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionElements()
+ * @generated
+ * @ordered
+ */
+ protected EList partitionElements;
+
+ /**
+ * The cached value of the '{@link #getIndexDataTableSpace() <em>Index Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace indexDataTableSpace;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWDataPartitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_DATA_PARTITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(int newId) {
+ int oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLowInclusive() {
+ return lowInclusive;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLowInclusive(boolean newLowInclusive) {
+ boolean oldLowInclusive = lowInclusive;
+ lowInclusive = newLowInclusive;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__LOW_INCLUSIVE, oldLowInclusive, lowInclusive));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isHighInclusive() {
+ return highInclusive;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHighInclusive(boolean newHighInclusive) {
+ boolean oldHighInclusive = highInclusive;
+ highInclusive = newHighInclusive;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__HIGH_INCLUSIVE, oldHighInclusive, highInclusive));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getLOBDataTableSpace() {
+ if (lobDataTableSpace != null && lobDataTableSpace.eIsProxy()) {
+ InternalEObject oldLOBDataTableSpace = (InternalEObject)lobDataTableSpace;
+ lobDataTableSpace = (LUWTableSpace)eResolveProxy(oldLOBDataTableSpace);
+ if (lobDataTableSpace != oldLOBDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE, oldLOBDataTableSpace, lobDataTableSpace));
+ }
+ }
+ return lobDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetLOBDataTableSpace() {
+ return lobDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLOBDataTableSpace(LUWTableSpace newLOBDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldLOBDataTableSpace = lobDataTableSpace;
+ lobDataTableSpace = newLOBDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE, oldLOBDataTableSpace, newLOBDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLOBDataTableSpace(LUWTableSpace newLOBDataTableSpace) {
+ if (newLOBDataTableSpace != lobDataTableSpace) {
+ NotificationChain msgs = null;
+ if (lobDataTableSpace != null)
+ msgs = ((InternalEObject)lobDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION, LUWTableSpace.class, msgs);
+ if (newLOBDataTableSpace != null)
+ msgs = ((InternalEObject)newLOBDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION, LUWTableSpace.class, msgs);
+ msgs = basicSetLOBDataTableSpace(newLOBDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE, newLOBDataTableSpace, newLOBDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getRegularDataTableSpace() {
+ if (regularDataTableSpace != null && regularDataTableSpace.eIsProxy()) {
+ InternalEObject oldRegularDataTableSpace = (InternalEObject)regularDataTableSpace;
+ regularDataTableSpace = (LUWTableSpace)eResolveProxy(oldRegularDataTableSpace);
+ if (regularDataTableSpace != oldRegularDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE, oldRegularDataTableSpace, regularDataTableSpace));
+ }
+ }
+ return regularDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetRegularDataTableSpace() {
+ return regularDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRegularDataTableSpace(LUWTableSpace newRegularDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldRegularDataTableSpace = regularDataTableSpace;
+ regularDataTableSpace = newRegularDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE, oldRegularDataTableSpace, newRegularDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRegularDataTableSpace(LUWTableSpace newRegularDataTableSpace) {
+ if (newRegularDataTableSpace != regularDataTableSpace) {
+ NotificationChain msgs = null;
+ if (regularDataTableSpace != null)
+ msgs = ((InternalEObject)regularDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION, LUWTableSpace.class, msgs);
+ if (newRegularDataTableSpace != null)
+ msgs = ((InternalEObject)newRegularDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION, LUWTableSpace.class, msgs);
+ msgs = basicSetRegularDataTableSpace(newRegularDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE, newRegularDataTableSpace, newRegularDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitionElements() {
+ if (partitionElements == null) {
+ partitionElements = new EObjectWithInverseResolvingEList(LUWPartitionElement.class, this, LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS, LUWPackage.LUW_PARTITION_ELEMENT__PARTITION);
+ }
+ return partitionElements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageTable getTable() {
+ if (eContainerFeatureID() != LUWPackage.LUW_DATA_PARTITION__TABLE) return null;
+ return (LUWStorageTable)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTable(LUWStorageTable newTable, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTable, LUWPackage.LUW_DATA_PARTITION__TABLE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(LUWStorageTable newTable) {
+ if (newTable != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_DATA_PARTITION__TABLE && newTable != null)) {
+ if (EcoreUtil.isAncestor(this, newTable))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTable != null)
+ msgs = ((InternalEObject)newTable).eInverseAdd(this, LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITIONS, LUWStorageTable.class, msgs);
+ msgs = basicSetTable(newTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__TABLE, newTable, newTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getIndexDataTableSpace() {
+ if (indexDataTableSpace != null && indexDataTableSpace.eIsProxy()) {
+ InternalEObject oldIndexDataTableSpace = (InternalEObject)indexDataTableSpace;
+ indexDataTableSpace = (LUWTableSpace)eResolveProxy(oldIndexDataTableSpace);
+ if (indexDataTableSpace != oldIndexDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE, oldIndexDataTableSpace, indexDataTableSpace));
+ }
+ }
+ return indexDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetIndexDataTableSpace() {
+ return indexDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetIndexDataTableSpace(LUWTableSpace newIndexDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldIndexDataTableSpace = indexDataTableSpace;
+ indexDataTableSpace = newIndexDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE, oldIndexDataTableSpace, newIndexDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIndexDataTableSpace(LUWTableSpace newIndexDataTableSpace) {
+ if (newIndexDataTableSpace != indexDataTableSpace) {
+ NotificationChain msgs = null;
+ if (indexDataTableSpace != null)
+ msgs = ((InternalEObject)indexDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION, LUWTableSpace.class, msgs);
+ if (newIndexDataTableSpace != null)
+ msgs = ((InternalEObject)newIndexDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION, LUWTableSpace.class, msgs);
+ msgs = basicSetIndexDataTableSpace(newIndexDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE, newIndexDataTableSpace, newIndexDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE:
+ if (lobDataTableSpace != null)
+ msgs = ((InternalEObject)lobDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION, LUWTableSpace.class, msgs);
+ return basicSetLOBDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE:
+ if (regularDataTableSpace != null)
+ msgs = ((InternalEObject)regularDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION, LUWTableSpace.class, msgs);
+ return basicSetRegularDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS:
+ return ((InternalEList)getPartitionElements()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__TABLE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTable((LUWStorageTable)otherEnd, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE:
+ if (indexDataTableSpace != null)
+ msgs = ((InternalEObject)indexDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION, LUWTableSpace.class, msgs);
+ return basicSetIndexDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE:
+ return basicSetLOBDataTableSpace(null, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE:
+ return basicSetRegularDataTableSpace(null, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS:
+ return ((InternalEList)getPartitionElements()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__TABLE:
+ return basicSetTable(null, msgs);
+ case LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE:
+ return basicSetIndexDataTableSpace(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_DATA_PARTITION__TABLE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITIONS, LUWStorageTable.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION__ID:
+ return new Integer(getId());
+ case LUWPackage.LUW_DATA_PARTITION__LOW_INCLUSIVE:
+ return isLowInclusive() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_DATA_PARTITION__HIGH_INCLUSIVE:
+ return isHighInclusive() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE:
+ if (resolve) return getLOBDataTableSpace();
+ return basicGetLOBDataTableSpace();
+ case LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE:
+ if (resolve) return getRegularDataTableSpace();
+ return basicGetRegularDataTableSpace();
+ case LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS:
+ return getPartitionElements();
+ case LUWPackage.LUW_DATA_PARTITION__TABLE:
+ return getTable();
+ case LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE:
+ if (resolve) return getIndexDataTableSpace();
+ return basicGetIndexDataTableSpace();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION__ID:
+ setId(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__LOW_INCLUSIVE:
+ setLowInclusive(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__HIGH_INCLUSIVE:
+ setHighInclusive(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE:
+ setLOBDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE:
+ setRegularDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS:
+ getPartitionElements().clear();
+ getPartitionElements().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__TABLE:
+ setTable((LUWStorageTable)newValue);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE:
+ setIndexDataTableSpace((LUWTableSpace)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__LOW_INCLUSIVE:
+ setLowInclusive(LOW_INCLUSIVE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__HIGH_INCLUSIVE:
+ setHighInclusive(HIGH_INCLUSIVE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE:
+ setLOBDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE:
+ setRegularDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS:
+ getPartitionElements().clear();
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__TABLE:
+ setTable((LUWStorageTable)null);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE:
+ setIndexDataTableSpace((LUWTableSpace)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION__ID:
+ return id != ID_EDEFAULT;
+ case LUWPackage.LUW_DATA_PARTITION__LOW_INCLUSIVE:
+ return lowInclusive != LOW_INCLUSIVE_EDEFAULT;
+ case LUWPackage.LUW_DATA_PARTITION__HIGH_INCLUSIVE:
+ return highInclusive != HIGH_INCLUSIVE_EDEFAULT;
+ case LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE:
+ return lobDataTableSpace != null;
+ case LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE:
+ return regularDataTableSpace != null;
+ case LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS:
+ return partitionElements != null && !partitionElements.isEmpty();
+ case LUWPackage.LUW_DATA_PARTITION__TABLE:
+ return getTable() != null;
+ case LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE:
+ return indexDataTableSpace != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: "); //$NON-NLS-1$
+ result.append(id);
+ result.append(", lowInclusive: "); //$NON-NLS-1$
+ result.append(lowInclusive);
+ result.append(", highInclusive: "); //$NON-NLS-1$
+ result.append(highInclusive);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWDataPartitionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDataPartitionKeyImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDataPartitionKeyImpl.java
new file mode 100644
index 0000000..15062c0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDataPartitionKeyImpl.java
@@ -0,0 +1,303 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWDataPartitionKeyImpl.java,v 1.6 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Partition Key</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionKeyImpl#getPartitionMethod <em>Partition Method</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionKeyImpl#getPartitionExpressions <em>Partition Expressions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDataPartitionKeyImpl#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWDataPartitionKeyImpl extends EObjectImpl implements LUWDataPartitionKey {
+ /**
+ * The default value of the '{@link #getPartitionMethod() <em>Partition Method</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionMethod()
+ * @generated
+ * @ordered
+ */
+ protected static final DataPartitionMethod PARTITION_METHOD_EDEFAULT = DataPartitionMethod.RANGE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getPartitionMethod() <em>Partition Method</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionMethod()
+ * @generated
+ * @ordered
+ */
+ protected DataPartitionMethod partitionMethod = PARTITION_METHOD_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPartitionExpressions() <em>Partition Expressions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionExpressions()
+ * @generated
+ * @ordered
+ */
+ protected EList partitionExpressions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWDataPartitionKeyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_DATA_PARTITION_KEY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataPartitionMethod getPartitionMethod() {
+ return partitionMethod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitionMethod(DataPartitionMethod newPartitionMethod) {
+ DataPartitionMethod oldPartitionMethod = partitionMethod;
+ partitionMethod = newPartitionMethod == null ? PARTITION_METHOD_EDEFAULT : newPartitionMethod;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_METHOD, oldPartitionMethod, partitionMethod));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitionExpressions() {
+ if (partitionExpressions == null) {
+ partitionExpressions = new EObjectContainmentWithInverseEList(LUWPartitionExpression.class, this, LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS, LUWPackage.LUW_PARTITION_EXPRESSION__KEY);
+ }
+ return partitionExpressions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageTable getTable() {
+ if (eContainerFeatureID() != LUWPackage.LUW_DATA_PARTITION_KEY__TABLE) return null;
+ return (LUWStorageTable)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTable(LUWStorageTable newTable, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTable, LUWPackage.LUW_DATA_PARTITION_KEY__TABLE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(LUWStorageTable newTable) {
+ if (newTable != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_DATA_PARTITION_KEY__TABLE && newTable != null)) {
+ if (EcoreUtil.isAncestor(this, newTable))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTable != null)
+ msgs = ((InternalEObject)newTable).eInverseAdd(this, LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITION_KEY, LUWStorageTable.class, msgs);
+ msgs = basicSetTable(newTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATA_PARTITION_KEY__TABLE, newTable, newTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS:
+ return ((InternalEList)getPartitionExpressions()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATA_PARTITION_KEY__TABLE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTable((LUWStorageTable)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS:
+ return ((InternalEList)getPartitionExpressions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATA_PARTITION_KEY__TABLE:
+ return basicSetTable(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_DATA_PARTITION_KEY__TABLE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITION_KEY, LUWStorageTable.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_METHOD:
+ return getPartitionMethod();
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS:
+ return getPartitionExpressions();
+ case LUWPackage.LUW_DATA_PARTITION_KEY__TABLE:
+ return getTable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_METHOD:
+ setPartitionMethod((DataPartitionMethod)newValue);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS:
+ getPartitionExpressions().clear();
+ getPartitionExpressions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION_KEY__TABLE:
+ setTable((LUWStorageTable)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_METHOD:
+ setPartitionMethod(PARTITION_METHOD_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS:
+ getPartitionExpressions().clear();
+ return;
+ case LUWPackage.LUW_DATA_PARTITION_KEY__TABLE:
+ setTable((LUWStorageTable)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_METHOD:
+ return partitionMethod != PARTITION_METHOD_EDEFAULT;
+ case LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS:
+ return partitionExpressions != null && !partitionExpressions.isEmpty();
+ case LUWPackage.LUW_DATA_PARTITION_KEY__TABLE:
+ return getTable() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (partitionMethod: "); //$NON-NLS-1$
+ result.append(partitionMethod);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWDataPartitionKeyImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabaseContainerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabaseContainerImpl.java
new file mode 100644
index 0000000..91a1785
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabaseContainerImpl.java
@@ -0,0 +1,464 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.datatools.enablement.ibm.db2.model.UnitType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Database Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl#getContainerType <em>Container Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl#getSizeInPages <em>Size In Pages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl#getSizeUnits <em>Size Units</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl#getTableSpace <em>Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseContainerImpl#getPartitions <em>Partitions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWDatabaseContainerImpl extends SQLObjectImpl implements LUWDatabaseContainer {
+ /**
+ * The default value of the '{@link #getContainerType() <em>Container Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContainerType()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWContainerType CONTAINER_TYPE_EDEFAULT = LUWContainerType.DEVICE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getContainerType() <em>Container Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContainerType()
+ * @generated
+ * @ordered
+ */
+ protected LUWContainerType containerType = CONTAINER_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSizeInPages() <em>Size In Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeInPages()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_IN_PAGES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSizeInPages() <em>Size In Pages</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeInPages()
+ * @generated
+ * @ordered
+ */
+ protected int sizeInPages = SIZE_IN_PAGES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected int size = SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSizeUnits() <em>Size Units</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeUnits()
+ * @generated
+ * @ordered
+ */
+ protected static final UnitType SIZE_UNITS_EDEFAULT = UnitType.K_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getSizeUnits() <em>Size Units</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeUnits()
+ * @generated
+ * @ordered
+ */
+ protected UnitType sizeUnits = SIZE_UNITS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPartitions() <em>Partitions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitions()
+ * @generated
+ * @ordered
+ */
+ protected EList partitions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWDatabaseContainerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_DATABASE_CONTAINER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWContainerType getContainerType() {
+ return containerType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContainerType(LUWContainerType newContainerType) {
+ LUWContainerType oldContainerType = containerType;
+ containerType = newContainerType == null ? CONTAINER_TYPE_EDEFAULT : newContainerType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_CONTAINER__CONTAINER_TYPE, oldContainerType, containerType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSizeInPages() {
+ return sizeInPages;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSizeInPages(int newSizeInPages) {
+ int oldSizeInPages = sizeInPages;
+ sizeInPages = newSizeInPages;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_CONTAINER__SIZE_IN_PAGES, oldSizeInPages, sizeInPages));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(int newSize) {
+ int oldSize = size;
+ size = newSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_CONTAINER__SIZE, oldSize, size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnitType getSizeUnits() {
+ return sizeUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSizeUnits(UnitType newSizeUnits) {
+ UnitType oldSizeUnits = sizeUnits;
+ sizeUnits = newSizeUnits == null ? SIZE_UNITS_EDEFAULT : newSizeUnits;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_CONTAINER__SIZE_UNITS, oldSizeUnits, sizeUnits));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getTableSpace() {
+ if (eContainerFeatureID() != LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE) return null;
+ return (LUWTableSpace)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTableSpace(LUWTableSpace newTableSpace, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTableSpace, LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTableSpace(LUWTableSpace newTableSpace) {
+ if (newTableSpace != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE && newTableSpace != null)) {
+ if (EcoreUtil.isAncestor(this, newTableSpace))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTableSpace != null)
+ msgs = ((InternalEObject)newTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__CONTAINERS, LUWTableSpace.class, msgs);
+ msgs = basicSetTableSpace(newTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE, newTableSpace, newTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitions() {
+ if (partitions == null) {
+ partitions = new EObjectWithInverseResolvingEList.ManyInverse(LUWDatabasePartition.class, this, LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS, LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS);
+ }
+ return partitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE:
+ return basicSetTableSpace(null, msgs);
+ case LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__CONTAINERS, LUWTableSpace.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_CONTAINER__CONTAINER_TYPE:
+ return getContainerType();
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_IN_PAGES:
+ return new Integer(getSizeInPages());
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE:
+ return new Integer(getSize());
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_UNITS:
+ return getSizeUnits();
+ case LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE:
+ return getTableSpace();
+ case LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS:
+ return getPartitions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_CONTAINER__CONTAINER_TYPE:
+ setContainerType((LUWContainerType)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_IN_PAGES:
+ setSizeInPages(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE:
+ setSize(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_UNITS:
+ setSizeUnits((UnitType)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE:
+ setTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS:
+ getPartitions().clear();
+ getPartitions().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_CONTAINER__CONTAINER_TYPE:
+ setContainerType(CONTAINER_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_IN_PAGES:
+ setSizeInPages(SIZE_IN_PAGES_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE:
+ setSize(SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_UNITS:
+ setSizeUnits(SIZE_UNITS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE:
+ setTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS:
+ getPartitions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_CONTAINER__CONTAINER_TYPE:
+ return containerType != CONTAINER_TYPE_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_IN_PAGES:
+ return sizeInPages != SIZE_IN_PAGES_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE:
+ return size != SIZE_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_CONTAINER__SIZE_UNITS:
+ return sizeUnits != SIZE_UNITS_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE:
+ return getTableSpace() != null;
+ case LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS:
+ return partitions != null && !partitions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (containerType: "); //$NON-NLS-1$
+ result.append(containerType);
+ result.append(", sizeInPages: "); //$NON-NLS-1$
+ result.append(sizeInPages);
+ result.append(", size: "); //$NON-NLS-1$
+ result.append(size);
+ result.append(", sizeUnits: "); //$NON-NLS-1$
+ result.append(sizeUnits);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWDatabaseContainerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabaseImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabaseImpl.java
new file mode 100644
index 0000000..f4891f2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabaseImpl.java
@@ -0,0 +1,592 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Database</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getGroups <em>Groups</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getWrappers <em>Wrappers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getServers <em>Servers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getFunctionMappings <em>Function Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getTypeMappings <em>Type Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getReverseTypeMappings <em>Reverse Type Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getBufferpools <em>Bufferpools</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getTablespaces <em>Tablespaces</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getStorageGroups <em>Storage Groups</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabaseImpl#getDefaultStorageGroup <em>Default Storage Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWDatabaseImpl extends DB2DatabaseImpl implements LUWDatabase {
+ /**
+ * The default value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FEDERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected boolean federated = FEDERATED_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGroups() <em>Groups</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroups()
+ * @generated
+ * @ordered
+ */
+ protected EList groups;
+
+ /**
+ * The cached value of the '{@link #getWrappers() <em>Wrappers</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWrappers()
+ * @generated
+ * @ordered
+ */
+ protected EList wrappers;
+
+ /**
+ * The cached value of the '{@link #getServers() <em>Servers</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServers()
+ * @generated
+ * @ordered
+ */
+ protected EList servers;
+
+ /**
+ * The cached value of the '{@link #getFunctionMappings() <em>Function Mappings</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunctionMappings()
+ * @generated
+ * @ordered
+ */
+ protected EList functionMappings;
+
+ /**
+ * The cached value of the '{@link #getTypeMappings() <em>Type Mappings</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTypeMappings()
+ * @generated
+ * @ordered
+ */
+ protected EList typeMappings;
+
+ /**
+ * The cached value of the '{@link #getReverseTypeMappings() <em>Reverse Type Mappings</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReverseTypeMappings()
+ * @generated
+ * @ordered
+ */
+ protected EList reverseTypeMappings;
+
+ /**
+ * The cached value of the '{@link #getBufferpools() <em>Bufferpools</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBufferpools()
+ * @generated
+ * @ordered
+ */
+ protected EList bufferpools;
+
+ /**
+ * The cached value of the '{@link #getTablespaces() <em>Tablespaces</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTablespaces()
+ * @generated
+ * @ordered
+ */
+ protected EList tablespaces;
+
+ /**
+ * The cached value of the '{@link #getStorageGroups() <em>Storage Groups</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStorageGroups()
+ * @generated
+ * @ordered
+ */
+ protected EList storageGroups;
+
+ /**
+ * The cached value of the '{@link #getDefaultStorageGroup() <em>Default Storage Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultStorageGroup()
+ * @generated
+ * @ordered
+ */
+ protected LUWStorageGroup defaultStorageGroup;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWDatabaseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_DATABASE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFederated() {
+ return federated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFederated(boolean newFederated) {
+ boolean oldFederated = federated;
+ federated = newFederated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE__FEDERATED, oldFederated, federated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getGroups() {
+ if (groups == null) {
+ groups = new EObjectWithInverseResolvingEList(LUWPartitionGroup.class, this, LUWPackage.LUW_DATABASE__GROUPS, LUWPackage.LUW_PARTITION_GROUP__DATABASE);
+ }
+ return groups;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getWrappers() {
+ if (wrappers == null) {
+ wrappers = new EObjectWithInverseResolvingEList(LUWWrapper.class, this, LUWPackage.LUW_DATABASE__WRAPPERS, LUWPackage.LUW_WRAPPER__LUW_DATABASE);
+ }
+ return wrappers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getServers() {
+ if (servers == null) {
+ servers = new EObjectWithInverseResolvingEList(LUWServer.class, this, LUWPackage.LUW_DATABASE__SERVERS, LUWPackage.LUW_SERVER__LUW_DATABASE);
+ }
+ return servers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getFunctionMappings() {
+ if (functionMappings == null) {
+ functionMappings = new EObjectWithInverseResolvingEList(LUWFunctionMapping.class, this, LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS, LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE);
+ }
+ return functionMappings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTypeMappings() {
+ if (typeMappings == null) {
+ typeMappings = new EObjectResolvingEList(LUWTypeMapping.class, this, LUWPackage.LUW_DATABASE__TYPE_MAPPINGS);
+ }
+ return typeMappings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getReverseTypeMappings() {
+ if (reverseTypeMappings == null) {
+ reverseTypeMappings = new EObjectResolvingEList(LUWTypeMapping.class, this, LUWPackage.LUW_DATABASE__REVERSE_TYPE_MAPPINGS);
+ }
+ return reverseTypeMappings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getBufferpools() {
+ if (bufferpools == null) {
+ bufferpools = new EObjectWithInverseResolvingEList(LUWBufferPool.class, this, LUWPackage.LUW_DATABASE__BUFFERPOOLS, LUWPackage.LUW_BUFFER_POOL__DATABASE);
+ }
+ return bufferpools;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTablespaces() {
+ if (tablespaces == null) {
+ tablespaces = new EObjectWithInverseResolvingEList(LUWTableSpace.class, this, LUWPackage.LUW_DATABASE__TABLESPACES, LUWPackage.LUW_TABLE_SPACE__DATABASE);
+ }
+ return tablespaces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getStorageGroups() {
+ if (storageGroups == null) {
+ storageGroups = new EObjectWithInverseResolvingEList(LUWStorageGroup.class, this, LUWPackage.LUW_DATABASE__STORAGE_GROUPS, LUWPackage.LUW_STORAGE_GROUP__DATABASE);
+ }
+ return storageGroups;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageGroup getDefaultStorageGroup() {
+ if (defaultStorageGroup != null && defaultStorageGroup.eIsProxy()) {
+ InternalEObject oldDefaultStorageGroup = (InternalEObject)defaultStorageGroup;
+ defaultStorageGroup = (LUWStorageGroup)eResolveProxy(oldDefaultStorageGroup);
+ if (defaultStorageGroup != oldDefaultStorageGroup) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_DATABASE__DEFAULT_STORAGE_GROUP, oldDefaultStorageGroup, defaultStorageGroup));
+ }
+ }
+ return defaultStorageGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageGroup basicGetDefaultStorageGroup() {
+ return defaultStorageGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultStorageGroup(LUWStorageGroup newDefaultStorageGroup) {
+ LUWStorageGroup oldDefaultStorageGroup = defaultStorageGroup;
+ defaultStorageGroup = newDefaultStorageGroup;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE__DEFAULT_STORAGE_GROUP, oldDefaultStorageGroup, defaultStorageGroup));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE__GROUPS:
+ return ((InternalEList)getGroups()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__WRAPPERS:
+ return ((InternalEList)getWrappers()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__SERVERS:
+ return ((InternalEList)getServers()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS:
+ return ((InternalEList)getFunctionMappings()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__BUFFERPOOLS:
+ return ((InternalEList)getBufferpools()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__TABLESPACES:
+ return ((InternalEList)getTablespaces()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__STORAGE_GROUPS:
+ return ((InternalEList)getStorageGroups()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE__GROUPS:
+ return ((InternalEList)getGroups()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__WRAPPERS:
+ return ((InternalEList)getWrappers()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__SERVERS:
+ return ((InternalEList)getServers()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS:
+ return ((InternalEList)getFunctionMappings()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__BUFFERPOOLS:
+ return ((InternalEList)getBufferpools()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__TABLESPACES:
+ return ((InternalEList)getTablespaces()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE__STORAGE_GROUPS:
+ return ((InternalEList)getStorageGroups()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE__FEDERATED:
+ return isFederated() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_DATABASE__GROUPS:
+ return getGroups();
+ case LUWPackage.LUW_DATABASE__WRAPPERS:
+ return getWrappers();
+ case LUWPackage.LUW_DATABASE__SERVERS:
+ return getServers();
+ case LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS:
+ return getFunctionMappings();
+ case LUWPackage.LUW_DATABASE__TYPE_MAPPINGS:
+ return getTypeMappings();
+ case LUWPackage.LUW_DATABASE__REVERSE_TYPE_MAPPINGS:
+ return getReverseTypeMappings();
+ case LUWPackage.LUW_DATABASE__BUFFERPOOLS:
+ return getBufferpools();
+ case LUWPackage.LUW_DATABASE__TABLESPACES:
+ return getTablespaces();
+ case LUWPackage.LUW_DATABASE__STORAGE_GROUPS:
+ return getStorageGroups();
+ case LUWPackage.LUW_DATABASE__DEFAULT_STORAGE_GROUP:
+ if (resolve) return getDefaultStorageGroup();
+ return basicGetDefaultStorageGroup();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE__FEDERATED:
+ setFederated(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_DATABASE__GROUPS:
+ getGroups().clear();
+ getGroups().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__WRAPPERS:
+ getWrappers().clear();
+ getWrappers().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__SERVERS:
+ getServers().clear();
+ getServers().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS:
+ getFunctionMappings().clear();
+ getFunctionMappings().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__TYPE_MAPPINGS:
+ getTypeMappings().clear();
+ getTypeMappings().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__REVERSE_TYPE_MAPPINGS:
+ getReverseTypeMappings().clear();
+ getReverseTypeMappings().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__BUFFERPOOLS:
+ getBufferpools().clear();
+ getBufferpools().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__TABLESPACES:
+ getTablespaces().clear();
+ getTablespaces().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__STORAGE_GROUPS:
+ getStorageGroups().clear();
+ getStorageGroups().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE__DEFAULT_STORAGE_GROUP:
+ setDefaultStorageGroup((LUWStorageGroup)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE__FEDERATED:
+ setFederated(FEDERATED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE__GROUPS:
+ getGroups().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__WRAPPERS:
+ getWrappers().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__SERVERS:
+ getServers().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS:
+ getFunctionMappings().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__TYPE_MAPPINGS:
+ getTypeMappings().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__REVERSE_TYPE_MAPPINGS:
+ getReverseTypeMappings().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__BUFFERPOOLS:
+ getBufferpools().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__TABLESPACES:
+ getTablespaces().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__STORAGE_GROUPS:
+ getStorageGroups().clear();
+ return;
+ case LUWPackage.LUW_DATABASE__DEFAULT_STORAGE_GROUP:
+ setDefaultStorageGroup((LUWStorageGroup)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE__FEDERATED:
+ return federated != FEDERATED_EDEFAULT;
+ case LUWPackage.LUW_DATABASE__GROUPS:
+ return groups != null && !groups.isEmpty();
+ case LUWPackage.LUW_DATABASE__WRAPPERS:
+ return wrappers != null && !wrappers.isEmpty();
+ case LUWPackage.LUW_DATABASE__SERVERS:
+ return servers != null && !servers.isEmpty();
+ case LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS:
+ return functionMappings != null && !functionMappings.isEmpty();
+ case LUWPackage.LUW_DATABASE__TYPE_MAPPINGS:
+ return typeMappings != null && !typeMappings.isEmpty();
+ case LUWPackage.LUW_DATABASE__REVERSE_TYPE_MAPPINGS:
+ return reverseTypeMappings != null && !reverseTypeMappings.isEmpty();
+ case LUWPackage.LUW_DATABASE__BUFFERPOOLS:
+ return bufferpools != null && !bufferpools.isEmpty();
+ case LUWPackage.LUW_DATABASE__TABLESPACES:
+ return tablespaces != null && !tablespaces.isEmpty();
+ case LUWPackage.LUW_DATABASE__STORAGE_GROUPS:
+ return storageGroups != null && !storageGroups.isEmpty();
+ case LUWPackage.LUW_DATABASE__DEFAULT_STORAGE_GROUP:
+ return defaultStorageGroup != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (federated: "); //$NON-NLS-1$
+ result.append(federated);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWDatabaseImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabasePackageImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabasePackageImpl.java
new file mode 100644
index 0000000..02da5b6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabasePackageImpl.java
@@ -0,0 +1,421 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWDatabasePackageImpl.java,v 1.4 2009/03/16 21:08:36 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Database Package</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl#getCreator <em>Creator</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl#getBinder <em>Binder</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl#getCursorBlock <em>Cursor Block</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl#getNumberOfSections <em>Number Of Sections</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl#getOptimizationClass <em>Optimization Class</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePackageImpl#getExplainSnapshot <em>Explain Snapshot</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWDatabasePackageImpl extends DB2PackageImpl implements LUWDatabasePackage {
+ /**
+ * The default value of the '{@link #getCreator() <em>Creator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreator()
+ * @generated
+ * @ordered
+ */
+ protected static final String CREATOR_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getCreator() <em>Creator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreator()
+ * @generated
+ * @ordered
+ */
+ protected String creator = CREATOR_EDEFAULT;
+ /**
+ * The default value of the '{@link #getBinder() <em>Binder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBinder()
+ * @generated
+ * @ordered
+ */
+ protected static final String BINDER_EDEFAULT = null;
+ /**
+ * The cached value of the '{@link #getBinder() <em>Binder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBinder()
+ * @generated
+ * @ordered
+ */
+ protected String binder = BINDER_EDEFAULT;
+ /**
+ * The default value of the '{@link #getCursorBlock() <em>Cursor Block</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCursorBlock()
+ * @generated
+ * @ordered
+ */
+ protected static final CursorBlockType CURSOR_BLOCK_EDEFAULT = CursorBlockType.BLOCK_UNAMBIGUOUS_CURSORS_LITERAL;
+ /**
+ * The cached value of the '{@link #getCursorBlock() <em>Cursor Block</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCursorBlock()
+ * @generated
+ * @ordered
+ */
+ protected CursorBlockType cursorBlock = CURSOR_BLOCK_EDEFAULT;
+ /**
+ * The default value of the '{@link #getNumberOfSections() <em>Number Of Sections</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfSections()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUMBER_OF_SECTIONS_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getNumberOfSections() <em>Number Of Sections</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumberOfSections()
+ * @generated
+ * @ordered
+ */
+ protected int numberOfSections = NUMBER_OF_SECTIONS_EDEFAULT;
+ /**
+ * The default value of the '{@link #getOptimizationClass() <em>Optimization Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptimizationClass()
+ * @generated
+ * @ordered
+ */
+ protected static final int OPTIMIZATION_CLASS_EDEFAULT = 0;
+ /**
+ * The cached value of the '{@link #getOptimizationClass() <em>Optimization Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptimizationClass()
+ * @generated
+ * @ordered
+ */
+ protected int optimizationClass = OPTIMIZATION_CLASS_EDEFAULT;
+ /**
+ * The default value of the '{@link #getExplainSnapshot() <em>Explain Snapshot</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExplainSnapshot()
+ * @generated
+ * @ordered
+ */
+ protected static final ExplainSnaphotType EXPLAIN_SNAPSHOT_EDEFAULT = ExplainSnaphotType.ALL_LITERAL;
+ /**
+ * The cached value of the '{@link #getExplainSnapshot() <em>Explain Snapshot</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExplainSnapshot()
+ * @generated
+ * @ordered
+ */
+ protected ExplainSnaphotType explainSnapshot = EXPLAIN_SNAPSHOT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWDatabasePackageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_DATABASE_PACKAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCreator() {
+ return creator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreator(String newCreator) {
+ String oldCreator = creator;
+ creator = newCreator;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PACKAGE__CREATOR, oldCreator, creator));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBinder() {
+ return binder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBinder(String newBinder) {
+ String oldBinder = binder;
+ binder = newBinder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PACKAGE__BINDER, oldBinder, binder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CursorBlockType getCursorBlock() {
+ return cursorBlock;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCursorBlock(CursorBlockType newCursorBlock) {
+ CursorBlockType oldCursorBlock = cursorBlock;
+ cursorBlock = newCursorBlock == null ? CURSOR_BLOCK_EDEFAULT : newCursorBlock;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PACKAGE__CURSOR_BLOCK, oldCursorBlock, cursorBlock));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getNumberOfSections() {
+ return numberOfSections;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumberOfSections(int newNumberOfSections) {
+ int oldNumberOfSections = numberOfSections;
+ numberOfSections = newNumberOfSections;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS, oldNumberOfSections, numberOfSections));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getOptimizationClass() {
+ return optimizationClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOptimizationClass(int newOptimizationClass) {
+ int oldOptimizationClass = optimizationClass;
+ optimizationClass = newOptimizationClass;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS, oldOptimizationClass, optimizationClass));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExplainSnaphotType getExplainSnapshot() {
+ return explainSnapshot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExplainSnapshot(ExplainSnaphotType newExplainSnapshot) {
+ ExplainSnaphotType oldExplainSnapshot = explainSnapshot;
+ explainSnapshot = newExplainSnapshot == null ? EXPLAIN_SNAPSHOT_EDEFAULT : newExplainSnapshot;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT, oldExplainSnapshot, explainSnapshot));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PACKAGE__CREATOR:
+ return getCreator();
+ case LUWPackage.LUW_DATABASE_PACKAGE__BINDER:
+ return getBinder();
+ case LUWPackage.LUW_DATABASE_PACKAGE__CURSOR_BLOCK:
+ return getCursorBlock();
+ case LUWPackage.LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS:
+ return new Integer(getNumberOfSections());
+ case LUWPackage.LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS:
+ return new Integer(getOptimizationClass());
+ case LUWPackage.LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT:
+ return getExplainSnapshot();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PACKAGE__CREATOR:
+ setCreator((String)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__BINDER:
+ setBinder((String)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__CURSOR_BLOCK:
+ setCursorBlock((CursorBlockType)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS:
+ setNumberOfSections(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS:
+ setOptimizationClass(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT:
+ setExplainSnapshot((ExplainSnaphotType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PACKAGE__CREATOR:
+ setCreator(CREATOR_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__BINDER:
+ setBinder(BINDER_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__CURSOR_BLOCK:
+ setCursorBlock(CURSOR_BLOCK_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS:
+ setNumberOfSections(NUMBER_OF_SECTIONS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS:
+ setOptimizationClass(OPTIMIZATION_CLASS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT:
+ setExplainSnapshot(EXPLAIN_SNAPSHOT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PACKAGE__CREATOR:
+ return CREATOR_EDEFAULT == null ? creator != null : !CREATOR_EDEFAULT.equals(creator);
+ case LUWPackage.LUW_DATABASE_PACKAGE__BINDER:
+ return BINDER_EDEFAULT == null ? binder != null : !BINDER_EDEFAULT.equals(binder);
+ case LUWPackage.LUW_DATABASE_PACKAGE__CURSOR_BLOCK:
+ return cursorBlock != CURSOR_BLOCK_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS:
+ return numberOfSections != NUMBER_OF_SECTIONS_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS:
+ return optimizationClass != OPTIMIZATION_CLASS_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT:
+ return explainSnapshot != EXPLAIN_SNAPSHOT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (creator: "); //$NON-NLS-1$
+ result.append(creator);
+ result.append(", binder: "); //$NON-NLS-1$
+ result.append(binder);
+ result.append(", cursorBlock: "); //$NON-NLS-1$
+ result.append(cursorBlock);
+ result.append(", numberOfSections: "); //$NON-NLS-1$
+ result.append(numberOfSections);
+ result.append(", optimizationClass: "); //$NON-NLS-1$
+ result.append(optimizationClass);
+ result.append(", explainSnapshot: "); //$NON-NLS-1$
+ result.append(explainSnapshot);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWDatabasePackageImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabasePartitionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabasePartitionImpl.java
new file mode 100644
index 0000000..c9b38dd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWDatabasePartitionImpl.java
@@ -0,0 +1,710 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Database Partition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getNumber <em>Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getPortNumber <em>Port Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getHostName <em>Host Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getSwitchName <em>Switch Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#isCatalogPartition <em>Catalog Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getBufferPool <em>Buffer Pool</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getContainers <em>Containers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWDatabasePartitionImpl#getSizeException <em>Size Exception</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWDatabasePartitionImpl extends SQLObjectImpl implements LUWDatabasePartition {
+ /**
+ * The default value of the '{@link #getNumber() <em>Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumber()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUMBER_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNumber() <em>Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNumber()
+ * @generated
+ * @ordered
+ */
+ protected int number = NUMBER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPortNumber() <em>Port Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPortNumber()
+ * @generated
+ * @ordered
+ */
+ protected static final int PORT_NUMBER_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getPortNumber() <em>Port Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPortNumber()
+ * @generated
+ * @ordered
+ */
+ protected int portNumber = PORT_NUMBER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHostName() <em>Host Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHostName()
+ * @generated
+ * @ordered
+ */
+ protected static final String HOST_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHostName() <em>Host Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHostName()
+ * @generated
+ * @ordered
+ */
+ protected String hostName = HOST_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSwitchName() <em>Switch Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSwitchName()
+ * @generated
+ * @ordered
+ */
+ protected static final String SWITCH_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSwitchName() <em>Switch Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSwitchName()
+ * @generated
+ * @ordered
+ */
+ protected String switchName = SWITCH_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isCatalogPartition() <em>Catalog Partition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCatalogPartition()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CATALOG_PARTITION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCatalogPartition() <em>Catalog Partition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCatalogPartition()
+ * @generated
+ * @ordered
+ */
+ protected boolean catalogPartition = CATALOG_PARTITION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated
+ * @ordered
+ */
+ protected LUWPartitionGroup group;
+
+ /**
+ * The cached value of the '{@link #getBufferPool() <em>Buffer Pool</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBufferPool()
+ * @generated
+ * @ordered
+ */
+ protected LUWBufferPool bufferPool;
+
+ /**
+ * The cached value of the '{@link #getContainers() <em>Containers</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContainers()
+ * @generated
+ * @ordered
+ */
+ protected EList containers;
+
+ /**
+ * The cached value of the '{@link #getSizeException() <em>Size Exception</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSizeException()
+ * @generated
+ * @ordered
+ */
+ protected LUWBufferPoolSizeException sizeException;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWDatabasePartitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_DATABASE_PARTITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getNumber() {
+ return number;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNumber(int newNumber) {
+ int oldNumber = number;
+ number = newNumber;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__NUMBER, oldNumber, number));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionGroup getGroup() {
+ if (group != null && group.eIsProxy()) {
+ InternalEObject oldGroup = (InternalEObject)group;
+ group = (LUWPartitionGroup)eResolveProxy(oldGroup);
+ if (group != oldGroup) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_DATABASE_PARTITION__GROUP, oldGroup, group));
+ }
+ }
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionGroup basicGetGroup() {
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetGroup(LUWPartitionGroup newGroup, NotificationChain msgs) {
+ LUWPartitionGroup oldGroup = group;
+ group = newGroup;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__GROUP, oldGroup, newGroup);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGroup(LUWPartitionGroup newGroup) {
+ if (newGroup != group) {
+ NotificationChain msgs = null;
+ if (group != null)
+ msgs = ((InternalEObject)group).eInverseRemove(this, LUWPackage.LUW_PARTITION_GROUP__PARTITIONS, LUWPartitionGroup.class, msgs);
+ if (newGroup != null)
+ msgs = ((InternalEObject)newGroup).eInverseAdd(this, LUWPackage.LUW_PARTITION_GROUP__PARTITIONS, LUWPartitionGroup.class, msgs);
+ msgs = basicSetGroup(newGroup, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__GROUP, newGroup, newGroup));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPool getBufferPool() {
+ if (bufferPool != null && bufferPool.eIsProxy()) {
+ InternalEObject oldBufferPool = (InternalEObject)bufferPool;
+ bufferPool = (LUWBufferPool)eResolveProxy(oldBufferPool);
+ if (bufferPool != oldBufferPool) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL, oldBufferPool, bufferPool));
+ }
+ }
+ return bufferPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPool basicGetBufferPool() {
+ return bufferPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBufferPool(LUWBufferPool newBufferPool, NotificationChain msgs) {
+ LUWBufferPool oldBufferPool = bufferPool;
+ bufferPool = newBufferPool;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL, oldBufferPool, newBufferPool);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBufferPool(LUWBufferPool newBufferPool) {
+ if (newBufferPool != bufferPool) {
+ NotificationChain msgs = null;
+ if (bufferPool != null)
+ msgs = ((InternalEObject)bufferPool).eInverseRemove(this, LUWPackage.LUW_BUFFER_POOL__PARTITIONS, LUWBufferPool.class, msgs);
+ if (newBufferPool != null)
+ msgs = ((InternalEObject)newBufferPool).eInverseAdd(this, LUWPackage.LUW_BUFFER_POOL__PARTITIONS, LUWBufferPool.class, msgs);
+ msgs = basicSetBufferPool(newBufferPool, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL, newBufferPool, newBufferPool));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getContainers() {
+ if (containers == null) {
+ containers = new EObjectWithInverseResolvingEList.ManyInverse(LUWDatabaseContainer.class, this, LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS, LUWPackage.LUW_DATABASE_CONTAINER__PARTITIONS);
+ }
+ return containers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPoolSizeException getSizeException() {
+ if (sizeException != null && sizeException.eIsProxy()) {
+ InternalEObject oldSizeException = (InternalEObject)sizeException;
+ sizeException = (LUWBufferPoolSizeException)eResolveProxy(oldSizeException);
+ if (sizeException != oldSizeException) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION, oldSizeException, sizeException));
+ }
+ }
+ return sizeException;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPoolSizeException basicGetSizeException() {
+ return sizeException;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSizeException(LUWBufferPoolSizeException newSizeException, NotificationChain msgs) {
+ LUWBufferPoolSizeException oldSizeException = sizeException;
+ sizeException = newSizeException;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION, oldSizeException, newSizeException);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSizeException(LUWBufferPoolSizeException newSizeException) {
+ if (newSizeException != sizeException) {
+ NotificationChain msgs = null;
+ if (sizeException != null)
+ msgs = ((InternalEObject)sizeException).eInverseRemove(this, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS, LUWBufferPoolSizeException.class, msgs);
+ if (newSizeException != null)
+ msgs = ((InternalEObject)newSizeException).eInverseAdd(this, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS, LUWBufferPoolSizeException.class, msgs);
+ msgs = basicSetSizeException(newSizeException, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION, newSizeException, newSizeException));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPortNumber() {
+ return portNumber;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPortNumber(int newPortNumber) {
+ int oldPortNumber = portNumber;
+ portNumber = newPortNumber;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__PORT_NUMBER, oldPortNumber, portNumber));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getHostName() {
+ return hostName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHostName(String newHostName) {
+ String oldHostName = hostName;
+ hostName = newHostName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__HOST_NAME, oldHostName, hostName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSwitchName() {
+ return switchName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSwitchName(String newSwitchName) {
+ String oldSwitchName = switchName;
+ switchName = newSwitchName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__SWITCH_NAME, oldSwitchName, switchName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCatalogPartition() {
+ return catalogPartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCatalogPartition(boolean newCatalogPartition) {
+ boolean oldCatalogPartition = catalogPartition;
+ catalogPartition = newCatalogPartition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_DATABASE_PARTITION__CATALOG_PARTITION, oldCatalogPartition, catalogPartition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PARTITION__GROUP:
+ if (group != null)
+ msgs = ((InternalEObject)group).eInverseRemove(this, LUWPackage.LUW_PARTITION_GROUP__PARTITIONS, LUWPartitionGroup.class, msgs);
+ return basicSetGroup((LUWPartitionGroup)otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL:
+ if (bufferPool != null)
+ msgs = ((InternalEObject)bufferPool).eInverseRemove(this, LUWPackage.LUW_BUFFER_POOL__PARTITIONS, LUWBufferPool.class, msgs);
+ return basicSetBufferPool((LUWBufferPool)otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS:
+ return ((InternalEList)getContainers()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION:
+ if (sizeException != null)
+ msgs = ((InternalEObject)sizeException).eInverseRemove(this, LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS, LUWBufferPoolSizeException.class, msgs);
+ return basicSetSizeException((LUWBufferPoolSizeException)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PARTITION__GROUP:
+ return basicSetGroup(null, msgs);
+ case LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL:
+ return basicSetBufferPool(null, msgs);
+ case LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS:
+ return ((InternalEList)getContainers()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION:
+ return basicSetSizeException(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PARTITION__NUMBER:
+ return new Integer(getNumber());
+ case LUWPackage.LUW_DATABASE_PARTITION__PORT_NUMBER:
+ return new Integer(getPortNumber());
+ case LUWPackage.LUW_DATABASE_PARTITION__HOST_NAME:
+ return getHostName();
+ case LUWPackage.LUW_DATABASE_PARTITION__SWITCH_NAME:
+ return getSwitchName();
+ case LUWPackage.LUW_DATABASE_PARTITION__CATALOG_PARTITION:
+ return isCatalogPartition() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_DATABASE_PARTITION__GROUP:
+ if (resolve) return getGroup();
+ return basicGetGroup();
+ case LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL:
+ if (resolve) return getBufferPool();
+ return basicGetBufferPool();
+ case LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS:
+ return getContainers();
+ case LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION:
+ if (resolve) return getSizeException();
+ return basicGetSizeException();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PARTITION__NUMBER:
+ setNumber(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__PORT_NUMBER:
+ setPortNumber(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__HOST_NAME:
+ setHostName((String)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__SWITCH_NAME:
+ setSwitchName((String)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__CATALOG_PARTITION:
+ setCatalogPartition(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__GROUP:
+ setGroup((LUWPartitionGroup)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL:
+ setBufferPool((LUWBufferPool)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS:
+ getContainers().clear();
+ getContainers().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION:
+ setSizeException((LUWBufferPoolSizeException)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PARTITION__NUMBER:
+ setNumber(NUMBER_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__PORT_NUMBER:
+ setPortNumber(PORT_NUMBER_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__HOST_NAME:
+ setHostName(HOST_NAME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__SWITCH_NAME:
+ setSwitchName(SWITCH_NAME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__CATALOG_PARTITION:
+ setCatalogPartition(CATALOG_PARTITION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__GROUP:
+ setGroup((LUWPartitionGroup)null);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL:
+ setBufferPool((LUWBufferPool)null);
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS:
+ getContainers().clear();
+ return;
+ case LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION:
+ setSizeException((LUWBufferPoolSizeException)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_DATABASE_PARTITION__NUMBER:
+ return number != NUMBER_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_PARTITION__PORT_NUMBER:
+ return portNumber != PORT_NUMBER_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_PARTITION__HOST_NAME:
+ return HOST_NAME_EDEFAULT == null ? hostName != null : !HOST_NAME_EDEFAULT.equals(hostName);
+ case LUWPackage.LUW_DATABASE_PARTITION__SWITCH_NAME:
+ return SWITCH_NAME_EDEFAULT == null ? switchName != null : !SWITCH_NAME_EDEFAULT.equals(switchName);
+ case LUWPackage.LUW_DATABASE_PARTITION__CATALOG_PARTITION:
+ return catalogPartition != CATALOG_PARTITION_EDEFAULT;
+ case LUWPackage.LUW_DATABASE_PARTITION__GROUP:
+ return group != null;
+ case LUWPackage.LUW_DATABASE_PARTITION__BUFFER_POOL:
+ return bufferPool != null;
+ case LUWPackage.LUW_DATABASE_PARTITION__CONTAINERS:
+ return containers != null && !containers.isEmpty();
+ case LUWPackage.LUW_DATABASE_PARTITION__SIZE_EXCEPTION:
+ return sizeException != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (number: "); //$NON-NLS-1$
+ result.append(number);
+ result.append(", portNumber: "); //$NON-NLS-1$
+ result.append(portNumber);
+ result.append(", hostName: "); //$NON-NLS-1$
+ result.append(hostName);
+ result.append(", switchName: "); //$NON-NLS-1$
+ result.append(switchName);
+ result.append(", catalogPartition: "); //$NON-NLS-1$
+ result.append(catalogPartition);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWDatabasePartitionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWFactoryImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWFactoryImpl.java
new file mode 100644
index 0000000..01d510c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWFactoryImpl.java
@@ -0,0 +1,1389 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.*;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.util.DatabaseToRemoteServerHelper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.util.TableToRemoteDataSetHelper;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LUWFactoryImpl extends EFactoryImpl implements LUWFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static LUWFactory init() {
+ try {
+ LUWFactory theLUWFactory = (LUWFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org.eclipse.datatools.enablement.ibm.db2.luw.model.ecore"); //$NON-NLS-1$
+ if (theLUWFactory != null) {
+ return theLUWFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new LUWFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case LUWPackage.LUW_PARTITION_GROUP: return createLUWPartitionGroup();
+ case LUWPackage.LUW_TABLE_SPACE: return createLUWTableSpace();
+ case LUWPackage.LUW_DATABASE_PARTITION: return createLUWDatabasePartition();
+ case LUWPackage.LUW_DATABASE_CONTAINER: return createLUWDatabaseContainer();
+ case LUWPackage.LUW_ADMIN_SERVER: return createLUWAdminServer();
+ case LUWPackage.LUW_BUFFER_POOL: return createLUWBufferPool();
+ case LUWPackage.LUW_TABLE: return createLUWTable();
+ case LUWPackage.LUW_VIEW: return createLUWView();
+ case LUWPackage.LUW_PARTITION_KEY: return createLUWPartitionKey();
+ case LUWPackage.LUW_FUNCTION_MAPPING: return createLUWFunctionMapping();
+ case LUWPackage.LUW_GENERIC_USER_MAPPING: return createLUWGenericUserMapping();
+ case LUWPackage.LUW_TYPE_MAPPING: return createLUWTypeMapping();
+ case LUWPackage.LUW_USER_MAPPING: return createLUWUserMapping();
+ case LUWPackage.LUW_OPTION: return createLUWOption();
+ case LUWPackage.LUW_DATABASE: return createLUWDatabase();
+ case LUWPackage.LUW_COLUMN: return createLUWColumn();
+ case LUWPackage.LUW_GENERIC_NICKNAME: return createLUWGenericNickname();
+ case LUWPackage.LUW_GENERIC_SERVER: return createLUWGenericServer();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE: return createLUWMaterializedQueryTable();
+ case LUWPackage.LUW_GENERIC_WRAPPER: return createLUWGenericWrapper();
+ case LUWPackage.RELATIONAL_REMOTE_SERVER: return createRelationalRemoteServer();
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET: return createRelationalRemoteDataSet();
+ case LUWPackage.REMOTE_SERVER: return createRemoteServer();
+ case LUWPackage.REMOTE_DATA_SET: return createRemoteDataSet();
+ case LUWPackage.LUW_INDEX: return createLUWIndex();
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION: return createLUWAttributeDefinition();
+ case LUWPackage.FEDERATED_PROCEDURE: return createFederatedProcedure();
+ case LUWPackage.FEDERATED_PARAMETER: return createFederatedParameter();
+ case LUWPackage.LUW_PARTITION_EXPRESSION: return createLUWPartitionExpression();
+ case LUWPackage.LUW_PARTITION_ELEMENT: return createLUWPartitionElement();
+ case LUWPackage.LUW_DATA_PARTITION: return createLUWDataPartition();
+ case LUWPackage.LUW_DATA_PARTITION_KEY: return createLUWDataPartitionKey();
+ case LUWPackage.LUW_DATABASE_PACKAGE: return createLUWDatabasePackage();
+ case LUWPackage.LUW_MODULE: return createLUWModule();
+ case LUWPackage.LUW_MODULE_FUNCTION: return createLUWModuleFunction();
+ case LUWPackage.LUW_MODULE_PROCEDURE: return createLUWModuleProcedure();
+ case LUWPackage.LUW_MODULE_CONDITION: return createLUWModuleCondition();
+ case LUWPackage.LUW_GLOBAL_VARIABLE: return createLUWGlobalVariable();
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE: return createLUWModuleRowDataType();
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE: return createLUWModuleArrayDataType();
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE: return createLUWModuleDistinctType();
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE: return createLUWModuleGlobalVariable();
+ case LUWPackage.LUW_ARRAY_DATA_TYPE: return createLUWArrayDataType();
+ case LUWPackage.LUW_ROW_DATA_TYPE: return createLUWRowDataType();
+ case LUWPackage.PLSQL_PACKAGE: return createPLSQLPackage();
+ case LUWPackage.PLSQL_PACKAGE_BODY: return createPLSQLPackageBody();
+ case LUWPackage.LUW_CURSOR_DATA_TYPE: return createLUWCursorDataType();
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE: return createLUWModuleCursorDataType();
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION: return createLUWBufferPoolSizeException();
+ case LUWPackage.LUW_MEMBER: return createLUWMember();
+ case LUWPackage.LUW_SECURITY_POLICY: return createLUWSecurityPolicy();
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT: return createLUWSecurityLabelComponent();
+ case LUWPackage.LUW_SECURITY_LABEL: return createLUWSecurityLabel();
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT: return createLUWSecurityLabelComponentElement();
+ case LUWPackage.LUW_STORAGE_GROUP: return createLUWStorageGroup();
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE: return createLUWTemporaryStorageTable();
+ case LUWPackage.LUW_TEMPORARY_TABLE: return createLUWTemporaryTable();
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE: return createArrayIndexElementType();
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT: return createLUWPartitionEveryClauseElement();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case LUWPackage.LUW_CONTAINER_TYPE:
+ return createLUWContainerTypeFromString(eDataType, initialValue);
+ case LUWPackage.PAGE_SIZE_TYPE:
+ return createPageSizeTypeFromString(eDataType, initialValue);
+ case LUWPackage.BUFFER_POOL_TYPE:
+ return createBufferPoolTypeFromString(eDataType, initialValue);
+ case LUWPackage.TABLE_SPACE_TYPE:
+ return createTableSpaceTypeFromString(eDataType, initialValue);
+ case LUWPackage.MANAGEMENT_TYPE:
+ return createManagementTypeFromString(eDataType, initialValue);
+ case LUWPackage.CHECK_OPTION_TYPE:
+ return createCheckOptionTypeFromString(eDataType, initialValue);
+ case LUWPackage.PARTITION_METHOD:
+ return createPartitionMethodFromString(eDataType, initialValue);
+ case LUWPackage.MAINTENANCE_TYPE:
+ return createMaintenanceTypeFromString(eDataType, initialValue);
+ case LUWPackage.REFRESH_TYPE:
+ return createRefreshTypeFromString(eDataType, initialValue);
+ case LUWPackage.WRAPPER_TYPE:
+ return createWrapperTypeFromString(eDataType, initialValue);
+ case LUWPackage.DATA_PARTITION_METHOD:
+ return createDataPartitionMethodFromString(eDataType, initialValue);
+ case LUWPackage.CURSOR_BLOCK_TYPE:
+ return createCursorBlockTypeFromString(eDataType, initialValue);
+ case LUWPackage.EXPLAIN_SNAPHOT_TYPE:
+ return createExplainSnaphotTypeFromString(eDataType, initialValue);
+ case LUWPackage.FILE_SYSTEM_CACHING_TYPE:
+ return createFileSystemCachingTypeFromString(eDataType, initialValue);
+ case LUWPackage.LUW_INDEX_PAGE_SPLIT_TYPE:
+ return createLUWIndexPageSplitTypeFromString(eDataType, initialValue);
+ case LUWPackage.LUW_INDEX_COMPRESS_TYPE:
+ return createLUWIndexCompressTypeFromString(eDataType, initialValue);
+ case LUWPackage.SYSTEM_TYPE:
+ return createSystemTypeFromString(eDataType, initialValue);
+ case LUWPackage.AVERAGE_TABLE_SIZE_TYPE:
+ return createAverageTableSizeTypeFromString(eDataType, initialValue);
+ case LUWPackage.LUW_STORAGE_TABLE_COMPRESSION_MODE:
+ return createLUWStorageTableCompressionModeFromString(eDataType, initialValue);
+ case LUWPackage.LUW_MEMBER_TYPE:
+ return createLUWMemberTypeFromString(eDataType, initialValue);
+ case LUWPackage.MEMBER_STATE_TYPE:
+ return createMemberStateTypeFromString(eDataType, initialValue);
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_TYPE:
+ return createLUWSecurityLabelComponentTypeFromString(eDataType, initialValue);
+ case LUWPackage.LUW_SECURITY_LABEL_NOT_AUTHORIZED_WRITE_ACTION:
+ return createLUWSecurityLabelNotAuthorizedWriteActionFromString(eDataType, initialValue);
+ case LUWPackage.LUW_FEDERATED_DATA_SOURCE:
+ return createLUWFederatedDataSourceFromString(eDataType, initialValue);
+ case LUWPackage.LUW_TEMPORARY_TABLE_LOGGING_OPTION:
+ return createLUWTemporaryTableLoggingOptionFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case LUWPackage.LUW_CONTAINER_TYPE:
+ return convertLUWContainerTypeToString(eDataType, instanceValue);
+ case LUWPackage.PAGE_SIZE_TYPE:
+ return convertPageSizeTypeToString(eDataType, instanceValue);
+ case LUWPackage.BUFFER_POOL_TYPE:
+ return convertBufferPoolTypeToString(eDataType, instanceValue);
+ case LUWPackage.TABLE_SPACE_TYPE:
+ return convertTableSpaceTypeToString(eDataType, instanceValue);
+ case LUWPackage.MANAGEMENT_TYPE:
+ return convertManagementTypeToString(eDataType, instanceValue);
+ case LUWPackage.CHECK_OPTION_TYPE:
+ return convertCheckOptionTypeToString(eDataType, instanceValue);
+ case LUWPackage.PARTITION_METHOD:
+ return convertPartitionMethodToString(eDataType, instanceValue);
+ case LUWPackage.MAINTENANCE_TYPE:
+ return convertMaintenanceTypeToString(eDataType, instanceValue);
+ case LUWPackage.REFRESH_TYPE:
+ return convertRefreshTypeToString(eDataType, instanceValue);
+ case LUWPackage.WRAPPER_TYPE:
+ return convertWrapperTypeToString(eDataType, instanceValue);
+ case LUWPackage.DATA_PARTITION_METHOD:
+ return convertDataPartitionMethodToString(eDataType, instanceValue);
+ case LUWPackage.CURSOR_BLOCK_TYPE:
+ return convertCursorBlockTypeToString(eDataType, instanceValue);
+ case LUWPackage.EXPLAIN_SNAPHOT_TYPE:
+ return convertExplainSnaphotTypeToString(eDataType, instanceValue);
+ case LUWPackage.FILE_SYSTEM_CACHING_TYPE:
+ return convertFileSystemCachingTypeToString(eDataType, instanceValue);
+ case LUWPackage.LUW_INDEX_PAGE_SPLIT_TYPE:
+ return convertLUWIndexPageSplitTypeToString(eDataType, instanceValue);
+ case LUWPackage.LUW_INDEX_COMPRESS_TYPE:
+ return convertLUWIndexCompressTypeToString(eDataType, instanceValue);
+ case LUWPackage.SYSTEM_TYPE:
+ return convertSystemTypeToString(eDataType, instanceValue);
+ case LUWPackage.AVERAGE_TABLE_SIZE_TYPE:
+ return convertAverageTableSizeTypeToString(eDataType, instanceValue);
+ case LUWPackage.LUW_STORAGE_TABLE_COMPRESSION_MODE:
+ return convertLUWStorageTableCompressionModeToString(eDataType, instanceValue);
+ case LUWPackage.LUW_MEMBER_TYPE:
+ return convertLUWMemberTypeToString(eDataType, instanceValue);
+ case LUWPackage.MEMBER_STATE_TYPE:
+ return convertMemberStateTypeToString(eDataType, instanceValue);
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_TYPE:
+ return convertLUWSecurityLabelComponentTypeToString(eDataType, instanceValue);
+ case LUWPackage.LUW_SECURITY_LABEL_NOT_AUTHORIZED_WRITE_ACTION:
+ return convertLUWSecurityLabelNotAuthorizedWriteActionToString(eDataType, instanceValue);
+ case LUWPackage.LUW_FEDERATED_DATA_SOURCE:
+ return convertLUWFederatedDataSourceToString(eDataType, instanceValue);
+ case LUWPackage.LUW_TEMPORARY_TABLE_LOGGING_OPTION:
+ return convertLUWTemporaryTableLoggingOptionToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionGroup createLUWPartitionGroup() {
+ LUWPartitionGroupImpl luwPartitionGroup = new LUWPartitionGroupImpl();
+ return luwPartitionGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace createLUWTableSpace() {
+ LUWTableSpaceImpl luwTableSpace = new LUWTableSpaceImpl();
+ return luwTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabasePartition createLUWDatabasePartition() {
+ LUWDatabasePartitionImpl luwDatabasePartition = new LUWDatabasePartitionImpl();
+ return luwDatabasePartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabaseContainer createLUWDatabaseContainer() {
+ LUWDatabaseContainerImpl luwDatabaseContainer = new LUWDatabaseContainerImpl();
+ return luwDatabaseContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWAdminServer createLUWAdminServer() {
+ LUWAdminServerImpl luwAdminServer = new LUWAdminServerImpl();
+ return luwAdminServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPool createLUWBufferPool() {
+ LUWBufferPoolImpl luwBufferPool = new LUWBufferPoolImpl();
+ return luwBufferPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTable createLUWTable() {
+ LUWTableImpl luwTable = new LUWTableImpl();
+ return luwTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWView createLUWView() {
+ LUWViewImpl luwView = new LUWViewImpl();
+ return luwView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionKey createLUWPartitionKey() {
+ LUWPartitionKeyImpl luwPartitionKey = new LUWPartitionKeyImpl();
+ return luwPartitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWFunctionMapping createLUWFunctionMapping() {
+ LUWFunctionMappingImpl luwFunctionMapping = new LUWFunctionMappingImpl();
+ return luwFunctionMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWGenericUserMapping createLUWGenericUserMapping() {
+ LUWGenericUserMappingImpl luwGenericUserMapping = new LUWGenericUserMappingImpl();
+ return luwGenericUserMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTypeMapping createLUWTypeMapping() {
+ LUWTypeMappingImpl luwTypeMapping = new LUWTypeMappingImpl();
+ return luwTypeMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWUserMapping createLUWUserMapping() {
+ LUWUserMappingImpl luwUserMapping = new LUWUserMappingImpl();
+ return luwUserMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWOption createLUWOption() {
+ LUWOptionImpl luwOption = new LUWOptionImpl();
+ return luwOption;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase createLUWDatabase() {
+ LUWDatabaseImpl luwDatabase = new LUWDatabaseImpl();
+ return luwDatabase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWColumn createLUWColumn() {
+ LUWColumnImpl luwColumn = new LUWColumnImpl();
+ return luwColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWGenericNickname createLUWGenericNickname() {
+ LUWGenericNicknameImpl luwGenericNickname = new LUWGenericNicknameImpl();
+ return luwGenericNickname;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWGenericServer createLUWGenericServer() {
+ LUWGenericServerImpl luwGenericServer = new LUWGenericServerImpl();
+ return luwGenericServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWMaterializedQueryTable createLUWMaterializedQueryTable() {
+ LUWMaterializedQueryTableImpl luwMaterializedQueryTable = new LUWMaterializedQueryTableImpl();
+ return luwMaterializedQueryTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWGenericWrapper createLUWGenericWrapper() {
+ LUWGenericWrapperImpl luwGenericWrapper = new LUWGenericWrapperImpl();
+ return luwGenericWrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RelationalRemoteServer createRelationalRemoteServerGen() {
+ RelationalRemoteServerImpl relationalRemoteServer = new RelationalRemoteServerImpl();
+ return relationalRemoteServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public RelationalRemoteServer createRelationalRemoteServer() {
+ RelationalRemoteServer relationalRemoteServer = createRelationalRemoteServerGen();
+ relationalRemoteServer.eAdapters().add(DatabaseToRemoteServerHelper.INVERSE_DATABASE_ADAPTER);
+
+ // A side effect of the add is to set the target of the INVERSE_DATABASE_ADAPTER
+ // to point back to relationalRemoteServer. This causes garbage collection problems because
+ // INVERSE_DATABASE_ADAPTER is a singleton. Need to unset the target reference...
+ DatabaseToRemoteServerHelper.INVERSE_DATABASE_ADAPTER.setTarget(null);
+
+ return relationalRemoteServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RelationalRemoteDataSet createRelationalRemoteDataSetGen() {
+ RelationalRemoteDataSetImpl relationalRemoteDataSet = new RelationalRemoteDataSetImpl();
+ return relationalRemoteDataSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public RelationalRemoteDataSet createRelationalRemoteDataSet() {
+ RelationalRemoteDataSet relationalRemoteDataSet = createRelationalRemoteDataSetGen();
+ relationalRemoteDataSet.eAdapters().add(TableToRemoteDataSetHelper.INVERSE_TABLE_ADAPTER);
+
+ // A side effect of the add is to set the target of the INVERSE_TABLE_ADAPTER
+ // to point back to relationalRemoteDataSet. This causes garbage collection problems because
+ // INVERSE_TABLE_ADAPTER is a singleton. Need to unset the target reference...
+ TableToRemoteDataSetHelper.INVERSE_TABLE_ADAPTER.setTarget(null);
+
+ return relationalRemoteDataSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoteServer createRemoteServer() {
+ RemoteServerImpl remoteServer = new RemoteServerImpl();
+ return remoteServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoteDataSet createRemoteDataSet() {
+ RemoteDataSetImpl remoteDataSet = new RemoteDataSetImpl();
+ return remoteDataSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWIndex createLUWIndex() {
+ LUWIndexImpl luwIndex = new LUWIndexImpl();
+ return luwIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWAttributeDefinition createLUWAttributeDefinition() {
+ LUWAttributeDefinitionImpl luwAttributeDefinition = new LUWAttributeDefinitionImpl();
+ return luwAttributeDefinition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FederatedProcedure createFederatedProcedure() {
+ FederatedProcedureImpl federatedProcedure = new FederatedProcedureImpl();
+ return federatedProcedure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FederatedParameter createFederatedParameter() {
+ FederatedParameterImpl federatedParameter = new FederatedParameterImpl();
+ return federatedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionExpression createLUWPartitionExpression() {
+ LUWPartitionExpressionImpl luwPartitionExpression = new LUWPartitionExpressionImpl();
+ return luwPartitionExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionElement createLUWPartitionElement() {
+ LUWPartitionElementImpl luwPartitionElement = new LUWPartitionElementImpl();
+ return luwPartitionElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDataPartition createLUWDataPartition() {
+ LUWDataPartitionImpl luwDataPartition = new LUWDataPartitionImpl();
+ return luwDataPartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDataPartitionKey createLUWDataPartitionKey() {
+ LUWDataPartitionKeyImpl luwDataPartitionKey = new LUWDataPartitionKeyImpl();
+ return luwDataPartitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabasePackage createLUWDatabasePackage() {
+ LUWDatabasePackageImpl luwDatabasePackage = new LUWDatabasePackageImpl();
+ return luwDatabasePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule createLUWModule() {
+ LUWModuleImpl luwModule = new LUWModuleImpl();
+ return luwModule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleFunction createLUWModuleFunction() {
+ LUWModuleFunctionImpl luwModuleFunction = new LUWModuleFunctionImpl();
+ return luwModuleFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleProcedure createLUWModuleProcedure() {
+ LUWModuleProcedureImpl luwModuleProcedure = new LUWModuleProcedureImpl();
+ return luwModuleProcedure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleCondition createLUWModuleCondition() {
+ LUWModuleConditionImpl luwModuleCondition = new LUWModuleConditionImpl();
+ return luwModuleCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWGlobalVariable createLUWGlobalVariable() {
+ LUWGlobalVariableImpl luwGlobalVariable = new LUWGlobalVariableImpl();
+ return luwGlobalVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleRowDataType createLUWModuleRowDataType() {
+ LUWModuleRowDataTypeImpl luwModuleRowDataType = new LUWModuleRowDataTypeImpl();
+ return luwModuleRowDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleArrayDataType createLUWModuleArrayDataType() {
+ LUWModuleArrayDataTypeImpl luwModuleArrayDataType = new LUWModuleArrayDataTypeImpl();
+ return luwModuleArrayDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleDistinctType createLUWModuleDistinctType() {
+ LUWModuleDistinctTypeImpl luwModuleDistinctType = new LUWModuleDistinctTypeImpl();
+ return luwModuleDistinctType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleGlobalVariable createLUWModuleGlobalVariable() {
+ LUWModuleGlobalVariableImpl luwModuleGlobalVariable = new LUWModuleGlobalVariableImpl();
+ return luwModuleGlobalVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWArrayDataType createLUWArrayDataType() {
+ LUWArrayDataTypeImpl luwArrayDataType = new LUWArrayDataTypeImpl();
+ return luwArrayDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWRowDataType createLUWRowDataType() {
+ LUWRowDataTypeImpl luwRowDataType = new LUWRowDataTypeImpl();
+ return luwRowDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PLSQLPackage createPLSQLPackage() {
+ PLSQLPackageImpl plsqlPackage = new PLSQLPackageImpl();
+ return plsqlPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PLSQLPackageBody createPLSQLPackageBody() {
+ PLSQLPackageBodyImpl plsqlPackageBody = new PLSQLPackageBodyImpl();
+ return plsqlPackageBody;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWCursorDataType createLUWCursorDataType() {
+ LUWCursorDataTypeImpl luwCursorDataType = new LUWCursorDataTypeImpl();
+ return luwCursorDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModuleCursorDataType createLUWModuleCursorDataType() {
+ LUWModuleCursorDataTypeImpl luwModuleCursorDataType = new LUWModuleCursorDataTypeImpl();
+ return luwModuleCursorDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPoolSizeException createLUWBufferPoolSizeException() {
+ LUWBufferPoolSizeExceptionImpl luwBufferPoolSizeException = new LUWBufferPoolSizeExceptionImpl();
+ return luwBufferPoolSizeException;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWMember createLUWMember() {
+ LUWMemberImpl luwMember = new LUWMemberImpl();
+ return luwMember;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityPolicy createLUWSecurityPolicy() {
+ LUWSecurityPolicyImpl luwSecurityPolicy = new LUWSecurityPolicyImpl();
+ return luwSecurityPolicy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityLabelComponent createLUWSecurityLabelComponent() {
+ LUWSecurityLabelComponentImpl luwSecurityLabelComponent = new LUWSecurityLabelComponentImpl();
+ return luwSecurityLabelComponent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityLabel createLUWSecurityLabel() {
+ LUWSecurityLabelImpl luwSecurityLabel = new LUWSecurityLabelImpl();
+ return luwSecurityLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityLabelComponentElement createLUWSecurityLabelComponentElement() {
+ LUWSecurityLabelComponentElementImpl luwSecurityLabelComponentElement = new LUWSecurityLabelComponentElementImpl();
+ return luwSecurityLabelComponentElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageGroup createLUWStorageGroup() {
+ LUWStorageGroupImpl luwStorageGroup = new LUWStorageGroupImpl();
+ return luwStorageGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTemporaryStorageTable createLUWTemporaryStorageTable() {
+ LUWTemporaryStorageTableImpl luwTemporaryStorageTable = new LUWTemporaryStorageTableImpl();
+ return luwTemporaryStorageTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTemporaryTable createLUWTemporaryTable() {
+ LUWTemporaryTableImpl luwTemporaryTable = new LUWTemporaryTableImpl();
+ return luwTemporaryTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArrayIndexElementType createArrayIndexElementType() {
+ ArrayIndexElementTypeImpl arrayIndexElementType = new ArrayIndexElementTypeImpl();
+ return arrayIndexElementType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionEveryClauseElement createLUWPartitionEveryClauseElement() {
+ LUWPartitionEveryClauseElementImpl luwPartitionEveryClauseElement = new LUWPartitionEveryClauseElementImpl();
+ return luwPartitionEveryClauseElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWContainerType createLUWContainerTypeFromString(EDataType eDataType, String initialValue) {
+ LUWContainerType result = LUWContainerType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWContainerTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PageSizeType createPageSizeTypeFromString(EDataType eDataType, String initialValue) {
+ PageSizeType result = PageSizeType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPageSizeTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BufferPoolType createBufferPoolTypeFromString(EDataType eDataType, String initialValue) {
+ BufferPoolType result = BufferPoolType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertBufferPoolTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TableSpaceType createTableSpaceTypeFromString(EDataType eDataType, String initialValue) {
+ TableSpaceType result = TableSpaceType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTableSpaceTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ManagementType createManagementTypeFromString(EDataType eDataType, String initialValue) {
+ ManagementType result = ManagementType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertManagementTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CheckOptionType createCheckOptionTypeFromString(EDataType eDataType, String initialValue) {
+ CheckOptionType result = CheckOptionType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCheckOptionTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PartitionMethod createPartitionMethodFromString(EDataType eDataType, String initialValue) {
+ PartitionMethod result = PartitionMethod.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPartitionMethodToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MaintenanceType createMaintenanceTypeFromString(EDataType eDataType, String initialValue) {
+ MaintenanceType result = MaintenanceType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMaintenanceTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RefreshType createRefreshTypeFromString(EDataType eDataType, String initialValue) {
+ RefreshType result = RefreshType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertRefreshTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WrapperType createWrapperTypeFromString(EDataType eDataType, String initialValue) {
+ WrapperType result = WrapperType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertWrapperTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataPartitionMethod createDataPartitionMethodFromString(EDataType eDataType, String initialValue) {
+ DataPartitionMethod result = DataPartitionMethod.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDataPartitionMethodToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CursorBlockType createCursorBlockTypeFromString(EDataType eDataType, String initialValue) {
+ CursorBlockType result = CursorBlockType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCursorBlockTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExplainSnaphotType createExplainSnaphotTypeFromString(EDataType eDataType, String initialValue) {
+ ExplainSnaphotType result = ExplainSnaphotType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertExplainSnaphotTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FileSystemCachingType createFileSystemCachingTypeFromString(EDataType eDataType, String initialValue) {
+ FileSystemCachingType result = FileSystemCachingType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertFileSystemCachingTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWIndexPageSplitType createLUWIndexPageSplitTypeFromString(EDataType eDataType, String initialValue) {
+ LUWIndexPageSplitType result = LUWIndexPageSplitType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWIndexPageSplitTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWIndexCompressType createLUWIndexCompressTypeFromString(EDataType eDataType, String initialValue) {
+ LUWIndexCompressType result = LUWIndexCompressType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWIndexCompressTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SystemType createSystemTypeFromString(EDataType eDataType, String initialValue) {
+ SystemType result = SystemType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSystemTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AverageTableSizeType createAverageTableSizeTypeFromString(EDataType eDataType, String initialValue) {
+ AverageTableSizeType result = AverageTableSizeType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAverageTableSizeTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageTableCompressionMode createLUWStorageTableCompressionModeFromString(EDataType eDataType, String initialValue) {
+ LUWStorageTableCompressionMode result = LUWStorageTableCompressionMode.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWStorageTableCompressionModeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWMemberType createLUWMemberTypeFromString(EDataType eDataType, String initialValue) {
+ LUWMemberType result = LUWMemberType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWMemberTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MemberStateType createMemberStateTypeFromString(EDataType eDataType, String initialValue) {
+ MemberStateType result = MemberStateType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMemberStateTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityLabelComponentType createLUWSecurityLabelComponentTypeFromString(EDataType eDataType, String initialValue) {
+ LUWSecurityLabelComponentType result = LUWSecurityLabelComponentType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWSecurityLabelComponentTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityLabelNotAuthorizedWriteAction createLUWSecurityLabelNotAuthorizedWriteActionFromString(EDataType eDataType, String initialValue) {
+ LUWSecurityLabelNotAuthorizedWriteAction result = LUWSecurityLabelNotAuthorizedWriteAction.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWSecurityLabelNotAuthorizedWriteActionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWFederatedDataSource createLUWFederatedDataSourceFromString(EDataType eDataType, String initialValue) {
+ LUWFederatedDataSource result = LUWFederatedDataSource.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWFederatedDataSourceToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTemporaryTableLoggingOption createLUWTemporaryTableLoggingOptionFromString(EDataType eDataType, String initialValue) {
+ LUWTemporaryTableLoggingOption result = LUWTemporaryTableLoggingOption.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertLUWTemporaryTableLoggingOptionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPackage getLUWPackage() {
+ return (LUWPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static LUWPackage getPackage() {
+ return LUWPackage.eINSTANCE;
+ }
+
+} //LUWFactoryImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWFunctionMappingImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWFunctionMappingImpl.java
new file mode 100644
index 0000000..abb2bda
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWFunctionMappingImpl.java
@@ -0,0 +1,870 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+import java.util.Date;
+
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getServerType <em>Server Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getServerVersion <em>Server Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getServerName <em>Server Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getCreationTime <em>Creation Time</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#isDisabled <em>Disabled</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getInstsPerInvoc <em>Insts Per Invoc</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getInstsPerArgByte <em>Insts Per Arg Byte</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getIosPerInvoc <em>Ios Per Invoc</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getIosPerArgByte <em>Ios Per Arg Byte</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getLocalFunction <em>Local Function</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getRemoteFunction <em>Remote Function</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWFunctionMappingImpl#getLUWDatabase <em>LUW Database</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWFunctionMappingImpl extends SQLObjectImpl implements LUWFunctionMapping {
+ /**
+ * The default value of the '{@link #getServerType() <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerType()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerType() <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerType()
+ * @generated
+ * @ordered
+ */
+ protected String serverType = SERVER_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getServerVersion() <em>Server Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerVersion() <em>Server Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerVersion()
+ * @generated
+ * @ordered
+ */
+ protected String serverVersion = SERVER_VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getServerName() <em>Server Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerName()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerName() <em>Server Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerName()
+ * @generated
+ * @ordered
+ */
+ protected String serverName = SERVER_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreationTime() <em>Creation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreationTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date CREATION_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreationTime() <em>Creation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreationTime()
+ * @generated
+ * @ordered
+ */
+ protected Date creationTime = CREATION_TIME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDisabled() <em>Disabled</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDisabled()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DISABLED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDisabled() <em>Disabled</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDisabled()
+ * @generated
+ * @ordered
+ */
+ protected boolean disabled = DISABLED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInstsPerInvoc() <em>Insts Per Invoc</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstsPerInvoc()
+ * @generated
+ * @ordered
+ */
+ protected static final int INSTS_PER_INVOC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getInstsPerInvoc() <em>Insts Per Invoc</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstsPerInvoc()
+ * @generated
+ * @ordered
+ */
+ protected int instsPerInvoc = INSTS_PER_INVOC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInstsPerArgByte() <em>Insts Per Arg Byte</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstsPerArgByte()
+ * @generated
+ * @ordered
+ */
+ protected static final int INSTS_PER_ARG_BYTE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getInstsPerArgByte() <em>Insts Per Arg Byte</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstsPerArgByte()
+ * @generated
+ * @ordered
+ */
+ protected int instsPerArgByte = INSTS_PER_ARG_BYTE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIosPerInvoc() <em>Ios Per Invoc</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIosPerInvoc()
+ * @generated
+ * @ordered
+ */
+ protected static final int IOS_PER_INVOC_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIosPerInvoc() <em>Ios Per Invoc</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIosPerInvoc()
+ * @generated
+ * @ordered
+ */
+ protected int iosPerInvoc = IOS_PER_INVOC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIosPerArgByte() <em>Ios Per Arg Byte</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIosPerArgByte()
+ * @generated
+ * @ordered
+ */
+ protected static final int IOS_PER_ARG_BYTE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIosPerArgByte() <em>Ios Per Arg Byte</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIosPerArgByte()
+ * @generated
+ * @ordered
+ */
+ protected int iosPerArgByte = IOS_PER_ARG_BYTE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList options;
+
+ /**
+ * The cached value of the '{@link #getLocalFunction() <em>Local Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalFunction()
+ * @generated
+ * @ordered
+ */
+ protected DB2Function localFunction;
+
+ /**
+ * The cached value of the '{@link #getRemoteFunction() <em>Remote Function</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteFunction()
+ * @generated
+ * @ordered
+ */
+ protected Function remoteFunction;
+
+ /**
+ * The cached value of the '{@link #getLUWDatabase() <em>LUW Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLUWDatabase()
+ * @generated
+ * @ordered
+ */
+ protected LUWDatabase luwDatabase;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWFunctionMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_FUNCTION_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerType() {
+ return serverType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerType(String newServerType) {
+ String oldServerType = serverType;
+ serverType = newServerType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__SERVER_TYPE, oldServerType, serverType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerVersion() {
+ return serverVersion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerVersion(String newServerVersion) {
+ String oldServerVersion = serverVersion;
+ serverVersion = newServerVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__SERVER_VERSION, oldServerVersion, serverVersion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerName() {
+ return serverName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerName(String newServerName) {
+ String oldServerName = serverName;
+ serverName = newServerName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__SERVER_NAME, oldServerName, serverName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getCreationTime() {
+ return creationTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreationTime(Date newCreationTime) {
+ Date oldCreationTime = creationTime;
+ creationTime = newCreationTime;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__CREATION_TIME, oldCreationTime, creationTime));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDisabled() {
+ return disabled;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDisabled(boolean newDisabled) {
+ boolean oldDisabled = disabled;
+ disabled = newDisabled;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__DISABLED, oldDisabled, disabled));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getInstsPerInvoc() {
+ return instsPerInvoc;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInstsPerInvoc(int newInstsPerInvoc) {
+ int oldInstsPerInvoc = instsPerInvoc;
+ instsPerInvoc = newInstsPerInvoc;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_INVOC, oldInstsPerInvoc, instsPerInvoc));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getInstsPerArgByte() {
+ return instsPerArgByte;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInstsPerArgByte(int newInstsPerArgByte) {
+ int oldInstsPerArgByte = instsPerArgByte;
+ instsPerArgByte = newInstsPerArgByte;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE, oldInstsPerArgByte, instsPerArgByte));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIosPerInvoc() {
+ return iosPerInvoc;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIosPerInvoc(int newIosPerInvoc) {
+ int oldIosPerInvoc = iosPerInvoc;
+ iosPerInvoc = newIosPerInvoc;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_INVOC, oldIosPerInvoc, iosPerInvoc));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIosPerArgByte() {
+ return iosPerArgByte;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIosPerArgByte(int newIosPerArgByte) {
+ int oldIosPerArgByte = iosPerArgByte;
+ iosPerArgByte = newIosPerArgByte;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE, oldIosPerArgByte, iosPerArgByte));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getOptions() {
+ if (options == null) {
+ options = new EObjectContainmentEList(LUWOption.class, this, LUWPackage.LUW_FUNCTION_MAPPING__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Function getLocalFunction() {
+ if (localFunction != null && localFunction.eIsProxy()) {
+ InternalEObject oldLocalFunction = (InternalEObject)localFunction;
+ localFunction = (DB2Function)eResolveProxy(oldLocalFunction);
+ if (localFunction != oldLocalFunction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_FUNCTION_MAPPING__LOCAL_FUNCTION, oldLocalFunction, localFunction));
+ }
+ }
+ return localFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Function basicGetLocalFunction() {
+ return localFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocalFunction(DB2Function newLocalFunction) {
+ DB2Function oldLocalFunction = localFunction;
+ localFunction = newLocalFunction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__LOCAL_FUNCTION, oldLocalFunction, localFunction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Function getRemoteFunction() {
+ if (remoteFunction != null && remoteFunction.eIsProxy()) {
+ InternalEObject oldRemoteFunction = (InternalEObject)remoteFunction;
+ remoteFunction = (Function)eResolveProxy(oldRemoteFunction);
+ if (remoteFunction != oldRemoteFunction) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_FUNCTION_MAPPING__REMOTE_FUNCTION, oldRemoteFunction, remoteFunction));
+ }
+ }
+ return remoteFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Function basicGetRemoteFunction() {
+ return remoteFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteFunction(Function newRemoteFunction) {
+ Function oldRemoteFunction = remoteFunction;
+ remoteFunction = newRemoteFunction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__REMOTE_FUNCTION, oldRemoteFunction, remoteFunction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase getLUWDatabase() {
+ if (luwDatabase != null && luwDatabase.eIsProxy()) {
+ InternalEObject oldLUWDatabase = (InternalEObject)luwDatabase;
+ luwDatabase = (LUWDatabase)eResolveProxy(oldLUWDatabase);
+ if (luwDatabase != oldLUWDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE, oldLUWDatabase, luwDatabase));
+ }
+ }
+ return luwDatabase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase basicGetLUWDatabase() {
+ return luwDatabase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWDatabase(LUWDatabase newLUWDatabase, NotificationChain msgs) {
+ LUWDatabase oldLUWDatabase = luwDatabase;
+ luwDatabase = newLUWDatabase;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE, oldLUWDatabase, newLUWDatabase);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWDatabase(LUWDatabase newLUWDatabase) {
+ if (newLUWDatabase != luwDatabase) {
+ NotificationChain msgs = null;
+ if (luwDatabase != null)
+ msgs = ((InternalEObject)luwDatabase).eInverseRemove(this, LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS, LUWDatabase.class, msgs);
+ if (newLUWDatabase != null)
+ msgs = ((InternalEObject)newLUWDatabase).eInverseAdd(this, LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS, LUWDatabase.class, msgs);
+ msgs = basicSetLUWDatabase(newLUWDatabase, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE, newLUWDatabase, newLUWDatabase));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE:
+ if (luwDatabase != null)
+ msgs = ((InternalEObject)luwDatabase).eInverseRemove(this, LUWPackage.LUW_DATABASE__FUNCTION_MAPPINGS, LUWDatabase.class, msgs);
+ return basicSetLUWDatabase((LUWDatabase)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_FUNCTION_MAPPING__OPTIONS:
+ return ((InternalEList)getOptions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE:
+ return basicSetLUWDatabase(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_TYPE:
+ return getServerType();
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_VERSION:
+ return getServerVersion();
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_NAME:
+ return getServerName();
+ case LUWPackage.LUW_FUNCTION_MAPPING__CREATION_TIME:
+ return getCreationTime();
+ case LUWPackage.LUW_FUNCTION_MAPPING__DISABLED:
+ return isDisabled() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_INVOC:
+ return new Integer(getInstsPerInvoc());
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE:
+ return new Integer(getInstsPerArgByte());
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_INVOC:
+ return new Integer(getIosPerInvoc());
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE:
+ return new Integer(getIosPerArgByte());
+ case LUWPackage.LUW_FUNCTION_MAPPING__OPTIONS:
+ return getOptions();
+ case LUWPackage.LUW_FUNCTION_MAPPING__LOCAL_FUNCTION:
+ if (resolve) return getLocalFunction();
+ return basicGetLocalFunction();
+ case LUWPackage.LUW_FUNCTION_MAPPING__REMOTE_FUNCTION:
+ if (resolve) return getRemoteFunction();
+ return basicGetRemoteFunction();
+ case LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE:
+ if (resolve) return getLUWDatabase();
+ return basicGetLUWDatabase();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_TYPE:
+ setServerType((String)newValue);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_VERSION:
+ setServerVersion((String)newValue);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_NAME:
+ setServerName((String)newValue);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__CREATION_TIME:
+ setCreationTime((Date)newValue);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__DISABLED:
+ setDisabled(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_INVOC:
+ setInstsPerInvoc(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE:
+ setInstsPerArgByte(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_INVOC:
+ setIosPerInvoc(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE:
+ setIosPerArgByte(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__LOCAL_FUNCTION:
+ setLocalFunction((DB2Function)newValue);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__REMOTE_FUNCTION:
+ setRemoteFunction((Function)newValue);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE:
+ setLUWDatabase((LUWDatabase)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_TYPE:
+ setServerType(SERVER_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_VERSION:
+ setServerVersion(SERVER_VERSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_NAME:
+ setServerName(SERVER_NAME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__CREATION_TIME:
+ setCreationTime(CREATION_TIME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__DISABLED:
+ setDisabled(DISABLED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_INVOC:
+ setInstsPerInvoc(INSTS_PER_INVOC_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE:
+ setInstsPerArgByte(INSTS_PER_ARG_BYTE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_INVOC:
+ setIosPerInvoc(IOS_PER_INVOC_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE:
+ setIosPerArgByte(IOS_PER_ARG_BYTE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__OPTIONS:
+ getOptions().clear();
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__LOCAL_FUNCTION:
+ setLocalFunction((DB2Function)null);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__REMOTE_FUNCTION:
+ setRemoteFunction((Function)null);
+ return;
+ case LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE:
+ setLUWDatabase((LUWDatabase)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_TYPE:
+ return SERVER_TYPE_EDEFAULT == null ? serverType != null : !SERVER_TYPE_EDEFAULT.equals(serverType);
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_VERSION:
+ return SERVER_VERSION_EDEFAULT == null ? serverVersion != null : !SERVER_VERSION_EDEFAULT.equals(serverVersion);
+ case LUWPackage.LUW_FUNCTION_MAPPING__SERVER_NAME:
+ return SERVER_NAME_EDEFAULT == null ? serverName != null : !SERVER_NAME_EDEFAULT.equals(serverName);
+ case LUWPackage.LUW_FUNCTION_MAPPING__CREATION_TIME:
+ return CREATION_TIME_EDEFAULT == null ? creationTime != null : !CREATION_TIME_EDEFAULT.equals(creationTime);
+ case LUWPackage.LUW_FUNCTION_MAPPING__DISABLED:
+ return disabled != DISABLED_EDEFAULT;
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_INVOC:
+ return instsPerInvoc != INSTS_PER_INVOC_EDEFAULT;
+ case LUWPackage.LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE:
+ return instsPerArgByte != INSTS_PER_ARG_BYTE_EDEFAULT;
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_INVOC:
+ return iosPerInvoc != IOS_PER_INVOC_EDEFAULT;
+ case LUWPackage.LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE:
+ return iosPerArgByte != IOS_PER_ARG_BYTE_EDEFAULT;
+ case LUWPackage.LUW_FUNCTION_MAPPING__OPTIONS:
+ return options != null && !options.isEmpty();
+ case LUWPackage.LUW_FUNCTION_MAPPING__LOCAL_FUNCTION:
+ return localFunction != null;
+ case LUWPackage.LUW_FUNCTION_MAPPING__REMOTE_FUNCTION:
+ return remoteFunction != null;
+ case LUWPackage.LUW_FUNCTION_MAPPING__LUW_DATABASE:
+ return luwDatabase != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (serverType: "); //$NON-NLS-1$
+ result.append(serverType);
+ result.append(", serverVersion: "); //$NON-NLS-1$
+ result.append(serverVersion);
+ result.append(", serverName: "); //$NON-NLS-1$
+ result.append(serverName);
+ result.append(", creationTime: "); //$NON-NLS-1$
+ result.append(creationTime);
+ result.append(", disabled: "); //$NON-NLS-1$
+ result.append(disabled);
+ result.append(", instsPerInvoc: "); //$NON-NLS-1$
+ result.append(instsPerInvoc);
+ result.append(", instsPerArgByte: "); //$NON-NLS-1$
+ result.append(instsPerArgByte);
+ result.append(", iosPerInvoc: "); //$NON-NLS-1$
+ result.append(iosPerInvoc);
+ result.append(", iosPerArgByte: "); //$NON-NLS-1$
+ result.append(iosPerArgByte);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWFunctionMappingImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericNicknameImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericNicknameImpl.java
new file mode 100644
index 0000000..1bf79d0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericNicknameImpl.java
@@ -0,0 +1,141 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericNicknameImpl.java,v 1.14 2008/01/29 00:04:54 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generic Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericNicknameImpl#getGenericServer <em>Generic Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWGenericNicknameImpl extends LUWNicknameImpl implements LUWGenericNickname {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWGenericNicknameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_GENERIC_NICKNAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWGenericServer getGenericServer() {
+ LUWGenericServer genericServer = basicGetGenericServer();
+ return genericServer != null && genericServer.eIsProxy() ? (LUWGenericServer)eResolveProxy((InternalEObject)genericServer) : genericServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public LUWGenericServer basicGetGenericServer() {
+ return (LUWGenericServer) server;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setGenericServer(LUWGenericServer newGenericServer) {
+ super.setServer(newGenericServer);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_NICKNAME__GENERIC_SERVER:
+ if (resolve) return getGenericServer();
+ return basicGetGenericServer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_NICKNAME__GENERIC_SERVER:
+ setGenericServer((LUWGenericServer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_NICKNAME__GENERIC_SERVER:
+ setGenericServer((LUWGenericServer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_NICKNAME__GENERIC_SERVER:
+ return basicGetGenericServer() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setServer(LUWServer newGenericServer) {
+ setGenericServer((LUWGenericServer)newGenericServer);
+ }
+
+} //LUWGenericNicknameImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericServerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericServerImpl.java
new file mode 100644
index 0000000..d657153
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericServerImpl.java
@@ -0,0 +1,170 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericServerImpl.java,v 1.11 2008/01/29 00:04:54 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generic Server</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericServerImpl#getGenericNicknames <em>Generic Nicknames</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericServerImpl#getGenericWrapper <em>Generic Wrapper</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWGenericServerImpl extends LUWServerImpl implements LUWGenericServer {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWGenericServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_GENERIC_SERVER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getGenericNicknames() {
+ if (nicknames == null) {
+ nicknames = new EObjectWithInverseResolvingEList(LUWGenericNickname.class, this, LUWPackage.LUW_SERVER__NICKNAMES, LUWPackage.LUW_NICKNAME__SERVER);
+ }
+ return nicknames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWGenericWrapper getGenericWrapper() {
+ LUWGenericWrapper genericWrapper = basicGetGenericWrapper();
+ return genericWrapper != null && genericWrapper.eIsProxy() ? (LUWGenericWrapper)eResolveProxy((InternalEObject)genericWrapper) : genericWrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public LUWGenericWrapper basicGetGenericWrapper() {
+ return (LUWGenericWrapper) wrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setGenericWrapper(LUWGenericWrapper newGenericWrapper) {
+ super.setWrapper(newGenericWrapper);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_NICKNAMES:
+ return getGenericNicknames();
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_WRAPPER:
+ if (resolve) return getGenericWrapper();
+ return basicGetGenericWrapper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_NICKNAMES:
+ getGenericNicknames().clear();
+ getGenericNicknames().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_WRAPPER:
+ setGenericWrapper((LUWGenericWrapper)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_NICKNAMES:
+ getGenericNicknames().clear();
+ return;
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_WRAPPER:
+ setGenericWrapper((LUWGenericWrapper)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_NICKNAMES:
+ return !getGenericNicknames().isEmpty();
+ case LUWPackage.LUW_GENERIC_SERVER__GENERIC_WRAPPER:
+ return basicGetGenericWrapper() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setWrapper(LUWWrapper newGenericWrapper) {
+ setGenericWrapper((LUWGenericWrapper) newGenericWrapper);
+ }
+
+} //LUWGenericServerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericUserMappingImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericUserMappingImpl.java
new file mode 100644
index 0000000..42a4fba
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericUserMappingImpl.java
@@ -0,0 +1,212 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericUserMappingImpl.java,v 1.11 2008/01/29 00:04:54 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generic User Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericUserMappingImpl#getRemoteUser <em>Remote User</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericUserMappingImpl#getRemotePassword <em>Remote Password</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWGenericUserMappingImpl extends LUWUserMappingImpl implements LUWGenericUserMapping {
+ /**
+ * The default value of the '{@link #getRemoteUser() <em>Remote User</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteUser()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_USER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemoteUser() <em>Remote User</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteUser()
+ * @generated
+ * @ordered
+ */
+ protected String remoteUser = REMOTE_USER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemotePassword() <em>Remote Password</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemotePassword()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_PASSWORD_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemotePassword() <em>Remote Password</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemotePassword()
+ * @generated
+ * @ordered
+ */
+ protected String remotePassword = REMOTE_PASSWORD_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWGenericUserMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_GENERIC_USER_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteUser() {
+ return remoteUser;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteUser(String newRemoteUser) {
+ String oldRemoteUser = remoteUser;
+ remoteUser = newRemoteUser;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_USER, oldRemoteUser, remoteUser));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemotePassword() {
+ return remotePassword;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemotePassword(String newRemotePassword) {
+ String oldRemotePassword = remotePassword;
+ remotePassword = newRemotePassword;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD, oldRemotePassword, remotePassword));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_USER:
+ return getRemoteUser();
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD:
+ return getRemotePassword();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_USER:
+ setRemoteUser((String)newValue);
+ return;
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD:
+ setRemotePassword((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_USER:
+ setRemoteUser(REMOTE_USER_EDEFAULT);
+ return;
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD:
+ setRemotePassword(REMOTE_PASSWORD_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_USER:
+ return REMOTE_USER_EDEFAULT == null ? remoteUser != null : !REMOTE_USER_EDEFAULT.equals(remoteUser);
+ case LUWPackage.LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD:
+ return REMOTE_PASSWORD_EDEFAULT == null ? remotePassword != null : !REMOTE_PASSWORD_EDEFAULT.equals(remotePassword);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (remoteUser: "); //$NON-NLS-1$
+ result.append(remoteUser);
+ result.append(", remotePassword: "); //$NON-NLS-1$
+ result.append(remotePassword);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWGenericUserMappingImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericWrapperImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericWrapperImpl.java
new file mode 100644
index 0000000..2e3d08e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGenericWrapperImpl.java
@@ -0,0 +1,118 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGenericWrapperImpl.java,v 1.10 2008/01/29 00:04:54 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generic Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGenericWrapperImpl#getGenericServers <em>Generic Servers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWGenericWrapperImpl extends LUWWrapperImpl implements LUWGenericWrapper {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWGenericWrapperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_GENERIC_WRAPPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getGenericServers() {
+ if (servers == null) {
+ servers = new EObjectWithInverseResolvingEList(LUWGenericServer.class, this, LUWPackage.LUW_GENERIC_WRAPPER__GENERIC_SERVERS, LUWPackage.LUW_GENERIC_SERVER__GENERIC_WRAPPER);
+ }
+ return servers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_WRAPPER__GENERIC_SERVERS:
+ return getGenericServers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_WRAPPER__GENERIC_SERVERS:
+ getGenericServers().clear();
+ getGenericServers().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_WRAPPER__GENERIC_SERVERS:
+ getGenericServers().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GENERIC_WRAPPER__GENERIC_SERVERS:
+ return !getGenericServers().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWGenericWrapperImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGlobalVariableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGlobalVariableImpl.java
new file mode 100644
index 0000000..c785597
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWGlobalVariableImpl.java
@@ -0,0 +1,331 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWGlobalVariableImpl.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.TypedElementImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Global Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl#getDefaultValue <em>Default Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl#isIsConstant <em>Is Constant</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWGlobalVariableImpl#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWGlobalVariableImpl extends TypedElementImpl implements LUWGlobalVariable {
+ /**
+ * The default value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefaultValue() <em>Default Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultValue()
+ * @generated
+ * @ordered
+ */
+ protected String defaultValue = DEFAULT_VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsConstant() <em>Is Constant</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsConstant()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_CONSTANT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsConstant() <em>Is Constant</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsConstant()
+ * @generated
+ * @ordered
+ */
+ protected boolean isConstant = IS_CONSTANT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema schema;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWGlobalVariableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_GLOBAL_VARIABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultValue(String newDefaultValue) {
+ String oldDefaultValue = defaultValue;
+ defaultValue = newDefaultValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_GLOBAL_VARIABLE__DEFAULT_VALUE, oldDefaultValue, defaultValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIsConstant() {
+ return isConstant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsConstant(boolean newIsConstant) {
+ boolean oldIsConstant = isConstant;
+ isConstant = newIsConstant;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_GLOBAL_VARIABLE__IS_CONSTANT, oldIsConstant, isConstant));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (DB2Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(DB2Schema newSchema, NotificationChain msgs) {
+ DB2Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(DB2Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES, DB2Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES, DB2Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES, DB2Schema.class, msgs);
+ return basicSetSchema((DB2Schema)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA:
+ return basicSetSchema(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_GLOBAL_VARIABLE__DEFAULT_VALUE:
+ return getDefaultValue();
+ case LUWPackage.LUW_GLOBAL_VARIABLE__IS_CONSTANT:
+ return isIsConstant() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_GLOBAL_VARIABLE__DEFAULT_VALUE:
+ setDefaultValue((String)newValue);
+ return;
+ case LUWPackage.LUW_GLOBAL_VARIABLE__IS_CONSTANT:
+ setIsConstant(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA:
+ setSchema((DB2Schema)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GLOBAL_VARIABLE__DEFAULT_VALUE:
+ setDefaultValue(DEFAULT_VALUE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_GLOBAL_VARIABLE__IS_CONSTANT:
+ setIsConstant(IS_CONSTANT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA:
+ setSchema((DB2Schema)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_GLOBAL_VARIABLE__DEFAULT_VALUE:
+ return DEFAULT_VALUE_EDEFAULT == null ? defaultValue != null : !DEFAULT_VALUE_EDEFAULT.equals(defaultValue);
+ case LUWPackage.LUW_GLOBAL_VARIABLE__IS_CONSTANT:
+ return isConstant != IS_CONSTANT_EDEFAULT;
+ case LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA:
+ return schema != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (defaultValue: "); //$NON-NLS-1$
+ result.append(defaultValue);
+ result.append(", isConstant: "); //$NON-NLS-1$
+ result.append(isConstant);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWGlobalVariableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWIndexImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWIndexImpl.java
new file mode 100644
index 0000000..71cadf4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWIndexImpl.java
@@ -0,0 +1,1151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWIndexImpl.java,v 1.14 2009/07/22 20:11:50 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Index</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getPCTFree <em>PCT Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getMinPCTFree <em>Min PCT Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isReverseScan <em>Reverse Scan</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isNotPartitioned <em>Not Partitioned</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getXmlPattern <em>Xml Pattern</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getAsSQLDataType <em>As SQL Data Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isAsSQLDataTypeHashed <em>As SQL Data Type Hashed</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isSystemRequired <em>System Required</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getPageSplitType <em>Page Split Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getLevel2PctFree <em>Level2 Pct Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getMinPctUsed <em>Min Pct Used</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getCompress <em>Compress</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isCollectStats <em>Collect Stats</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isSampledStats <em>Sampled Stats</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isDetailedStats <em>Detailed Stats</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isIgnoreInvalidValues <em>Ignore Invalid Values</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#isExcludeNullKeys <em>Exclude Null Keys</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWIndexImpl#getTablespace <em>Tablespace</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWIndexImpl extends DB2IndexImpl implements LUWIndex {
+ /**
+ * The default value of the '{@link #getPCTFree() <em>PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPCTFree()
+ * @generated
+ * @ordered
+ */
+ protected static final int PCT_FREE_EDEFAULT = -1;
+
+ /**
+ * The cached value of the '{@link #getPCTFree() <em>PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPCTFree()
+ * @generated
+ * @ordered
+ */
+ protected int pctFree = PCT_FREE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMinPCTFree() <em>Min PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinPCTFree()
+ * @generated
+ * @ordered
+ */
+ protected static final int MIN_PCT_FREE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMinPCTFree() <em>Min PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinPCTFree()
+ * @generated
+ * @ordered
+ */
+ protected int minPCTFree = MIN_PCT_FREE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isReverseScan() <em>Reverse Scan</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReverseScan()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean REVERSE_SCAN_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReverseScan() <em>Reverse Scan</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReverseScan()
+ * @generated
+ * @ordered
+ */
+ protected boolean reverseScan = REVERSE_SCAN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isNotPartitioned() <em>Not Partitioned</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isNotPartitioned()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean NOT_PARTITIONED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isNotPartitioned() <em>Not Partitioned</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isNotPartitioned()
+ * @generated
+ * @ordered
+ */
+ protected boolean notPartitioned = NOT_PARTITIONED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getXmlPattern() <em>Xml Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXmlPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String XML_PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getXmlPattern() <em>Xml Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXmlPattern()
+ * @generated
+ * @ordered
+ */
+ protected String xmlPattern = XML_PATTERN_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getAsSQLDataType() <em>As SQL Data Type</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAsSQLDataType()
+ * @generated
+ * @ordered
+ */
+ protected PredefinedDataType asSQLDataType;
+
+ /**
+ * The default value of the '{@link #isAsSQLDataTypeHashed() <em>As SQL Data Type Hashed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAsSQLDataTypeHashed()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean AS_SQL_DATA_TYPE_HASHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAsSQLDataTypeHashed() <em>As SQL Data Type Hashed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAsSQLDataTypeHashed()
+ * @generated
+ * @ordered
+ */
+ protected boolean asSQLDataTypeHashed = AS_SQL_DATA_TYPE_HASHED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSystemRequired() <em>System Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSystemRequired()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SYSTEM_REQUIRED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSystemRequired() <em>System Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSystemRequired()
+ * @generated
+ * @ordered
+ */
+ protected boolean systemRequired = SYSTEM_REQUIRED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPageSplitType() <em>Page Split Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPageSplitType()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWIndexPageSplitType PAGE_SPLIT_TYPE_EDEFAULT = LUWIndexPageSplitType.SYMMETRIC_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getPageSplitType() <em>Page Split Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPageSplitType()
+ * @generated
+ * @ordered
+ */
+ protected LUWIndexPageSplitType pageSplitType = PAGE_SPLIT_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLevel2PctFree() <em>Level2 Pct Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLevel2PctFree()
+ * @generated
+ * @ordered
+ */
+ protected static final int LEVEL2_PCT_FREE_EDEFAULT = -1;
+
+ /**
+ * The cached value of the '{@link #getLevel2PctFree() <em>Level2 Pct Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLevel2PctFree()
+ * @generated
+ * @ordered
+ */
+ protected int level2PctFree = LEVEL2_PCT_FREE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMinPctUsed() <em>Min Pct Used</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinPctUsed()
+ * @generated
+ * @ordered
+ */
+ protected static final int MIN_PCT_USED_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getMinPctUsed() <em>Min Pct Used</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinPctUsed()
+ * @generated
+ * @ordered
+ */
+ protected int minPctUsed = MIN_PCT_USED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCompress() <em>Compress</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompress()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWIndexCompressType COMPRESS_EDEFAULT = LUWIndexCompressType.NO_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getCompress() <em>Compress</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompress()
+ * @generated
+ * @ordered
+ */
+ protected LUWIndexCompressType compress = COMPRESS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isCollectStats() <em>Collect Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCollectStats()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean COLLECT_STATS_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isCollectStats() <em>Collect Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCollectStats()
+ * @generated
+ * @ordered
+ */
+ protected boolean collectStats = COLLECT_STATS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSampledStats() <em>Sampled Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSampledStats()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SAMPLED_STATS_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isSampledStats() <em>Sampled Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSampledStats()
+ * @generated
+ * @ordered
+ */
+ protected boolean sampledStats = SAMPLED_STATS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDetailedStats() <em>Detailed Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDetailedStats()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DETAILED_STATS_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isDetailedStats() <em>Detailed Stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDetailedStats()
+ * @generated
+ * @ordered
+ */
+ protected boolean detailedStats = DETAILED_STATS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIgnoreInvalidValues() <em>Ignore Invalid Values</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIgnoreInvalidValues()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IGNORE_INVALID_VALUES_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIgnoreInvalidValues() <em>Ignore Invalid Values</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIgnoreInvalidValues()
+ * @generated
+ * @ordered
+ */
+ protected boolean ignoreInvalidValues = IGNORE_INVALID_VALUES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isExcludeNullKeys() <em>Exclude Null Keys</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExcludeNullKeys()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXCLUDE_NULL_KEYS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isExcludeNullKeys() <em>Exclude Null Keys</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExcludeNullKeys()
+ * @generated
+ * @ordered
+ */
+ protected boolean excludeNullKeys = EXCLUDE_NULL_KEYS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getTablespace() <em>Tablespace</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTablespace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace tablespace;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWIndexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_INDEX;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPCTFree() {
+ return pctFree;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPCTFree(int newPCTFree) {
+ int oldPCTFree = pctFree;
+ pctFree = newPCTFree;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__PCT_FREE, oldPCTFree, pctFree));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMinPCTFree() {
+ return minPCTFree;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMinPCTFree(int newMinPCTFree) {
+ int oldMinPCTFree = minPCTFree;
+ minPCTFree = newMinPCTFree;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__MIN_PCT_FREE, oldMinPCTFree, minPCTFree));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReverseScan() {
+ return reverseScan;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReverseScan(boolean newReverseScan) {
+ boolean oldReverseScan = reverseScan;
+ reverseScan = newReverseScan;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__REVERSE_SCAN, oldReverseScan, reverseScan));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isNotPartitioned() {
+ return notPartitioned;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNotPartitioned(boolean newNotPartitioned) {
+ boolean oldNotPartitioned = notPartitioned;
+ notPartitioned = newNotPartitioned;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__NOT_PARTITIONED, oldNotPartitioned, notPartitioned));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getXmlPattern() {
+ return xmlPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setXmlPattern(String newXmlPattern) {
+ String oldXmlPattern = xmlPattern;
+ xmlPattern = newXmlPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__XML_PATTERN, oldXmlPattern, xmlPattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredefinedDataType getAsSQLDataType() {
+ return asSQLDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetAsSQLDataType(PredefinedDataType newAsSQLDataType, NotificationChain msgs) {
+ PredefinedDataType oldAsSQLDataType = asSQLDataType;
+ asSQLDataType = newAsSQLDataType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE, oldAsSQLDataType, newAsSQLDataType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAsSQLDataType(PredefinedDataType newAsSQLDataType) {
+ if (newAsSQLDataType != asSQLDataType) {
+ NotificationChain msgs = null;
+ if (asSQLDataType != null)
+ msgs = ((InternalEObject)asSQLDataType).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE, null, msgs);
+ if (newAsSQLDataType != null)
+ msgs = ((InternalEObject)newAsSQLDataType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE, null, msgs);
+ msgs = basicSetAsSQLDataType(newAsSQLDataType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE, newAsSQLDataType, newAsSQLDataType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAsSQLDataTypeHashed() {
+ return asSQLDataTypeHashed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAsSQLDataTypeHashed(boolean newAsSQLDataTypeHashed) {
+ boolean oldAsSQLDataTypeHashed = asSQLDataTypeHashed;
+ asSQLDataTypeHashed = newAsSQLDataTypeHashed;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE_HASHED, oldAsSQLDataTypeHashed, asSQLDataTypeHashed));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSystemRequired() {
+ return systemRequired;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSystemRequired(boolean newSystemRequired) {
+ boolean oldSystemRequired = systemRequired;
+ systemRequired = newSystemRequired;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__SYSTEM_REQUIRED, oldSystemRequired, systemRequired));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWIndexPageSplitType getPageSplitType() {
+ return pageSplitType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPageSplitType(LUWIndexPageSplitType newPageSplitType) {
+ LUWIndexPageSplitType oldPageSplitType = pageSplitType;
+ pageSplitType = newPageSplitType == null ? PAGE_SPLIT_TYPE_EDEFAULT : newPageSplitType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__PAGE_SPLIT_TYPE, oldPageSplitType, pageSplitType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getLevel2PctFree() {
+ return level2PctFree;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLevel2PctFree(int newLevel2PctFree) {
+ int oldLevel2PctFree = level2PctFree;
+ level2PctFree = newLevel2PctFree;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__LEVEL2_PCT_FREE, oldLevel2PctFree, level2PctFree));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getMinPctUsed() {
+ return minPctUsed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMinPctUsed(int newMinPctUsed) {
+ int oldMinPctUsed = minPctUsed;
+ minPctUsed = newMinPctUsed;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__MIN_PCT_USED, oldMinPctUsed, minPctUsed));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWIndexCompressType getCompress() {
+ return compress;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompress(LUWIndexCompressType newCompress) {
+ LUWIndexCompressType oldCompress = compress;
+ compress = newCompress == null ? COMPRESS_EDEFAULT : newCompress;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__COMPRESS, oldCompress, compress));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCollectStats() {
+ return collectStats;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCollectStats(boolean newCollectStats) {
+ boolean oldCollectStats = collectStats;
+ collectStats = newCollectStats;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__COLLECT_STATS, oldCollectStats, collectStats));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSampledStats() {
+ return sampledStats;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSampledStats(boolean newSampledStats) {
+ boolean oldSampledStats = sampledStats;
+ sampledStats = newSampledStats;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__SAMPLED_STATS, oldSampledStats, sampledStats));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDetailedStats() {
+ return detailedStats;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDetailedStats(boolean newDetailedStats) {
+ boolean oldDetailedStats = detailedStats;
+ detailedStats = newDetailedStats;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__DETAILED_STATS, oldDetailedStats, detailedStats));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIgnoreInvalidValues() {
+ return ignoreInvalidValues;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIgnoreInvalidValues(boolean newIgnoreInvalidValues) {
+ boolean oldIgnoreInvalidValues = ignoreInvalidValues;
+ ignoreInvalidValues = newIgnoreInvalidValues;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__IGNORE_INVALID_VALUES, oldIgnoreInvalidValues, ignoreInvalidValues));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isExcludeNullKeys() {
+ return excludeNullKeys;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExcludeNullKeys(boolean newExcludeNullKeys) {
+ boolean oldExcludeNullKeys = excludeNullKeys;
+ excludeNullKeys = newExcludeNullKeys;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__EXCLUDE_NULL_KEYS, oldExcludeNullKeys, excludeNullKeys));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getTablespace() {
+ if (tablespace != null && tablespace.eIsProxy()) {
+ InternalEObject oldTablespace = (InternalEObject)tablespace;
+ tablespace = (LUWTableSpace)eResolveProxy(oldTablespace);
+ if (tablespace != oldTablespace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_INDEX__TABLESPACE, oldTablespace, tablespace));
+ }
+ }
+ return tablespace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetTablespace() {
+ return tablespace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTablespace(LUWTableSpace newTablespace, NotificationChain msgs) {
+ LUWTableSpace oldTablespace = tablespace;
+ tablespace = newTablespace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__TABLESPACE, oldTablespace, newTablespace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTablespace(LUWTableSpace newTablespace) {
+ if (newTablespace != tablespace) {
+ NotificationChain msgs = null;
+ if (tablespace != null)
+ msgs = ((InternalEObject)tablespace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEXES, LUWTableSpace.class, msgs);
+ if (newTablespace != null)
+ msgs = ((InternalEObject)newTablespace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__INDEXES, LUWTableSpace.class, msgs);
+ msgs = basicSetTablespace(newTablespace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_INDEX__TABLESPACE, newTablespace, newTablespace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_INDEX__TABLESPACE:
+ if (tablespace != null)
+ msgs = ((InternalEObject)tablespace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEXES, LUWTableSpace.class, msgs);
+ return basicSetTablespace((LUWTableSpace)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE:
+ return basicSetAsSQLDataType(null, msgs);
+ case LUWPackage.LUW_INDEX__TABLESPACE:
+ return basicSetTablespace(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_INDEX__PCT_FREE:
+ return new Integer(getPCTFree());
+ case LUWPackage.LUW_INDEX__MIN_PCT_FREE:
+ return new Integer(getMinPCTFree());
+ case LUWPackage.LUW_INDEX__REVERSE_SCAN:
+ return isReverseScan() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__NOT_PARTITIONED:
+ return isNotPartitioned() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__XML_PATTERN:
+ return getXmlPattern();
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE:
+ return getAsSQLDataType();
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE_HASHED:
+ return isAsSQLDataTypeHashed() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__SYSTEM_REQUIRED:
+ return isSystemRequired() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__PAGE_SPLIT_TYPE:
+ return getPageSplitType();
+ case LUWPackage.LUW_INDEX__LEVEL2_PCT_FREE:
+ return new Integer(getLevel2PctFree());
+ case LUWPackage.LUW_INDEX__MIN_PCT_USED:
+ return new Integer(getMinPctUsed());
+ case LUWPackage.LUW_INDEX__COMPRESS:
+ return getCompress();
+ case LUWPackage.LUW_INDEX__COLLECT_STATS:
+ return isCollectStats() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__SAMPLED_STATS:
+ return isSampledStats() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__DETAILED_STATS:
+ return isDetailedStats() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__IGNORE_INVALID_VALUES:
+ return isIgnoreInvalidValues() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__EXCLUDE_NULL_KEYS:
+ return isExcludeNullKeys() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_INDEX__TABLESPACE:
+ if (resolve) return getTablespace();
+ return basicGetTablespace();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_INDEX__PCT_FREE:
+ setPCTFree(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_INDEX__MIN_PCT_FREE:
+ setMinPCTFree(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_INDEX__REVERSE_SCAN:
+ setReverseScan(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__NOT_PARTITIONED:
+ setNotPartitioned(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__XML_PATTERN:
+ setXmlPattern((String)newValue);
+ return;
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE:
+ setAsSQLDataType((PredefinedDataType)newValue);
+ return;
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE_HASHED:
+ setAsSQLDataTypeHashed(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__SYSTEM_REQUIRED:
+ setSystemRequired(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__PAGE_SPLIT_TYPE:
+ setPageSplitType((LUWIndexPageSplitType)newValue);
+ return;
+ case LUWPackage.LUW_INDEX__LEVEL2_PCT_FREE:
+ setLevel2PctFree(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_INDEX__MIN_PCT_USED:
+ setMinPctUsed(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_INDEX__COMPRESS:
+ setCompress((LUWIndexCompressType)newValue);
+ return;
+ case LUWPackage.LUW_INDEX__COLLECT_STATS:
+ setCollectStats(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__SAMPLED_STATS:
+ setSampledStats(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__DETAILED_STATS:
+ setDetailedStats(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__IGNORE_INVALID_VALUES:
+ setIgnoreInvalidValues(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__EXCLUDE_NULL_KEYS:
+ setExcludeNullKeys(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_INDEX__TABLESPACE:
+ setTablespace((LUWTableSpace)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_INDEX__PCT_FREE:
+ setPCTFree(PCT_FREE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__MIN_PCT_FREE:
+ setMinPCTFree(MIN_PCT_FREE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__REVERSE_SCAN:
+ setReverseScan(REVERSE_SCAN_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__NOT_PARTITIONED:
+ setNotPartitioned(NOT_PARTITIONED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__XML_PATTERN:
+ setXmlPattern(XML_PATTERN_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE:
+ setAsSQLDataType((PredefinedDataType)null);
+ return;
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE_HASHED:
+ setAsSQLDataTypeHashed(AS_SQL_DATA_TYPE_HASHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__SYSTEM_REQUIRED:
+ setSystemRequired(SYSTEM_REQUIRED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__PAGE_SPLIT_TYPE:
+ setPageSplitType(PAGE_SPLIT_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__LEVEL2_PCT_FREE:
+ setLevel2PctFree(LEVEL2_PCT_FREE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__MIN_PCT_USED:
+ setMinPctUsed(MIN_PCT_USED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__COMPRESS:
+ setCompress(COMPRESS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__COLLECT_STATS:
+ setCollectStats(COLLECT_STATS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__SAMPLED_STATS:
+ setSampledStats(SAMPLED_STATS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__DETAILED_STATS:
+ setDetailedStats(DETAILED_STATS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__IGNORE_INVALID_VALUES:
+ setIgnoreInvalidValues(IGNORE_INVALID_VALUES_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__EXCLUDE_NULL_KEYS:
+ setExcludeNullKeys(EXCLUDE_NULL_KEYS_EDEFAULT);
+ return;
+ case LUWPackage.LUW_INDEX__TABLESPACE:
+ setTablespace((LUWTableSpace)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_INDEX__PCT_FREE:
+ return pctFree != PCT_FREE_EDEFAULT;
+ case LUWPackage.LUW_INDEX__MIN_PCT_FREE:
+ return minPCTFree != MIN_PCT_FREE_EDEFAULT;
+ case LUWPackage.LUW_INDEX__REVERSE_SCAN:
+ return reverseScan != REVERSE_SCAN_EDEFAULT;
+ case LUWPackage.LUW_INDEX__NOT_PARTITIONED:
+ return notPartitioned != NOT_PARTITIONED_EDEFAULT;
+ case LUWPackage.LUW_INDEX__XML_PATTERN:
+ return XML_PATTERN_EDEFAULT == null ? xmlPattern != null : !XML_PATTERN_EDEFAULT.equals(xmlPattern);
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE:
+ return asSQLDataType != null;
+ case LUWPackage.LUW_INDEX__AS_SQL_DATA_TYPE_HASHED:
+ return asSQLDataTypeHashed != AS_SQL_DATA_TYPE_HASHED_EDEFAULT;
+ case LUWPackage.LUW_INDEX__SYSTEM_REQUIRED:
+ return systemRequired != SYSTEM_REQUIRED_EDEFAULT;
+ case LUWPackage.LUW_INDEX__PAGE_SPLIT_TYPE:
+ return pageSplitType != PAGE_SPLIT_TYPE_EDEFAULT;
+ case LUWPackage.LUW_INDEX__LEVEL2_PCT_FREE:
+ return level2PctFree != LEVEL2_PCT_FREE_EDEFAULT;
+ case LUWPackage.LUW_INDEX__MIN_PCT_USED:
+ return minPctUsed != MIN_PCT_USED_EDEFAULT;
+ case LUWPackage.LUW_INDEX__COMPRESS:
+ return compress != COMPRESS_EDEFAULT;
+ case LUWPackage.LUW_INDEX__COLLECT_STATS:
+ return collectStats != COLLECT_STATS_EDEFAULT;
+ case LUWPackage.LUW_INDEX__SAMPLED_STATS:
+ return sampledStats != SAMPLED_STATS_EDEFAULT;
+ case LUWPackage.LUW_INDEX__DETAILED_STATS:
+ return detailedStats != DETAILED_STATS_EDEFAULT;
+ case LUWPackage.LUW_INDEX__IGNORE_INVALID_VALUES:
+ return ignoreInvalidValues != IGNORE_INVALID_VALUES_EDEFAULT;
+ case LUWPackage.LUW_INDEX__EXCLUDE_NULL_KEYS:
+ return excludeNullKeys != EXCLUDE_NULL_KEYS_EDEFAULT;
+ case LUWPackage.LUW_INDEX__TABLESPACE:
+ return tablespace != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (PCTFree: "); //$NON-NLS-1$
+ result.append(pctFree);
+ result.append(", minPCTFree: "); //$NON-NLS-1$
+ result.append(minPCTFree);
+ result.append(", reverseScan: "); //$NON-NLS-1$
+ result.append(reverseScan);
+ result.append(", notPartitioned: "); //$NON-NLS-1$
+ result.append(notPartitioned);
+ result.append(", xmlPattern: "); //$NON-NLS-1$
+ result.append(xmlPattern);
+ result.append(", asSQLDataTypeHashed: "); //$NON-NLS-1$
+ result.append(asSQLDataTypeHashed);
+ result.append(", systemRequired: "); //$NON-NLS-1$
+ result.append(systemRequired);
+ result.append(", pageSplitType: "); //$NON-NLS-1$
+ result.append(pageSplitType);
+ result.append(", level2PctFree: "); //$NON-NLS-1$
+ result.append(level2PctFree);
+ result.append(", minPctUsed: "); //$NON-NLS-1$
+ result.append(minPctUsed);
+ result.append(", compress: "); //$NON-NLS-1$
+ result.append(compress);
+ result.append(", collectStats: "); //$NON-NLS-1$
+ result.append(collectStats);
+ result.append(", sampledStats: "); //$NON-NLS-1$
+ result.append(sampledStats);
+ result.append(", detailedStats: "); //$NON-NLS-1$
+ result.append(detailedStats);
+ result.append(", ignoreInvalidValues: "); //$NON-NLS-1$
+ result.append(ignoreInvalidValues);
+ result.append(", excludeNullKeys: "); //$NON-NLS-1$
+ result.append(excludeNullKeys);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWIndexImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWMaterializedQueryTableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWMaterializedQueryTableImpl.java
new file mode 100644
index 0000000..a2e08c2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWMaterializedQueryTableImpl.java
@@ -0,0 +1,858 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWMaterializedQueryTableImpl.java,v 1.13 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Materialized Query Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#isValueCompression <em>Value Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#isRowCompression <em>Row Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#isRowCompressionEmpty <em>Row Compression Empty</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#getCompressionMode <em>Compression Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#getPartitionKey <em>Partition Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#getIndexDataTableSpace <em>Index Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#getLOBDataTableSpace <em>LOB Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#getRegularDataTableSpace <em>Regular Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#getDataPartitions <em>Data Partitions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMaterializedQueryTableImpl#getDataPartitionKey <em>Data Partition Key</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWMaterializedQueryTableImpl extends DB2MaterializedQueryTableImpl implements LUWMaterializedQueryTable {
+ /**
+ * The default value of the '{@link #isValueCompression() <em>Value Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValueCompression()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VALUE_COMPRESSION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isValueCompression() <em>Value Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValueCompression()
+ * @generated
+ * @ordered
+ */
+ protected boolean valueCompression = VALUE_COMPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRowCompression() <em>Row Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompression()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ROW_COMPRESSION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRowCompression() <em>Row Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompression()
+ * @generated
+ * @ordered
+ */
+ protected boolean rowCompression = ROW_COMPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRowCompressionEmpty() <em>Row Compression Empty</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompressionEmpty()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ROW_COMPRESSION_EMPTY_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isRowCompressionEmpty() <em>Row Compression Empty</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompressionEmpty()
+ * @generated
+ * @ordered
+ */
+ protected boolean rowCompressionEmpty = ROW_COMPRESSION_EMPTY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCompressionMode() <em>Compression Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompressionMode()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWStorageTableCompressionMode COMPRESSION_MODE_EDEFAULT = LUWStorageTableCompressionMode.NO_SELECTION_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getCompressionMode() <em>Compression Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompressionMode()
+ * @generated
+ * @ordered
+ */
+ protected LUWStorageTableCompressionMode compressionMode = COMPRESSION_MODE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPartitionKey() <em>Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionKey()
+ * @generated
+ * @ordered
+ */
+ protected LUWPartitionKey partitionKey;
+
+ /**
+ * The cached value of the '{@link #getIndexDataTableSpace() <em>Index Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace indexDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getLOBDataTableSpace() <em>LOB Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLOBDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace lobDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getRegularDataTableSpace() <em>Regular Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRegularDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace regularDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getDataPartitions() <em>Data Partitions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataPartitions()
+ * @generated
+ * @ordered
+ */
+ protected EList dataPartitions;
+
+ /**
+ * The cached value of the '{@link #getDataPartitionKey() <em>Data Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataPartitionKey()
+ * @generated
+ * @ordered
+ */
+ protected LUWDataPartitionKey dataPartitionKey;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWMaterializedQueryTableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MATERIALIZED_QUERY_TABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isValueCompression() {
+ return valueCompression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValueCompression(boolean newValueCompression) {
+ boolean oldValueCompression = valueCompression;
+ valueCompression = newValueCompression;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION, oldValueCompression, valueCompression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRowCompression() {
+ return rowCompression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowCompression(boolean newRowCompression) {
+ boolean oldRowCompression = rowCompression;
+ rowCompression = newRowCompression;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION, oldRowCompression, rowCompression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRowCompressionEmpty() {
+ return rowCompressionEmpty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowCompressionEmpty(boolean newRowCompressionEmpty) {
+ boolean oldRowCompressionEmpty = rowCompressionEmpty;
+ rowCompressionEmpty = newRowCompressionEmpty;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY, oldRowCompressionEmpty, rowCompressionEmpty));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageTableCompressionMode getCompressionMode() {
+ return compressionMode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompressionMode(LUWStorageTableCompressionMode newCompressionMode) {
+ LUWStorageTableCompressionMode oldCompressionMode = compressionMode;
+ compressionMode = newCompressionMode == null ? COMPRESSION_MODE_EDEFAULT : newCompressionMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE, oldCompressionMode, compressionMode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionKey getPartitionKey() {
+ return partitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPartitionKey(LUWPartitionKey newPartitionKey, NotificationChain msgs) {
+ LUWPartitionKey oldPartitionKey = partitionKey;
+ partitionKey = newPartitionKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY, oldPartitionKey, newPartitionKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitionKey(LUWPartitionKey newPartitionKey) {
+ if (newPartitionKey != partitionKey) {
+ NotificationChain msgs = null;
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, LUWPackage.LUW_PARTITION_KEY__TABLE, LUWPartitionKey.class, msgs);
+ if (newPartitionKey != null)
+ msgs = ((InternalEObject)newPartitionKey).eInverseAdd(this, LUWPackage.LUW_PARTITION_KEY__TABLE, LUWPartitionKey.class, msgs);
+ msgs = basicSetPartitionKey(newPartitionKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY, newPartitionKey, newPartitionKey));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getIndexDataTableSpace() {
+ if (indexDataTableSpace != null && indexDataTableSpace.eIsProxy()) {
+ InternalEObject oldIndexDataTableSpace = (InternalEObject)indexDataTableSpace;
+ indexDataTableSpace = (LUWTableSpace)eResolveProxy(oldIndexDataTableSpace);
+ if (indexDataTableSpace != oldIndexDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE, oldIndexDataTableSpace, indexDataTableSpace));
+ }
+ }
+ return indexDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetIndexDataTableSpace() {
+ return indexDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetIndexDataTableSpace(LUWTableSpace newIndexDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldIndexDataTableSpace = indexDataTableSpace;
+ indexDataTableSpace = newIndexDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE, oldIndexDataTableSpace, newIndexDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIndexDataTableSpace(LUWTableSpace newIndexDataTableSpace) {
+ if (newIndexDataTableSpace != indexDataTableSpace) {
+ NotificationChain msgs = null;
+ if (indexDataTableSpace != null)
+ msgs = ((InternalEObject)indexDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES, LUWTableSpace.class, msgs);
+ if (newIndexDataTableSpace != null)
+ msgs = ((InternalEObject)newIndexDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetIndexDataTableSpace(newIndexDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE, newIndexDataTableSpace, newIndexDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getLOBDataTableSpace() {
+ if (lobDataTableSpace != null && lobDataTableSpace.eIsProxy()) {
+ InternalEObject oldLOBDataTableSpace = (InternalEObject)lobDataTableSpace;
+ lobDataTableSpace = (LUWTableSpace)eResolveProxy(oldLOBDataTableSpace);
+ if (lobDataTableSpace != oldLOBDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE, oldLOBDataTableSpace, lobDataTableSpace));
+ }
+ }
+ return lobDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetLOBDataTableSpace() {
+ return lobDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLOBDataTableSpace(LUWTableSpace newLOBDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldLOBDataTableSpace = lobDataTableSpace;
+ lobDataTableSpace = newLOBDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE, oldLOBDataTableSpace, newLOBDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLOBDataTableSpace(LUWTableSpace newLOBDataTableSpace) {
+ if (newLOBDataTableSpace != lobDataTableSpace) {
+ NotificationChain msgs = null;
+ if (lobDataTableSpace != null)
+ msgs = ((InternalEObject)lobDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES, LUWTableSpace.class, msgs);
+ if (newLOBDataTableSpace != null)
+ msgs = ((InternalEObject)newLOBDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetLOBDataTableSpace(newLOBDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE, newLOBDataTableSpace, newLOBDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getRegularDataTableSpace() {
+ if (regularDataTableSpace != null && regularDataTableSpace.eIsProxy()) {
+ InternalEObject oldRegularDataTableSpace = (InternalEObject)regularDataTableSpace;
+ regularDataTableSpace = (LUWTableSpace)eResolveProxy(oldRegularDataTableSpace);
+ if (regularDataTableSpace != oldRegularDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE, oldRegularDataTableSpace, regularDataTableSpace));
+ }
+ }
+ return regularDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetRegularDataTableSpace() {
+ return regularDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRegularDataTableSpace(LUWTableSpace newRegularDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldRegularDataTableSpace = regularDataTableSpace;
+ regularDataTableSpace = newRegularDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE, oldRegularDataTableSpace, newRegularDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRegularDataTableSpace(LUWTableSpace newRegularDataTableSpace) {
+ if (newRegularDataTableSpace != regularDataTableSpace) {
+ NotificationChain msgs = null;
+ if (regularDataTableSpace != null)
+ msgs = ((InternalEObject)regularDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES, LUWTableSpace.class, msgs);
+ if (newRegularDataTableSpace != null)
+ msgs = ((InternalEObject)newRegularDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetRegularDataTableSpace(newRegularDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE, newRegularDataTableSpace, newRegularDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getDataPartitions() {
+ if (dataPartitions == null) {
+ dataPartitions = new EObjectContainmentWithInverseEList(LUWDataPartition.class, this, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS, LUWPackage.LUW_DATA_PARTITION__TABLE);
+ }
+ return dataPartitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDataPartitionKey getDataPartitionKey() {
+ return dataPartitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDataPartitionKey(LUWDataPartitionKey newDataPartitionKey, NotificationChain msgs) {
+ LUWDataPartitionKey oldDataPartitionKey = dataPartitionKey;
+ dataPartitionKey = newDataPartitionKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY, oldDataPartitionKey, newDataPartitionKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataPartitionKey(LUWDataPartitionKey newDataPartitionKey) {
+ if (newDataPartitionKey != dataPartitionKey) {
+ NotificationChain msgs = null;
+ if (dataPartitionKey != null)
+ msgs = ((InternalEObject)dataPartitionKey).eInverseRemove(this, LUWPackage.LUW_DATA_PARTITION_KEY__TABLE, LUWDataPartitionKey.class, msgs);
+ if (newDataPartitionKey != null)
+ msgs = ((InternalEObject)newDataPartitionKey).eInverseAdd(this, LUWPackage.LUW_DATA_PARTITION_KEY__TABLE, LUWDataPartitionKey.class, msgs);
+ msgs = basicSetDataPartitionKey(newDataPartitionKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY, newDataPartitionKey, newDataPartitionKey));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getTableSpaces() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY:
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY, null, msgs);
+ return basicSetPartitionKey((LUWPartitionKey)otherEnd, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE:
+ if (indexDataTableSpace != null)
+ msgs = ((InternalEObject)indexDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES, LUWTableSpace.class, msgs);
+ return basicSetIndexDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE:
+ if (lobDataTableSpace != null)
+ msgs = ((InternalEObject)lobDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES, LUWTableSpace.class, msgs);
+ return basicSetLOBDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE:
+ if (regularDataTableSpace != null)
+ msgs = ((InternalEObject)regularDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES, LUWTableSpace.class, msgs);
+ return basicSetRegularDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS:
+ return ((InternalEList)getDataPartitions()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY:
+ if (dataPartitionKey != null)
+ msgs = ((InternalEObject)dataPartitionKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY, null, msgs);
+ return basicSetDataPartitionKey((LUWDataPartitionKey)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY:
+ return basicSetPartitionKey(null, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE:
+ return basicSetIndexDataTableSpace(null, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE:
+ return basicSetLOBDataTableSpace(null, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE:
+ return basicSetRegularDataTableSpace(null, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS:
+ return ((InternalEList)getDataPartitions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY:
+ return basicSetDataPartitionKey(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION:
+ return isValueCompression() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION:
+ return isRowCompression() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY:
+ return isRowCompressionEmpty() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE:
+ return getCompressionMode();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY:
+ return getPartitionKey();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE:
+ if (resolve) return getIndexDataTableSpace();
+ return basicGetIndexDataTableSpace();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE:
+ if (resolve) return getLOBDataTableSpace();
+ return basicGetLOBDataTableSpace();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE:
+ if (resolve) return getRegularDataTableSpace();
+ return basicGetRegularDataTableSpace();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS:
+ return getDataPartitions();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY:
+ return getDataPartitionKey();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION:
+ setValueCompression(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION:
+ setRowCompression(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY:
+ setRowCompressionEmpty(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE:
+ setCompressionMode((LUWStorageTableCompressionMode)newValue);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)newValue);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE:
+ setIndexDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE:
+ setLOBDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE:
+ setRegularDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS:
+ getDataPartitions().clear();
+ getDataPartitions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY:
+ setDataPartitionKey((LUWDataPartitionKey)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION:
+ setValueCompression(VALUE_COMPRESSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION:
+ setRowCompression(ROW_COMPRESSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY:
+ setRowCompressionEmpty(ROW_COMPRESSION_EMPTY_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE:
+ setCompressionMode(COMPRESSION_MODE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)null);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE:
+ setIndexDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE:
+ setLOBDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE:
+ setRegularDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS:
+ getDataPartitions().clear();
+ return;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY:
+ setDataPartitionKey((LUWDataPartitionKey)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION:
+ return valueCompression != VALUE_COMPRESSION_EDEFAULT;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION:
+ return rowCompression != ROW_COMPRESSION_EDEFAULT;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY:
+ return rowCompressionEmpty != ROW_COMPRESSION_EMPTY_EDEFAULT;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE:
+ return compressionMode != COMPRESSION_MODE_EDEFAULT;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY:
+ return partitionKey != null;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE:
+ return indexDataTableSpace != null;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE:
+ return lobDataTableSpace != null;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE:
+ return regularDataTableSpace != null;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS:
+ return dataPartitions != null && !dataPartitions.isEmpty();
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY:
+ return dataPartitionKey != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWStorageTable.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION: return LUWPackage.LUW_STORAGE_TABLE__VALUE_COMPRESSION;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION: return LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY: return LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION_EMPTY;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE: return LUWPackage.LUW_STORAGE_TABLE__COMPRESSION_MODE;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY: return LUWPackage.LUW_STORAGE_TABLE__PARTITION_KEY;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE: return LUWPackage.LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE: return LUWPackage.LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE: return LUWPackage.LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS: return LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITIONS;
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY: return LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITION_KEY;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWStorageTable.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_STORAGE_TABLE__VALUE_COMPRESSION: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__VALUE_COMPRESSION;
+ case LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION;
+ case LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION_EMPTY: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__ROW_COMPRESSION_EMPTY;
+ case LUWPackage.LUW_STORAGE_TABLE__COMPRESSION_MODE: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__COMPRESSION_MODE;
+ case LUWPackage.LUW_STORAGE_TABLE__PARTITION_KEY: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__PARTITION_KEY;
+ case LUWPackage.LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__INDEX_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__LOB_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__REGULAR_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITIONS: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITIONS;
+ case LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITION_KEY: return LUWPackage.LUW_MATERIALIZED_QUERY_TABLE__DATA_PARTITION_KEY;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (valueCompression: "); //$NON-NLS-1$
+ result.append(valueCompression);
+ result.append(", rowCompression: "); //$NON-NLS-1$
+ result.append(rowCompression);
+ result.append(", rowCompressionEmpty: "); //$NON-NLS-1$
+ result.append(rowCompressionEmpty);
+ result.append(", compressionMode: "); //$NON-NLS-1$
+ result.append(compressionMode);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWMaterializedQueryTableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWMemberImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWMemberImpl.java
new file mode 100644
index 0000000..480e028
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWMemberImpl.java
@@ -0,0 +1,370 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Member</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl#getAlert <em>Alert</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl#getDbPartitionNum <em>Db Partition Num</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl#getLogicalPort <em>Logical Port</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWMemberImpl#getNetName <em>Net Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWMemberImpl extends DB2MemberImpl implements LUWMember {
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWMemberType TYPE_EDEFAULT = LUWMemberType.MEMBER_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected LUWMemberType type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAlert() <em>Alert</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlert()
+ * @generated
+ * @ordered
+ */
+ protected static final String ALERT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAlert() <em>Alert</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlert()
+ * @generated
+ * @ordered
+ */
+ protected String alert = ALERT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDbPartitionNum() <em>Db Partition Num</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbPartitionNum()
+ * @generated
+ * @ordered
+ */
+ protected static final int DB_PARTITION_NUM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDbPartitionNum() <em>Db Partition Num</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbPartitionNum()
+ * @generated
+ * @ordered
+ */
+ protected int dbPartitionNum = DB_PARTITION_NUM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLogicalPort() <em>Logical Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogicalPort()
+ * @generated
+ * @ordered
+ */
+ protected static final int LOGICAL_PORT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getLogicalPort() <em>Logical Port</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogicalPort()
+ * @generated
+ * @ordered
+ */
+ protected int logicalPort = LOGICAL_PORT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNetName() <em>Net Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNetName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NET_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNetName() <em>Net Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNetName()
+ * @generated
+ * @ordered
+ */
+ protected String netName = NET_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWMemberImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MEMBER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWMemberType getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(LUWMemberType newType) {
+ LUWMemberType oldType = type;
+ type = newType == null ? TYPE_EDEFAULT : newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MEMBER__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAlert() {
+ return alert;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAlert(String newAlert) {
+ String oldAlert = alert;
+ alert = newAlert;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MEMBER__ALERT, oldAlert, alert));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getDbPartitionNum() {
+ return dbPartitionNum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbPartitionNum(int newDbPartitionNum) {
+ int oldDbPartitionNum = dbPartitionNum;
+ dbPartitionNum = newDbPartitionNum;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MEMBER__DB_PARTITION_NUM, oldDbPartitionNum, dbPartitionNum));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getLogicalPort() {
+ return logicalPort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLogicalPort(int newLogicalPort) {
+ int oldLogicalPort = logicalPort;
+ logicalPort = newLogicalPort;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MEMBER__LOGICAL_PORT, oldLogicalPort, logicalPort));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNetName() {
+ return netName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNetName(String newNetName) {
+ String oldNetName = netName;
+ netName = newNetName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MEMBER__NET_NAME, oldNetName, netName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MEMBER__TYPE:
+ return getType();
+ case LUWPackage.LUW_MEMBER__ALERT:
+ return getAlert();
+ case LUWPackage.LUW_MEMBER__DB_PARTITION_NUM:
+ return new Integer(getDbPartitionNum());
+ case LUWPackage.LUW_MEMBER__LOGICAL_PORT:
+ return new Integer(getLogicalPort());
+ case LUWPackage.LUW_MEMBER__NET_NAME:
+ return getNetName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MEMBER__TYPE:
+ setType((LUWMemberType)newValue);
+ return;
+ case LUWPackage.LUW_MEMBER__ALERT:
+ setAlert((String)newValue);
+ return;
+ case LUWPackage.LUW_MEMBER__DB_PARTITION_NUM:
+ setDbPartitionNum(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_MEMBER__LOGICAL_PORT:
+ setLogicalPort(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_MEMBER__NET_NAME:
+ setNetName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MEMBER__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MEMBER__ALERT:
+ setAlert(ALERT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MEMBER__DB_PARTITION_NUM:
+ setDbPartitionNum(DB_PARTITION_NUM_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MEMBER__LOGICAL_PORT:
+ setLogicalPort(LOGICAL_PORT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MEMBER__NET_NAME:
+ setNetName(NET_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MEMBER__TYPE:
+ return type != TYPE_EDEFAULT;
+ case LUWPackage.LUW_MEMBER__ALERT:
+ return ALERT_EDEFAULT == null ? alert != null : !ALERT_EDEFAULT.equals(alert);
+ case LUWPackage.LUW_MEMBER__DB_PARTITION_NUM:
+ return dbPartitionNum != DB_PARTITION_NUM_EDEFAULT;
+ case LUWPackage.LUW_MEMBER__LOGICAL_PORT:
+ return logicalPort != LOGICAL_PORT_EDEFAULT;
+ case LUWPackage.LUW_MEMBER__NET_NAME:
+ return NET_NAME_EDEFAULT == null ? netName != null : !NET_NAME_EDEFAULT.equals(netName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: "); //$NON-NLS-1$
+ result.append(type);
+ result.append(", alert: "); //$NON-NLS-1$
+ result.append(alert);
+ result.append(", dbPartitionNum: "); //$NON-NLS-1$
+ result.append(dbPartitionNum);
+ result.append(", logicalPort: "); //$NON-NLS-1$
+ result.append(logicalPort);
+ result.append(", netName: "); //$NON-NLS-1$
+ result.append(netName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWMemberImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleArrayDataTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleArrayDataTypeImpl.java
new file mode 100644
index 0000000..5d28596
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleArrayDataTypeImpl.java
@@ -0,0 +1,304 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleArrayDataTypeImpl.java,v 1.2 2009/02/16 19:01:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.ArrayDataTypeImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Array Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleArrayDataTypeImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleArrayDataTypeImpl#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleArrayDataTypeImpl extends LUWArrayDataTypeImpl implements LUWModuleArrayDataType {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleArrayDataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_ARRAY_DATA_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE:
+ return getModule();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE:
+ setModule((LUWModule)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE:
+ return getModule() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleArrayDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleConditionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleConditionImpl.java
new file mode 100644
index 0000000..3a063ad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleConditionImpl.java
@@ -0,0 +1,347 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleConditionImpl.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Condition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleConditionImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleConditionImpl#getModule <em>Module</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleConditionImpl#getSqlstate <em>Sqlstate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleConditionImpl extends SQLObjectImpl implements LUWModuleCondition {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSqlstate() <em>Sqlstate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSqlstate()
+ * @generated
+ * @ordered
+ */
+ protected static final String SQLSTATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSqlstate() <em>Sqlstate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSqlstate()
+ * @generated
+ * @ordered
+ */
+ protected String sqlstate = SQLSTATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleConditionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_CONDITION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_CONDITION__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_CONDITION__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_CONDITION__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_CONDITION__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_CONDITION__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSqlstate() {
+ return sqlstate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSqlstate(String newSqlstate) {
+ String oldSqlstate = sqlstate;
+ sqlstate = newSqlstate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_CONDITION__SQLSTATE, oldSqlstate, sqlstate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CONDITION__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE:
+ return getModule();
+ case LUWPackage.LUW_MODULE_CONDITION__SQLSTATE:
+ return getSqlstate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CONDITION__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ case LUWPackage.LUW_MODULE_CONDITION__SQLSTATE:
+ setSqlstate((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CONDITION__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE:
+ setModule((LUWModule)null);
+ return;
+ case LUWPackage.LUW_MODULE_CONDITION__SQLSTATE:
+ setSqlstate(SQLSTATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CONDITION__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE:
+ return getModule() != null;
+ case LUWPackage.LUW_MODULE_CONDITION__SQLSTATE:
+ return SQLSTATE_EDEFAULT == null ? sqlstate != null : !SQLSTATE_EDEFAULT.equals(sqlstate);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_CONDITION__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_CONDITION__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_CONDITION__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_CONDITION__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(", sqlstate: "); //$NON-NLS-1$
+ result.append(sqlstate);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleConditionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleCursorDataTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleCursorDataTypeImpl.java
new file mode 100644
index 0000000..5bab16c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleCursorDataTypeImpl.java
@@ -0,0 +1,302 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleCursorDataTypeImpl.java,v 1.1 2009/02/27 18:42:01 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Cursor Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleCursorDataTypeImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleCursorDataTypeImpl#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleCursorDataTypeImpl extends LUWCursorDataTypeImpl implements LUWModuleCursorDataType {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleCursorDataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_CURSOR_DATA_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE:
+ return getModule();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE:
+ setModule((LUWModule)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE:
+ return getModule() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleCursorDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleDistinctTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleDistinctTypeImpl.java
new file mode 100644
index 0000000..c78ecf1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleDistinctTypeImpl.java
@@ -0,0 +1,304 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleDistinctTypeImpl.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleDistinctType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Distinct Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleDistinctTypeImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleDistinctTypeImpl#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleDistinctTypeImpl extends DistinctUserDefinedTypeImpl implements LUWModuleDistinctType {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleDistinctTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_DISTINCT_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_DISTINCT_TYPE__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE:
+ return getModule();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE:
+ setModule((LUWModule)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE:
+ return getModule() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_DISTINCT_TYPE__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_DISTINCT_TYPE__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleDistinctTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleFunctionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleFunctionImpl.java
new file mode 100644
index 0000000..98d243d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleFunctionImpl.java
@@ -0,0 +1,358 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleFunctionImpl.java,v 1.3 2009/03/27 21:54:02 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleFunctionImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleFunctionImpl#getModule <em>Module</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleFunctionImpl#isImplemented <em>Implemented</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleFunctionImpl extends DB2UserDefinedFunctionImpl implements LUWModuleFunction {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isImplemented() <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplemented()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IMPLEMENTED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isImplemented() <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplemented()
+ * @generated
+ * @ordered
+ */
+ protected boolean implemented = IMPLEMENTED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleFunctionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_FUNCTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_FUNCTION__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_FUNCTION__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_FUNCTION__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_FUNCTION__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_FUNCTION__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isImplemented() {
+ return implemented;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplemented(boolean newImplemented) {
+ boolean oldImplemented = implemented;
+ implemented = newImplemented;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_FUNCTION__IMPLEMENTED, oldImplemented, implemented));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_FUNCTION__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE:
+ return getModule();
+ case LUWPackage.LUW_MODULE_FUNCTION__IMPLEMENTED:
+ return isImplemented() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_FUNCTION__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ case LUWPackage.LUW_MODULE_FUNCTION__IMPLEMENTED:
+ setImplemented(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_FUNCTION__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE:
+ setModule((LUWModule)null);
+ return;
+ case LUWPackage.LUW_MODULE_FUNCTION__IMPLEMENTED:
+ setImplemented(IMPLEMENTED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_FUNCTION__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE:
+ return getModule() != null;
+ case LUWPackage.LUW_MODULE_FUNCTION__IMPLEMENTED:
+ return implemented != IMPLEMENTED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_FUNCTION__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_FUNCTION__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_FUNCTION__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_FUNCTION__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @Override
+ */
+ public Schema getSchema() {
+ return this.getModule().getOwningSchema();
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(", implemented: "); //$NON-NLS-1$
+ result.append(implemented);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleFunctionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleGlobalVariableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleGlobalVariableImpl.java
new file mode 100644
index 0000000..1bcf879
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleGlobalVariableImpl.java
@@ -0,0 +1,291 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleGlobalVariableImpl.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Global Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleGlobalVariableImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleGlobalVariableImpl#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleGlobalVariableImpl extends LUWGlobalVariableImpl implements LUWModuleGlobalVariable {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleGlobalVariableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_GLOBAL_VARIABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE:
+ return getModule();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE:
+ setModule((LUWModule)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE:
+ return getModule() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_GLOBAL_VARIABLE__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleGlobalVariableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleImpl.java
new file mode 100644
index 0000000..137aef2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleImpl.java
@@ -0,0 +1,315 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleImpl.java,v 1.4 2009/03/06 22:38:09 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleImpl#getDialect <em>Dialect</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleImpl#getOwningSchema <em>Owning Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleImpl#getModuleObjects <em>Module Objects</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleImpl extends SQLObjectImpl implements LUWModule {
+ /**
+ * The default value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected static final SourceDialect DIALECT_EDEFAULT = SourceDialect.UNKNOWN_LITERAL;
+ /**
+ * The cached value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected SourceDialect dialect = DIALECT_EDEFAULT;
+ /**
+ * The cached value of the '{@link #getOwningSchema() <em>Owning Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwningSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema owningSchema;
+ /**
+ * The cached value of the '{@link #getModuleObjects() <em>Module Objects</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModuleObjects()
+ * @generated
+ * @ordered
+ */
+ protected EList moduleObjects;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SourceDialect getDialect() {
+ return dialect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDialect(SourceDialect newDialect) {
+ SourceDialect oldDialect = dialect;
+ dialect = newDialect == null ? DIALECT_EDEFAULT : newDialect;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE__DIALECT, oldDialect, dialect));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getOwningSchema() {
+ if (owningSchema != null && owningSchema.eIsProxy()) {
+ InternalEObject oldOwningSchema = (InternalEObject)owningSchema;
+ owningSchema = (DB2Schema)eResolveProxy(oldOwningSchema);
+ if (owningSchema != oldOwningSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_MODULE__OWNING_SCHEMA, oldOwningSchema, owningSchema));
+ }
+ }
+ return owningSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetOwningSchema() {
+ return owningSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOwningSchema(DB2Schema newOwningSchema, NotificationChain msgs) {
+ DB2Schema oldOwningSchema = owningSchema;
+ owningSchema = newOwningSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE__OWNING_SCHEMA, oldOwningSchema, newOwningSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOwningSchema(DB2Schema newOwningSchema) {
+ if (newOwningSchema != owningSchema) {
+ NotificationChain msgs = null;
+ if (owningSchema != null)
+ msgs = ((InternalEObject)owningSchema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__MODULES, DB2Schema.class, msgs);
+ if (newOwningSchema != null)
+ msgs = ((InternalEObject)newOwningSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__MODULES, DB2Schema.class, msgs);
+ msgs = basicSetOwningSchema(newOwningSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE__OWNING_SCHEMA, newOwningSchema, newOwningSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getModuleObjects() {
+ if (moduleObjects == null) {
+ moduleObjects = new EObjectContainmentWithInverseEList(LUWModuleObject.class, this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWPackage.LUW_MODULE_OBJECT__MODULE);
+ }
+ return moduleObjects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE__OWNING_SCHEMA:
+ if (owningSchema != null)
+ msgs = ((InternalEObject)owningSchema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__MODULES, DB2Schema.class, msgs);
+ return basicSetOwningSchema((DB2Schema)otherEnd, msgs);
+ case LUWPackage.LUW_MODULE__MODULE_OBJECTS:
+ return ((InternalEList)getModuleObjects()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE__OWNING_SCHEMA:
+ return basicSetOwningSchema(null, msgs);
+ case LUWPackage.LUW_MODULE__MODULE_OBJECTS:
+ return ((InternalEList)getModuleObjects()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE__DIALECT:
+ return getDialect();
+ case LUWPackage.LUW_MODULE__OWNING_SCHEMA:
+ if (resolve) return getOwningSchema();
+ return basicGetOwningSchema();
+ case LUWPackage.LUW_MODULE__MODULE_OBJECTS:
+ return getModuleObjects();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE__DIALECT:
+ setDialect((SourceDialect)newValue);
+ return;
+ case LUWPackage.LUW_MODULE__OWNING_SCHEMA:
+ setOwningSchema((DB2Schema)newValue);
+ return;
+ case LUWPackage.LUW_MODULE__MODULE_OBJECTS:
+ getModuleObjects().clear();
+ getModuleObjects().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE__DIALECT:
+ setDialect(DIALECT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE__OWNING_SCHEMA:
+ setOwningSchema((DB2Schema)null);
+ return;
+ case LUWPackage.LUW_MODULE__MODULE_OBJECTS:
+ getModuleObjects().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE__DIALECT:
+ return dialect != DIALECT_EDEFAULT;
+ case LUWPackage.LUW_MODULE__OWNING_SCHEMA:
+ return owningSchema != null;
+ case LUWPackage.LUW_MODULE__MODULE_OBJECTS:
+ return moduleObjects != null && !moduleObjects.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (dialect: "); //$NON-NLS-1$
+ result.append(dialect);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleProcedureImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleProcedureImpl.java
new file mode 100644
index 0000000..b9b3ad8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleProcedureImpl.java
@@ -0,0 +1,360 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleProcedureImpl.java,v 1.3 2009/03/27 21:54:02 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleProcedureImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleProcedureImpl#getModule <em>Module</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleProcedureImpl#isImplemented <em>Implemented</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleProcedureImpl extends DB2ProcedureImpl implements LUWModuleProcedure {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isImplemented() <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplemented()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IMPLEMENTED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isImplemented() <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplemented()
+ * @generated
+ * @ordered
+ */
+ protected boolean implemented = IMPLEMENTED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleProcedureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_PROCEDURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_PROCEDURE__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_PROCEDURE__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_PROCEDURE__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_PROCEDURE__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_PROCEDURE__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isImplemented() {
+ return implemented;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplemented(boolean newImplemented) {
+ boolean oldImplemented = implemented;
+ implemented = newImplemented;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_PROCEDURE__IMPLEMENTED, oldImplemented, implemented));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE:
+ return getModule();
+ case LUWPackage.LUW_MODULE_PROCEDURE__IMPLEMENTED:
+ return isImplemented() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ case LUWPackage.LUW_MODULE_PROCEDURE__IMPLEMENTED:
+ setImplemented(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE:
+ setModule((LUWModule)null);
+ return;
+ case LUWPackage.LUW_MODULE_PROCEDURE__IMPLEMENTED:
+ setImplemented(IMPLEMENTED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE:
+ return getModule() != null;
+ case LUWPackage.LUW_MODULE_PROCEDURE__IMPLEMENTED:
+ return implemented != IMPLEMENTED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_PROCEDURE__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_PROCEDURE__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_PROCEDURE__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_PROCEDURE__MODULE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @Override
+ */
+ public Schema getSchema() {
+ return this.getModule().getOwningSchema();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(", implemented: "); //$NON-NLS-1$
+ result.append(implemented);
+ result.append(')');
+ return result.toString();
+ }
+
+
+
+} //LUWModuleProcedureImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleRowDataTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleRowDataTypeImpl.java
new file mode 100644
index 0000000..7de96ad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWModuleRowDataTypeImpl.java
@@ -0,0 +1,316 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWModuleRowDataTypeImpl.java,v 1.3 2009/03/27 21:54:02 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.RowDataTypeImpl;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module Row Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleRowDataTypeImpl#isPublished <em>Published</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWModuleRowDataTypeImpl#getModule <em>Module</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWModuleRowDataTypeImpl extends LUWRowDataTypeImpl implements LUWModuleRowDataType {
+ /**
+ * The default value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUBLISHED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPublished() <em>Published</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPublished()
+ * @generated
+ * @ordered
+ */
+ protected boolean published = PUBLISHED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWModuleRowDataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_MODULE_ROW_DATA_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublished(boolean newPublished) {
+ boolean oldPublished = published;
+ published = newPublished;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_ROW_DATA_TYPE__PUBLISHED, oldPublished, published));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWModule getModule() {
+ if (eContainerFeatureID() != LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE) return null;
+ return (LUWModule)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetModule(LUWModule newModule, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newModule, LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModule(LUWModule newModule) {
+ if (newModule != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE && newModule != null)) {
+ if (EcoreUtil.isAncestor(this, newModule))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newModule != null)
+ msgs = ((InternalEObject)newModule).eInverseAdd(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ msgs = basicSetModule(newModule, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE, newModule, newModule));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetModule((LUWModule)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE:
+ return basicSetModule(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_MODULE__MODULE_OBJECTS, LUWModule.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__PUBLISHED:
+ return isPublished() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE:
+ return getModule();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__PUBLISHED:
+ setPublished(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE:
+ setModule((LUWModule)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__PUBLISHED:
+ setPublished(PUBLISHED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE:
+ setModule((LUWModule)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__PUBLISHED:
+ return published != PUBLISHED_EDEFAULT;
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE:
+ return getModule() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__PUBLISHED: return LUWPackage.LUW_MODULE_OBJECT__PUBLISHED;
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE: return LUWPackage.LUW_MODULE_OBJECT__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWModuleObject.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_MODULE_OBJECT__PUBLISHED: return LUWPackage.LUW_MODULE_ROW_DATA_TYPE__PUBLISHED;
+ case LUWPackage.LUW_MODULE_OBJECT__MODULE: return LUWPackage.LUW_MODULE_ROW_DATA_TYPE__MODULE;
+ default: return -1;
+ }
+ }
+ if (baseClass == LUWModuleType.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @Override
+ */
+ public Schema getSchema() {
+ return this.getModule().getOwningSchema();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (published: "); //$NON-NLS-1$
+ result.append(published);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWModuleRowDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNicknameImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNicknameImpl.java
new file mode 100644
index 0000000..77be00d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNicknameImpl.java
@@ -0,0 +1,295 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNicknameImpl#getRemoteDataSet <em>Remote Data Set</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNicknameImpl#getServer <em>Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWNicknameImpl extends LUWTableImpl implements LUWNickname {
+ /**
+ * The cached value of the '{@link #getRemoteDataSet() <em>Remote Data Set</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteDataSet()
+ * @generated
+ * @ordered
+ */
+ protected RemoteDataSet remoteDataSet;
+
+ /**
+ * The cached value of the '{@link #getServer() <em>Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServer()
+ * @generated
+ * @ordered
+ */
+ protected LUWServer server;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWNicknameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_NICKNAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoteDataSet getRemoteDataSet() {
+ if (remoteDataSet != null && remoteDataSet.eIsProxy()) {
+ InternalEObject oldRemoteDataSet = (InternalEObject)remoteDataSet;
+ remoteDataSet = (RemoteDataSet)eResolveProxy(oldRemoteDataSet);
+ if (remoteDataSet != oldRemoteDataSet) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET, oldRemoteDataSet, remoteDataSet));
+ }
+ }
+ return remoteDataSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoteDataSet basicGetRemoteDataSet() {
+ return remoteDataSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRemoteDataSet(RemoteDataSet newRemoteDataSet, NotificationChain msgs) {
+ RemoteDataSet oldRemoteDataSet = remoteDataSet;
+ remoteDataSet = newRemoteDataSet;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET, oldRemoteDataSet, newRemoteDataSet);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteDataSet(RemoteDataSet newRemoteDataSet) {
+ if (newRemoteDataSet != remoteDataSet) {
+ NotificationChain msgs = null;
+ if (remoteDataSet != null)
+ msgs = ((InternalEObject)remoteDataSet).eInverseRemove(this, LUWPackage.REMOTE_DATA_SET__NICKNAME, RemoteDataSet.class, msgs);
+ if (newRemoteDataSet != null)
+ msgs = ((InternalEObject)newRemoteDataSet).eInverseAdd(this, LUWPackage.REMOTE_DATA_SET__NICKNAME, RemoteDataSet.class, msgs);
+ msgs = basicSetRemoteDataSet(newRemoteDataSet, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET, newRemoteDataSet, newRemoteDataSet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWServer getServer() {
+ if (server != null && server.eIsProxy()) {
+ InternalEObject oldServer = (InternalEObject)server;
+ server = (LUWServer)eResolveProxy(oldServer);
+ if (server != oldServer) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_NICKNAME__SERVER, oldServer, server));
+ }
+ }
+ return server;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWServer basicGetServer() {
+ return server;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetServer(LUWServer newServer, NotificationChain msgs) {
+ LUWServer oldServer = server;
+ server = newServer;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_NICKNAME__SERVER, oldServer, newServer);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServer(LUWServer newServer) {
+ if (newServer != server) {
+ NotificationChain msgs = null;
+ if (server != null)
+ msgs = ((InternalEObject)server).eInverseRemove(this, LUWPackage.LUW_SERVER__NICKNAMES, LUWServer.class, msgs);
+ if (newServer != null)
+ msgs = ((InternalEObject)newServer).eInverseAdd(this, LUWPackage.LUW_SERVER__NICKNAMES, LUWServer.class, msgs);
+ msgs = basicSetServer(newServer, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_NICKNAME__SERVER, newServer, newServer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET:
+ if (remoteDataSet != null)
+ msgs = ((InternalEObject)remoteDataSet).eInverseRemove(this, LUWPackage.REMOTE_DATA_SET__NICKNAME, RemoteDataSet.class, msgs);
+ return basicSetRemoteDataSet((RemoteDataSet)otherEnd, msgs);
+ case LUWPackage.LUW_NICKNAME__SERVER:
+ if (server != null)
+ msgs = ((InternalEObject)server).eInverseRemove(this, LUWPackage.LUW_SERVER__NICKNAMES, LUWServer.class, msgs);
+ return basicSetServer((LUWServer)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET:
+ return basicSetRemoteDataSet(null, msgs);
+ case LUWPackage.LUW_NICKNAME__SERVER:
+ return basicSetServer(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET:
+ if (resolve) return getRemoteDataSet();
+ return basicGetRemoteDataSet();
+ case LUWPackage.LUW_NICKNAME__SERVER:
+ if (resolve) return getServer();
+ return basicGetServer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET:
+ setRemoteDataSet((RemoteDataSet)newValue);
+ return;
+ case LUWPackage.LUW_NICKNAME__SERVER:
+ setServer((LUWServer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET:
+ setRemoteDataSet((RemoteDataSet)null);
+ return;
+ case LUWPackage.LUW_NICKNAME__SERVER:
+ setServer((LUWServer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET:
+ return remoteDataSet != null;
+ case LUWPackage.LUW_NICKNAME__SERVER:
+ return server != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWNicknameImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalNicknameImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalNicknameImpl.java
new file mode 100644
index 0000000..bbcbb78
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalNicknameImpl.java
@@ -0,0 +1,95 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Non Relational Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalNicknameImpl#getNonRelServer <em>Non Rel Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWNonRelationalNicknameImpl extends LUWNicknameImpl implements LUWNonRelationalNickname {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWNonRelationalNicknameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_NON_RELATIONAL_NICKNAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWNonRelationalServer getNonRelServer() {
+ LUWNonRelationalServer nonRelServer = basicGetNonRelServer();
+ return nonRelServer != null && nonRelServer.eIsProxy() ? (LUWNonRelationalServer)eResolveProxy((InternalEObject)nonRelServer) : nonRelServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public LUWNonRelationalServer basicGetNonRelServer() {
+ return (LUWNonRelationalServer) server;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_NON_RELATIONAL_NICKNAME__NON_REL_SERVER:
+ if (resolve) return getNonRelServer();
+ return basicGetNonRelServer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_NON_RELATIONAL_NICKNAME__NON_REL_SERVER:
+ return basicGetNonRelServer() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWNonRelationalNicknameImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalServerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalServerImpl.java
new file mode 100644
index 0000000..198f6c4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalServerImpl.java
@@ -0,0 +1,112 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Non Relational Server</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalServerImpl#getNonRelWrapper <em>Non Rel Wrapper</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalServerImpl#getNonRelNicknames <em>Non Rel Nicknames</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWNonRelationalServerImpl extends LUWServerImpl implements LUWNonRelationalServer {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWNonRelationalServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_NON_RELATIONAL_SERVER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWNonRelationalWrapper getNonRelWrapper() {
+ LUWNonRelationalWrapper nonRelWrapper = basicGetNonRelWrapper();
+ return nonRelWrapper != null && nonRelWrapper.eIsProxy() ? (LUWNonRelationalWrapper)eResolveProxy((InternalEObject)nonRelWrapper) : nonRelWrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public LUWNonRelationalWrapper basicGetNonRelWrapper() {
+ return (LUWNonRelationalWrapper) wrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getNonRelNicknames() {
+ // This method should always be overridden by a subclass to ensure
+ // that a correctly-typed EList is generated.
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_NON_RELATIONAL_SERVER__NON_REL_WRAPPER:
+ if (resolve) return getNonRelWrapper();
+ return basicGetNonRelWrapper();
+ case LUWPackage.LUW_NON_RELATIONAL_SERVER__NON_REL_NICKNAMES:
+ return getNonRelNicknames();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_NON_RELATIONAL_SERVER__NON_REL_WRAPPER:
+ return basicGetNonRelWrapper() != null;
+ case LUWPackage.LUW_NON_RELATIONAL_SERVER__NON_REL_NICKNAMES:
+ return !getNonRelNicknames().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWNonRelationalServerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalWrapperImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalWrapperImpl.java
new file mode 100644
index 0000000..351b5b6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWNonRelationalWrapperImpl.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Non Relational Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWNonRelationalWrapperImpl#getNonRelServers <em>Non Rel Servers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWNonRelationalWrapperImpl extends LUWWrapperImpl implements LUWNonRelationalWrapper {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWNonRelationalWrapperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_NON_RELATIONAL_WRAPPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getNonRelServers() {
+ // This method should always be overridden by a subclass to ensure
+ // that a correctly-type EList is returned.
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_NON_RELATIONAL_WRAPPER__NON_REL_SERVERS:
+ return getNonRelServers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_NON_RELATIONAL_WRAPPER__NON_REL_SERVERS:
+ return !getNonRelServers().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWNonRelationalWrapperImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWOptionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWOptionImpl.java
new file mode 100644
index 0000000..3d4d018
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWOptionImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWOptionImpl.java,v 1.10 2008/01/29 00:04:54 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Option</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWOptionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWOptionImpl extends SQLObjectImpl implements LUWOption {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWOptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_OPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_OPTION__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_OPTION__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_OPTION__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_OPTION__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_OPTION__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: "); //$NON-NLS-1$
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWOptionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPackageImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPackageImpl.java
new file mode 100644
index 0000000..aa844d8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPackageImpl.java
@@ -0,0 +1,5668 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ArrayIndexElementType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.BufferPoolType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.CheckOptionType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.CursorBlockType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.DataPartitionMethod;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ExplainSnaphotType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedParameter;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FederatedProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAdminServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWAttributeDefinition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPoolSizeException;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWColumn;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWContainerType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFactory;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFunctionMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGenericWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexCompressType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndexPageSplitType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMember;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWMemberType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModule;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleArrayDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCondition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleCursorDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleDistinctType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleFunction;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleGlobalVariable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleObject;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleProcedure;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWModuleType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNonRelationalWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.MaintenanceType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.MemberStateType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RefreshType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class LUWPackageImpl extends EPackageImpl implements LUWPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwPartitionGroupEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwTableSpaceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwDatabasePartitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwDatabaseContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwAdminServerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwBufferPoolEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwViewEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwPartitionKeyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwNicknameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwFunctionMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwWrapperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwNonRelationalNicknameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwNonRelationalServerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwNonRelationalWrapperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwRelationalNicknameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwGenericUserMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwRelationalWrapperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwServerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwTypeMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwUserMappingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwOptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwRelationalServerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwDatabaseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwColumnEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwGenericNicknameEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwGenericServerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwMaterializedQueryTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwGenericWrapperEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwStorageTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass relationalRemoteServerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass relationalRemoteDataSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass remoteServerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass remoteDataSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwIndexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwAttributeDefinitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass federatedProcedureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass federatedParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwPartitionExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwPartitionElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwDataPartitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwDataPartitionKeyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwDatabasePackageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleFunctionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleProcedureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleConditionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwGlobalVariableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleRowDataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleArrayDataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleDistinctTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleGlobalVariableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwArrayDataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwRowDataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass plsqlPackageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass plsqlPackageBodyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwCursorDataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwModuleCursorDataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwBufferPoolSizeExceptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwMemberEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwSecurityPolicyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwSecurityLabelComponentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwSecurityLabelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwSecurityLabelComponentElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwStorageGroupEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwTemporaryStorageTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwTemporaryTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass arrayIndexElementTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass luwPartitionEveryClauseElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwContainerTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum pageSizeTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum bufferPoolTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum tableSpaceTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum managementTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum checkOptionTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum partitionMethodEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum maintenanceTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum refreshTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum wrapperTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum dataPartitionMethodEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum cursorBlockTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum explainSnaphotTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum fileSystemCachingTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwIndexPageSplitTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwIndexCompressTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum systemTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum averageTableSizeTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwStorageTableCompressionModeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwMemberTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum memberStateTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwSecurityLabelComponentTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwSecurityLabelNotAuthorizedWriteActionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwFederatedDataSourceEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum luwTemporaryTableLoggingOptionEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private LUWPackageImpl() {
+ super(eNS_URI, LUWFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link LUWPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static LUWPackage init() {
+ if (isInited) return (LUWPackage)EPackage.Registry.INSTANCE.getEPackage(LUWPackage.eNS_URI);
+
+ // Obtain or create and register package
+ LUWPackageImpl theLUWPackage = (LUWPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof LUWPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new LUWPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ SQLSchemaPackage.eINSTANCE.eClass();
+ SQLConstraintsPackage.eINSTANCE.eClass();
+ SQLDataTypesPackage.eINSTANCE.eClass();
+ SQLExpressionsPackage.eINSTANCE.eClass();
+ SQLRoutinesPackage.eINSTANCE.eClass();
+ SQLStatementsPackage.eINSTANCE.eClass();
+ SQLTablesPackage.eINSTANCE.eClass();
+ SQLAccessControlPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ DB2ModelPackageImpl theDB2ModelPackage = (DB2ModelPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(DB2ModelPackage.eNS_URI) instanceof DB2ModelPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(DB2ModelPackage.eNS_URI) : DB2ModelPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theLUWPackage.createPackageContents();
+ theDB2ModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theLUWPackage.initializePackageContents();
+ theDB2ModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theLUWPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(LUWPackage.eNS_URI, theLUWPackage);
+ return theLUWPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWPartitionGroup() {
+ return luwPartitionGroupEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionGroup_Partitions() {
+ return (EReference)luwPartitionGroupEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionGroup_TableSpaces() {
+ return (EReference)luwPartitionGroupEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionGroup_Database() {
+ return (EReference)luwPartitionGroupEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionGroup_BufferPool() {
+ return (EReference)luwPartitionGroupEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWTableSpace() {
+ return luwTableSpaceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_TemporaryStorageTables() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_TablespaceType() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_ManagementType() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_ExtentSize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_PreFetchSize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_Overhead() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_TransferRate() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_RecoverDroppedTableOn() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_PageSize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_Size() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_AutoResize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_InitialSize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_IncreaseSize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_MaximumSize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_InitialSizeUnit() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_MaximumSizeUnit() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(15);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_IncreaseSizeUnit() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(16);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_IncreasePercent() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(17);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_FileSystemCaching() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(18);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_AverageSeekTime() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(19);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_RotationSpeed() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(20);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_Transfer() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(21);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_SystemType() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(22);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_AverageTableSize() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(23);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_ExternalContainerCount() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(24);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_InheritOverhead() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(25);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_InheritTransferate() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(26);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_Rebalance() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(27);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_DataTag() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(28);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_SuspendRebalance() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(29);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTableSpace_ResumeRebalance() {
+ return (EAttribute)luwTableSpaceEClass.getEStructuralFeatures().get(30);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_Group() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(31);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_Containers() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(32);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_BufferPool() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(33);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_IndexDataTables() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(34);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_LOBDataTables() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(35);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_RegularDataTables() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(36);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_Database() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(37);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_LOBDataPartition() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(38);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_RegularDataPartition() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(39);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_Indexes() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(40);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_IndexDataPartition() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(41);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTableSpace_StorageGroup() {
+ return (EReference)luwTableSpaceEClass.getEStructuralFeatures().get(42);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWDatabasePartition() {
+ return luwDatabasePartitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePartition_Number() {
+ return (EAttribute)luwDatabasePartitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePartition_PortNumber() {
+ return (EAttribute)luwDatabasePartitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePartition_HostName() {
+ return (EAttribute)luwDatabasePartitionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePartition_SwitchName() {
+ return (EAttribute)luwDatabasePartitionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePartition_CatalogPartition() {
+ return (EAttribute)luwDatabasePartitionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabasePartition_Group() {
+ return (EReference)luwDatabasePartitionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabasePartition_BufferPool() {
+ return (EReference)luwDatabasePartitionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabasePartition_Containers() {
+ return (EReference)luwDatabasePartitionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabasePartition_SizeException() {
+ return (EReference)luwDatabasePartitionEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWDatabaseContainer() {
+ return luwDatabaseContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabaseContainer_ContainerType() {
+ return (EAttribute)luwDatabaseContainerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabaseContainer_SizeInPages() {
+ return (EAttribute)luwDatabaseContainerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabaseContainer_Size() {
+ return (EAttribute)luwDatabaseContainerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabaseContainer_SizeUnits() {
+ return (EAttribute)luwDatabaseContainerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabaseContainer_TableSpace() {
+ return (EReference)luwDatabaseContainerEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabaseContainer_Partitions() {
+ return (EReference)luwDatabaseContainerEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWAdminServer() {
+ return luwAdminServerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWAdminServer_Instances() {
+ return (EReference)luwAdminServerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWBufferPool() {
+ return luwBufferPoolEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPool_CreateType() {
+ return (EAttribute)luwBufferPoolEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPool_Size() {
+ return (EAttribute)luwBufferPoolEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPool_PageSize() {
+ return (EAttribute)luwBufferPoolEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPool_BlockSize() {
+ return (EAttribute)luwBufferPoolEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPool_NumBlockPages() {
+ return (EAttribute)luwBufferPoolEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPool_ExtendedStorage() {
+ return (EAttribute)luwBufferPoolEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPool_Automatic() {
+ return (EAttribute)luwBufferPoolEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWBufferPool_TableSpaces() {
+ return (EReference)luwBufferPoolEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWBufferPool_Partitions() {
+ return (EReference)luwBufferPoolEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWBufferPool_PartitionGroup() {
+ return (EReference)luwBufferPoolEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWBufferPool_Database() {
+ return (EReference)luwBufferPoolEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWBufferPool_SizeException() {
+ return (EReference)luwBufferPoolEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWTable() {
+ return luwTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTable_PCTFree() {
+ return (EAttribute)luwTableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTable_RestrictOnDrop() {
+ return (EAttribute)luwTableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTable_PartitionMode() {
+ return (EAttribute)luwTableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTable_AppendMode() {
+ return (EAttribute)luwTableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTable_LogMode() {
+ return (EAttribute)luwTableEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTable_LockSizeRow() {
+ return (EAttribute)luwTableEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTable_Volatile() {
+ return (EAttribute)luwTableEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTable_SecurityPolicy() {
+ return (EReference)luwTableEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTable_Options() {
+ return (EReference)luwTableEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWView() {
+ return luwViewEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWView_Federated() {
+ return (EAttribute)luwViewEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWView_OptimizeQuery() {
+ return (EAttribute)luwViewEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWPartitionKey() {
+ return luwPartitionKeyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionKey_TemporaryStorageTable() {
+ return (EReference)luwPartitionKeyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWPartitionKey_PartitionMethod() {
+ return (EAttribute)luwPartitionKeyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionKey_Table() {
+ return (EReference)luwPartitionKeyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionKey_Columns() {
+ return (EReference)luwPartitionKeyEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWNickname() {
+ return luwNicknameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWNickname_RemoteDataSet() {
+ return (EReference)luwNicknameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWNickname_Server() {
+ return (EReference)luwNicknameEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWFunctionMapping() {
+ return luwFunctionMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_ServerType() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_ServerVersion() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_ServerName() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_CreationTime() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_Disabled() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_InstsPerInvoc() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_InstsPerArgByte() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_IosPerInvoc() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWFunctionMapping_IosPerArgByte() {
+ return (EAttribute)luwFunctionMappingEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWFunctionMapping_Options() {
+ return (EReference)luwFunctionMappingEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWFunctionMapping_LocalFunction() {
+ return (EReference)luwFunctionMappingEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWFunctionMapping_RemoteFunction() {
+ return (EReference)luwFunctionMappingEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWFunctionMapping_LUWDatabase() {
+ return (EReference)luwFunctionMappingEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWWrapper() {
+ return luwWrapperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWWrapper_Version() {
+ return (EAttribute)luwWrapperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWWrapper_Library() {
+ return (EAttribute)luwWrapperEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWWrapper_Fenced() {
+ return (EAttribute)luwWrapperEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWWrapper_WrapperType() {
+ return (EAttribute)luwWrapperEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWWrapper_DataSource() {
+ return (EAttribute)luwWrapperEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWWrapper_DiscoveredLibraries() {
+ return (EAttribute)luwWrapperEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWWrapper_Servers() {
+ return (EReference)luwWrapperEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWWrapper_LUWDatabase() {
+ return (EReference)luwWrapperEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWWrapper_Options() {
+ return (EReference)luwWrapperEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWNonRelationalNickname() {
+ return luwNonRelationalNicknameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWNonRelationalNickname_NonRelServer() {
+ return (EReference)luwNonRelationalNicknameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWNonRelationalServer() {
+ return luwNonRelationalServerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWNonRelationalServer_NonRelWrapper() {
+ return (EReference)luwNonRelationalServerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWNonRelationalServer_NonRelNicknames() {
+ return (EReference)luwNonRelationalServerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWNonRelationalWrapper() {
+ return luwNonRelationalWrapperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWNonRelationalWrapper_NonRelServers() {
+ return (EReference)luwNonRelationalWrapperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWRelationalNickname() {
+ return luwRelationalNicknameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWRelationalNickname_RelServer() {
+ return (EReference)luwRelationalNicknameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWGenericUserMapping() {
+ return luwGenericUserMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWGenericUserMapping_RemoteUser() {
+ return (EAttribute)luwGenericUserMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWGenericUserMapping_RemotePassword() {
+ return (EAttribute)luwGenericUserMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWRelationalWrapper() {
+ return luwRelationalWrapperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWRelationalWrapper_RelServers() {
+ return (EReference)luwRelationalWrapperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWServer() {
+ return luwServerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWServer_ServerType() {
+ return (EAttribute)luwServerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWServer_ServerVersion() {
+ return (EAttribute)luwServerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWServer_UserMappings() {
+ return (EReference)luwServerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWServer_Wrapper() {
+ return (EReference)luwServerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWServer_Nicknames() {
+ return (EReference)luwServerEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWServer_LUWDatabase() {
+ return (EReference)luwServerEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWServer_Options() {
+ return (EReference)luwServerEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWServer_RemoteServer() {
+ return (EReference)luwServerEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWTypeMapping() {
+ return luwTypeMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTypeMapping_ServerType() {
+ return (EAttribute)luwTypeMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTypeMapping_ServerVesion() {
+ return (EAttribute)luwTypeMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTypeMapping_ServerName() {
+ return (EAttribute)luwTypeMappingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTypeMapping_CreationTime() {
+ return (EAttribute)luwTypeMappingEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTypeMapping_LocalType() {
+ return (EReference)luwTypeMappingEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTypeMapping_RemoteType() {
+ return (EReference)luwTypeMappingEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWUserMapping() {
+ return luwUserMappingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWUserMapping_LocalAuthId() {
+ return (EAttribute)luwUserMappingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWUserMapping_Server() {
+ return (EReference)luwUserMappingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWUserMapping_Options() {
+ return (EReference)luwUserMappingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWOption() {
+ return luwOptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWOption_Value() {
+ return (EAttribute)luwOptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWRelationalServer() {
+ return luwRelationalServerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_CpuRatio() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_IoRatio() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_CommRate() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_FoldId() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_FoldPW() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_CollatingSequence() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_Pushdown() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_Node() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_DbName() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_IudAppSvptEnforce() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWRelationalServer_Password() {
+ return (EAttribute)luwRelationalServerEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWRelationalServer_RelNicknames() {
+ return (EReference)luwRelationalServerEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWRelationalServer_RelWrapper() {
+ return (EReference)luwRelationalServerEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWDatabase() {
+ return luwDatabaseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabase_Federated() {
+ return (EAttribute)luwDatabaseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_Groups() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_Wrappers() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_Servers() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_FunctionMappings() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_TypeMappings() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_ReverseTypeMappings() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_Bufferpools() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_Tablespaces() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_StorageGroups() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDatabase_DefaultStorageGroup() {
+ return (EReference)luwDatabaseEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWColumn() {
+ return luwColumnEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWColumn_LobLogged() {
+ return (EAttribute)luwColumnEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWColumn_LobCompacted() {
+ return (EAttribute)luwColumnEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWColumn_Compression() {
+ return (EAttribute)luwColumnEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWColumn_InlineLength() {
+ return (EAttribute)luwColumnEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWColumn_Hidden() {
+ return (EAttribute)luwColumnEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWColumn_SecurityLabel() {
+ return (EAttribute)luwColumnEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWColumn_Options() {
+ return (EReference)luwColumnEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWGenericNickname() {
+ return luwGenericNicknameEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWGenericNickname_GenericServer() {
+ return (EReference)luwGenericNicknameEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWGenericServer() {
+ return luwGenericServerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWGenericServer_GenericNicknames() {
+ return (EReference)luwGenericServerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWGenericServer_GenericWrapper() {
+ return (EReference)luwGenericServerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWMaterializedQueryTable() {
+ return luwMaterializedQueryTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWGenericWrapper() {
+ return luwGenericWrapperEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWGenericWrapper_GenericServers() {
+ return (EReference)luwGenericWrapperEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWStorageTable() {
+ return luwStorageTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageTable_ValueCompression() {
+ return (EAttribute)luwStorageTableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageTable_RowCompression() {
+ return (EAttribute)luwStorageTableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageTable_RowCompressionEmpty() {
+ return (EAttribute)luwStorageTableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageTable_CompressionMode() {
+ return (EAttribute)luwStorageTableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageTable_PartitionKey() {
+ return (EReference)luwStorageTableEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageTable_IndexDataTableSpace() {
+ return (EReference)luwStorageTableEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageTable_LOBDataTableSpace() {
+ return (EReference)luwStorageTableEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageTable_RegularDataTableSpace() {
+ return (EReference)luwStorageTableEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageTable_DataPartitions() {
+ return (EReference)luwStorageTableEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageTable_DataPartitionKey() {
+ return (EReference)luwStorageTableEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRelationalRemoteServer() {
+ return relationalRemoteServerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRelationalRemoteServer_Database() {
+ return (EReference)relationalRemoteServerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRelationalRemoteDataSet() {
+ return relationalRemoteDataSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRelationalRemoteDataSet_Table() {
+ return (EReference)relationalRemoteDataSetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRemoteServer() {
+ return remoteServerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRemoteServer_LUWServer() {
+ return (EReference)remoteServerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRemoteDataSet() {
+ return remoteDataSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRemoteDataSet_Nickname() {
+ return (EReference)remoteDataSetEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWIndex() {
+ return luwIndexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_PCTFree() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_MinPCTFree() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_ReverseScan() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_NotPartitioned() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_XmlPattern() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWIndex_AsSQLDataType() {
+ return (EReference)luwIndexEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_AsSQLDataTypeHashed() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_SystemRequired() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_PageSplitType() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_Level2PctFree() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_MinPctUsed() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_Compress() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_CollectStats() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_SampledStats() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_DetailedStats() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_IgnoreInvalidValues() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(15);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWIndex_ExcludeNullKeys() {
+ return (EAttribute)luwIndexEClass.getEStructuralFeatures().get(16);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWIndex_Tablespace() {
+ return (EReference)luwIndexEClass.getEStructuralFeatures().get(17);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWAttributeDefinition() {
+ return luwAttributeDefinitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWAttributeDefinition_LOBLogged() {
+ return (EAttribute)luwAttributeDefinitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWAttributeDefinition_LOBCompacted() {
+ return (EAttribute)luwAttributeDefinitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFederatedProcedure() {
+ return federatedProcedureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_RemoteUniqueId() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_RemoteServer() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_RemoteSchema() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_RemotePackage() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_RemoteProcedureName() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_NumberOfParameters() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_ResultSetsToClient() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_NumberOfRefCursors() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedProcedure_AllResultSetsToCaller() {
+ return (EAttribute)federatedProcedureEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFederatedProcedure_FederatedProcedure() {
+ return (EReference)federatedProcedureEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFederatedProcedure_RemoteProcedure() {
+ return (EReference)federatedProcedureEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFederatedProcedure_FederatedParameter() {
+ return (EReference)federatedProcedureEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFederatedParameter() {
+ return federatedParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedParameter_RemoteCodePage() {
+ return (EAttribute)federatedParameterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFederatedParameter_RemoteParamTypeID() {
+ return (EAttribute)federatedParameterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFederatedParameter_FederatedProcedure() {
+ return (EReference)federatedParameterEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFederatedParameter_RemoteParameter() {
+ return (EReference)federatedParameterEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWPartitionExpression() {
+ return luwPartitionExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWPartitionExpression_NullsLast() {
+ return (EAttribute)luwPartitionExpressionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionExpression_Key() {
+ return (EReference)luwPartitionExpressionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionExpression_Column() {
+ return (EReference)luwPartitionExpressionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionExpression_PartitionElements() {
+ return (EReference)luwPartitionExpressionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWPartitionElement() {
+ return luwPartitionElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWPartitionElement_Starting() {
+ return (EAttribute)luwPartitionElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWPartitionElement_Ending() {
+ return (EAttribute)luwPartitionElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionElement_LUWPartitionExpression() {
+ return (EReference)luwPartitionElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionElement_Partition() {
+ return (EReference)luwPartitionElementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionElement_EveryClause() {
+ return (EReference)luwPartitionElementEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWDataPartition() {
+ return luwDataPartitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDataPartition_Id() {
+ return (EAttribute)luwDataPartitionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDataPartition_LowInclusive() {
+ return (EAttribute)luwDataPartitionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDataPartition_HighInclusive() {
+ return (EAttribute)luwDataPartitionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDataPartition_LOBDataTableSpace() {
+ return (EReference)luwDataPartitionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDataPartition_RegularDataTableSpace() {
+ return (EReference)luwDataPartitionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDataPartition_PartitionElements() {
+ return (EReference)luwDataPartitionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDataPartition_Table() {
+ return (EReference)luwDataPartitionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDataPartition_IndexDataTableSpace() {
+ return (EReference)luwDataPartitionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWDataPartitionKey() {
+ return luwDataPartitionKeyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDataPartitionKey_PartitionMethod() {
+ return (EAttribute)luwDataPartitionKeyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDataPartitionKey_PartitionExpressions() {
+ return (EReference)luwDataPartitionKeyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWDataPartitionKey_Table() {
+ return (EReference)luwDataPartitionKeyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWDatabasePackage() {
+ return luwDatabasePackageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePackage_Creator() {
+ return (EAttribute)luwDatabasePackageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePackage_Binder() {
+ return (EAttribute)luwDatabasePackageEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePackage_CursorBlock() {
+ return (EAttribute)luwDatabasePackageEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePackage_NumberOfSections() {
+ return (EAttribute)luwDatabasePackageEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePackage_OptimizationClass() {
+ return (EAttribute)luwDatabasePackageEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWDatabasePackage_ExplainSnapshot() {
+ return (EAttribute)luwDatabasePackageEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModule() {
+ return luwModuleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWModule_Dialect() {
+ return (EAttribute)luwModuleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWModule_OwningSchema() {
+ return (EReference)luwModuleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWModule_ModuleObjects() {
+ return (EReference)luwModuleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleObject() {
+ return luwModuleObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWModuleObject_Published() {
+ return (EAttribute)luwModuleObjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWModuleObject_Module() {
+ return (EReference)luwModuleObjectEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleFunction() {
+ return luwModuleFunctionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWModuleFunction_Implemented() {
+ return (EAttribute)luwModuleFunctionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleProcedure() {
+ return luwModuleProcedureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWModuleProcedure_Implemented() {
+ return (EAttribute)luwModuleProcedureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleCondition() {
+ return luwModuleConditionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWModuleCondition_Sqlstate() {
+ return (EAttribute)luwModuleConditionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWGlobalVariable() {
+ return luwGlobalVariableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWGlobalVariable_DefaultValue() {
+ return (EAttribute)luwGlobalVariableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWGlobalVariable_IsConstant() {
+ return (EAttribute)luwGlobalVariableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWGlobalVariable_Schema() {
+ return (EReference)luwGlobalVariableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleType() {
+ return luwModuleTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleRowDataType() {
+ return luwModuleRowDataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleArrayDataType() {
+ return luwModuleArrayDataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleDistinctType() {
+ return luwModuleDistinctTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleGlobalVariable() {
+ return luwModuleGlobalVariableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWArrayDataType() {
+ return luwArrayDataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWArrayDataType_ArrayIndexElementType() {
+ return (EReference)luwArrayDataTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWRowDataType() {
+ return luwRowDataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPLSQLPackage() {
+ return plsqlPackageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPLSQLPackage_PackageBody() {
+ return (EReference)plsqlPackageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPLSQLPackageBody() {
+ return plsqlPackageBodyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPLSQLPackageBody_Package() {
+ return (EReference)plsqlPackageBodyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWCursorDataType() {
+ return luwCursorDataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWCursorDataType_RowType() {
+ return (EReference)luwCursorDataTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWModuleCursorDataType() {
+ return luwModuleCursorDataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWBufferPoolSizeException() {
+ return luwBufferPoolSizeExceptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWBufferPoolSizeException_Size() {
+ return (EAttribute)luwBufferPoolSizeExceptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWBufferPoolSizeException_BufferPool() {
+ return (EReference)luwBufferPoolSizeExceptionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWBufferPoolSizeException_Partitions() {
+ return (EReference)luwBufferPoolSizeExceptionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWMember() {
+ return luwMemberEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWMember_Type() {
+ return (EAttribute)luwMemberEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWMember_Alert() {
+ return (EAttribute)luwMemberEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWMember_DbPartitionNum() {
+ return (EAttribute)luwMemberEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWMember_LogicalPort() {
+ return (EAttribute)luwMemberEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWMember_NetName() {
+ return (EAttribute)luwMemberEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWSecurityPolicy() {
+ return luwSecurityPolicyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWSecurityPolicy_NotAuthorizedWrite() {
+ return (EAttribute)luwSecurityPolicyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWSecurityPolicy_Components() {
+ return (EReference)luwSecurityPolicyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWSecurityPolicy_Labels() {
+ return (EReference)luwSecurityPolicyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWSecurityPolicy_Table() {
+ return (EReference)luwSecurityPolicyEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWSecurityLabelComponent() {
+ return luwSecurityLabelComponentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWSecurityLabelComponent_Type() {
+ return (EAttribute)luwSecurityLabelComponentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWSecurityLabelComponent_LUWSecurityPolicy() {
+ return (EReference)luwSecurityLabelComponentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWSecurityLabelComponent_Elements() {
+ return (EReference)luwSecurityLabelComponentEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWSecurityLabel() {
+ return luwSecurityLabelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWSecurityLabel_SecurityLabel() {
+ return (EAttribute)luwSecurityLabelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWSecurityLabel_Policy() {
+ return (EReference)luwSecurityLabelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWSecurityLabelComponentElement() {
+ return luwSecurityLabelComponentElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWSecurityLabelComponentElement_Value() {
+ return (EAttribute)luwSecurityLabelComponentElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWSecurityLabelComponentElement_ParentValue() {
+ return (EAttribute)luwSecurityLabelComponentElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWSecurityLabelComponentElement_LUWSecurityLabelComponent() {
+ return (EReference)luwSecurityLabelComponentElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWStorageGroup() {
+ return luwStorageGroupEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageGroup_StoragePaths() {
+ return (EAttribute)luwStorageGroupEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageGroup_Overhead() {
+ return (EAttribute)luwStorageGroupEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageGroup_DeviceReadRate() {
+ return (EAttribute)luwStorageGroupEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageGroup_DataTag() {
+ return (EAttribute)luwStorageGroupEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWStorageGroup_Default() {
+ return (EAttribute)luwStorageGroupEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageGroup_Database() {
+ return (EReference)luwStorageGroupEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWStorageGroup_TableSpaces() {
+ return (EReference)luwStorageGroupEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWTemporaryStorageTable() {
+ return luwTemporaryStorageTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTemporaryStorageTable_PartitionKey() {
+ return (EReference)luwTemporaryStorageTableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTemporaryStorageTable_UserTemporaryTableSpace() {
+ return (EReference)luwTemporaryStorageTableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWTemporaryTable() {
+ return luwTemporaryTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWTemporaryTable_Table() {
+ return (EReference)luwTemporaryTableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWTemporaryTable_LogOption() {
+ return (EAttribute)luwTemporaryTableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArrayIndexElementType() {
+ return arrayIndexElementTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArrayIndexElementType_LUWArrayDataType() {
+ return (EReference)arrayIndexElementTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLUWPartitionEveryClauseElement() {
+ return luwPartitionEveryClauseElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWPartitionEveryClauseElement_Value() {
+ return (EAttribute)luwPartitionEveryClauseElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLUWPartitionEveryClauseElement_Duration() {
+ return (EAttribute)luwPartitionEveryClauseElementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLUWPartitionEveryClauseElement_LUWPartitionElement() {
+ return (EReference)luwPartitionEveryClauseElementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWContainerType() {
+ return luwContainerTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPageSizeType() {
+ return pageSizeTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getBufferPoolType() {
+ return bufferPoolTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTableSpaceType() {
+ return tableSpaceTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getManagementType() {
+ return managementTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCheckOptionType() {
+ return checkOptionTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPartitionMethod() {
+ return partitionMethodEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMaintenanceType() {
+ return maintenanceTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getRefreshType() {
+ return refreshTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getWrapperType() {
+ return wrapperTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDataPartitionMethod() {
+ return dataPartitionMethodEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCursorBlockType() {
+ return cursorBlockTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getExplainSnaphotType() {
+ return explainSnaphotTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getFileSystemCachingType() {
+ return fileSystemCachingTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWIndexPageSplitType() {
+ return luwIndexPageSplitTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWIndexCompressType() {
+ return luwIndexCompressTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSystemType() {
+ return systemTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAverageTableSizeType() {
+ return averageTableSizeTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWStorageTableCompressionMode() {
+ return luwStorageTableCompressionModeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWMemberType() {
+ return luwMemberTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMemberStateType() {
+ return memberStateTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWSecurityLabelComponentType() {
+ return luwSecurityLabelComponentTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWSecurityLabelNotAuthorizedWriteAction() {
+ return luwSecurityLabelNotAuthorizedWriteActionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWFederatedDataSource() {
+ return luwFederatedDataSourceEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getLUWTemporaryTableLoggingOption() {
+ return luwTemporaryTableLoggingOptionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWFactory getLUWFactory() {
+ return (LUWFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ luwPartitionGroupEClass = createEClass(LUW_PARTITION_GROUP);
+ createEReference(luwPartitionGroupEClass, LUW_PARTITION_GROUP__PARTITIONS);
+ createEReference(luwPartitionGroupEClass, LUW_PARTITION_GROUP__TABLE_SPACES);
+ createEReference(luwPartitionGroupEClass, LUW_PARTITION_GROUP__DATABASE);
+ createEReference(luwPartitionGroupEClass, LUW_PARTITION_GROUP__BUFFER_POOL);
+
+ luwTableSpaceEClass = createEClass(LUW_TABLE_SPACE);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__TABLESPACE_TYPE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__MANAGEMENT_TYPE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__EXTENT_SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__PRE_FETCH_SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__OVERHEAD);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__TRANSFER_RATE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__PAGE_SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__AUTO_RESIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__INITIAL_SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__INCREASE_SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__MAXIMUM_SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__INITIAL_SIZE_UNIT);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__INCREASE_SIZE_UNIT);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__INCREASE_PERCENT);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__FILE_SYSTEM_CACHING);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__AVERAGE_SEEK_TIME);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__ROTATION_SPEED);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__TRANSFER);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__SYSTEM_TYPE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__INHERIT_OVERHEAD);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__INHERIT_TRANSFERATE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__REBALANCE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__DATA_TAG);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__SUSPEND_REBALANCE);
+ createEAttribute(luwTableSpaceEClass, LUW_TABLE_SPACE__RESUME_REBALANCE);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__GROUP);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__CONTAINERS);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__BUFFER_POOL);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__INDEX_DATA_TABLES);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__LOB_DATA_TABLES);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__REGULAR_DATA_TABLES);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__DATABASE);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__LOB_DATA_PARTITION);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__REGULAR_DATA_PARTITION);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__INDEXES);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__INDEX_DATA_PARTITION);
+ createEReference(luwTableSpaceEClass, LUW_TABLE_SPACE__STORAGE_GROUP);
+
+ luwDatabasePartitionEClass = createEClass(LUW_DATABASE_PARTITION);
+ createEAttribute(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__NUMBER);
+ createEAttribute(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__PORT_NUMBER);
+ createEAttribute(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__HOST_NAME);
+ createEAttribute(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__SWITCH_NAME);
+ createEAttribute(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__CATALOG_PARTITION);
+ createEReference(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__GROUP);
+ createEReference(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__BUFFER_POOL);
+ createEReference(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__CONTAINERS);
+ createEReference(luwDatabasePartitionEClass, LUW_DATABASE_PARTITION__SIZE_EXCEPTION);
+
+ luwDatabaseContainerEClass = createEClass(LUW_DATABASE_CONTAINER);
+ createEAttribute(luwDatabaseContainerEClass, LUW_DATABASE_CONTAINER__CONTAINER_TYPE);
+ createEAttribute(luwDatabaseContainerEClass, LUW_DATABASE_CONTAINER__SIZE_IN_PAGES);
+ createEAttribute(luwDatabaseContainerEClass, LUW_DATABASE_CONTAINER__SIZE);
+ createEAttribute(luwDatabaseContainerEClass, LUW_DATABASE_CONTAINER__SIZE_UNITS);
+ createEReference(luwDatabaseContainerEClass, LUW_DATABASE_CONTAINER__TABLE_SPACE);
+ createEReference(luwDatabaseContainerEClass, LUW_DATABASE_CONTAINER__PARTITIONS);
+
+ luwAdminServerEClass = createEClass(LUW_ADMIN_SERVER);
+ createEReference(luwAdminServerEClass, LUW_ADMIN_SERVER__INSTANCES);
+
+ luwBufferPoolEClass = createEClass(LUW_BUFFER_POOL);
+ createEAttribute(luwBufferPoolEClass, LUW_BUFFER_POOL__CREATE_TYPE);
+ createEAttribute(luwBufferPoolEClass, LUW_BUFFER_POOL__SIZE);
+ createEAttribute(luwBufferPoolEClass, LUW_BUFFER_POOL__PAGE_SIZE);
+ createEAttribute(luwBufferPoolEClass, LUW_BUFFER_POOL__BLOCK_SIZE);
+ createEAttribute(luwBufferPoolEClass, LUW_BUFFER_POOL__NUM_BLOCK_PAGES);
+ createEAttribute(luwBufferPoolEClass, LUW_BUFFER_POOL__EXTENDED_STORAGE);
+ createEAttribute(luwBufferPoolEClass, LUW_BUFFER_POOL__AUTOMATIC);
+ createEReference(luwBufferPoolEClass, LUW_BUFFER_POOL__TABLE_SPACES);
+ createEReference(luwBufferPoolEClass, LUW_BUFFER_POOL__PARTITIONS);
+ createEReference(luwBufferPoolEClass, LUW_BUFFER_POOL__PARTITION_GROUP);
+ createEReference(luwBufferPoolEClass, LUW_BUFFER_POOL__DATABASE);
+ createEReference(luwBufferPoolEClass, LUW_BUFFER_POOL__SIZE_EXCEPTION);
+
+ luwTableEClass = createEClass(LUW_TABLE);
+ createEAttribute(luwTableEClass, LUW_TABLE__PCT_FREE);
+ createEAttribute(luwTableEClass, LUW_TABLE__RESTRICT_ON_DROP);
+ createEAttribute(luwTableEClass, LUW_TABLE__PARTITION_MODE);
+ createEAttribute(luwTableEClass, LUW_TABLE__APPEND_MODE);
+ createEAttribute(luwTableEClass, LUW_TABLE__LOG_MODE);
+ createEAttribute(luwTableEClass, LUW_TABLE__LOCK_SIZE_ROW);
+ createEAttribute(luwTableEClass, LUW_TABLE__VOLATILE);
+ createEReference(luwTableEClass, LUW_TABLE__OPTIONS);
+ createEReference(luwTableEClass, LUW_TABLE__SECURITY_POLICY);
+
+ luwViewEClass = createEClass(LUW_VIEW);
+ createEAttribute(luwViewEClass, LUW_VIEW__FEDERATED);
+ createEAttribute(luwViewEClass, LUW_VIEW__OPTIMIZE_QUERY);
+
+ luwPartitionKeyEClass = createEClass(LUW_PARTITION_KEY);
+ createEReference(luwPartitionKeyEClass, LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE);
+ createEAttribute(luwPartitionKeyEClass, LUW_PARTITION_KEY__PARTITION_METHOD);
+ createEReference(luwPartitionKeyEClass, LUW_PARTITION_KEY__TABLE);
+ createEReference(luwPartitionKeyEClass, LUW_PARTITION_KEY__COLUMNS);
+
+ luwNicknameEClass = createEClass(LUW_NICKNAME);
+ createEReference(luwNicknameEClass, LUW_NICKNAME__REMOTE_DATA_SET);
+ createEReference(luwNicknameEClass, LUW_NICKNAME__SERVER);
+
+ luwFunctionMappingEClass = createEClass(LUW_FUNCTION_MAPPING);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__SERVER_TYPE);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__SERVER_VERSION);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__SERVER_NAME);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__CREATION_TIME);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__DISABLED);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__INSTS_PER_INVOC);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__INSTS_PER_ARG_BYTE);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__IOS_PER_INVOC);
+ createEAttribute(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__IOS_PER_ARG_BYTE);
+ createEReference(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__OPTIONS);
+ createEReference(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__LOCAL_FUNCTION);
+ createEReference(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__REMOTE_FUNCTION);
+ createEReference(luwFunctionMappingEClass, LUW_FUNCTION_MAPPING__LUW_DATABASE);
+
+ luwWrapperEClass = createEClass(LUW_WRAPPER);
+ createEAttribute(luwWrapperEClass, LUW_WRAPPER__VERSION);
+ createEAttribute(luwWrapperEClass, LUW_WRAPPER__LIBRARY);
+ createEAttribute(luwWrapperEClass, LUW_WRAPPER__FENCED);
+ createEAttribute(luwWrapperEClass, LUW_WRAPPER__WRAPPER_TYPE);
+ createEAttribute(luwWrapperEClass, LUW_WRAPPER__DATA_SOURCE);
+ createEAttribute(luwWrapperEClass, LUW_WRAPPER__DISCOVERED_LIBRARIES);
+ createEReference(luwWrapperEClass, LUW_WRAPPER__SERVERS);
+ createEReference(luwWrapperEClass, LUW_WRAPPER__LUW_DATABASE);
+ createEReference(luwWrapperEClass, LUW_WRAPPER__OPTIONS);
+
+ luwNonRelationalNicknameEClass = createEClass(LUW_NON_RELATIONAL_NICKNAME);
+ createEReference(luwNonRelationalNicknameEClass, LUW_NON_RELATIONAL_NICKNAME__NON_REL_SERVER);
+
+ luwNonRelationalServerEClass = createEClass(LUW_NON_RELATIONAL_SERVER);
+ createEReference(luwNonRelationalServerEClass, LUW_NON_RELATIONAL_SERVER__NON_REL_WRAPPER);
+ createEReference(luwNonRelationalServerEClass, LUW_NON_RELATIONAL_SERVER__NON_REL_NICKNAMES);
+
+ luwNonRelationalWrapperEClass = createEClass(LUW_NON_RELATIONAL_WRAPPER);
+ createEReference(luwNonRelationalWrapperEClass, LUW_NON_RELATIONAL_WRAPPER__NON_REL_SERVERS);
+
+ luwRelationalNicknameEClass = createEClass(LUW_RELATIONAL_NICKNAME);
+ createEReference(luwRelationalNicknameEClass, LUW_RELATIONAL_NICKNAME__REL_SERVER);
+
+ luwGenericUserMappingEClass = createEClass(LUW_GENERIC_USER_MAPPING);
+ createEAttribute(luwGenericUserMappingEClass, LUW_GENERIC_USER_MAPPING__REMOTE_USER);
+ createEAttribute(luwGenericUserMappingEClass, LUW_GENERIC_USER_MAPPING__REMOTE_PASSWORD);
+
+ luwRelationalWrapperEClass = createEClass(LUW_RELATIONAL_WRAPPER);
+ createEReference(luwRelationalWrapperEClass, LUW_RELATIONAL_WRAPPER__REL_SERVERS);
+
+ luwServerEClass = createEClass(LUW_SERVER);
+ createEAttribute(luwServerEClass, LUW_SERVER__SERVER_TYPE);
+ createEAttribute(luwServerEClass, LUW_SERVER__SERVER_VERSION);
+ createEReference(luwServerEClass, LUW_SERVER__USER_MAPPINGS);
+ createEReference(luwServerEClass, LUW_SERVER__WRAPPER);
+ createEReference(luwServerEClass, LUW_SERVER__NICKNAMES);
+ createEReference(luwServerEClass, LUW_SERVER__LUW_DATABASE);
+ createEReference(luwServerEClass, LUW_SERVER__OPTIONS);
+ createEReference(luwServerEClass, LUW_SERVER__REMOTE_SERVER);
+
+ luwTypeMappingEClass = createEClass(LUW_TYPE_MAPPING);
+ createEAttribute(luwTypeMappingEClass, LUW_TYPE_MAPPING__SERVER_TYPE);
+ createEAttribute(luwTypeMappingEClass, LUW_TYPE_MAPPING__SERVER_VESION);
+ createEAttribute(luwTypeMappingEClass, LUW_TYPE_MAPPING__SERVER_NAME);
+ createEAttribute(luwTypeMappingEClass, LUW_TYPE_MAPPING__CREATION_TIME);
+ createEReference(luwTypeMappingEClass, LUW_TYPE_MAPPING__LOCAL_TYPE);
+ createEReference(luwTypeMappingEClass, LUW_TYPE_MAPPING__REMOTE_TYPE);
+
+ luwUserMappingEClass = createEClass(LUW_USER_MAPPING);
+ createEAttribute(luwUserMappingEClass, LUW_USER_MAPPING__LOCAL_AUTH_ID);
+ createEReference(luwUserMappingEClass, LUW_USER_MAPPING__SERVER);
+ createEReference(luwUserMappingEClass, LUW_USER_MAPPING__OPTIONS);
+
+ luwOptionEClass = createEClass(LUW_OPTION);
+ createEAttribute(luwOptionEClass, LUW_OPTION__VALUE);
+
+ luwRelationalServerEClass = createEClass(LUW_RELATIONAL_SERVER);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__CPU_RATIO);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__IO_RATIO);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__COMM_RATE);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__FOLD_ID);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__FOLD_PW);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__PUSHDOWN);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__NODE);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__DB_NAME);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE);
+ createEAttribute(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__PASSWORD);
+ createEReference(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__REL_NICKNAMES);
+ createEReference(luwRelationalServerEClass, LUW_RELATIONAL_SERVER__REL_WRAPPER);
+
+ luwDatabaseEClass = createEClass(LUW_DATABASE);
+ createEAttribute(luwDatabaseEClass, LUW_DATABASE__FEDERATED);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__GROUPS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__WRAPPERS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__SERVERS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__FUNCTION_MAPPINGS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__TYPE_MAPPINGS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__REVERSE_TYPE_MAPPINGS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__BUFFERPOOLS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__TABLESPACES);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__STORAGE_GROUPS);
+ createEReference(luwDatabaseEClass, LUW_DATABASE__DEFAULT_STORAGE_GROUP);
+
+ luwColumnEClass = createEClass(LUW_COLUMN);
+ createEAttribute(luwColumnEClass, LUW_COLUMN__LOB_LOGGED);
+ createEAttribute(luwColumnEClass, LUW_COLUMN__LOB_COMPACTED);
+ createEAttribute(luwColumnEClass, LUW_COLUMN__COMPRESSION);
+ createEAttribute(luwColumnEClass, LUW_COLUMN__INLINE_LENGTH);
+ createEAttribute(luwColumnEClass, LUW_COLUMN__HIDDEN);
+ createEAttribute(luwColumnEClass, LUW_COLUMN__SECURITY_LABEL);
+ createEReference(luwColumnEClass, LUW_COLUMN__OPTIONS);
+
+ luwGenericNicknameEClass = createEClass(LUW_GENERIC_NICKNAME);
+ createEReference(luwGenericNicknameEClass, LUW_GENERIC_NICKNAME__GENERIC_SERVER);
+
+ luwGenericServerEClass = createEClass(LUW_GENERIC_SERVER);
+ createEReference(luwGenericServerEClass, LUW_GENERIC_SERVER__GENERIC_NICKNAMES);
+ createEReference(luwGenericServerEClass, LUW_GENERIC_SERVER__GENERIC_WRAPPER);
+
+ luwMaterializedQueryTableEClass = createEClass(LUW_MATERIALIZED_QUERY_TABLE);
+
+ luwGenericWrapperEClass = createEClass(LUW_GENERIC_WRAPPER);
+ createEReference(luwGenericWrapperEClass, LUW_GENERIC_WRAPPER__GENERIC_SERVERS);
+
+ luwStorageTableEClass = createEClass(LUW_STORAGE_TABLE);
+ createEAttribute(luwStorageTableEClass, LUW_STORAGE_TABLE__VALUE_COMPRESSION);
+ createEAttribute(luwStorageTableEClass, LUW_STORAGE_TABLE__ROW_COMPRESSION);
+ createEAttribute(luwStorageTableEClass, LUW_STORAGE_TABLE__ROW_COMPRESSION_EMPTY);
+ createEAttribute(luwStorageTableEClass, LUW_STORAGE_TABLE__COMPRESSION_MODE);
+ createEReference(luwStorageTableEClass, LUW_STORAGE_TABLE__PARTITION_KEY);
+ createEReference(luwStorageTableEClass, LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE);
+ createEReference(luwStorageTableEClass, LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE);
+ createEReference(luwStorageTableEClass, LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE);
+ createEReference(luwStorageTableEClass, LUW_STORAGE_TABLE__DATA_PARTITIONS);
+ createEReference(luwStorageTableEClass, LUW_STORAGE_TABLE__DATA_PARTITION_KEY);
+
+ relationalRemoteServerEClass = createEClass(RELATIONAL_REMOTE_SERVER);
+ createEReference(relationalRemoteServerEClass, RELATIONAL_REMOTE_SERVER__DATABASE);
+
+ relationalRemoteDataSetEClass = createEClass(RELATIONAL_REMOTE_DATA_SET);
+ createEReference(relationalRemoteDataSetEClass, RELATIONAL_REMOTE_DATA_SET__TABLE);
+
+ remoteServerEClass = createEClass(REMOTE_SERVER);
+ createEReference(remoteServerEClass, REMOTE_SERVER__LUW_SERVER);
+
+ remoteDataSetEClass = createEClass(REMOTE_DATA_SET);
+ createEReference(remoteDataSetEClass, REMOTE_DATA_SET__NICKNAME);
+
+ luwIndexEClass = createEClass(LUW_INDEX);
+ createEAttribute(luwIndexEClass, LUW_INDEX__PCT_FREE);
+ createEAttribute(luwIndexEClass, LUW_INDEX__MIN_PCT_FREE);
+ createEAttribute(luwIndexEClass, LUW_INDEX__REVERSE_SCAN);
+ createEAttribute(luwIndexEClass, LUW_INDEX__NOT_PARTITIONED);
+ createEAttribute(luwIndexEClass, LUW_INDEX__XML_PATTERN);
+ createEReference(luwIndexEClass, LUW_INDEX__AS_SQL_DATA_TYPE);
+ createEAttribute(luwIndexEClass, LUW_INDEX__AS_SQL_DATA_TYPE_HASHED);
+ createEAttribute(luwIndexEClass, LUW_INDEX__SYSTEM_REQUIRED);
+ createEAttribute(luwIndexEClass, LUW_INDEX__PAGE_SPLIT_TYPE);
+ createEAttribute(luwIndexEClass, LUW_INDEX__LEVEL2_PCT_FREE);
+ createEAttribute(luwIndexEClass, LUW_INDEX__MIN_PCT_USED);
+ createEAttribute(luwIndexEClass, LUW_INDEX__COMPRESS);
+ createEAttribute(luwIndexEClass, LUW_INDEX__COLLECT_STATS);
+ createEAttribute(luwIndexEClass, LUW_INDEX__SAMPLED_STATS);
+ createEAttribute(luwIndexEClass, LUW_INDEX__DETAILED_STATS);
+ createEAttribute(luwIndexEClass, LUW_INDEX__IGNORE_INVALID_VALUES);
+ createEAttribute(luwIndexEClass, LUW_INDEX__EXCLUDE_NULL_KEYS);
+ createEReference(luwIndexEClass, LUW_INDEX__TABLESPACE);
+
+ luwAttributeDefinitionEClass = createEClass(LUW_ATTRIBUTE_DEFINITION);
+ createEAttribute(luwAttributeDefinitionEClass, LUW_ATTRIBUTE_DEFINITION__LOB_LOGGED);
+ createEAttribute(luwAttributeDefinitionEClass, LUW_ATTRIBUTE_DEFINITION__LOB_COMPACTED);
+
+ federatedProcedureEClass = createEClass(FEDERATED_PROCEDURE);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__REMOTE_UNIQUE_ID);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__REMOTE_SERVER);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__REMOTE_SCHEMA);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__REMOTE_PACKAGE);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__REMOTE_PROCEDURE_NAME);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__NUMBER_OF_PARAMETERS);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__RESULT_SETS_TO_CLIENT);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__NUMBER_OF_REF_CURSORS);
+ createEAttribute(federatedProcedureEClass, FEDERATED_PROCEDURE__ALL_RESULT_SETS_TO_CALLER);
+ createEReference(federatedProcedureEClass, FEDERATED_PROCEDURE__FEDERATED_PROCEDURE);
+ createEReference(federatedProcedureEClass, FEDERATED_PROCEDURE__REMOTE_PROCEDURE);
+ createEReference(federatedProcedureEClass, FEDERATED_PROCEDURE__FEDERATED_PARAMETER);
+
+ federatedParameterEClass = createEClass(FEDERATED_PARAMETER);
+ createEAttribute(federatedParameterEClass, FEDERATED_PARAMETER__REMOTE_CODE_PAGE);
+ createEAttribute(federatedParameterEClass, FEDERATED_PARAMETER__REMOTE_PARAM_TYPE_ID);
+ createEReference(federatedParameterEClass, FEDERATED_PARAMETER__FEDERATED_PROCEDURE);
+ createEReference(federatedParameterEClass, FEDERATED_PARAMETER__REMOTE_PARAMETER);
+
+ luwPartitionExpressionEClass = createEClass(LUW_PARTITION_EXPRESSION);
+ createEAttribute(luwPartitionExpressionEClass, LUW_PARTITION_EXPRESSION__NULLS_LAST);
+ createEReference(luwPartitionExpressionEClass, LUW_PARTITION_EXPRESSION__KEY);
+ createEReference(luwPartitionExpressionEClass, LUW_PARTITION_EXPRESSION__COLUMN);
+ createEReference(luwPartitionExpressionEClass, LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS);
+
+ luwPartitionElementEClass = createEClass(LUW_PARTITION_ELEMENT);
+ createEAttribute(luwPartitionElementEClass, LUW_PARTITION_ELEMENT__STARTING);
+ createEAttribute(luwPartitionElementEClass, LUW_PARTITION_ELEMENT__ENDING);
+ createEReference(luwPartitionElementEClass, LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION);
+ createEReference(luwPartitionElementEClass, LUW_PARTITION_ELEMENT__PARTITION);
+ createEReference(luwPartitionElementEClass, LUW_PARTITION_ELEMENT__EVERY_CLAUSE);
+
+ luwDataPartitionEClass = createEClass(LUW_DATA_PARTITION);
+ createEAttribute(luwDataPartitionEClass, LUW_DATA_PARTITION__ID);
+ createEAttribute(luwDataPartitionEClass, LUW_DATA_PARTITION__LOW_INCLUSIVE);
+ createEAttribute(luwDataPartitionEClass, LUW_DATA_PARTITION__HIGH_INCLUSIVE);
+ createEReference(luwDataPartitionEClass, LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE);
+ createEReference(luwDataPartitionEClass, LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE);
+ createEReference(luwDataPartitionEClass, LUW_DATA_PARTITION__PARTITION_ELEMENTS);
+ createEReference(luwDataPartitionEClass, LUW_DATA_PARTITION__TABLE);
+ createEReference(luwDataPartitionEClass, LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE);
+
+ luwDataPartitionKeyEClass = createEClass(LUW_DATA_PARTITION_KEY);
+ createEAttribute(luwDataPartitionKeyEClass, LUW_DATA_PARTITION_KEY__PARTITION_METHOD);
+ createEReference(luwDataPartitionKeyEClass, LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS);
+ createEReference(luwDataPartitionKeyEClass, LUW_DATA_PARTITION_KEY__TABLE);
+
+ luwDatabasePackageEClass = createEClass(LUW_DATABASE_PACKAGE);
+ createEAttribute(luwDatabasePackageEClass, LUW_DATABASE_PACKAGE__CREATOR);
+ createEAttribute(luwDatabasePackageEClass, LUW_DATABASE_PACKAGE__BINDER);
+ createEAttribute(luwDatabasePackageEClass, LUW_DATABASE_PACKAGE__CURSOR_BLOCK);
+ createEAttribute(luwDatabasePackageEClass, LUW_DATABASE_PACKAGE__NUMBER_OF_SECTIONS);
+ createEAttribute(luwDatabasePackageEClass, LUW_DATABASE_PACKAGE__OPTIMIZATION_CLASS);
+ createEAttribute(luwDatabasePackageEClass, LUW_DATABASE_PACKAGE__EXPLAIN_SNAPSHOT);
+
+ luwModuleEClass = createEClass(LUW_MODULE);
+ createEAttribute(luwModuleEClass, LUW_MODULE__DIALECT);
+ createEReference(luwModuleEClass, LUW_MODULE__OWNING_SCHEMA);
+ createEReference(luwModuleEClass, LUW_MODULE__MODULE_OBJECTS);
+
+ luwModuleObjectEClass = createEClass(LUW_MODULE_OBJECT);
+ createEAttribute(luwModuleObjectEClass, LUW_MODULE_OBJECT__PUBLISHED);
+ createEReference(luwModuleObjectEClass, LUW_MODULE_OBJECT__MODULE);
+
+ luwModuleFunctionEClass = createEClass(LUW_MODULE_FUNCTION);
+ createEAttribute(luwModuleFunctionEClass, LUW_MODULE_FUNCTION__IMPLEMENTED);
+
+ luwModuleProcedureEClass = createEClass(LUW_MODULE_PROCEDURE);
+ createEAttribute(luwModuleProcedureEClass, LUW_MODULE_PROCEDURE__IMPLEMENTED);
+
+ luwModuleConditionEClass = createEClass(LUW_MODULE_CONDITION);
+ createEAttribute(luwModuleConditionEClass, LUW_MODULE_CONDITION__SQLSTATE);
+
+ luwGlobalVariableEClass = createEClass(LUW_GLOBAL_VARIABLE);
+ createEAttribute(luwGlobalVariableEClass, LUW_GLOBAL_VARIABLE__DEFAULT_VALUE);
+ createEAttribute(luwGlobalVariableEClass, LUW_GLOBAL_VARIABLE__IS_CONSTANT);
+ createEReference(luwGlobalVariableEClass, LUW_GLOBAL_VARIABLE__SCHEMA);
+
+ luwModuleTypeEClass = createEClass(LUW_MODULE_TYPE);
+
+ luwModuleRowDataTypeEClass = createEClass(LUW_MODULE_ROW_DATA_TYPE);
+
+ luwModuleArrayDataTypeEClass = createEClass(LUW_MODULE_ARRAY_DATA_TYPE);
+
+ luwModuleDistinctTypeEClass = createEClass(LUW_MODULE_DISTINCT_TYPE);
+
+ luwModuleGlobalVariableEClass = createEClass(LUW_MODULE_GLOBAL_VARIABLE);
+
+ luwArrayDataTypeEClass = createEClass(LUW_ARRAY_DATA_TYPE);
+ createEReference(luwArrayDataTypeEClass, LUW_ARRAY_DATA_TYPE__ARRAY_INDEX_ELEMENT_TYPE);
+
+ luwRowDataTypeEClass = createEClass(LUW_ROW_DATA_TYPE);
+
+ plsqlPackageEClass = createEClass(PLSQL_PACKAGE);
+ createEReference(plsqlPackageEClass, PLSQL_PACKAGE__PACKAGE_BODY);
+
+ plsqlPackageBodyEClass = createEClass(PLSQL_PACKAGE_BODY);
+ createEReference(plsqlPackageBodyEClass, PLSQL_PACKAGE_BODY__PACKAGE);
+
+ luwCursorDataTypeEClass = createEClass(LUW_CURSOR_DATA_TYPE);
+ createEReference(luwCursorDataTypeEClass, LUW_CURSOR_DATA_TYPE__ROW_TYPE);
+
+ luwModuleCursorDataTypeEClass = createEClass(LUW_MODULE_CURSOR_DATA_TYPE);
+
+ luwBufferPoolSizeExceptionEClass = createEClass(LUW_BUFFER_POOL_SIZE_EXCEPTION);
+ createEAttribute(luwBufferPoolSizeExceptionEClass, LUW_BUFFER_POOL_SIZE_EXCEPTION__SIZE);
+ createEReference(luwBufferPoolSizeExceptionEClass, LUW_BUFFER_POOL_SIZE_EXCEPTION__BUFFER_POOL);
+ createEReference(luwBufferPoolSizeExceptionEClass, LUW_BUFFER_POOL_SIZE_EXCEPTION__PARTITIONS);
+
+ luwMemberEClass = createEClass(LUW_MEMBER);
+ createEAttribute(luwMemberEClass, LUW_MEMBER__TYPE);
+ createEAttribute(luwMemberEClass, LUW_MEMBER__ALERT);
+ createEAttribute(luwMemberEClass, LUW_MEMBER__DB_PARTITION_NUM);
+ createEAttribute(luwMemberEClass, LUW_MEMBER__LOGICAL_PORT);
+ createEAttribute(luwMemberEClass, LUW_MEMBER__NET_NAME);
+
+ luwSecurityPolicyEClass = createEClass(LUW_SECURITY_POLICY);
+ createEAttribute(luwSecurityPolicyEClass, LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE);
+ createEReference(luwSecurityPolicyEClass, LUW_SECURITY_POLICY__COMPONENTS);
+ createEReference(luwSecurityPolicyEClass, LUW_SECURITY_POLICY__LABELS);
+ createEReference(luwSecurityPolicyEClass, LUW_SECURITY_POLICY__TABLE);
+
+ luwSecurityLabelComponentEClass = createEClass(LUW_SECURITY_LABEL_COMPONENT);
+ createEAttribute(luwSecurityLabelComponentEClass, LUW_SECURITY_LABEL_COMPONENT__TYPE);
+ createEReference(luwSecurityLabelComponentEClass, LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY);
+ createEReference(luwSecurityLabelComponentEClass, LUW_SECURITY_LABEL_COMPONENT__ELEMENTS);
+
+ luwSecurityLabelEClass = createEClass(LUW_SECURITY_LABEL);
+ createEAttribute(luwSecurityLabelEClass, LUW_SECURITY_LABEL__SECURITY_LABEL);
+ createEReference(luwSecurityLabelEClass, LUW_SECURITY_LABEL__POLICY);
+
+ luwSecurityLabelComponentElementEClass = createEClass(LUW_SECURITY_LABEL_COMPONENT_ELEMENT);
+ createEAttribute(luwSecurityLabelComponentElementEClass, LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE);
+ createEAttribute(luwSecurityLabelComponentElementEClass, LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE);
+ createEReference(luwSecurityLabelComponentElementEClass, LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT);
+
+ luwStorageGroupEClass = createEClass(LUW_STORAGE_GROUP);
+ createEAttribute(luwStorageGroupEClass, LUW_STORAGE_GROUP__STORAGE_PATHS);
+ createEAttribute(luwStorageGroupEClass, LUW_STORAGE_GROUP__OVERHEAD);
+ createEAttribute(luwStorageGroupEClass, LUW_STORAGE_GROUP__DEVICE_READ_RATE);
+ createEAttribute(luwStorageGroupEClass, LUW_STORAGE_GROUP__DATA_TAG);
+ createEAttribute(luwStorageGroupEClass, LUW_STORAGE_GROUP__DEFAULT);
+ createEReference(luwStorageGroupEClass, LUW_STORAGE_GROUP__DATABASE);
+ createEReference(luwStorageGroupEClass, LUW_STORAGE_GROUP__TABLE_SPACES);
+
+ luwTemporaryStorageTableEClass = createEClass(LUW_TEMPORARY_STORAGE_TABLE);
+ createEReference(luwTemporaryStorageTableEClass, LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY);
+ createEReference(luwTemporaryStorageTableEClass, LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE);
+
+ luwTemporaryTableEClass = createEClass(LUW_TEMPORARY_TABLE);
+ createEReference(luwTemporaryTableEClass, LUW_TEMPORARY_TABLE__TABLE);
+ createEAttribute(luwTemporaryTableEClass, LUW_TEMPORARY_TABLE__LOG_OPTION);
+
+ arrayIndexElementTypeEClass = createEClass(ARRAY_INDEX_ELEMENT_TYPE);
+ createEReference(arrayIndexElementTypeEClass, ARRAY_INDEX_ELEMENT_TYPE__LUW_ARRAY_DATA_TYPE);
+
+ luwPartitionEveryClauseElementEClass = createEClass(LUW_PARTITION_EVERY_CLAUSE_ELEMENT);
+ createEAttribute(luwPartitionEveryClauseElementEClass, LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE);
+ createEAttribute(luwPartitionEveryClauseElementEClass, LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION);
+ createEReference(luwPartitionEveryClauseElementEClass, LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT);
+
+ // Create enums
+ luwContainerTypeEEnum = createEEnum(LUW_CONTAINER_TYPE);
+ pageSizeTypeEEnum = createEEnum(PAGE_SIZE_TYPE);
+ bufferPoolTypeEEnum = createEEnum(BUFFER_POOL_TYPE);
+ tableSpaceTypeEEnum = createEEnum(TABLE_SPACE_TYPE);
+ managementTypeEEnum = createEEnum(MANAGEMENT_TYPE);
+ checkOptionTypeEEnum = createEEnum(CHECK_OPTION_TYPE);
+ partitionMethodEEnum = createEEnum(PARTITION_METHOD);
+ maintenanceTypeEEnum = createEEnum(MAINTENANCE_TYPE);
+ refreshTypeEEnum = createEEnum(REFRESH_TYPE);
+ wrapperTypeEEnum = createEEnum(WRAPPER_TYPE);
+ dataPartitionMethodEEnum = createEEnum(DATA_PARTITION_METHOD);
+ cursorBlockTypeEEnum = createEEnum(CURSOR_BLOCK_TYPE);
+ explainSnaphotTypeEEnum = createEEnum(EXPLAIN_SNAPHOT_TYPE);
+ fileSystemCachingTypeEEnum = createEEnum(FILE_SYSTEM_CACHING_TYPE);
+ luwIndexPageSplitTypeEEnum = createEEnum(LUW_INDEX_PAGE_SPLIT_TYPE);
+ luwIndexCompressTypeEEnum = createEEnum(LUW_INDEX_COMPRESS_TYPE);
+ systemTypeEEnum = createEEnum(SYSTEM_TYPE);
+ averageTableSizeTypeEEnum = createEEnum(AVERAGE_TABLE_SIZE_TYPE);
+ luwStorageTableCompressionModeEEnum = createEEnum(LUW_STORAGE_TABLE_COMPRESSION_MODE);
+ luwMemberTypeEEnum = createEEnum(LUW_MEMBER_TYPE);
+ memberStateTypeEEnum = createEEnum(MEMBER_STATE_TYPE);
+ luwSecurityLabelComponentTypeEEnum = createEEnum(LUW_SECURITY_LABEL_COMPONENT_TYPE);
+ luwSecurityLabelNotAuthorizedWriteActionEEnum = createEEnum(LUW_SECURITY_LABEL_NOT_AUTHORIZED_WRITE_ACTION);
+ luwFederatedDataSourceEEnum = createEEnum(LUW_FEDERATED_DATA_SOURCE);
+ luwTemporaryTableLoggingOptionEEnum = createEEnum(LUW_TEMPORARY_TABLE_LOGGING_OPTION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+ DB2ModelPackage theDB2ModelPackage = (DB2ModelPackage)EPackage.Registry.INSTANCE.getEPackage(DB2ModelPackage.eNS_URI);
+ SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+ SQLRoutinesPackage theSQLRoutinesPackage = (SQLRoutinesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI);
+ SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+
+ // Add supertypes to classes
+ luwPartitionGroupEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwTableSpaceEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwDatabasePartitionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwDatabaseContainerEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwAdminServerEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwBufferPoolEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwTableEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Table());
+ luwTableEClass.getESuperTypes().add(this.getLUWStorageTable());
+ luwViewEClass.getESuperTypes().add(theDB2ModelPackage.getDB2View());
+ luwPartitionKeyEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwNicknameEClass.getESuperTypes().add(this.getLUWTable());
+ luwFunctionMappingEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwWrapperEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwNonRelationalNicknameEClass.getESuperTypes().add(this.getLUWNickname());
+ luwNonRelationalServerEClass.getESuperTypes().add(this.getLUWServer());
+ luwNonRelationalWrapperEClass.getESuperTypes().add(this.getLUWWrapper());
+ luwRelationalNicknameEClass.getESuperTypes().add(this.getLUWNickname());
+ luwGenericUserMappingEClass.getESuperTypes().add(this.getLUWUserMapping());
+ luwRelationalWrapperEClass.getESuperTypes().add(this.getLUWWrapper());
+ luwServerEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwTypeMappingEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwUserMappingEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwOptionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwRelationalServerEClass.getESuperTypes().add(this.getLUWServer());
+ luwDatabaseEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Database());
+ luwColumnEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Column());
+ luwGenericNicknameEClass.getESuperTypes().add(this.getLUWNickname());
+ luwGenericServerEClass.getESuperTypes().add(this.getLUWServer());
+ luwMaterializedQueryTableEClass.getESuperTypes().add(theDB2ModelPackage.getDB2MaterializedQueryTable());
+ luwMaterializedQueryTableEClass.getESuperTypes().add(this.getLUWStorageTable());
+ luwGenericWrapperEClass.getESuperTypes().add(this.getLUWWrapper());
+ relationalRemoteServerEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ relationalRemoteServerEClass.getESuperTypes().add(this.getRemoteServer());
+ relationalRemoteDataSetEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ relationalRemoteDataSetEClass.getESuperTypes().add(this.getRemoteDataSet());
+ luwIndexEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Index());
+ luwAttributeDefinitionEClass.getESuperTypes().add(theSQLDataTypesPackage.getAttributeDefinition());
+ federatedProcedureEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Procedure());
+ federatedParameterEClass.getESuperTypes().add(theSQLRoutinesPackage.getParameter());
+ luwPartitionExpressionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwPartitionElementEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwDataPartitionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwDatabasePackageEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Package());
+ luwModuleEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwModuleFunctionEClass.getESuperTypes().add(theDB2ModelPackage.getDB2UserDefinedFunction());
+ luwModuleFunctionEClass.getESuperTypes().add(this.getLUWModuleObject());
+ luwModuleProcedureEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Procedure());
+ luwModuleProcedureEClass.getESuperTypes().add(this.getLUWModuleObject());
+ luwModuleConditionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwModuleConditionEClass.getESuperTypes().add(this.getLUWModuleObject());
+ luwGlobalVariableEClass.getESuperTypes().add(theSQLSchemaPackage.getTypedElement());
+ luwModuleTypeEClass.getESuperTypes().add(this.getLUWModuleObject());
+ luwModuleRowDataTypeEClass.getESuperTypes().add(this.getLUWRowDataType());
+ luwModuleRowDataTypeEClass.getESuperTypes().add(this.getLUWModuleType());
+ luwModuleArrayDataTypeEClass.getESuperTypes().add(this.getLUWArrayDataType());
+ luwModuleArrayDataTypeEClass.getESuperTypes().add(this.getLUWModuleType());
+ luwModuleDistinctTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getDistinctUserDefinedType());
+ luwModuleDistinctTypeEClass.getESuperTypes().add(this.getLUWModuleType());
+ luwModuleGlobalVariableEClass.getESuperTypes().add(this.getLUWGlobalVariable());
+ luwModuleGlobalVariableEClass.getESuperTypes().add(this.getLUWModuleObject());
+ luwArrayDataTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getArrayDataType());
+ luwArrayDataTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getUserDefinedType());
+ luwRowDataTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getUserDefinedType());
+ luwRowDataTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getRowDataType());
+ plsqlPackageEClass.getESuperTypes().add(this.getLUWModule());
+ plsqlPackageEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Routine());
+ plsqlPackageBodyEClass.getESuperTypes().add(theSQLRoutinesPackage.getSource());
+ luwCursorDataTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getUserDefinedType());
+ luwCursorDataTypeEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwModuleCursorDataTypeEClass.getESuperTypes().add(this.getLUWCursorDataType());
+ luwModuleCursorDataTypeEClass.getESuperTypes().add(this.getLUWModuleType());
+ luwBufferPoolSizeExceptionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwMemberEClass.getESuperTypes().add(theDB2ModelPackage.getDB2Member());
+ luwSecurityPolicyEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwSecurityLabelComponentEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwSecurityLabelEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwSecurityLabelComponentElementEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwStorageGroupEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ luwTemporaryTableEClass.getESuperTypes().add(theSQLTablesPackage.getTemporaryTable());
+ luwTemporaryTableEClass.getESuperTypes().add(this.getLUWTemporaryStorageTable());
+ arrayIndexElementTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getElementType());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(luwPartitionGroupEClass, LUWPartitionGroup.class, "LUWPartitionGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWPartitionGroup_Partitions(), this.getLUWDatabasePartition(), this.getLUWDatabasePartition_Group(), "partitions", null, 1, -1, LUWPartitionGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionGroup_TableSpaces(), this.getLUWTableSpace(), this.getLUWTableSpace_Group(), "tableSpaces", null, 0, -1, LUWPartitionGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionGroup_Database(), this.getLUWDatabase(), this.getLUWDatabase_Groups(), "database", null, 1, 1, LUWPartitionGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionGroup_BufferPool(), this.getLUWBufferPool(), this.getLUWBufferPool_PartitionGroup(), "bufferPool", null, 0, -1, LUWPartitionGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwTableSpaceEClass, LUWTableSpace.class, "LUWTableSpace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_TemporaryStorageTables(), this.getLUWTemporaryStorageTable(), this.getLUWTemporaryStorageTable_UserTemporaryTableSpace(), "temporaryStorageTables", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_TablespaceType(), this.getTableSpaceType(), "tablespaceType", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_ManagementType(), this.getManagementType(), "managementType", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_ExtentSize(), ecorePackage.getEInt(), "extentSize", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_PreFetchSize(), ecorePackage.getEInt(), "preFetchSize", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_Overhead(), ecorePackage.getEDouble(), "overhead", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_TransferRate(), ecorePackage.getEDouble(), "transferRate", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_RecoverDroppedTableOn(), ecorePackage.getEBoolean(), "recoverDroppedTableOn", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_PageSize(), this.getPageSizeType(), "pageSize", "FOUR_K", 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWTableSpace_Size(), ecorePackage.getELong(), "size", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_AutoResize(), ecorePackage.getEBoolean(), "autoResize", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_InitialSize(), ecorePackage.getELong(), "initialSize", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_IncreaseSize(), ecorePackage.getELong(), "increaseSize", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_MaximumSize(), ecorePackage.getELong(), "maximumSize", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_InitialSizeUnit(), theDB2ModelPackage.getUnitType(), "initialSizeUnit", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_MaximumSizeUnit(), theDB2ModelPackage.getUnitType(), "maximumSizeUnit", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_IncreaseSizeUnit(), theDB2ModelPackage.getUnitType(), "increaseSizeUnit", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_IncreasePercent(), ecorePackage.getEInt(), "increasePercent", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_FileSystemCaching(), this.getFileSystemCachingType(), "fileSystemCaching", "NONE", 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWTableSpace_AverageSeekTime(), ecorePackage.getEDouble(), "averageSeekTime", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_RotationSpeed(), ecorePackage.getEInt(), "rotationSpeed", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_Transfer(), ecorePackage.getEDouble(), "transfer", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_SystemType(), this.getSystemType(), "systemType", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_AverageTableSize(), this.getAverageTableSizeType(), "averageTableSize", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_ExternalContainerCount(), ecorePackage.getEInt(), "externalContainerCount", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_InheritOverhead(), ecorePackage.getEBoolean(), "inheritOverhead", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_InheritTransferate(), ecorePackage.getEBoolean(), "inheritTransferate", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_Rebalance(), ecorePackage.getEBoolean(), "rebalance", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_DataTag(), ecorePackage.getEString(), "dataTag", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_SuspendRebalance(), ecorePackage.getEBoolean(), "suspendRebalance", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTableSpace_ResumeRebalance(), ecorePackage.getEBoolean(), "resumeRebalance", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_Group(), this.getLUWPartitionGroup(), this.getLUWPartitionGroup_TableSpaces(), "group", null, 1, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_Containers(), this.getLUWDatabaseContainer(), this.getLUWDatabaseContainer_TableSpace(), "containers", null, 1, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_BufferPool(), this.getLUWBufferPool(), this.getLUWBufferPool_TableSpaces(), "bufferPool", null, 1, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_IndexDataTables(), this.getLUWStorageTable(), this.getLUWStorageTable_IndexDataTableSpace(), "indexDataTables", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_LOBDataTables(), this.getLUWStorageTable(), this.getLUWStorageTable_LOBDataTableSpace(), "LOBDataTables", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_RegularDataTables(), this.getLUWStorageTable(), this.getLUWStorageTable_RegularDataTableSpace(), "regularDataTables", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_Database(), this.getLUWDatabase(), this.getLUWDatabase_Tablespaces(), "database", null, 1, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_LOBDataPartition(), this.getLUWDataPartition(), this.getLUWDataPartition_LOBDataTableSpace(), "LOBDataPartition", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_RegularDataPartition(), this.getLUWDataPartition(), this.getLUWDataPartition_RegularDataTableSpace(), "regularDataPartition", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_Indexes(), this.getLUWIndex(), this.getLUWIndex_Tablespace(), "indexes", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_IndexDataPartition(), this.getLUWDataPartition(), this.getLUWDataPartition_IndexDataTableSpace(), "indexDataPartition", null, 0, -1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTableSpace_StorageGroup(), this.getLUWStorageGroup(), this.getLUWStorageGroup_TableSpaces(), "storageGroup", null, 0, 1, LUWTableSpace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ addEOperation(luwTableSpaceEClass, theSQLSchemaPackage.getList(), "getTables", 0, 1); //$NON-NLS-1$
+
+ initEClass(luwDatabasePartitionEClass, LUWDatabasePartition.class, "LUWDatabasePartition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePartition_Number(), ecorePackage.getEInt(), "number", null, 0, 1, LUWDatabasePartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePartition_PortNumber(), ecorePackage.getEInt(), "portNumber", null, 0, 1, LUWDatabasePartition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePartition_HostName(), ecorePackage.getEString(), "hostName", null, 0, 1, LUWDatabasePartition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePartition_SwitchName(), ecorePackage.getEString(), "switchName", null, 0, 1, LUWDatabasePartition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePartition_CatalogPartition(), ecorePackage.getEBoolean(), "catalogPartition", null, 0, 1, LUWDatabasePartition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabasePartition_Group(), this.getLUWPartitionGroup(), this.getLUWPartitionGroup_Partitions(), "group", null, 1, 1, LUWDatabasePartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabasePartition_BufferPool(), this.getLUWBufferPool(), this.getLUWBufferPool_Partitions(), "bufferPool", null, 1, 1, LUWDatabasePartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabasePartition_Containers(), this.getLUWDatabaseContainer(), this.getLUWDatabaseContainer_Partitions(), "containers", null, 0, -1, LUWDatabasePartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabasePartition_SizeException(), this.getLUWBufferPoolSizeException(), this.getLUWBufferPoolSizeException_Partitions(), "sizeException", null, 0, 1, LUWDatabasePartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwDatabaseContainerEClass, LUWDatabaseContainer.class, "LUWDatabaseContainer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWDatabaseContainer_ContainerType(), this.getLUWContainerType(), "containerType", null, 0, 1, LUWDatabaseContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabaseContainer_SizeInPages(), ecorePackage.getEInt(), "sizeInPages", null, 0, 1, LUWDatabaseContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabaseContainer_Size(), ecorePackage.getEInt(), "size", null, 0, 1, LUWDatabaseContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabaseContainer_SizeUnits(), theDB2ModelPackage.getUnitType(), "sizeUnits", null, 0, 1, LUWDatabaseContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabaseContainer_TableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_Containers(), "tableSpace", null, 1, 1, LUWDatabaseContainer.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabaseContainer_Partitions(), this.getLUWDatabasePartition(), this.getLUWDatabasePartition_Containers(), "partitions", null, 0, -1, LUWDatabaseContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwAdminServerEClass, LUWAdminServer.class, "LUWAdminServer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWAdminServer_Instances(), theDB2ModelPackage.getDB2DatabaseManager(), theDB2ModelPackage.getDB2DatabaseManager_Server(), "instances", null, 0, -1, LUWAdminServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwBufferPoolEClass, LUWBufferPool.class, "LUWBufferPool", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWBufferPool_CreateType(), this.getBufferPoolType(), "createType", null, 0, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWBufferPool_Size(), ecorePackage.getEInt(), "size", null, 0, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWBufferPool_PageSize(), this.getPageSizeType(), "pageSize", "FOUR_K", 0, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWBufferPool_BlockSize(), ecorePackage.getEInt(), "blockSize", "32", 0, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWBufferPool_NumBlockPages(), ecorePackage.getEInt(), "numBlockPages", null, 0, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWBufferPool_ExtendedStorage(), ecorePackage.getEBoolean(), "extendedStorage", null, 0, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWBufferPool_Automatic(), ecorePackage.getEBoolean(), "automatic", "true", 0, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getLUWBufferPool_TableSpaces(), this.getLUWTableSpace(), this.getLUWTableSpace_BufferPool(), "tableSpaces", null, 0, -1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWBufferPool_Partitions(), this.getLUWDatabasePartition(), this.getLUWDatabasePartition_BufferPool(), "partitions", null, 0, -1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWBufferPool_PartitionGroup(), this.getLUWPartitionGroup(), this.getLUWPartitionGroup_BufferPool(), "partitionGroup", null, 0, -1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWBufferPool_Database(), this.getLUWDatabase(), this.getLUWDatabase_Bufferpools(), "database", null, 1, 1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWBufferPool_SizeException(), this.getLUWBufferPoolSizeException(), this.getLUWBufferPoolSizeException_BufferPool(), "sizeException", null, 0, -1, LUWBufferPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwTableEClass, LUWTable.class, "LUWTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWTable_PCTFree(), ecorePackage.getEInt(), "PCTFree", "-1", 0, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWTable_RestrictOnDrop(), ecorePackage.getEBoolean(), "restrictOnDrop", null, 0, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTable_PartitionMode(), ecorePackage.getEString(), "partitionMode", null, 0, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTable_AppendMode(), ecorePackage.getEBoolean(), "appendMode", null, 0, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTable_LogMode(), ecorePackage.getEString(), "logMode", null, 0, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTable_LockSizeRow(), ecorePackage.getEBoolean(), "lockSizeRow", null, 0, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTable_Volatile(), ecorePackage.getEBoolean(), "volatile", null, 0, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTable_Options(), this.getLUWOption(), null, "options", null, 0, -1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTable_SecurityPolicy(), this.getLUWSecurityPolicy(), this.getLUWSecurityPolicy_Table(), "securityPolicy", null, 1, 1, LUWTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwViewEClass, LUWView.class, "LUWView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWView_Federated(), ecorePackage.getEBoolean(), "federated", null, 0, 1, LUWView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWView_OptimizeQuery(), ecorePackage.getEBoolean(), "optimizeQuery", null, 0, 1, LUWView.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwPartitionKeyEClass, LUWPartitionKey.class, "LUWPartitionKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWPartitionKey_TemporaryStorageTable(), this.getLUWTemporaryStorageTable(), this.getLUWTemporaryStorageTable_PartitionKey(), "temporaryStorageTable", null, 1, 1, LUWPartitionKey.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWPartitionKey_PartitionMethod(), this.getPartitionMethod(), "partitionMethod", null, 0, 1, LUWPartitionKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionKey_Table(), this.getLUWStorageTable(), this.getLUWStorageTable_PartitionKey(), "table", null, 1, 1, LUWPartitionKey.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionKey_Columns(), theSQLTablesPackage.getColumn(), null, "columns", null, 1, -1, LUWPartitionKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwNicknameEClass, LUWNickname.class, "LUWNickname", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWNickname_RemoteDataSet(), this.getRemoteDataSet(), this.getRemoteDataSet_Nickname(), "remoteDataSet", null, 1, 1, LUWNickname.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWNickname_Server(), this.getLUWServer(), this.getLUWServer_Nicknames(), "server", null, 1, 1, LUWNickname.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwFunctionMappingEClass, LUWFunctionMapping.class, "LUWFunctionMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_ServerType(), ecorePackage.getEString(), "serverType", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_ServerVersion(), ecorePackage.getEString(), "serverVersion", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_ServerName(), ecorePackage.getEString(), "serverName", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_CreationTime(), theSQLSchemaPackage.getDate(), "creationTime", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_Disabled(), ecorePackage.getEBoolean(), "disabled", "false", 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWFunctionMapping_InstsPerInvoc(), ecorePackage.getEInt(), "instsPerInvoc", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_InstsPerArgByte(), ecorePackage.getEInt(), "instsPerArgByte", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_IosPerInvoc(), ecorePackage.getEInt(), "iosPerInvoc", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWFunctionMapping_IosPerArgByte(), ecorePackage.getEInt(), "iosPerArgByte", null, 0, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWFunctionMapping_Options(), this.getLUWOption(), null, "options", null, 0, -1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWFunctionMapping_LocalFunction(), theDB2ModelPackage.getDB2Function(), null, "localFunction", null, 1, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWFunctionMapping_RemoteFunction(), theSQLRoutinesPackage.getFunction(), null, "remoteFunction", null, 1, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWFunctionMapping_LUWDatabase(), this.getLUWDatabase(), this.getLUWDatabase_FunctionMappings(), "LUWDatabase", null, 1, 1, LUWFunctionMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwWrapperEClass, LUWWrapper.class, "LUWWrapper", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWWrapper_Version(), ecorePackage.getEString(), "version", null, 0, 1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWWrapper_Library(), ecorePackage.getEString(), "library", null, 0, 1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWWrapper_Fenced(), ecorePackage.getEBoolean(), "fenced", "true", 0, 1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWWrapper_WrapperType(), this.getWrapperType(), "wrapperType", null, 0, 1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWWrapper_DataSource(), this.getLUWFederatedDataSource(), "dataSource", null, 0, 1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWWrapper_DiscoveredLibraries(), ecorePackage.getEString(), "DiscoveredLibraries", null, 0, -1, LUWWrapper.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWWrapper_Servers(), this.getLUWServer(), this.getLUWServer_Wrapper(), "servers", null, 0, -1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWWrapper_LUWDatabase(), this.getLUWDatabase(), this.getLUWDatabase_Wrappers(), "LUWDatabase", null, 1, 1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWWrapper_Options(), this.getLUWOption(), null, "options", null, 0, -1, LUWWrapper.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwNonRelationalNicknameEClass, LUWNonRelationalNickname.class, "LUWNonRelationalNickname", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWNonRelationalNickname_NonRelServer(), this.getLUWNonRelationalServer(), this.getLUWNonRelationalServer_NonRelNicknames(), "nonRelServer", null, 1, 1, LUWNonRelationalNickname.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwNonRelationalServerEClass, LUWNonRelationalServer.class, "LUWNonRelationalServer", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWNonRelationalServer_NonRelWrapper(), this.getLUWNonRelationalWrapper(), this.getLUWNonRelationalWrapper_NonRelServers(), "nonRelWrapper", null, 1, 1, LUWNonRelationalServer.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWNonRelationalServer_NonRelNicknames(), this.getLUWNonRelationalNickname(), this.getLUWNonRelationalNickname_NonRelServer(), "nonRelNicknames", null, 0, -1, LUWNonRelationalServer.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwNonRelationalWrapperEClass, LUWNonRelationalWrapper.class, "LUWNonRelationalWrapper", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWNonRelationalWrapper_NonRelServers(), this.getLUWNonRelationalServer(), this.getLUWNonRelationalServer_NonRelWrapper(), "nonRelServers", null, 0, -1, LUWNonRelationalWrapper.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwRelationalNicknameEClass, LUWRelationalNickname.class, "LUWRelationalNickname", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWRelationalNickname_RelServer(), this.getLUWRelationalServer(), this.getLUWRelationalServer_RelNicknames(), "relServer", null, 1, 1, LUWRelationalNickname.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwGenericUserMappingEClass, LUWGenericUserMapping.class, "LUWGenericUserMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWGenericUserMapping_RemoteUser(), ecorePackage.getEString(), "remoteUser", null, 0, 1, LUWGenericUserMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWGenericUserMapping_RemotePassword(), ecorePackage.getEString(), "remotePassword", null, 0, 1, LUWGenericUserMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwRelationalWrapperEClass, LUWRelationalWrapper.class, "LUWRelationalWrapper", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWRelationalWrapper_RelServers(), this.getLUWRelationalServer(), this.getLUWRelationalServer_RelWrapper(), "relServers", null, 0, -1, LUWRelationalWrapper.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwServerEClass, LUWServer.class, "LUWServer", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWServer_ServerType(), ecorePackage.getEString(), "serverType", null, 0, 1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWServer_ServerVersion(), ecorePackage.getEString(), "serverVersion", null, 0, 1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWServer_UserMappings(), this.getLUWUserMapping(), this.getLUWUserMapping_Server(), "userMappings", null, 0, -1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWServer_Wrapper(), this.getLUWWrapper(), this.getLUWWrapper_Servers(), "wrapper", null, 1, 1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWServer_Nicknames(), this.getLUWNickname(), this.getLUWNickname_Server(), "nicknames", null, 0, -1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWServer_LUWDatabase(), this.getLUWDatabase(), this.getLUWDatabase_Servers(), "LUWDatabase", null, 1, 1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWServer_Options(), this.getLUWOption(), null, "options", null, 0, -1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWServer_RemoteServer(), this.getRemoteServer(), this.getRemoteServer_LUWServer(), "remoteServer", null, 1, 1, LUWServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwTypeMappingEClass, LUWTypeMapping.class, "LUWTypeMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWTypeMapping_ServerType(), ecorePackage.getEString(), "serverType", null, 0, 1, LUWTypeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTypeMapping_ServerVesion(), ecorePackage.getEString(), "serverVesion", null, 0, 1, LUWTypeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTypeMapping_ServerName(), ecorePackage.getEString(), "serverName", null, 0, 1, LUWTypeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTypeMapping_CreationTime(), theSQLSchemaPackage.getDate(), "creationTime", null, 0, 1, LUWTypeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTypeMapping_LocalType(), theSQLDataTypesPackage.getPredefinedDataType(), null, "localType", null, 1, 1, LUWTypeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTypeMapping_RemoteType(), theSQLDataTypesPackage.getPredefinedDataType(), null, "remoteType", null, 1, 1, LUWTypeMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwUserMappingEClass, LUWUserMapping.class, "LUWUserMapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWUserMapping_LocalAuthId(), ecorePackage.getEString(), "localAuthId", null, 0, 1, LUWUserMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWUserMapping_Server(), this.getLUWServer(), this.getLUWServer_UserMappings(), "server", null, 1, 1, LUWUserMapping.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWUserMapping_Options(), this.getLUWOption(), null, "options", null, 0, -1, LUWUserMapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwOptionEClass, LUWOption.class, "LUWOption", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWOption_Value(), ecorePackage.getEString(), "value", null, 0, 1, LUWOption.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwRelationalServerEClass, LUWRelationalServer.class, "LUWRelationalServer", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_CpuRatio(), ecorePackage.getELong(), "cpuRatio", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_IoRatio(), ecorePackage.getELong(), "ioRatio", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_CommRate(), ecorePackage.getELong(), "commRate", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_FoldId(), ecorePackage.getEBoolean(), "foldId", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_FoldPW(), ecorePackage.getEBoolean(), "foldPW", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_CollatingSequence(), ecorePackage.getEBoolean(), "collatingSequence", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_Pushdown(), ecorePackage.getEBoolean(), "pushdown", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_Node(), ecorePackage.getEString(), "node", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_DbName(), ecorePackage.getEString(), "dbName", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_IudAppSvptEnforce(), ecorePackage.getEBoolean(), "iudAppSvptEnforce", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWRelationalServer_Password(), ecorePackage.getEString(), "password", null, 0, 1, LUWRelationalServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWRelationalServer_RelNicknames(), this.getLUWRelationalNickname(), this.getLUWRelationalNickname_RelServer(), "relNicknames", null, 0, -1, LUWRelationalServer.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWRelationalServer_RelWrapper(), this.getLUWRelationalWrapper(), this.getLUWRelationalWrapper_RelServers(), "relWrapper", null, 1, 1, LUWRelationalServer.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ addEOperation(luwRelationalServerEClass, theEcorePackage.getEEList(), "getFunctionMappings", 0, 1); //$NON-NLS-1$
+
+ addEOperation(luwRelationalServerEClass, theEcorePackage.getEEList(), "getTypeMappings", 0, 1); //$NON-NLS-1$
+
+ addEOperation(luwRelationalServerEClass, theEcorePackage.getEEList(), "getReverseTypeMappings", 0, 1); //$NON-NLS-1$
+
+ initEClass(luwDatabaseEClass, LUWDatabase.class, "LUWDatabase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWDatabase_Federated(), ecorePackage.getEBoolean(), "federated", null, 0, 1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_Groups(), this.getLUWPartitionGroup(), this.getLUWPartitionGroup_Database(), "groups", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_Wrappers(), this.getLUWWrapper(), this.getLUWWrapper_LUWDatabase(), "wrappers", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_Servers(), this.getLUWServer(), this.getLUWServer_LUWDatabase(), "servers", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_FunctionMappings(), this.getLUWFunctionMapping(), this.getLUWFunctionMapping_LUWDatabase(), "functionMappings", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_TypeMappings(), this.getLUWTypeMapping(), null, "typeMappings", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_ReverseTypeMappings(), this.getLUWTypeMapping(), null, "reverseTypeMappings", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_Bufferpools(), this.getLUWBufferPool(), this.getLUWBufferPool_Database(), "bufferpools", null, 1, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_Tablespaces(), this.getLUWTableSpace(), this.getLUWTableSpace_Database(), "tablespaces", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_StorageGroups(), this.getLUWStorageGroup(), this.getLUWStorageGroup_Database(), "storageGroups", null, 0, -1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDatabase_DefaultStorageGroup(), this.getLUWStorageGroup(), null, "defaultStorageGroup", null, 0, 1, LUWDatabase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwColumnEClass, LUWColumn.class, "LUWColumn", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWColumn_LobLogged(), ecorePackage.getEBoolean(), "lobLogged", "true", 0, 1, LUWColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWColumn_LobCompacted(), ecorePackage.getEBoolean(), "lobCompacted", null, 0, 1, LUWColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWColumn_Compression(), ecorePackage.getEString(), "compression", null, 0, 1, LUWColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWColumn_InlineLength(), ecorePackage.getEInt(), "inlineLength", null, 0, 1, LUWColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWColumn_Hidden(), ecorePackage.getEBoolean(), "hidden", "false", 0, 1, LUWColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWColumn_SecurityLabel(), ecorePackage.getEString(), "securityLabel", null, 0, 1, LUWColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWColumn_Options(), this.getLUWOption(), null, "options", null, 0, -1, LUWColumn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwGenericNicknameEClass, LUWGenericNickname.class, "LUWGenericNickname", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWGenericNickname_GenericServer(), this.getLUWGenericServer(), this.getLUWGenericServer_GenericNicknames(), "genericServer", null, 1, 1, LUWGenericNickname.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ EOperation op = addEOperation(luwGenericNicknameEClass, null, "setServer"); //$NON-NLS-1$
+ addEParameter(op, this.getLUWServer(), "newGenericServer", 0, 1); //$NON-NLS-1$
+
+ initEClass(luwGenericServerEClass, LUWGenericServer.class, "LUWGenericServer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWGenericServer_GenericNicknames(), this.getLUWGenericNickname(), this.getLUWGenericNickname_GenericServer(), "genericNicknames", null, 0, -1, LUWGenericServer.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWGenericServer_GenericWrapper(), this.getLUWGenericWrapper(), this.getLUWGenericWrapper_GenericServers(), "genericWrapper", null, 1, 1, LUWGenericServer.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ addEOperation(luwGenericServerEClass, theEcorePackage.getEEList(), "getNicknames", 0, 1); //$NON-NLS-1$
+
+ op = addEOperation(luwGenericServerEClass, null, "setWrapper"); //$NON-NLS-1$
+ addEParameter(op, this.getLUWWrapper(), "newGenericWrapper", 0, 1); //$NON-NLS-1$
+
+ initEClass(luwMaterializedQueryTableEClass, LUWMaterializedQueryTable.class, "LUWMaterializedQueryTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(luwGenericWrapperEClass, LUWGenericWrapper.class, "LUWGenericWrapper", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWGenericWrapper_GenericServers(), this.getLUWGenericServer(), this.getLUWGenericServer_GenericWrapper(), "genericServers", null, 0, -1, LUWGenericWrapper.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ addEOperation(luwGenericWrapperEClass, theEcorePackage.getEEList(), "getServers", 0, 1); //$NON-NLS-1$
+
+ initEClass(luwStorageTableEClass, LUWStorageTable.class, "LUWStorageTable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWStorageTable_ValueCompression(), ecorePackage.getEBoolean(), "valueCompression", null, 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWStorageTable_RowCompression(), ecorePackage.getEBoolean(), "rowCompression", null, 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWStorageTable_RowCompressionEmpty(), ecorePackage.getEBoolean(), "rowCompressionEmpty", "True", 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWStorageTable_CompressionMode(), this.getLUWStorageTableCompressionMode(), "compressionMode", null, 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageTable_PartitionKey(), this.getLUWPartitionKey(), this.getLUWPartitionKey_Table(), "partitionKey", null, 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageTable_IndexDataTableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_IndexDataTables(), "indexDataTableSpace", null, 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageTable_LOBDataTableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_LOBDataTables(), "LOBDataTableSpace", null, 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageTable_RegularDataTableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_RegularDataTables(), "regularDataTableSpace", null, 1, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageTable_DataPartitions(), this.getLUWDataPartition(), this.getLUWDataPartition_Table(), "dataPartitions", null, 0, -1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageTable_DataPartitionKey(), this.getLUWDataPartitionKey(), this.getLUWDataPartitionKey_Table(), "dataPartitionKey", null, 0, 1, LUWStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ addEOperation(luwStorageTableEClass, theSQLSchemaPackage.getList(), "getTableSpaces", 0, 1); //$NON-NLS-1$
+
+ initEClass(relationalRemoteServerEClass, RelationalRemoteServer.class, "RelationalRemoteServer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getRelationalRemoteServer_Database(), theSQLSchemaPackage.getDatabase(), null, "database", null, 0, 1, RelationalRemoteServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(relationalRemoteDataSetEClass, RelationalRemoteDataSet.class, "RelationalRemoteDataSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getRelationalRemoteDataSet_Table(), theSQLTablesPackage.getBaseTable(), null, "table", null, 0, 1, RelationalRemoteDataSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(remoteServerEClass, RemoteServer.class, "RemoteServer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getRemoteServer_LUWServer(), this.getLUWServer(), this.getLUWServer_RemoteServer(), "LUWServer", null, 1, 1, RemoteServer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(remoteDataSetEClass, RemoteDataSet.class, "RemoteDataSet", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getRemoteDataSet_Nickname(), this.getLUWNickname(), this.getLUWNickname_RemoteDataSet(), "nickname", null, 0, -1, RemoteDataSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwIndexEClass, LUWIndex.class, "LUWIndex", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_PCTFree(), ecorePackage.getEInt(), "PCTFree", "-1", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_MinPCTFree(), ecorePackage.getEInt(), "minPCTFree", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_ReverseScan(), ecorePackage.getEBoolean(), "reverseScan", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_NotPartitioned(), ecorePackage.getEBoolean(), "notPartitioned", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_XmlPattern(), ecorePackage.getEString(), "xmlPattern", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWIndex_AsSQLDataType(), theSQLDataTypesPackage.getPredefinedDataType(), null, "asSQLDataType", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_AsSQLDataTypeHashed(), ecorePackage.getEBoolean(), "asSQLDataTypeHashed", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_SystemRequired(), ecorePackage.getEBoolean(), "systemRequired", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_PageSplitType(), this.getLUWIndexPageSplitType(), "pageSplitType", "SYMMETRIC", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_Level2PctFree(), ecorePackage.getEInt(), "level2PctFree", "-1", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_MinPctUsed(), ecorePackage.getEInt(), "minPctUsed", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWIndex_Compress(), this.getLUWIndexCompressType(), "compress", "NO", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_CollectStats(), ecorePackage.getEBoolean(), "collectStats", "true", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_SampledStats(), ecorePackage.getEBoolean(), "sampledStats", "true", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_DetailedStats(), ecorePackage.getEBoolean(), "detailedStats", "true", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_IgnoreInvalidValues(), ecorePackage.getEBoolean(), "ignoreInvalidValues", "true", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWIndex_ExcludeNullKeys(), ecorePackage.getEBoolean(), "excludeNullKeys", "false", 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getLUWIndex_Tablespace(), this.getLUWTableSpace(), this.getLUWTableSpace_Indexes(), "tablespace", null, 0, 1, LUWIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwAttributeDefinitionEClass, LUWAttributeDefinition.class, "LUWAttributeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWAttributeDefinition_LOBLogged(), ecorePackage.getEBoolean(), "LOBLogged", "true", 0, 1, LUWAttributeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getLUWAttributeDefinition_LOBCompacted(), ecorePackage.getEBoolean(), "LOBCompacted", null, 0, 1, LUWAttributeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(federatedProcedureEClass, FederatedProcedure.class, "FederatedProcedure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_RemoteUniqueId(), ecorePackage.getEString(), "remoteUniqueId", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_RemoteServer(), ecorePackage.getEString(), "remoteServer", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_RemoteSchema(), ecorePackage.getEString(), "remoteSchema", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_RemotePackage(), ecorePackage.getEString(), "remotePackage", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_RemoteProcedureName(), ecorePackage.getEString(), "remoteProcedureName", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_NumberOfParameters(), ecorePackage.getEInt(), "numberOfParameters", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_ResultSetsToClient(), ecorePackage.getEString(), "resultSetsToClient", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_NumberOfRefCursors(), ecorePackage.getEInt(), "numberOfRefCursors", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedProcedure_AllResultSetsToCaller(), ecorePackage.getEBoolean(), "allResultSetsToCaller", null, 0, 1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getFederatedProcedure_FederatedProcedure(), this.getFederatedProcedure(), null, "FederatedProcedure", null, 0, -1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getFederatedProcedure_RemoteProcedure(), theSQLRoutinesPackage.getProcedure(), null, "remoteProcedure", null, 0, -1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getFederatedProcedure_FederatedParameter(), this.getFederatedParameter(), this.getFederatedParameter_FederatedProcedure(), "federatedParameter", null, 0, -1, FederatedProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(federatedParameterEClass, FederatedParameter.class, "FederatedParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getFederatedParameter_RemoteCodePage(), ecorePackage.getEInt(), "remoteCodePage", null, 0, 1, FederatedParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFederatedParameter_RemoteParamTypeID(), ecorePackage.getEInt(), "remoteParamTypeID", null, 0, 1, FederatedParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getFederatedParameter_FederatedProcedure(), this.getFederatedProcedure(), this.getFederatedProcedure_FederatedParameter(), "federatedProcedure", null, 1, 1, FederatedParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getFederatedParameter_RemoteParameter(), theSQLRoutinesPackage.getParameter(), null, "remoteParameter", null, 0, -1, FederatedParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwPartitionExpressionEClass, LUWPartitionExpression.class, "LUWPartitionExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWPartitionExpression_NullsLast(), ecorePackage.getEBoolean(), "nullsLast", "true", 0, 1, LUWPartitionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getLUWPartitionExpression_Key(), this.getLUWDataPartitionKey(), this.getLUWDataPartitionKey_PartitionExpressions(), "key", null, 1, 1, LUWPartitionExpression.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionExpression_Column(), theSQLTablesPackage.getColumn(), null, "column", null, 1, 1, LUWPartitionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionExpression_PartitionElements(), this.getLUWPartitionElement(), this.getLUWPartitionElement_LUWPartitionExpression(), "partitionElements", null, 1, -1, LUWPartitionExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwPartitionElementEClass, LUWPartitionElement.class, "LUWPartitionElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWPartitionElement_Starting(), ecorePackage.getEString(), "starting", null, 0, 1, LUWPartitionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWPartitionElement_Ending(), ecorePackage.getEString(), "ending", null, 0, 1, LUWPartitionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionElement_LUWPartitionExpression(), this.getLUWPartitionExpression(), this.getLUWPartitionExpression_PartitionElements(), "LUWPartitionExpression", null, 1, 1, LUWPartitionElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionElement_Partition(), this.getLUWDataPartition(), this.getLUWDataPartition_PartitionElements(), "partition", null, 1, 1, LUWPartitionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionElement_EveryClause(), this.getLUWPartitionEveryClauseElement(), this.getLUWPartitionEveryClauseElement_LUWPartitionElement(), "everyClause", null, 0, 1, LUWPartitionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ addEOperation(luwPartitionElementEClass, ecorePackage.getEBooleanObject(), "hasEveryClause", 0, 1); //$NON-NLS-1$
+
+ initEClass(luwDataPartitionEClass, LUWDataPartition.class, "LUWDataPartition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWDataPartition_Id(), ecorePackage.getEInt(), "id", null, 0, 1, LUWDataPartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDataPartition_LowInclusive(), ecorePackage.getEBoolean(), "lowInclusive", null, 0, 1, LUWDataPartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDataPartition_HighInclusive(), ecorePackage.getEBoolean(), "highInclusive", null, 0, 1, LUWDataPartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDataPartition_LOBDataTableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_LOBDataPartition(), "LOBDataTableSpace", null, 0, 1, LUWDataPartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDataPartition_RegularDataTableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_RegularDataPartition(), "regularDataTableSpace", null, 0, 1, LUWDataPartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDataPartition_PartitionElements(), this.getLUWPartitionElement(), this.getLUWPartitionElement_Partition(), "partitionElements", null, 1, -1, LUWDataPartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDataPartition_Table(), this.getLUWStorageTable(), this.getLUWStorageTable_DataPartitions(), "table", null, 1, 1, LUWDataPartition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDataPartition_IndexDataTableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_IndexDataPartition(), "indexDataTableSpace", null, 0, 1, LUWDataPartition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwDataPartitionKeyEClass, LUWDataPartitionKey.class, "LUWDataPartitionKey", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWDataPartitionKey_PartitionMethod(), this.getDataPartitionMethod(), "partitionMethod", null, 0, 1, LUWDataPartitionKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDataPartitionKey_PartitionExpressions(), this.getLUWPartitionExpression(), this.getLUWPartitionExpression_Key(), "partitionExpressions", null, 1, -1, LUWDataPartitionKey.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWDataPartitionKey_Table(), this.getLUWStorageTable(), this.getLUWStorageTable_DataPartitionKey(), "table", null, 1, 1, LUWDataPartitionKey.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwDatabasePackageEClass, LUWDatabasePackage.class, "LUWDatabasePackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePackage_Creator(), ecorePackage.getEString(), "creator", null, 0, 1, LUWDatabasePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePackage_Binder(), ecorePackage.getEString(), "binder", null, 0, 1, LUWDatabasePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePackage_CursorBlock(), this.getCursorBlockType(), "cursorBlock", null, 0, 1, LUWDatabasePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePackage_NumberOfSections(), ecorePackage.getEInt(), "numberOfSections", null, 0, 1, LUWDatabasePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePackage_OptimizationClass(), ecorePackage.getEInt(), "optimizationClass", null, 0, 1, LUWDatabasePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWDatabasePackage_ExplainSnapshot(), this.getExplainSnaphotType(), "explainSnapshot", null, 0, 1, LUWDatabasePackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwModuleEClass, LUWModule.class, "LUWModule", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWModule_Dialect(), theDB2ModelPackage.getSourceDialect(), "dialect", null, 0, 1, LUWModule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWModule_OwningSchema(), theDB2ModelPackage.getDB2Schema(), theDB2ModelPackage.getDB2Schema_Modules(), "owningSchema", null, 1, 1, LUWModule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWModule_ModuleObjects(), this.getLUWModuleObject(), this.getLUWModuleObject_Module(), "moduleObjects", null, 0, -1, LUWModule.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwModuleObjectEClass, LUWModuleObject.class, "LUWModuleObject", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWModuleObject_Published(), ecorePackage.getEBoolean(), "published", null, 0, 1, LUWModuleObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWModuleObject_Module(), this.getLUWModule(), this.getLUWModule_ModuleObjects(), "module", null, 1, 1, LUWModuleObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwModuleFunctionEClass, LUWModuleFunction.class, "LUWModuleFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWModuleFunction_Implemented(), ecorePackage.getEBoolean(), "implemented", null, 0, 1, LUWModuleFunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwModuleProcedureEClass, LUWModuleProcedure.class, "LUWModuleProcedure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWModuleProcedure_Implemented(), ecorePackage.getEBoolean(), "implemented", null, 0, 1, LUWModuleProcedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwModuleConditionEClass, LUWModuleCondition.class, "LUWModuleCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWModuleCondition_Sqlstate(), ecorePackage.getEString(), "sqlstate", null, 0, 1, LUWModuleCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwGlobalVariableEClass, LUWGlobalVariable.class, "LUWGlobalVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWGlobalVariable_DefaultValue(), ecorePackage.getEString(), "defaultValue", null, 0, 1, LUWGlobalVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWGlobalVariable_IsConstant(), ecorePackage.getEBoolean(), "isConstant", null, 0, 1, LUWGlobalVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWGlobalVariable_Schema(), theDB2ModelPackage.getDB2Schema(), theDB2ModelPackage.getDB2Schema_GlobalVariables(), "schema", null, 1, 1, LUWGlobalVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwModuleTypeEClass, LUWModuleType.class, "LUWModuleType", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(luwModuleRowDataTypeEClass, LUWModuleRowDataType.class, "LUWModuleRowDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(luwModuleArrayDataTypeEClass, LUWModuleArrayDataType.class, "LUWModuleArrayDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(luwModuleDistinctTypeEClass, LUWModuleDistinctType.class, "LUWModuleDistinctType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(luwModuleGlobalVariableEClass, LUWModuleGlobalVariable.class, "LUWModuleGlobalVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(luwArrayDataTypeEClass, LUWArrayDataType.class, "LUWArrayDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWArrayDataType_ArrayIndexElementType(), this.getArrayIndexElementType(), this.getArrayIndexElementType_LUWArrayDataType(), "arrayIndexElementType", null, 0, 1, LUWArrayDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwRowDataTypeEClass, LUWRowDataType.class, "LUWRowDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(plsqlPackageEClass, PLSQLPackage.class, "PLSQLPackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getPLSQLPackage_PackageBody(), this.getPLSQLPackageBody(), this.getPLSQLPackageBody_Package(), "packageBody", null, 0, 1, PLSQLPackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(plsqlPackageBodyEClass, PLSQLPackageBody.class, "PLSQLPackageBody", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getPLSQLPackageBody_Package(), this.getPLSQLPackage(), this.getPLSQLPackage_PackageBody(), "package", null, 1, 1, PLSQLPackageBody.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwCursorDataTypeEClass, LUWCursorDataType.class, "LUWCursorDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWCursorDataType_RowType(), this.getLUWRowDataType(), null, "rowType", null, 0, 1, LUWCursorDataType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwModuleCursorDataTypeEClass, LUWModuleCursorDataType.class, "LUWModuleCursorDataType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(luwBufferPoolSizeExceptionEClass, LUWBufferPoolSizeException.class, "LUWBufferPoolSizeException", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWBufferPoolSizeException_Size(), ecorePackage.getEInt(), "size", null, 0, 1, LUWBufferPoolSizeException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWBufferPoolSizeException_BufferPool(), this.getLUWBufferPool(), this.getLUWBufferPool_SizeException(), "bufferPool", null, 1, 1, LUWBufferPoolSizeException.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWBufferPoolSizeException_Partitions(), this.getLUWDatabasePartition(), this.getLUWDatabasePartition_SizeException(), "partitions", null, 0, -1, LUWBufferPoolSizeException.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwMemberEClass, LUWMember.class, "LUWMember", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWMember_Type(), this.getLUWMemberType(), "type", null, 0, 1, LUWMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWMember_Alert(), ecorePackage.getEString(), "alert", null, 0, 1, LUWMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWMember_DbPartitionNum(), ecorePackage.getEInt(), "dbPartitionNum", null, 0, 1, LUWMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWMember_LogicalPort(), ecorePackage.getEInt(), "logicalPort", null, 0, 1, LUWMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWMember_NetName(), ecorePackage.getEString(), "netName", null, 0, 1, LUWMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwSecurityPolicyEClass, LUWSecurityPolicy.class, "LUWSecurityPolicy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWSecurityPolicy_NotAuthorizedWrite(), this.getLUWSecurityLabelNotAuthorizedWriteAction(), "notAuthorizedWrite", null, 0, 1, LUWSecurityPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWSecurityPolicy_Components(), this.getLUWSecurityLabelComponent(), this.getLUWSecurityLabelComponent_LUWSecurityPolicy(), "components", null, 0, -1, LUWSecurityPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWSecurityPolicy_Labels(), this.getLUWSecurityLabel(), this.getLUWSecurityLabel_Policy(), "labels", null, 0, -1, LUWSecurityPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWSecurityPolicy_Table(), this.getLUWTable(), this.getLUWTable_SecurityPolicy(), "table", null, 1, 1, LUWSecurityPolicy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwSecurityLabelComponentEClass, LUWSecurityLabelComponent.class, "LUWSecurityLabelComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWSecurityLabelComponent_Type(), this.getLUWSecurityLabelComponentType(), "type", null, 0, 1, LUWSecurityLabelComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWSecurityLabelComponent_LUWSecurityPolicy(), this.getLUWSecurityPolicy(), this.getLUWSecurityPolicy_Components(), "LUWSecurityPolicy", null, 0, -1, LUWSecurityLabelComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWSecurityLabelComponent_Elements(), this.getLUWSecurityLabelComponentElement(), this.getLUWSecurityLabelComponentElement_LUWSecurityLabelComponent(), "elements", null, 0, -1, LUWSecurityLabelComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwSecurityLabelEClass, LUWSecurityLabel.class, "LUWSecurityLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWSecurityLabel_SecurityLabel(), ecorePackage.getEString(), "securityLabel", null, 0, 1, LUWSecurityLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWSecurityLabel_Policy(), this.getLUWSecurityPolicy(), this.getLUWSecurityPolicy_Labels(), "policy", null, 1, 1, LUWSecurityLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwSecurityLabelComponentElementEClass, LUWSecurityLabelComponentElement.class, "LUWSecurityLabelComponentElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWSecurityLabelComponentElement_Value(), ecorePackage.getEString(), "value", null, 0, 1, LUWSecurityLabelComponentElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWSecurityLabelComponentElement_ParentValue(), ecorePackage.getEString(), "parentValue", null, 0, 1, LUWSecurityLabelComponentElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWSecurityLabelComponentElement_LUWSecurityLabelComponent(), this.getLUWSecurityLabelComponent(), this.getLUWSecurityLabelComponent_Elements(), "LUWSecurityLabelComponent", null, 0, -1, LUWSecurityLabelComponentElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwStorageGroupEClass, LUWStorageGroup.class, "LUWStorageGroup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWStorageGroup_StoragePaths(), ecorePackage.getEString(), "storagePaths", null, 1, -1, LUWStorageGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWStorageGroup_Overhead(), ecorePackage.getEDouble(), "overhead", null, 0, 1, LUWStorageGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWStorageGroup_DeviceReadRate(), ecorePackage.getEDouble(), "deviceReadRate", null, 0, 1, LUWStorageGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWStorageGroup_DataTag(), ecorePackage.getEString(), "dataTag", null, 0, 1, LUWStorageGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWStorageGroup_Default(), ecorePackage.getEBoolean(), "default", null, 0, 1, LUWStorageGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageGroup_Database(), this.getLUWDatabase(), this.getLUWDatabase_StorageGroups(), "database", null, 1, 1, LUWStorageGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWStorageGroup_TableSpaces(), this.getLUWTableSpace(), this.getLUWTableSpace_StorageGroup(), "tableSpaces", null, 0, -1, LUWStorageGroup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwTemporaryStorageTableEClass, LUWTemporaryStorageTable.class, "LUWTemporaryStorageTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWTemporaryStorageTable_PartitionKey(), this.getLUWPartitionKey(), this.getLUWPartitionKey_TemporaryStorageTable(), "partitionKey", null, 0, 1, LUWTemporaryStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWTemporaryStorageTable_UserTemporaryTableSpace(), this.getLUWTableSpace(), this.getLUWTableSpace_TemporaryStorageTables(), "userTemporaryTableSpace", null, 0, 1, LUWTemporaryStorageTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwTemporaryTableEClass, LUWTemporaryTable.class, "LUWTemporaryTable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLUWTemporaryTable_Table(), theSQLTablesPackage.getTable(), null, "table", null, 0, 1, LUWTemporaryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWTemporaryTable_LogOption(), this.getLUWTemporaryTableLoggingOption(), "logOption", null, 0, 1, LUWTemporaryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(arrayIndexElementTypeEClass, ArrayIndexElementType.class, "ArrayIndexElementType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getArrayIndexElementType_LUWArrayDataType(), this.getLUWArrayDataType(), this.getLUWArrayDataType_ArrayIndexElementType(), "LUWArrayDataType", null, 1, 1, ArrayIndexElementType.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(luwPartitionEveryClauseElementEClass, LUWPartitionEveryClauseElement.class, "LUWPartitionEveryClauseElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLUWPartitionEveryClauseElement_Value(), ecorePackage.getEDoubleObject(), "value", null, 0, 1, LUWPartitionEveryClauseElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLUWPartitionEveryClauseElement_Duration(), ecorePackage.getEString(), "duration", null, 0, 1, LUWPartitionEveryClauseElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getLUWPartitionEveryClauseElement_LUWPartitionElement(), this.getLUWPartitionElement(), this.getLUWPartitionElement_EveryClause(), "LUWPartitionElement", null, 1, 1, LUWPartitionEveryClauseElement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(luwContainerTypeEEnum, LUWContainerType.class, "LUWContainerType"); //$NON-NLS-1$
+ addEEnumLiteral(luwContainerTypeEEnum, LUWContainerType.DEVICE_LITERAL);
+ addEEnumLiteral(luwContainerTypeEEnum, LUWContainerType.DIRECTORY_LITERAL);
+ addEEnumLiteral(luwContainerTypeEEnum, LUWContainerType.FILE_LITERAL);
+
+ initEEnum(pageSizeTypeEEnum, PageSizeType.class, "PageSizeType"); //$NON-NLS-1$
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.FOUR_K_LITERAL);
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.EIGHT_K_LITERAL);
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.SIXTEEN_K_LITERAL);
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.THIRTY_TWO_K_LITERAL);
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.FOUR_KB_LITERAL);
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.EIGHT_KB_LITERAL);
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.SIXTEEN_KB_LITERAL);
+ addEEnumLiteral(pageSizeTypeEEnum, PageSizeType.THIRTY_TWO_KB_LITERAL);
+
+ initEEnum(bufferPoolTypeEEnum, BufferPoolType.class, "BufferPoolType"); //$NON-NLS-1$
+ addEEnumLiteral(bufferPoolTypeEEnum, BufferPoolType.IMMEDIATE_LITERAL);
+ addEEnumLiteral(bufferPoolTypeEEnum, BufferPoolType.DEFERRED_LITERAL);
+
+ initEEnum(tableSpaceTypeEEnum, TableSpaceType.class, "TableSpaceType"); //$NON-NLS-1$
+ addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.REGULAR_LITERAL);
+ addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.LARGE_LITERAL);
+ addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.SYSTEM_TEMP_LITERAL);
+ addEEnumLiteral(tableSpaceTypeEEnum, TableSpaceType.USER_TEMP_LITERAL);
+
+ initEEnum(managementTypeEEnum, ManagementType.class, "ManagementType"); //$NON-NLS-1$
+ addEEnumLiteral(managementTypeEEnum, ManagementType.SYSTEM_MANAGED_LITERAL);
+ addEEnumLiteral(managementTypeEEnum, ManagementType.DATABASE_MANAGED_LITERAL);
+ addEEnumLiteral(managementTypeEEnum, ManagementType.AUTOMATIC_STORAGE_LITERAL);
+
+ initEEnum(checkOptionTypeEEnum, CheckOptionType.class, "CheckOptionType"); //$NON-NLS-1$
+ addEEnumLiteral(checkOptionTypeEEnum, CheckOptionType.NONE_LITERAL);
+ addEEnumLiteral(checkOptionTypeEEnum, CheckOptionType.CASCADED_LITERAL);
+ addEEnumLiteral(checkOptionTypeEEnum, CheckOptionType.LOCAL_LITERAL);
+
+ initEEnum(partitionMethodEEnum, PartitionMethod.class, "PartitionMethod"); //$NON-NLS-1$
+ addEEnumLiteral(partitionMethodEEnum, PartitionMethod.HASHING_LITERAL);
+ addEEnumLiteral(partitionMethodEEnum, PartitionMethod.TABLE_REPLICATED_LITERAL);
+
+ initEEnum(maintenanceTypeEEnum, MaintenanceType.class, "MaintenanceType"); //$NON-NLS-1$
+ addEEnumLiteral(maintenanceTypeEEnum, MaintenanceType.SYSTEM_LITERAL);
+ addEEnumLiteral(maintenanceTypeEEnum, MaintenanceType.USER_LITERAL);
+
+ initEEnum(refreshTypeEEnum, RefreshType.class, "RefreshType"); //$NON-NLS-1$
+ addEEnumLiteral(refreshTypeEEnum, RefreshType.DEFERRED_LITERAL);
+ addEEnumLiteral(refreshTypeEEnum, RefreshType.IMMEDIATE_LITERAL);
+
+ initEEnum(wrapperTypeEEnum, WrapperType.class, "WrapperType"); //$NON-NLS-1$
+ addEEnumLiteral(wrapperTypeEEnum, WrapperType.RELATIONAL_LITERAL);
+ addEEnumLiteral(wrapperTypeEEnum, WrapperType.NON_RELATIONAL_LITERAL);
+
+ initEEnum(dataPartitionMethodEEnum, DataPartitionMethod.class, "DataPartitionMethod"); //$NON-NLS-1$
+ addEEnumLiteral(dataPartitionMethodEEnum, DataPartitionMethod.RANGE_LITERAL);
+
+ initEEnum(cursorBlockTypeEEnum, CursorBlockType.class, "CursorBlockType"); //$NON-NLS-1$
+ addEEnumLiteral(cursorBlockTypeEEnum, CursorBlockType.BLOCK_UNAMBIGUOUS_CURSORS_LITERAL);
+ addEEnumLiteral(cursorBlockTypeEEnum, CursorBlockType.BLOCK_ALL_CURSORS_LITERAL);
+ addEEnumLiteral(cursorBlockTypeEEnum, CursorBlockType.NO_BLOCKING_LITERAL);
+
+ initEEnum(explainSnaphotTypeEEnum, ExplainSnaphotType.class, "ExplainSnaphotType"); //$NON-NLS-1$
+ addEEnumLiteral(explainSnaphotTypeEEnum, ExplainSnaphotType.ALL_LITERAL);
+ addEEnumLiteral(explainSnaphotTypeEEnum, ExplainSnaphotType.NO_LITERAL);
+ addEEnumLiteral(explainSnaphotTypeEEnum, ExplainSnaphotType.REOPT_LITERAL);
+ addEEnumLiteral(explainSnaphotTypeEEnum, ExplainSnaphotType.YES_LITERAL);
+
+ initEEnum(fileSystemCachingTypeEEnum, FileSystemCachingType.class, "FileSystemCachingType"); //$NON-NLS-1$
+ addEEnumLiteral(fileSystemCachingTypeEEnum, FileSystemCachingType.NONE_LITERAL);
+ addEEnumLiteral(fileSystemCachingTypeEEnum, FileSystemCachingType.FILE_CACHING_LITERAL);
+ addEEnumLiteral(fileSystemCachingTypeEEnum, FileSystemCachingType.NO_FILE_CACHING_LITERAL);
+
+ initEEnum(luwIndexPageSplitTypeEEnum, LUWIndexPageSplitType.class, "LUWIndexPageSplitType"); //$NON-NLS-1$
+ addEEnumLiteral(luwIndexPageSplitTypeEEnum, LUWIndexPageSplitType.NO_SELECTION_LITERAL);
+ addEEnumLiteral(luwIndexPageSplitTypeEEnum, LUWIndexPageSplitType.SYMMETRIC_LITERAL);
+ addEEnumLiteral(luwIndexPageSplitTypeEEnum, LUWIndexPageSplitType.HIGH_LITERAL);
+ addEEnumLiteral(luwIndexPageSplitTypeEEnum, LUWIndexPageSplitType.LOW_LITERAL);
+
+ initEEnum(luwIndexCompressTypeEEnum, LUWIndexCompressType.class, "LUWIndexCompressType"); //$NON-NLS-1$
+ addEEnumLiteral(luwIndexCompressTypeEEnum, LUWIndexCompressType.NO_SELECTION_LITERAL);
+ addEEnumLiteral(luwIndexCompressTypeEEnum, LUWIndexCompressType.NO_LITERAL);
+ addEEnumLiteral(luwIndexCompressTypeEEnum, LUWIndexCompressType.YES_LITERAL);
+
+ initEEnum(systemTypeEEnum, SystemType.class, "SystemType"); //$NON-NLS-1$
+ addEEnumLiteral(systemTypeEEnum, SystemType.SATA_LITERAL);
+ addEEnumLiteral(systemTypeEEnum, SystemType.SAS_10K_LITERAL);
+ addEEnumLiteral(systemTypeEEnum, SystemType.SAS_15K_LITERAL);
+ addEEnumLiteral(systemTypeEEnum, SystemType.SSD_LITERAL);
+
+ initEEnum(averageTableSizeTypeEEnum, AverageTableSizeType.class, "AverageTableSizeType"); //$NON-NLS-1$
+ addEEnumLiteral(averageTableSizeTypeEEnum, AverageTableSizeType.LESS_THAN_50MB_LITERAL);
+ addEEnumLiteral(averageTableSizeTypeEEnum, AverageTableSizeType.BETWEEN_50MB_AND_500MB_LITERAL);
+ addEEnumLiteral(averageTableSizeTypeEEnum, AverageTableSizeType.BETWEEN_500MB_AND_5GB_LITERAL);
+ addEEnumLiteral(averageTableSizeTypeEEnum, AverageTableSizeType.GREATER_THAN_5GB_LITERAL);
+
+ initEEnum(luwStorageTableCompressionModeEEnum, LUWStorageTableCompressionMode.class, "LUWStorageTableCompressionMode"); //$NON-NLS-1$
+ addEEnumLiteral(luwStorageTableCompressionModeEEnum, LUWStorageTableCompressionMode.NO_SELECTION_LITERAL);
+ addEEnumLiteral(luwStorageTableCompressionModeEEnum, LUWStorageTableCompressionMode.ADAPTIVE_LITERAL);
+ addEEnumLiteral(luwStorageTableCompressionModeEEnum, LUWStorageTableCompressionMode.STATIC_LITERAL);
+
+ initEEnum(luwMemberTypeEEnum, LUWMemberType.class, "LUWMemberType"); //$NON-NLS-1$
+ addEEnumLiteral(luwMemberTypeEEnum, LUWMemberType.MEMBER_LITERAL);
+ addEEnumLiteral(luwMemberTypeEEnum, LUWMemberType.CF_LITERAL);
+
+ initEEnum(memberStateTypeEEnum, MemberStateType.class, "MemberStateType"); //$NON-NLS-1$
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.STARTED_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.STOPPED_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.RESTARTING_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.WAITING_FOR_FAILBACK_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.ERROR_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.UNKNOWN_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.BECOMING_PRIMARY_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.PRIMARY_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.CATCHUP_LITERAL);
+ addEEnumLiteral(memberStateTypeEEnum, MemberStateType.PEER_LITERAL);
+
+ initEEnum(luwSecurityLabelComponentTypeEEnum, LUWSecurityLabelComponentType.class, "LUWSecurityLabelComponentType"); //$NON-NLS-1$
+ addEEnumLiteral(luwSecurityLabelComponentTypeEEnum, LUWSecurityLabelComponentType.SET_LITERAL);
+ addEEnumLiteral(luwSecurityLabelComponentTypeEEnum, LUWSecurityLabelComponentType.ARRAY_LITERAL);
+ addEEnumLiteral(luwSecurityLabelComponentTypeEEnum, LUWSecurityLabelComponentType.TREE_LITERAL);
+
+ initEEnum(luwSecurityLabelNotAuthorizedWriteActionEEnum, LUWSecurityLabelNotAuthorizedWriteAction.class, "LUWSecurityLabelNotAuthorizedWriteAction"); //$NON-NLS-1$
+ addEEnumLiteral(luwSecurityLabelNotAuthorizedWriteActionEEnum, LUWSecurityLabelNotAuthorizedWriteAction.OVERRIDE_LITERAL);
+ addEEnumLiteral(luwSecurityLabelNotAuthorizedWriteActionEEnum, LUWSecurityLabelNotAuthorizedWriteAction.RESTRICT_LITERAL);
+
+ initEEnum(luwFederatedDataSourceEEnum, LUWFederatedDataSource.class, "LUWFederatedDataSource"); //$NON-NLS-1$
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.DB2_LITERAL);
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.INFORMIX_LITERAL);
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.ORACLE_LITERAL);
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.SQL_SERVER_LITERAL);
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.TERADATA_LITERAL);
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.SYBASE_LITERAL);
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.ODBC_LITERAL);
+ addEEnumLiteral(luwFederatedDataSourceEEnum, LUWFederatedDataSource.JDBC_LITERAL);
+
+ initEEnum(luwTemporaryTableLoggingOptionEEnum, LUWTemporaryTableLoggingOption.class, "LUWTemporaryTableLoggingOption"); //$NON-NLS-1$
+ addEEnumLiteral(luwTemporaryTableLoggingOptionEEnum, LUWTemporaryTableLoggingOption.NOT_LOGGED_DELETE_ROWS_LITERAL);
+ addEEnumLiteral(luwTemporaryTableLoggingOptionEEnum, LUWTemporaryTableLoggingOption.NOT_LOGGED_PRESERVE_ROWS_LITERAL);
+ addEEnumLiteral(luwTemporaryTableLoggingOptionEEnum, LUWTemporaryTableLoggingOption.LOGGED_LITERAL);
+ }
+
+} //LUWPackageImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionElementImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionElementImpl.java
new file mode 100644
index 0000000..5f84ccf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionElementImpl.java
@@ -0,0 +1,483 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWPartitionElementImpl.java,v 1.6 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Partition Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl#getStarting <em>Starting</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl#getEnding <em>Ending</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl#getLUWPartitionExpression <em>LUW Partition Expression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl#getPartition <em>Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionElementImpl#getEveryClause <em>Every Clause</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWPartitionElementImpl extends SQLObjectImpl implements LUWPartitionElement {
+ /**
+ * The default value of the '{@link #getStarting() <em>Starting</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStarting()
+ * @generated
+ * @ordered
+ */
+ protected static final String STARTING_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStarting() <em>Starting</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStarting()
+ * @generated
+ * @ordered
+ */
+ protected String starting = STARTING_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getEnding() <em>Ending</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEnding()
+ * @generated
+ * @ordered
+ */
+ protected static final String ENDING_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEnding() <em>Ending</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEnding()
+ * @generated
+ * @ordered
+ */
+ protected String ending = ENDING_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPartition() <em>Partition</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartition()
+ * @generated
+ * @ordered
+ */
+ protected LUWDataPartition partition;
+
+ /**
+ * The cached value of the '{@link #getEveryClause() <em>Every Clause</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEveryClause()
+ * @generated
+ * @ordered
+ */
+ protected LUWPartitionEveryClauseElement everyClause;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWPartitionElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_PARTITION_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getStarting() {
+ return starting;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStarting(String newStarting) {
+ String oldStarting = starting;
+ starting = newStarting;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_ELEMENT__STARTING, oldStarting, starting));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEnding() {
+ return ending;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEnding(String newEnding) {
+ String oldEnding = ending;
+ ending = newEnding;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_ELEMENT__ENDING, oldEnding, ending));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionExpression getLUWPartitionExpression() {
+ if (eContainerFeatureID() != LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION) return null;
+ return (LUWPartitionExpression)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWPartitionExpression(LUWPartitionExpression newLUWPartitionExpression, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newLUWPartitionExpression, LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWPartitionExpression(LUWPartitionExpression newLUWPartitionExpression) {
+ if (newLUWPartitionExpression != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION && newLUWPartitionExpression != null)) {
+ if (EcoreUtil.isAncestor(this, newLUWPartitionExpression))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newLUWPartitionExpression != null)
+ msgs = ((InternalEObject)newLUWPartitionExpression).eInverseAdd(this, LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS, LUWPartitionExpression.class, msgs);
+ msgs = basicSetLUWPartitionExpression(newLUWPartitionExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION, newLUWPartitionExpression, newLUWPartitionExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDataPartition getPartition() {
+ if (partition != null && partition.eIsProxy()) {
+ InternalEObject oldPartition = (InternalEObject)partition;
+ partition = (LUWDataPartition)eResolveProxy(oldPartition);
+ if (partition != oldPartition) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_PARTITION_ELEMENT__PARTITION, oldPartition, partition));
+ }
+ }
+ return partition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDataPartition basicGetPartition() {
+ return partition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPartition(LUWDataPartition newPartition, NotificationChain msgs) {
+ LUWDataPartition oldPartition = partition;
+ partition = newPartition;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_ELEMENT__PARTITION, oldPartition, newPartition);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartition(LUWDataPartition newPartition) {
+ if (newPartition != partition) {
+ NotificationChain msgs = null;
+ if (partition != null)
+ msgs = ((InternalEObject)partition).eInverseRemove(this, LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS, LUWDataPartition.class, msgs);
+ if (newPartition != null)
+ msgs = ((InternalEObject)newPartition).eInverseAdd(this, LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS, LUWDataPartition.class, msgs);
+ msgs = basicSetPartition(newPartition, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_ELEMENT__PARTITION, newPartition, newPartition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionEveryClauseElement getEveryClause() {
+ return everyClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetEveryClause(LUWPartitionEveryClauseElement newEveryClause, NotificationChain msgs) {
+ LUWPartitionEveryClauseElement oldEveryClause = everyClause;
+ everyClause = newEveryClause;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE, oldEveryClause, newEveryClause);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEveryClause(LUWPartitionEveryClauseElement newEveryClause) {
+ if (newEveryClause != everyClause) {
+ NotificationChain msgs = null;
+ if (everyClause != null)
+ msgs = ((InternalEObject)everyClause).eInverseRemove(this, LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT, LUWPartitionEveryClauseElement.class, msgs);
+ if (newEveryClause != null)
+ msgs = ((InternalEObject)newEveryClause).eInverseAdd(this, LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT, LUWPartitionEveryClauseElement.class, msgs);
+ msgs = basicSetEveryClause(newEveryClause, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE, newEveryClause, newEveryClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public Boolean hasEveryClause() {
+ if ( this.everyClause == null )
+ {
+ return Boolean.FALSE;
+ }
+
+ return Boolean.TRUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetLUWPartitionExpression((LUWPartitionExpression)otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_ELEMENT__PARTITION:
+ if (partition != null)
+ msgs = ((InternalEObject)partition).eInverseRemove(this, LUWPackage.LUW_DATA_PARTITION__PARTITION_ELEMENTS, LUWDataPartition.class, msgs);
+ return basicSetPartition((LUWDataPartition)otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE:
+ if (everyClause != null)
+ msgs = ((InternalEObject)everyClause).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE, null, msgs);
+ return basicSetEveryClause((LUWPartitionEveryClauseElement)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION:
+ return basicSetLUWPartitionExpression(null, msgs);
+ case LUWPackage.LUW_PARTITION_ELEMENT__PARTITION:
+ return basicSetPartition(null, msgs);
+ case LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE:
+ return basicSetEveryClause(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS, LUWPartitionExpression.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_ELEMENT__STARTING:
+ return getStarting();
+ case LUWPackage.LUW_PARTITION_ELEMENT__ENDING:
+ return getEnding();
+ case LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION:
+ return getLUWPartitionExpression();
+ case LUWPackage.LUW_PARTITION_ELEMENT__PARTITION:
+ if (resolve) return getPartition();
+ return basicGetPartition();
+ case LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE:
+ return getEveryClause();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_ELEMENT__STARTING:
+ setStarting((String)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__ENDING:
+ setEnding((String)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION:
+ setLUWPartitionExpression((LUWPartitionExpression)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__PARTITION:
+ setPartition((LUWDataPartition)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE:
+ setEveryClause((LUWPartitionEveryClauseElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_ELEMENT__STARTING:
+ setStarting(STARTING_EDEFAULT);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__ENDING:
+ setEnding(ENDING_EDEFAULT);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION:
+ setLUWPartitionExpression((LUWPartitionExpression)null);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__PARTITION:
+ setPartition((LUWDataPartition)null);
+ return;
+ case LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE:
+ setEveryClause((LUWPartitionEveryClauseElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_ELEMENT__STARTING:
+ return STARTING_EDEFAULT == null ? starting != null : !STARTING_EDEFAULT.equals(starting);
+ case LUWPackage.LUW_PARTITION_ELEMENT__ENDING:
+ return ENDING_EDEFAULT == null ? ending != null : !ENDING_EDEFAULT.equals(ending);
+ case LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION:
+ return getLUWPartitionExpression() != null;
+ case LUWPackage.LUW_PARTITION_ELEMENT__PARTITION:
+ return partition != null;
+ case LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE:
+ return everyClause != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (starting: "); //$NON-NLS-1$
+ result.append(starting);
+ result.append(", ending: "); //$NON-NLS-1$
+ result.append(ending);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWPartitionElementImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionEveryClauseElementImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionEveryClauseElementImpl.java
new file mode 100644
index 0000000..c57f6c8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionEveryClauseElementImpl.java
@@ -0,0 +1,309 @@
+/**
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionEveryClauseElement;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Partition Every Clause Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionEveryClauseElementImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionEveryClauseElementImpl#getDuration <em>Duration</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionEveryClauseElementImpl#getLUWPartitionElement <em>LUW Partition Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWPartitionEveryClauseElementImpl extends EObjectImpl implements LUWPartitionEveryClauseElement {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final Double VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected Double value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDuration() <em>Duration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDuration()
+ * @generated
+ * @ordered
+ */
+ protected static final String DURATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDuration() <em>Duration</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDuration()
+ * @generated
+ * @ordered
+ */
+ protected String duration = DURATION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWPartitionEveryClauseElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_PARTITION_EVERY_CLAUSE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Double getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(Double newValue) {
+ Double oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDuration() {
+ return duration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDuration(String newDuration) {
+ String oldDuration = duration;
+ duration = newDuration;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION, oldDuration, duration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionElement getLUWPartitionElement() {
+ if (eContainerFeatureID() != LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT) return null;
+ return (LUWPartitionElement)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWPartitionElement(LUWPartitionElement newLUWPartitionElement, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newLUWPartitionElement, LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWPartitionElement(LUWPartitionElement newLUWPartitionElement) {
+ if (newLUWPartitionElement != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT && newLUWPartitionElement != null)) {
+ if (EcoreUtil.isAncestor(this, newLUWPartitionElement))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newLUWPartitionElement != null)
+ msgs = ((InternalEObject)newLUWPartitionElement).eInverseAdd(this, LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE, LUWPartitionElement.class, msgs);
+ msgs = basicSetLUWPartitionElement(newLUWPartitionElement, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT, newLUWPartitionElement, newLUWPartitionElement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetLUWPartitionElement((LUWPartitionElement)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT:
+ return basicSetLUWPartitionElement(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_PARTITION_ELEMENT__EVERY_CLAUSE, LUWPartitionElement.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE:
+ return getValue();
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION:
+ return getDuration();
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT:
+ return getLUWPartitionElement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE:
+ setValue((Double)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION:
+ setDuration((String)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT:
+ setLUWPartitionElement((LUWPartitionElement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION:
+ setDuration(DURATION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT:
+ setLUWPartitionElement((LUWPartitionElement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__DURATION:
+ return DURATION_EDEFAULT == null ? duration != null : !DURATION_EDEFAULT.equals(duration);
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT__LUW_PARTITION_ELEMENT:
+ return getLUWPartitionElement() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: "); //$NON-NLS-1$
+ result.append(value);
+ result.append(", duration: "); //$NON-NLS-1$
+ result.append(duration);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWPartitionEveryClauseElementImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionExpressionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionExpressionImpl.java
new file mode 100644
index 0000000..15bd744
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionExpressionImpl.java
@@ -0,0 +1,362 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWPartitionExpressionImpl.java,v 1.7 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionExpression;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Partition Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl#isNullsLast <em>Nulls Last</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl#getColumn <em>Column</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionExpressionImpl#getPartitionElements <em>Partition Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWPartitionExpressionImpl extends SQLObjectImpl implements LUWPartitionExpression {
+ /**
+ * The default value of the '{@link #isNullsLast() <em>Nulls Last</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isNullsLast()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean NULLS_LAST_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isNullsLast() <em>Nulls Last</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isNullsLast()
+ * @generated
+ * @ordered
+ */
+ protected boolean nullsLast = NULLS_LAST_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getColumn() <em>Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColumn()
+ * @generated
+ * @ordered
+ */
+ protected Column column;
+
+ /**
+ * The cached value of the '{@link #getPartitionElements() <em>Partition Elements</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionElements()
+ * @generated
+ * @ordered
+ */
+ protected EList partitionElements;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWPartitionExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_PARTITION_EXPRESSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isNullsLast() {
+ return nullsLast;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNullsLast(boolean newNullsLast) {
+ boolean oldNullsLast = nullsLast;
+ nullsLast = newNullsLast;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_EXPRESSION__NULLS_LAST, oldNullsLast, nullsLast));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDataPartitionKey getKey() {
+ if (eContainerFeatureID() != LUWPackage.LUW_PARTITION_EXPRESSION__KEY) return null;
+ return (LUWDataPartitionKey)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetKey(LUWDataPartitionKey newKey, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newKey, LUWPackage.LUW_PARTITION_EXPRESSION__KEY, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setKey(LUWDataPartitionKey newKey) {
+ if (newKey != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_PARTITION_EXPRESSION__KEY && newKey != null)) {
+ if (EcoreUtil.isAncestor(this, newKey))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newKey != null)
+ msgs = ((InternalEObject)newKey).eInverseAdd(this, LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS, LUWDataPartitionKey.class, msgs);
+ msgs = basicSetKey(newKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_EXPRESSION__KEY, newKey, newKey));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Column getColumn() {
+ if (column != null && column.eIsProxy()) {
+ InternalEObject oldColumn = (InternalEObject)column;
+ column = (Column)eResolveProxy(oldColumn);
+ if (column != oldColumn) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_PARTITION_EXPRESSION__COLUMN, oldColumn, column));
+ }
+ }
+ return column;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Column basicGetColumn() {
+ return column;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setColumn(Column newColumn) {
+ Column oldColumn = column;
+ column = newColumn;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_EXPRESSION__COLUMN, oldColumn, column));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitionElements() {
+ if (partitionElements == null) {
+ partitionElements = new EObjectContainmentWithInverseEList(LUWPartitionElement.class, this, LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS, LUWPackage.LUW_PARTITION_ELEMENT__LUW_PARTITION_EXPRESSION);
+ }
+ return partitionElements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EXPRESSION__KEY:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetKey((LUWDataPartitionKey)otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS:
+ return ((InternalEList)getPartitionElements()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EXPRESSION__KEY:
+ return basicSetKey(null, msgs);
+ case LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS:
+ return ((InternalEList)getPartitionElements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_PARTITION_EXPRESSION__KEY:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_DATA_PARTITION_KEY__PARTITION_EXPRESSIONS, LUWDataPartitionKey.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EXPRESSION__NULLS_LAST:
+ return isNullsLast() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__KEY:
+ return getKey();
+ case LUWPackage.LUW_PARTITION_EXPRESSION__COLUMN:
+ if (resolve) return getColumn();
+ return basicGetColumn();
+ case LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS:
+ return getPartitionElements();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EXPRESSION__NULLS_LAST:
+ setNullsLast(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__KEY:
+ setKey((LUWDataPartitionKey)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__COLUMN:
+ setColumn((Column)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS:
+ getPartitionElements().clear();
+ getPartitionElements().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EXPRESSION__NULLS_LAST:
+ setNullsLast(NULLS_LAST_EDEFAULT);
+ return;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__KEY:
+ setKey((LUWDataPartitionKey)null);
+ return;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__COLUMN:
+ setColumn((Column)null);
+ return;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS:
+ getPartitionElements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_EXPRESSION__NULLS_LAST:
+ return nullsLast != NULLS_LAST_EDEFAULT;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__KEY:
+ return getKey() != null;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__COLUMN:
+ return column != null;
+ case LUWPackage.LUW_PARTITION_EXPRESSION__PARTITION_ELEMENTS:
+ return partitionElements != null && !partitionElements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (nullsLast: "); //$NON-NLS-1$
+ result.append(nullsLast);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWPartitionExpressionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionGroupImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionGroupImpl.java
new file mode 100644
index 0000000..4962f8a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionGroupImpl.java
@@ -0,0 +1,328 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabasePartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Partition Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl#getPartitions <em>Partitions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl#getTableSpaces <em>Table Spaces</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionGroupImpl#getBufferPool <em>Buffer Pool</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWPartitionGroupImpl extends SQLObjectImpl implements LUWPartitionGroup {
+ /**
+ * The cached value of the '{@link #getPartitions() <em>Partitions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitions()
+ * @generated
+ * @ordered
+ */
+ protected EList partitions;
+
+ /**
+ * The cached value of the '{@link #getTableSpaces() <em>Table Spaces</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTableSpaces()
+ * @generated
+ * @ordered
+ */
+ protected EList tableSpaces;
+
+ /**
+ * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDatabase()
+ * @generated
+ * @ordered
+ */
+ protected LUWDatabase database;
+
+ /**
+ * The cached value of the '{@link #getBufferPool() <em>Buffer Pool</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBufferPool()
+ * @generated
+ * @ordered
+ */
+ protected EList bufferPool;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWPartitionGroupImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_PARTITION_GROUP;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPartitions() {
+ if (partitions == null) {
+ partitions = new EObjectWithInverseResolvingEList(LUWDatabasePartition.class, this, LUWPackage.LUW_PARTITION_GROUP__PARTITIONS, LUWPackage.LUW_DATABASE_PARTITION__GROUP);
+ }
+ return partitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTableSpaces() {
+ if (tableSpaces == null) {
+ tableSpaces = new EObjectWithInverseResolvingEList(LUWTableSpace.class, this, LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES, LUWPackage.LUW_TABLE_SPACE__GROUP);
+ }
+ return tableSpaces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase getDatabase() {
+ if (database != null && database.eIsProxy()) {
+ InternalEObject oldDatabase = (InternalEObject)database;
+ database = (LUWDatabase)eResolveProxy(oldDatabase);
+ if (database != oldDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_PARTITION_GROUP__DATABASE, oldDatabase, database));
+ }
+ }
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase basicGetDatabase() {
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDatabase(LUWDatabase newDatabase, NotificationChain msgs) {
+ LUWDatabase oldDatabase = database;
+ database = newDatabase;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_GROUP__DATABASE, oldDatabase, newDatabase);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDatabase(LUWDatabase newDatabase) {
+ if (newDatabase != database) {
+ NotificationChain msgs = null;
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__GROUPS, LUWDatabase.class, msgs);
+ if (newDatabase != null)
+ msgs = ((InternalEObject)newDatabase).eInverseAdd(this, LUWPackage.LUW_DATABASE__GROUPS, LUWDatabase.class, msgs);
+ msgs = basicSetDatabase(newDatabase, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_GROUP__DATABASE, newDatabase, newDatabase));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getBufferPool() {
+ if (bufferPool == null) {
+ bufferPool = new EObjectWithInverseResolvingEList.ManyInverse(LUWBufferPool.class, this, LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL, LUWPackage.LUW_BUFFER_POOL__PARTITION_GROUP);
+ }
+ return bufferPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_GROUP__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES:
+ return ((InternalEList)getTableSpaces()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_GROUP__DATABASE:
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__GROUPS, LUWDatabase.class, msgs);
+ return basicSetDatabase((LUWDatabase)otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL:
+ return ((InternalEList)getBufferPool()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_GROUP__PARTITIONS:
+ return ((InternalEList)getPartitions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES:
+ return ((InternalEList)getTableSpaces()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_GROUP__DATABASE:
+ return basicSetDatabase(null, msgs);
+ case LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL:
+ return ((InternalEList)getBufferPool()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_GROUP__PARTITIONS:
+ return getPartitions();
+ case LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES:
+ return getTableSpaces();
+ case LUWPackage.LUW_PARTITION_GROUP__DATABASE:
+ if (resolve) return getDatabase();
+ return basicGetDatabase();
+ case LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL:
+ return getBufferPool();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_GROUP__PARTITIONS:
+ getPartitions().clear();
+ getPartitions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES:
+ getTableSpaces().clear();
+ getTableSpaces().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_GROUP__DATABASE:
+ setDatabase((LUWDatabase)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL:
+ getBufferPool().clear();
+ getBufferPool().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_GROUP__PARTITIONS:
+ getPartitions().clear();
+ return;
+ case LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES:
+ getTableSpaces().clear();
+ return;
+ case LUWPackage.LUW_PARTITION_GROUP__DATABASE:
+ setDatabase((LUWDatabase)null);
+ return;
+ case LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL:
+ getBufferPool().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_GROUP__PARTITIONS:
+ return partitions != null && !partitions.isEmpty();
+ case LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES:
+ return tableSpaces != null && !tableSpaces.isEmpty();
+ case LUWPackage.LUW_PARTITION_GROUP__DATABASE:
+ return database != null;
+ case LUWPackage.LUW_PARTITION_GROUP__BUFFER_POOL:
+ return bufferPool != null && !bufferPool.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWPartitionGroupImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionKeyImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionKeyImpl.java
new file mode 100644
index 0000000..e414f9c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWPartitionKeyImpl.java
@@ -0,0 +1,358 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PartitionMethod;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Partition Key</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl#getTemporaryStorageTable <em>Temporary Storage Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl#getPartitionMethod <em>Partition Method</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWPartitionKeyImpl#getColumns <em>Columns</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWPartitionKeyImpl extends SQLObjectImpl implements LUWPartitionKey {
+ /**
+ * The default value of the '{@link #getPartitionMethod() <em>Partition Method</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionMethod()
+ * @generated
+ * @ordered
+ */
+ protected static final PartitionMethod PARTITION_METHOD_EDEFAULT = PartitionMethod.HASHING_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getPartitionMethod() <em>Partition Method</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionMethod()
+ * @generated
+ * @ordered
+ */
+ protected PartitionMethod partitionMethod = PARTITION_METHOD_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getColumns() <em>Columns</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColumns()
+ * @generated
+ * @ordered
+ */
+ protected EList columns;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWPartitionKeyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_PARTITION_KEY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTemporaryStorageTable getTemporaryStorageTable() {
+ if (eContainerFeatureID() != LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE) return null;
+ return (LUWTemporaryStorageTable)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTemporaryStorageTable(LUWTemporaryStorageTable newTemporaryStorageTable, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTemporaryStorageTable, LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTemporaryStorageTable(LUWTemporaryStorageTable newTemporaryStorageTable) {
+ if (newTemporaryStorageTable != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE && newTemporaryStorageTable != null)) {
+ if (EcoreUtil.isAncestor(this, newTemporaryStorageTable))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTemporaryStorageTable != null)
+ msgs = ((InternalEObject)newTemporaryStorageTable).eInverseAdd(this, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY, LUWTemporaryStorageTable.class, msgs);
+ msgs = basicSetTemporaryStorageTable(newTemporaryStorageTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE, newTemporaryStorageTable, newTemporaryStorageTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PartitionMethod getPartitionMethod() {
+ return partitionMethod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitionMethod(PartitionMethod newPartitionMethod) {
+ PartitionMethod oldPartitionMethod = partitionMethod;
+ partitionMethod = newPartitionMethod == null ? PARTITION_METHOD_EDEFAULT : newPartitionMethod;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_KEY__PARTITION_METHOD, oldPartitionMethod, partitionMethod));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageTable getTable() {
+ if (eContainerFeatureID() != LUWPackage.LUW_PARTITION_KEY__TABLE) return null;
+ return (LUWStorageTable)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTable(LUWStorageTable newTable, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTable, LUWPackage.LUW_PARTITION_KEY__TABLE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(LUWStorageTable newTable) {
+ if (newTable != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_PARTITION_KEY__TABLE && newTable != null)) {
+ if (EcoreUtil.isAncestor(this, newTable))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTable != null)
+ msgs = ((InternalEObject)newTable).eInverseAdd(this, LUWPackage.LUW_STORAGE_TABLE__PARTITION_KEY, LUWStorageTable.class, msgs);
+ msgs = basicSetTable(newTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_PARTITION_KEY__TABLE, newTable, newTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getColumns() {
+ if (columns == null) {
+ columns = new EObjectResolvingEList(Column.class, this, LUWPackage.LUW_PARTITION_KEY__COLUMNS);
+ }
+ return columns;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTemporaryStorageTable((LUWTemporaryStorageTable)otherEnd, msgs);
+ case LUWPackage.LUW_PARTITION_KEY__TABLE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTable((LUWStorageTable)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE:
+ return basicSetTemporaryStorageTable(null, msgs);
+ case LUWPackage.LUW_PARTITION_KEY__TABLE:
+ return basicSetTable(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY, LUWTemporaryStorageTable.class, msgs);
+ case LUWPackage.LUW_PARTITION_KEY__TABLE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_STORAGE_TABLE__PARTITION_KEY, LUWStorageTable.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE:
+ return getTemporaryStorageTable();
+ case LUWPackage.LUW_PARTITION_KEY__PARTITION_METHOD:
+ return getPartitionMethod();
+ case LUWPackage.LUW_PARTITION_KEY__TABLE:
+ return getTable();
+ case LUWPackage.LUW_PARTITION_KEY__COLUMNS:
+ return getColumns();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE:
+ setTemporaryStorageTable((LUWTemporaryStorageTable)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_KEY__PARTITION_METHOD:
+ setPartitionMethod((PartitionMethod)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_KEY__TABLE:
+ setTable((LUWStorageTable)newValue);
+ return;
+ case LUWPackage.LUW_PARTITION_KEY__COLUMNS:
+ getColumns().clear();
+ getColumns().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE:
+ setTemporaryStorageTable((LUWTemporaryStorageTable)null);
+ return;
+ case LUWPackage.LUW_PARTITION_KEY__PARTITION_METHOD:
+ setPartitionMethod(PARTITION_METHOD_EDEFAULT);
+ return;
+ case LUWPackage.LUW_PARTITION_KEY__TABLE:
+ setTable((LUWStorageTable)null);
+ return;
+ case LUWPackage.LUW_PARTITION_KEY__COLUMNS:
+ getColumns().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE:
+ return getTemporaryStorageTable() != null;
+ case LUWPackage.LUW_PARTITION_KEY__PARTITION_METHOD:
+ return partitionMethod != PARTITION_METHOD_EDEFAULT;
+ case LUWPackage.LUW_PARTITION_KEY__TABLE:
+ return getTable() != null;
+ case LUWPackage.LUW_PARTITION_KEY__COLUMNS:
+ return columns != null && !columns.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (partitionMethod: "); //$NON-NLS-1$
+ result.append(partitionMethod);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWPartitionKeyImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalNicknameImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalNicknameImpl.java
new file mode 100644
index 0000000..f13eb79
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalNicknameImpl.java
@@ -0,0 +1,95 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Relational Nickname</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalNicknameImpl#getRelServer <em>Rel Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWRelationalNicknameImpl extends LUWNicknameImpl implements LUWRelationalNickname {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWRelationalNicknameImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_RELATIONAL_NICKNAME;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWRelationalServer getRelServer() {
+ LUWRelationalServer relServer = basicGetRelServer();
+ return relServer != null && relServer.eIsProxy() ? (LUWRelationalServer)eResolveProxy((InternalEObject)relServer) : relServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public LUWRelationalServer basicGetRelServer() {
+ return (LUWRelationalServer) server;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_NICKNAME__REL_SERVER:
+ if (resolve) return getRelServer();
+ return basicGetRelServer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_NICKNAME__REL_SERVER:
+ return basicGetRelServer() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWRelationalNicknameImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalServerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalServerImpl.java
new file mode 100644
index 0000000..51dd303
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalServerImpl.java
@@ -0,0 +1,777 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Relational Server</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getCpuRatio <em>Cpu Ratio</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getIoRatio <em>Io Ratio</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getCommRate <em>Comm Rate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#isFoldId <em>Fold Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#isFoldPW <em>Fold PW</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#isCollatingSequence <em>Collating Sequence</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#isPushdown <em>Pushdown</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getNode <em>Node</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getDbName <em>Db Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#isIudAppSvptEnforce <em>Iud App Svpt Enforce</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getPassword <em>Password</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getRelNicknames <em>Rel Nicknames</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalServerImpl#getRelWrapper <em>Rel Wrapper</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWRelationalServerImpl extends LUWServerImpl implements LUWRelationalServer {
+ /**
+ * The default value of the '{@link #getCpuRatio() <em>Cpu Ratio</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCpuRatio()
+ * @generated
+ * @ordered
+ */
+ protected static final long CPU_RATIO_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getCpuRatio() <em>Cpu Ratio</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCpuRatio()
+ * @generated
+ * @ordered
+ */
+ protected long cpuRatio = CPU_RATIO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIoRatio() <em>Io Ratio</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIoRatio()
+ * @generated
+ * @ordered
+ */
+ protected static final long IO_RATIO_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getIoRatio() <em>Io Ratio</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIoRatio()
+ * @generated
+ * @ordered
+ */
+ protected long ioRatio = IO_RATIO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCommRate() <em>Comm Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCommRate()
+ * @generated
+ * @ordered
+ */
+ protected static final long COMM_RATE_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getCommRate() <em>Comm Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCommRate()
+ * @generated
+ * @ordered
+ */
+ protected long commRate = COMM_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFoldId() <em>Fold Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFoldId()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FOLD_ID_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFoldId() <em>Fold Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFoldId()
+ * @generated
+ * @ordered
+ */
+ protected boolean foldId = FOLD_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFoldPW() <em>Fold PW</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFoldPW()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FOLD_PW_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFoldPW() <em>Fold PW</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFoldPW()
+ * @generated
+ * @ordered
+ */
+ protected boolean foldPW = FOLD_PW_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isCollatingSequence() <em>Collating Sequence</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCollatingSequence()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean COLLATING_SEQUENCE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCollatingSequence() <em>Collating Sequence</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCollatingSequence()
+ * @generated
+ * @ordered
+ */
+ protected boolean collatingSequence = COLLATING_SEQUENCE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isPushdown() <em>Pushdown</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPushdown()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PUSHDOWN_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPushdown() <em>Pushdown</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPushdown()
+ * @generated
+ * @ordered
+ */
+ protected boolean pushdown = PUSHDOWN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNode() <em>Node</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNode()
+ * @generated
+ * @ordered
+ */
+ protected static final String NODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNode() <em>Node</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNode()
+ * @generated
+ * @ordered
+ */
+ protected String node = NODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDbName() <em>Db Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbName()
+ * @generated
+ * @ordered
+ */
+ protected static final String DB_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDbName() <em>Db Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDbName()
+ * @generated
+ * @ordered
+ */
+ protected String dbName = DB_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIudAppSvptEnforce() <em>Iud App Svpt Enforce</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIudAppSvptEnforce()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IUD_APP_SVPT_ENFORCE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIudAppSvptEnforce() <em>Iud App Svpt Enforce</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIudAppSvptEnforce()
+ * @generated
+ * @ordered
+ */
+ protected boolean iudAppSvptEnforce = IUD_APP_SVPT_ENFORCE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPassword() <em>Password</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPassword()
+ * @generated
+ * @ordered
+ */
+ protected static final String PASSWORD_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPassword() <em>Password</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPassword()
+ * @generated
+ * @ordered
+ */
+ protected String password = PASSWORD_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWRelationalServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_RELATIONAL_SERVER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getCpuRatio() {
+ return cpuRatio;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCpuRatio(long newCpuRatio) {
+ long oldCpuRatio = cpuRatio;
+ cpuRatio = newCpuRatio;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__CPU_RATIO, oldCpuRatio, cpuRatio));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getIoRatio() {
+ return ioRatio;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIoRatio(long newIoRatio) {
+ long oldIoRatio = ioRatio;
+ ioRatio = newIoRatio;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__IO_RATIO, oldIoRatio, ioRatio));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getCommRate() {
+ return commRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCommRate(long newCommRate) {
+ long oldCommRate = commRate;
+ commRate = newCommRate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__COMM_RATE, oldCommRate, commRate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFoldId() {
+ return foldId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFoldId(boolean newFoldId) {
+ boolean oldFoldId = foldId;
+ foldId = newFoldId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__FOLD_ID, oldFoldId, foldId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFoldPW() {
+ return foldPW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFoldPW(boolean newFoldPW) {
+ boolean oldFoldPW = foldPW;
+ foldPW = newFoldPW;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__FOLD_PW, oldFoldPW, foldPW));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCollatingSequence() {
+ return collatingSequence;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCollatingSequence(boolean newCollatingSequence) {
+ boolean oldCollatingSequence = collatingSequence;
+ collatingSequence = newCollatingSequence;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE, oldCollatingSequence, collatingSequence));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPushdown() {
+ return pushdown;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPushdown(boolean newPushdown) {
+ boolean oldPushdown = pushdown;
+ pushdown = newPushdown;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__PUSHDOWN, oldPushdown, pushdown));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNode() {
+ return node;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNode(String newNode) {
+ String oldNode = node;
+ node = newNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__NODE, oldNode, node));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDbName() {
+ return dbName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbName(String newDbName) {
+ String oldDbName = dbName;
+ dbName = newDbName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__DB_NAME, oldDbName, dbName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIudAppSvptEnforce() {
+ return iudAppSvptEnforce;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIudAppSvptEnforce(boolean newIudAppSvptEnforce) {
+ boolean oldIudAppSvptEnforce = iudAppSvptEnforce;
+ iudAppSvptEnforce = newIudAppSvptEnforce;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE, oldIudAppSvptEnforce, iudAppSvptEnforce));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPassword() {
+ return password;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPassword(String newPassword) {
+ String oldPassword = password;
+ password = newPassword;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_RELATIONAL_SERVER__PASSWORD, oldPassword, password));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWRelationalWrapper getRelWrapper() {
+ LUWRelationalWrapper relWrapper = basicGetRelWrapper();
+ return relWrapper != null && relWrapper.eIsProxy() ? (LUWRelationalWrapper)eResolveProxy((InternalEObject)relWrapper) : relWrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public LUWRelationalWrapper basicGetRelWrapper() {
+ return (LUWRelationalWrapper) wrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getFunctionMappings() {
+ EList allFunctionMappings = getLUWDatabase().getFunctionMappings();
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTypeMappings() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getReverseTypeMappings() {
+ // TODO: implement this method
+ // Ensure that you remove @generated or mark it @generated NOT
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_SERVER__CPU_RATIO:
+ return new Long(getCpuRatio());
+ case LUWPackage.LUW_RELATIONAL_SERVER__IO_RATIO:
+ return new Long(getIoRatio());
+ case LUWPackage.LUW_RELATIONAL_SERVER__COMM_RATE:
+ return new Long(getCommRate());
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_ID:
+ return isFoldId() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_PW:
+ return isFoldPW() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE:
+ return isCollatingSequence() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PUSHDOWN:
+ return isPushdown() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_RELATIONAL_SERVER__NODE:
+ return getNode();
+ case LUWPackage.LUW_RELATIONAL_SERVER__DB_NAME:
+ return getDbName();
+ case LUWPackage.LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE:
+ return isIudAppSvptEnforce() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PASSWORD:
+ return getPassword();
+ case LUWPackage.LUW_RELATIONAL_SERVER__REL_NICKNAMES:
+ return getRelNicknames();
+ case LUWPackage.LUW_RELATIONAL_SERVER__REL_WRAPPER:
+ if (resolve) return getRelWrapper();
+ return basicGetRelWrapper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_SERVER__CPU_RATIO:
+ setCpuRatio(((Long)newValue).longValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__IO_RATIO:
+ setIoRatio(((Long)newValue).longValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__COMM_RATE:
+ setCommRate(((Long)newValue).longValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_ID:
+ setFoldId(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_PW:
+ setFoldPW(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE:
+ setCollatingSequence(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PUSHDOWN:
+ setPushdown(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__NODE:
+ setNode((String)newValue);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__DB_NAME:
+ setDbName((String)newValue);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE:
+ setIudAppSvptEnforce(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PASSWORD:
+ setPassword((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_SERVER__CPU_RATIO:
+ setCpuRatio(CPU_RATIO_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__IO_RATIO:
+ setIoRatio(IO_RATIO_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__COMM_RATE:
+ setCommRate(COMM_RATE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_ID:
+ setFoldId(FOLD_ID_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_PW:
+ setFoldPW(FOLD_PW_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE:
+ setCollatingSequence(COLLATING_SEQUENCE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PUSHDOWN:
+ setPushdown(PUSHDOWN_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__NODE:
+ setNode(NODE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__DB_NAME:
+ setDbName(DB_NAME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE:
+ setIudAppSvptEnforce(IUD_APP_SVPT_ENFORCE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PASSWORD:
+ setPassword(PASSWORD_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_SERVER__CPU_RATIO:
+ return cpuRatio != CPU_RATIO_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__IO_RATIO:
+ return ioRatio != IO_RATIO_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__COMM_RATE:
+ return commRate != COMM_RATE_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_ID:
+ return foldId != FOLD_ID_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__FOLD_PW:
+ return foldPW != FOLD_PW_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__COLLATING_SEQUENCE:
+ return collatingSequence != COLLATING_SEQUENCE_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PUSHDOWN:
+ return pushdown != PUSHDOWN_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__NODE:
+ return NODE_EDEFAULT == null ? node != null : !NODE_EDEFAULT.equals(node);
+ case LUWPackage.LUW_RELATIONAL_SERVER__DB_NAME:
+ return DB_NAME_EDEFAULT == null ? dbName != null : !DB_NAME_EDEFAULT.equals(dbName);
+ case LUWPackage.LUW_RELATIONAL_SERVER__IUD_APP_SVPT_ENFORCE:
+ return iudAppSvptEnforce != IUD_APP_SVPT_ENFORCE_EDEFAULT;
+ case LUWPackage.LUW_RELATIONAL_SERVER__PASSWORD:
+ return PASSWORD_EDEFAULT == null ? password != null : !PASSWORD_EDEFAULT.equals(password);
+ case LUWPackage.LUW_RELATIONAL_SERVER__REL_NICKNAMES:
+ return !getRelNicknames().isEmpty();
+ case LUWPackage.LUW_RELATIONAL_SERVER__REL_WRAPPER:
+ return basicGetRelWrapper() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getRelNicknames() {
+ // This method should always be overridden by a subclass to ensure
+ // that a correctly-typed EList is created
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (cpuRatio: "); //$NON-NLS-1$
+ result.append(cpuRatio);
+ result.append(", ioRatio: "); //$NON-NLS-1$
+ result.append(ioRatio);
+ result.append(", commRate: "); //$NON-NLS-1$
+ result.append(commRate);
+ result.append(", foldId: "); //$NON-NLS-1$
+ result.append(foldId);
+ result.append(", foldPW: "); //$NON-NLS-1$
+ result.append(foldPW);
+ result.append(", collatingSequence: "); //$NON-NLS-1$
+ result.append(collatingSequence);
+ result.append(", pushdown: "); //$NON-NLS-1$
+ result.append(pushdown);
+ result.append(", node: "); //$NON-NLS-1$
+ result.append(node);
+ result.append(", dbName: "); //$NON-NLS-1$
+ result.append(dbName);
+ result.append(", iudAppSvptEnforce: "); //$NON-NLS-1$
+ result.append(iudAppSvptEnforce);
+ result.append(", password: "); //$NON-NLS-1$
+ result.append(password);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWRelationalServerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalWrapperImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalWrapperImpl.java
new file mode 100644
index 0000000..6591c25
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRelationalWrapperImpl.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRelationalWrapper;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Relational Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRelationalWrapperImpl#getRelServers <em>Rel Servers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWRelationalWrapperImpl extends LUWWrapperImpl implements LUWRelationalWrapper {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWRelationalWrapperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_RELATIONAL_WRAPPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getRelServers() {
+ // This method should always be overridden by a subclass to ensure
+ // that a correctly-typed EList is created.
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_WRAPPER__REL_SERVERS:
+ return getRelServers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_RELATIONAL_WRAPPER__REL_SERVERS:
+ return !getRelServers().isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWRelationalWrapperImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRowDataTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRowDataTypeImpl.java
new file mode 100644
index 0000000..bd329bd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWRowDataTypeImpl.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: LUWRowDataTypeImpl.java,v 1.1 2009/02/16 19:01:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWRowDataType;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.Field;
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.UserDefinedTypeImpl;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Row Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWRowDataTypeImpl#getFields <em>Fields</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWRowDataTypeImpl extends UserDefinedTypeImpl implements LUWRowDataType {
+ /**
+ * The cached value of the '{@link #getFields() <em>Fields</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFields()
+ * @generated
+ * @ordered
+ */
+ protected EList fields;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWRowDataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_ROW_DATA_TYPE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getFields() {
+ if (fields == null) {
+ fields = new EObjectContainmentEList(Field.class, this, LUWPackage.LUW_ROW_DATA_TYPE__FIELDS);
+ }
+ return fields;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_ROW_DATA_TYPE__FIELDS:
+ return ((InternalEList)getFields()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_ROW_DATA_TYPE__FIELDS:
+ return getFields();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_ROW_DATA_TYPE__FIELDS:
+ getFields().clear();
+ getFields().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ROW_DATA_TYPE__FIELDS:
+ getFields().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_ROW_DATA_TYPE__FIELDS:
+ return fields != null && !fields.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == ConstructedDataType.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == RowDataType.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_ROW_DATA_TYPE__FIELDS: return SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == ConstructedDataType.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == RowDataType.class) {
+ switch (baseFeatureID) {
+ case SQLDataTypesPackage.ROW_DATA_TYPE__FIELDS: return LUWPackage.LUW_ROW_DATA_TYPE__FIELDS;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+} //LUWRowDataTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelComponentElementImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelComponentElementImpl.java
new file mode 100644
index 0000000..c7abc3f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelComponentElementImpl.java
@@ -0,0 +1,283 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement;
+
+import java.util.Collection;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Security Label Component Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentElementImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentElementImpl#getParentValue <em>Parent Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentElementImpl#getLUWSecurityLabelComponent <em>LUW Security Label Component</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWSecurityLabelComponentElementImpl extends SQLObjectImpl implements LUWSecurityLabelComponentElement {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getParentValue() <em>Parent Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParentValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String PARENT_VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getParentValue() <em>Parent Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParentValue()
+ * @generated
+ * @ordered
+ */
+ protected String parentValue = PARENT_VALUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLUWSecurityLabelComponent() <em>LUW Security Label Component</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLUWSecurityLabelComponent()
+ * @generated
+ * @ordered
+ */
+ protected EList luwSecurityLabelComponent;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWSecurityLabelComponentElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_SECURITY_LABEL_COMPONENT_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getParentValue() {
+ return parentValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentValue(String newParentValue) {
+ String oldParentValue = parentValue;
+ parentValue = newParentValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE, oldParentValue, parentValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getLUWSecurityLabelComponent() {
+ if (luwSecurityLabelComponent == null) {
+ luwSecurityLabelComponent = new EObjectWithInverseResolvingEList.ManyInverse(LUWSecurityLabelComponent.class, this, LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT, LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS);
+ }
+ return luwSecurityLabelComponent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT:
+ return ((InternalEList)getLUWSecurityLabelComponent()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT:
+ return ((InternalEList)getLUWSecurityLabelComponent()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE:
+ return getValue();
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE:
+ return getParentValue();
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT:
+ return getLUWSecurityLabelComponent();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE:
+ setValue((String)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE:
+ setParentValue((String)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT:
+ getLUWSecurityLabelComponent().clear();
+ getLUWSecurityLabelComponent().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE:
+ setParentValue(PARENT_VALUE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT:
+ getLUWSecurityLabelComponent().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__PARENT_VALUE:
+ return PARENT_VALUE_EDEFAULT == null ? parentValue != null : !PARENT_VALUE_EDEFAULT.equals(parentValue);
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT:
+ return luwSecurityLabelComponent != null && !luwSecurityLabelComponent.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: "); //$NON-NLS-1$
+ result.append(value);
+ result.append(", parentValue: "); //$NON-NLS-1$
+ result.append(parentValue);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWSecurityLabelComponentElementImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelComponentImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelComponentImpl.java
new file mode 100644
index 0000000..277fa9d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelComponentImpl.java
@@ -0,0 +1,273 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentElement;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponentType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Security Label Component</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentImpl#getLUWSecurityPolicy <em>LUW Security Policy</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelComponentImpl#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWSecurityLabelComponentImpl extends SQLObjectImpl implements LUWSecurityLabelComponent {
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWSecurityLabelComponentType TYPE_EDEFAULT = LUWSecurityLabelComponentType.SET_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected LUWSecurityLabelComponentType type = TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLUWSecurityPolicy() <em>LUW Security Policy</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLUWSecurityPolicy()
+ * @generated
+ * @ordered
+ */
+ protected EList luwSecurityPolicy;
+
+ /**
+ * The cached value of the '{@link #getElements() <em>Elements</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElements()
+ * @generated
+ * @ordered
+ */
+ protected EList elements;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWSecurityLabelComponentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_SECURITY_LABEL_COMPONENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityLabelComponentType getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(LUWSecurityLabelComponentType newType) {
+ LUWSecurityLabelComponentType oldType = type;
+ type = newType == null ? TYPE_EDEFAULT : newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_LABEL_COMPONENT__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getLUWSecurityPolicy() {
+ if (luwSecurityPolicy == null) {
+ luwSecurityPolicy = new EObjectWithInverseResolvingEList.ManyInverse(LUWSecurityPolicy.class, this, LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY, LUWPackage.LUW_SECURITY_POLICY__COMPONENTS);
+ }
+ return luwSecurityPolicy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getElements() {
+ if (elements == null) {
+ elements = new EObjectWithInverseResolvingEList.ManyInverse(LUWSecurityLabelComponentElement.class, this, LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS, LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT__LUW_SECURITY_LABEL_COMPONENT);
+ }
+ return elements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY:
+ return ((InternalEList)getLUWSecurityPolicy()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS:
+ return ((InternalEList)getElements()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY:
+ return ((InternalEList)getLUWSecurityPolicy()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS:
+ return ((InternalEList)getElements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__TYPE:
+ return getType();
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY:
+ return getLUWSecurityPolicy();
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS:
+ return getElements();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__TYPE:
+ setType((LUWSecurityLabelComponentType)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY:
+ getLUWSecurityPolicy().clear();
+ getLUWSecurityPolicy().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS:
+ getElements().clear();
+ getElements().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY:
+ getLUWSecurityPolicy().clear();
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS:
+ getElements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__TYPE:
+ return type != TYPE_EDEFAULT;
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY:
+ return luwSecurityPolicy != null && !luwSecurityPolicy.isEmpty();
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT__ELEMENTS:
+ return elements != null && !elements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: "); //$NON-NLS-1$
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWSecurityLabelComponentImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelImpl.java
new file mode 100644
index 0000000..c410bd1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityLabelImpl.java
@@ -0,0 +1,275 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Security Label</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelImpl#getSecurityLabel <em>Security Label</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityLabelImpl#getPolicy <em>Policy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWSecurityLabelImpl extends SQLObjectImpl implements LUWSecurityLabel {
+ /**
+ * The default value of the '{@link #getSecurityLabel() <em>Security Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecurityLabel()
+ * @generated
+ * @ordered
+ */
+ protected static final String SECURITY_LABEL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSecurityLabel() <em>Security Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecurityLabel()
+ * @generated
+ * @ordered
+ */
+ protected String securityLabel = SECURITY_LABEL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPolicy() <em>Policy</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPolicy()
+ * @generated
+ * @ordered
+ */
+ protected LUWSecurityPolicy policy;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWSecurityLabelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_SECURITY_LABEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSecurityLabel() {
+ return securityLabel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSecurityLabel(String newSecurityLabel) {
+ String oldSecurityLabel = securityLabel;
+ securityLabel = newSecurityLabel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_LABEL__SECURITY_LABEL, oldSecurityLabel, securityLabel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityPolicy getPolicy() {
+ if (policy != null && policy.eIsProxy()) {
+ InternalEObject oldPolicy = (InternalEObject)policy;
+ policy = (LUWSecurityPolicy)eResolveProxy(oldPolicy);
+ if (policy != oldPolicy) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_SECURITY_LABEL__POLICY, oldPolicy, policy));
+ }
+ }
+ return policy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityPolicy basicGetPolicy() {
+ return policy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPolicy(LUWSecurityPolicy newPolicy, NotificationChain msgs) {
+ LUWSecurityPolicy oldPolicy = policy;
+ policy = newPolicy;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_LABEL__POLICY, oldPolicy, newPolicy);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPolicy(LUWSecurityPolicy newPolicy) {
+ if (newPolicy != policy) {
+ NotificationChain msgs = null;
+ if (policy != null)
+ msgs = ((InternalEObject)policy).eInverseRemove(this, LUWPackage.LUW_SECURITY_POLICY__LABELS, LUWSecurityPolicy.class, msgs);
+ if (newPolicy != null)
+ msgs = ((InternalEObject)newPolicy).eInverseAdd(this, LUWPackage.LUW_SECURITY_POLICY__LABELS, LUWSecurityPolicy.class, msgs);
+ msgs = basicSetPolicy(newPolicy, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_LABEL__POLICY, newPolicy, newPolicy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL__POLICY:
+ if (policy != null)
+ msgs = ((InternalEObject)policy).eInverseRemove(this, LUWPackage.LUW_SECURITY_POLICY__LABELS, LUWSecurityPolicy.class, msgs);
+ return basicSetPolicy((LUWSecurityPolicy)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL__POLICY:
+ return basicSetPolicy(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL__SECURITY_LABEL:
+ return getSecurityLabel();
+ case LUWPackage.LUW_SECURITY_LABEL__POLICY:
+ if (resolve) return getPolicy();
+ return basicGetPolicy();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL__SECURITY_LABEL:
+ setSecurityLabel((String)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL__POLICY:
+ setPolicy((LUWSecurityPolicy)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL__SECURITY_LABEL:
+ setSecurityLabel(SECURITY_LABEL_EDEFAULT);
+ return;
+ case LUWPackage.LUW_SECURITY_LABEL__POLICY:
+ setPolicy((LUWSecurityPolicy)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_LABEL__SECURITY_LABEL:
+ return SECURITY_LABEL_EDEFAULT == null ? securityLabel != null : !SECURITY_LABEL_EDEFAULT.equals(securityLabel);
+ case LUWPackage.LUW_SECURITY_LABEL__POLICY:
+ return policy != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (securityLabel: "); //$NON-NLS-1$
+ result.append(securityLabel);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWSecurityLabelImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityPolicyImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityPolicyImpl.java
new file mode 100644
index 0000000..da93c13
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWSecurityPolicyImpl.java
@@ -0,0 +1,361 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabel;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelComponent;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityLabelNotAuthorizedWriteAction;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Security Policy</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl#getNotAuthorizedWrite <em>Not Authorized Write</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl#getComponents <em>Components</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl#getLabels <em>Labels</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWSecurityPolicyImpl#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWSecurityPolicyImpl extends SQLObjectImpl implements LUWSecurityPolicy {
+ /**
+ * The default value of the '{@link #getNotAuthorizedWrite() <em>Not Authorized Write</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNotAuthorizedWrite()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWSecurityLabelNotAuthorizedWriteAction NOT_AUTHORIZED_WRITE_EDEFAULT = LUWSecurityLabelNotAuthorizedWriteAction.OVERRIDE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getNotAuthorizedWrite() <em>Not Authorized Write</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNotAuthorizedWrite()
+ * @generated
+ * @ordered
+ */
+ protected LUWSecurityLabelNotAuthorizedWriteAction notAuthorizedWrite = NOT_AUTHORIZED_WRITE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getComponents() <em>Components</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getComponents()
+ * @generated
+ * @ordered
+ */
+ protected EList components;
+
+ /**
+ * The cached value of the '{@link #getLabels() <em>Labels</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabels()
+ * @generated
+ * @ordered
+ */
+ protected EList labels;
+
+ /**
+ * The cached value of the '{@link #getTable() <em>Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTable()
+ * @generated
+ * @ordered
+ */
+ protected LUWTable table;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWSecurityPolicyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_SECURITY_POLICY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityLabelNotAuthorizedWriteAction getNotAuthorizedWrite() {
+ return notAuthorizedWrite;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNotAuthorizedWrite(LUWSecurityLabelNotAuthorizedWriteAction newNotAuthorizedWrite) {
+ LUWSecurityLabelNotAuthorizedWriteAction oldNotAuthorizedWrite = notAuthorizedWrite;
+ notAuthorizedWrite = newNotAuthorizedWrite == null ? NOT_AUTHORIZED_WRITE_EDEFAULT : newNotAuthorizedWrite;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE, oldNotAuthorizedWrite, notAuthorizedWrite));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getComponents() {
+ if (components == null) {
+ components = new EObjectWithInverseResolvingEList.ManyInverse(LUWSecurityLabelComponent.class, this, LUWPackage.LUW_SECURITY_POLICY__COMPONENTS, LUWPackage.LUW_SECURITY_LABEL_COMPONENT__LUW_SECURITY_POLICY);
+ }
+ return components;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getLabels() {
+ if (labels == null) {
+ labels = new EObjectWithInverseResolvingEList(LUWSecurityLabel.class, this, LUWPackage.LUW_SECURITY_POLICY__LABELS, LUWPackage.LUW_SECURITY_LABEL__POLICY);
+ }
+ return labels;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTable getTable() {
+ if (table != null && table.eIsProxy()) {
+ InternalEObject oldTable = (InternalEObject)table;
+ table = (LUWTable)eResolveProxy(oldTable);
+ if (table != oldTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_SECURITY_POLICY__TABLE, oldTable, table));
+ }
+ }
+ return table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTable basicGetTable() {
+ return table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTable(LUWTable newTable, NotificationChain msgs) {
+ LUWTable oldTable = table;
+ table = newTable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_POLICY__TABLE, oldTable, newTable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(LUWTable newTable) {
+ if (newTable != table) {
+ NotificationChain msgs = null;
+ if (table != null)
+ msgs = ((InternalEObject)table).eInverseRemove(this, LUWPackage.LUW_TABLE__SECURITY_POLICY, LUWTable.class, msgs);
+ if (newTable != null)
+ msgs = ((InternalEObject)newTable).eInverseAdd(this, LUWPackage.LUW_TABLE__SECURITY_POLICY, LUWTable.class, msgs);
+ msgs = basicSetTable(newTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SECURITY_POLICY__TABLE, newTable, newTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_POLICY__COMPONENTS:
+ return ((InternalEList)getComponents()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_SECURITY_POLICY__LABELS:
+ return ((InternalEList)getLabels()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_SECURITY_POLICY__TABLE:
+ if (table != null)
+ msgs = ((InternalEObject)table).eInverseRemove(this, LUWPackage.LUW_TABLE__SECURITY_POLICY, LUWTable.class, msgs);
+ return basicSetTable((LUWTable)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_POLICY__COMPONENTS:
+ return ((InternalEList)getComponents()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_SECURITY_POLICY__LABELS:
+ return ((InternalEList)getLabels()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_SECURITY_POLICY__TABLE:
+ return basicSetTable(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE:
+ return getNotAuthorizedWrite();
+ case LUWPackage.LUW_SECURITY_POLICY__COMPONENTS:
+ return getComponents();
+ case LUWPackage.LUW_SECURITY_POLICY__LABELS:
+ return getLabels();
+ case LUWPackage.LUW_SECURITY_POLICY__TABLE:
+ if (resolve) return getTable();
+ return basicGetTable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE:
+ setNotAuthorizedWrite((LUWSecurityLabelNotAuthorizedWriteAction)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_POLICY__COMPONENTS:
+ getComponents().clear();
+ getComponents().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_POLICY__LABELS:
+ getLabels().clear();
+ getLabels().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_SECURITY_POLICY__TABLE:
+ setTable((LUWTable)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE:
+ setNotAuthorizedWrite(NOT_AUTHORIZED_WRITE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_SECURITY_POLICY__COMPONENTS:
+ getComponents().clear();
+ return;
+ case LUWPackage.LUW_SECURITY_POLICY__LABELS:
+ getLabels().clear();
+ return;
+ case LUWPackage.LUW_SECURITY_POLICY__TABLE:
+ setTable((LUWTable)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SECURITY_POLICY__NOT_AUTHORIZED_WRITE:
+ return notAuthorizedWrite != NOT_AUTHORIZED_WRITE_EDEFAULT;
+ case LUWPackage.LUW_SECURITY_POLICY__COMPONENTS:
+ return components != null && !components.isEmpty();
+ case LUWPackage.LUW_SECURITY_POLICY__LABELS:
+ return labels != null && !labels.isEmpty();
+ case LUWPackage.LUW_SECURITY_POLICY__TABLE:
+ return table != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (notAuthorizedWrite: "); //$NON-NLS-1$
+ result.append(notAuthorizedWrite);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWSecurityPolicyImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWServerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWServerImpl.java
new file mode 100644
index 0000000..8da04f6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWServerImpl.java
@@ -0,0 +1,628 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Server</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getServerType <em>Server Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getServerVersion <em>Server Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getUserMappings <em>User Mappings</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getWrapper <em>Wrapper</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getNicknames <em>Nicknames</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getLUWDatabase <em>LUW Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWServerImpl#getRemoteServer <em>Remote Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWServerImpl extends SQLObjectImpl implements LUWServer {
+ /**
+ * The default value of the '{@link #getServerType() <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerType()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerType() <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerType()
+ * @generated
+ * @ordered
+ */
+ protected String serverType = SERVER_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getServerVersion() <em>Server Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerVersion() <em>Server Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerVersion()
+ * @generated
+ * @ordered
+ */
+ protected String serverVersion = SERVER_VERSION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getUserMappings() <em>User Mappings</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUserMappings()
+ * @generated
+ * @ordered
+ */
+ protected EList userMappings;
+
+ /**
+ * The cached value of the '{@link #getWrapper() <em>Wrapper</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWrapper()
+ * @generated
+ * @ordered
+ */
+ protected LUWWrapper wrapper;
+
+ /**
+ * The cached value of the '{@link #getNicknames() <em>Nicknames</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNicknames()
+ * @generated
+ * @ordered
+ */
+ protected EList nicknames;
+
+ /**
+ * The cached value of the '{@link #getLUWDatabase() <em>LUW Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLUWDatabase()
+ * @generated
+ * @ordered
+ */
+ protected LUWDatabase luwDatabase;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList options;
+
+ /**
+ * The cached value of the '{@link #getRemoteServer() <em>Remote Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteServer()
+ * @generated
+ * @ordered
+ */
+ protected RemoteServer remoteServer;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_SERVER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerType() {
+ return serverType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerType(String newServerType) {
+ String oldServerType = serverType;
+ serverType = newServerType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__SERVER_TYPE, oldServerType, serverType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerVersion() {
+ return serverVersion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerVersion(String newServerVersion) {
+ String oldServerVersion = serverVersion;
+ serverVersion = newServerVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__SERVER_VERSION, oldServerVersion, serverVersion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getUserMappings() {
+ if (userMappings == null) {
+ userMappings = new EObjectContainmentWithInverseEList(LUWUserMapping.class, this, LUWPackage.LUW_SERVER__USER_MAPPINGS, LUWPackage.LUW_USER_MAPPING__SERVER);
+ }
+ return userMappings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWWrapper getWrapper() {
+ if (wrapper != null && wrapper.eIsProxy()) {
+ InternalEObject oldWrapper = (InternalEObject)wrapper;
+ wrapper = (LUWWrapper)eResolveProxy(oldWrapper);
+ if (wrapper != oldWrapper) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_SERVER__WRAPPER, oldWrapper, wrapper));
+ }
+ }
+ return wrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWWrapper basicGetWrapper() {
+ return wrapper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetWrapper(LUWWrapper newWrapper, NotificationChain msgs) {
+ LUWWrapper oldWrapper = wrapper;
+ wrapper = newWrapper;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__WRAPPER, oldWrapper, newWrapper);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWrapper(LUWWrapper newWrapper) {
+ if (newWrapper != wrapper) {
+ NotificationChain msgs = null;
+ if (wrapper != null)
+ msgs = ((InternalEObject)wrapper).eInverseRemove(this, LUWPackage.LUW_WRAPPER__SERVERS, LUWWrapper.class, msgs);
+ if (newWrapper != null)
+ msgs = ((InternalEObject)newWrapper).eInverseAdd(this, LUWPackage.LUW_WRAPPER__SERVERS, LUWWrapper.class, msgs);
+ msgs = basicSetWrapper(newWrapper, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__WRAPPER, newWrapper, newWrapper));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getNicknames() {
+ if (nicknames == null) {
+ nicknames = new EObjectWithInverseResolvingEList(LUWNickname.class, this, LUWPackage.LUW_SERVER__NICKNAMES, LUWPackage.LUW_NICKNAME__SERVER);
+ }
+ return nicknames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase getLUWDatabase() {
+ if (luwDatabase != null && luwDatabase.eIsProxy()) {
+ InternalEObject oldLUWDatabase = (InternalEObject)luwDatabase;
+ luwDatabase = (LUWDatabase)eResolveProxy(oldLUWDatabase);
+ if (luwDatabase != oldLUWDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_SERVER__LUW_DATABASE, oldLUWDatabase, luwDatabase));
+ }
+ }
+ return luwDatabase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase basicGetLUWDatabase() {
+ return luwDatabase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWDatabase(LUWDatabase newLUWDatabase, NotificationChain msgs) {
+ LUWDatabase oldLUWDatabase = luwDatabase;
+ luwDatabase = newLUWDatabase;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__LUW_DATABASE, oldLUWDatabase, newLUWDatabase);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWDatabase(LUWDatabase newLUWDatabase) {
+ if (newLUWDatabase != luwDatabase) {
+ NotificationChain msgs = null;
+ if (luwDatabase != null)
+ msgs = ((InternalEObject)luwDatabase).eInverseRemove(this, LUWPackage.LUW_DATABASE__SERVERS, LUWDatabase.class, msgs);
+ if (newLUWDatabase != null)
+ msgs = ((InternalEObject)newLUWDatabase).eInverseAdd(this, LUWPackage.LUW_DATABASE__SERVERS, LUWDatabase.class, msgs);
+ msgs = basicSetLUWDatabase(newLUWDatabase, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__LUW_DATABASE, newLUWDatabase, newLUWDatabase));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getOptions() {
+ if (options == null) {
+ options = new EObjectContainmentEList(LUWOption.class, this, LUWPackage.LUW_SERVER__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoteServer getRemoteServer() {
+ if (remoteServer != null && remoteServer.eIsProxy()) {
+ InternalEObject oldRemoteServer = (InternalEObject)remoteServer;
+ remoteServer = (RemoteServer)eResolveProxy(oldRemoteServer);
+ if (remoteServer != oldRemoteServer) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_SERVER__REMOTE_SERVER, oldRemoteServer, remoteServer));
+ }
+ }
+ return remoteServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoteServer basicGetRemoteServer() {
+ return remoteServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRemoteServer(RemoteServer newRemoteServer, NotificationChain msgs) {
+ RemoteServer oldRemoteServer = remoteServer;
+ remoteServer = newRemoteServer;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__REMOTE_SERVER, oldRemoteServer, newRemoteServer);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteServer(RemoteServer newRemoteServer) {
+ if (newRemoteServer != remoteServer) {
+ NotificationChain msgs = null;
+ if (remoteServer != null)
+ msgs = ((InternalEObject)remoteServer).eInverseRemove(this, LUWPackage.REMOTE_SERVER__LUW_SERVER, RemoteServer.class, msgs);
+ if (newRemoteServer != null)
+ msgs = ((InternalEObject)newRemoteServer).eInverseAdd(this, LUWPackage.REMOTE_SERVER__LUW_SERVER, RemoteServer.class, msgs);
+ msgs = basicSetRemoteServer(newRemoteServer, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_SERVER__REMOTE_SERVER, newRemoteServer, newRemoteServer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SERVER__USER_MAPPINGS:
+ return ((InternalEList)getUserMappings()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_SERVER__WRAPPER:
+ if (wrapper != null)
+ msgs = ((InternalEObject)wrapper).eInverseRemove(this, LUWPackage.LUW_WRAPPER__SERVERS, LUWWrapper.class, msgs);
+ return basicSetWrapper((LUWWrapper)otherEnd, msgs);
+ case LUWPackage.LUW_SERVER__NICKNAMES:
+ return ((InternalEList)getNicknames()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_SERVER__LUW_DATABASE:
+ if (luwDatabase != null)
+ msgs = ((InternalEObject)luwDatabase).eInverseRemove(this, LUWPackage.LUW_DATABASE__SERVERS, LUWDatabase.class, msgs);
+ return basicSetLUWDatabase((LUWDatabase)otherEnd, msgs);
+ case LUWPackage.LUW_SERVER__REMOTE_SERVER:
+ if (remoteServer != null)
+ msgs = ((InternalEObject)remoteServer).eInverseRemove(this, LUWPackage.REMOTE_SERVER__LUW_SERVER, RemoteServer.class, msgs);
+ return basicSetRemoteServer((RemoteServer)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_SERVER__USER_MAPPINGS:
+ return ((InternalEList)getUserMappings()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_SERVER__WRAPPER:
+ return basicSetWrapper(null, msgs);
+ case LUWPackage.LUW_SERVER__NICKNAMES:
+ return ((InternalEList)getNicknames()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_SERVER__LUW_DATABASE:
+ return basicSetLUWDatabase(null, msgs);
+ case LUWPackage.LUW_SERVER__OPTIONS:
+ return ((InternalEList)getOptions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_SERVER__REMOTE_SERVER:
+ return basicSetRemoteServer(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_SERVER__SERVER_TYPE:
+ return getServerType();
+ case LUWPackage.LUW_SERVER__SERVER_VERSION:
+ return getServerVersion();
+ case LUWPackage.LUW_SERVER__USER_MAPPINGS:
+ return getUserMappings();
+ case LUWPackage.LUW_SERVER__WRAPPER:
+ if (resolve) return getWrapper();
+ return basicGetWrapper();
+ case LUWPackage.LUW_SERVER__NICKNAMES:
+ return getNicknames();
+ case LUWPackage.LUW_SERVER__LUW_DATABASE:
+ if (resolve) return getLUWDatabase();
+ return basicGetLUWDatabase();
+ case LUWPackage.LUW_SERVER__OPTIONS:
+ return getOptions();
+ case LUWPackage.LUW_SERVER__REMOTE_SERVER:
+ if (resolve) return getRemoteServer();
+ return basicGetRemoteServer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_SERVER__SERVER_TYPE:
+ setServerType((String)newValue);
+ return;
+ case LUWPackage.LUW_SERVER__SERVER_VERSION:
+ setServerVersion((String)newValue);
+ return;
+ case LUWPackage.LUW_SERVER__USER_MAPPINGS:
+ getUserMappings().clear();
+ getUserMappings().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_SERVER__WRAPPER:
+ setWrapper((LUWWrapper)newValue);
+ return;
+ case LUWPackage.LUW_SERVER__NICKNAMES:
+ getNicknames().clear();
+ getNicknames().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_SERVER__LUW_DATABASE:
+ setLUWDatabase((LUWDatabase)newValue);
+ return;
+ case LUWPackage.LUW_SERVER__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_SERVER__REMOTE_SERVER:
+ setRemoteServer((RemoteServer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SERVER__SERVER_TYPE:
+ setServerType(SERVER_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_SERVER__SERVER_VERSION:
+ setServerVersion(SERVER_VERSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_SERVER__USER_MAPPINGS:
+ getUserMappings().clear();
+ return;
+ case LUWPackage.LUW_SERVER__WRAPPER:
+ setWrapper((LUWWrapper)null);
+ return;
+ case LUWPackage.LUW_SERVER__NICKNAMES:
+ getNicknames().clear();
+ return;
+ case LUWPackage.LUW_SERVER__LUW_DATABASE:
+ setLUWDatabase((LUWDatabase)null);
+ return;
+ case LUWPackage.LUW_SERVER__OPTIONS:
+ getOptions().clear();
+ return;
+ case LUWPackage.LUW_SERVER__REMOTE_SERVER:
+ setRemoteServer((RemoteServer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_SERVER__SERVER_TYPE:
+ return SERVER_TYPE_EDEFAULT == null ? serverType != null : !SERVER_TYPE_EDEFAULT.equals(serverType);
+ case LUWPackage.LUW_SERVER__SERVER_VERSION:
+ return SERVER_VERSION_EDEFAULT == null ? serverVersion != null : !SERVER_VERSION_EDEFAULT.equals(serverVersion);
+ case LUWPackage.LUW_SERVER__USER_MAPPINGS:
+ return userMappings != null && !userMappings.isEmpty();
+ case LUWPackage.LUW_SERVER__WRAPPER:
+ return wrapper != null;
+ case LUWPackage.LUW_SERVER__NICKNAMES:
+ return nicknames != null && !nicknames.isEmpty();
+ case LUWPackage.LUW_SERVER__LUW_DATABASE:
+ return luwDatabase != null;
+ case LUWPackage.LUW_SERVER__OPTIONS:
+ return options != null && !options.isEmpty();
+ case LUWPackage.LUW_SERVER__REMOTE_SERVER:
+ return remoteServer != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (serverType: "); //$NON-NLS-1$
+ result.append(serverType);
+ result.append(", serverVersion: "); //$NON-NLS-1$
+ result.append(serverVersion);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWServerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWStorageGroupImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWStorageGroupImpl.java
new file mode 100644
index 0000000..408272f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWStorageGroupImpl.java
@@ -0,0 +1,520 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Storage Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl#getStoragePaths <em>Storage Paths</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl#getOverhead <em>Overhead</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl#getDeviceReadRate <em>Device Read Rate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl#getDataTag <em>Data Tag</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl#isDefault <em>Default</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWStorageGroupImpl#getTableSpaces <em>Table Spaces</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWStorageGroupImpl extends SQLObjectImpl implements LUWStorageGroup {
+ /**
+ * The cached value of the '{@link #getStoragePaths() <em>Storage Paths</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStoragePaths()
+ * @generated
+ * @ordered
+ */
+ protected EList storagePaths;
+
+ /**
+ * The default value of the '{@link #getOverhead() <em>Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOverhead()
+ * @generated
+ * @ordered
+ */
+ protected static final double OVERHEAD_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getOverhead() <em>Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOverhead()
+ * @generated
+ * @ordered
+ */
+ protected double overhead = OVERHEAD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDeviceReadRate() <em>Device Read Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeviceReadRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double DEVICE_READ_RATE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getDeviceReadRate() <em>Device Read Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeviceReadRate()
+ * @generated
+ * @ordered
+ */
+ protected double deviceReadRate = DEVICE_READ_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDataTag() <em>Data Tag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataTag()
+ * @generated
+ * @ordered
+ */
+ protected static final String DATA_TAG_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDataTag() <em>Data Tag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataTag()
+ * @generated
+ * @ordered
+ */
+ protected String dataTag = DATA_TAG_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DEFAULT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDefault()
+ * @generated
+ * @ordered
+ */
+ protected boolean default_ = DEFAULT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDatabase()
+ * @generated
+ * @ordered
+ */
+ protected LUWDatabase database;
+
+ /**
+ * The cached value of the '{@link #getTableSpaces() <em>Table Spaces</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTableSpaces()
+ * @generated
+ * @ordered
+ */
+ protected EList tableSpaces;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWStorageGroupImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_STORAGE_GROUP;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getStoragePaths() {
+ if (storagePaths == null) {
+ storagePaths = new EDataTypeUniqueEList(String.class, this, LUWPackage.LUW_STORAGE_GROUP__STORAGE_PATHS);
+ }
+ return storagePaths;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getOverhead() {
+ return overhead;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOverhead(double newOverhead) {
+ double oldOverhead = overhead;
+ overhead = newOverhead;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_STORAGE_GROUP__OVERHEAD, oldOverhead, overhead));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getDeviceReadRate() {
+ return deviceReadRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeviceReadRate(double newDeviceReadRate) {
+ double oldDeviceReadRate = deviceReadRate;
+ deviceReadRate = newDeviceReadRate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_STORAGE_GROUP__DEVICE_READ_RATE, oldDeviceReadRate, deviceReadRate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDataTag() {
+ return dataTag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataTag(String newDataTag) {
+ String oldDataTag = dataTag;
+ dataTag = newDataTag;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_STORAGE_GROUP__DATA_TAG, oldDataTag, dataTag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDefault() {
+ return default_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefault(boolean newDefault) {
+ boolean oldDefault = default_;
+ default_ = newDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_STORAGE_GROUP__DEFAULT, oldDefault, default_));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase getDatabase() {
+ if (database != null && database.eIsProxy()) {
+ InternalEObject oldDatabase = (InternalEObject)database;
+ database = (LUWDatabase)eResolveProxy(oldDatabase);
+ if (database != oldDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_STORAGE_GROUP__DATABASE, oldDatabase, database));
+ }
+ }
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase basicGetDatabase() {
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDatabase(LUWDatabase newDatabase, NotificationChain msgs) {
+ LUWDatabase oldDatabase = database;
+ database = newDatabase;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_STORAGE_GROUP__DATABASE, oldDatabase, newDatabase);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDatabase(LUWDatabase newDatabase) {
+ if (newDatabase != database) {
+ NotificationChain msgs = null;
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__STORAGE_GROUPS, LUWDatabase.class, msgs);
+ if (newDatabase != null)
+ msgs = ((InternalEObject)newDatabase).eInverseAdd(this, LUWPackage.LUW_DATABASE__STORAGE_GROUPS, LUWDatabase.class, msgs);
+ msgs = basicSetDatabase(newDatabase, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_STORAGE_GROUP__DATABASE, newDatabase, newDatabase));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTableSpaces() {
+ if (tableSpaces == null) {
+ tableSpaces = new EObjectWithInverseResolvingEList(LUWTableSpace.class, this, LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES, LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP);
+ }
+ return tableSpaces;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_STORAGE_GROUP__DATABASE:
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__STORAGE_GROUPS, LUWDatabase.class, msgs);
+ return basicSetDatabase((LUWDatabase)otherEnd, msgs);
+ case LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES:
+ return ((InternalEList)getTableSpaces()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_STORAGE_GROUP__DATABASE:
+ return basicSetDatabase(null, msgs);
+ case LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES:
+ return ((InternalEList)getTableSpaces()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_STORAGE_GROUP__STORAGE_PATHS:
+ return getStoragePaths();
+ case LUWPackage.LUW_STORAGE_GROUP__OVERHEAD:
+ return new Double(getOverhead());
+ case LUWPackage.LUW_STORAGE_GROUP__DEVICE_READ_RATE:
+ return new Double(getDeviceReadRate());
+ case LUWPackage.LUW_STORAGE_GROUP__DATA_TAG:
+ return getDataTag();
+ case LUWPackage.LUW_STORAGE_GROUP__DEFAULT:
+ return isDefault() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_STORAGE_GROUP__DATABASE:
+ if (resolve) return getDatabase();
+ return basicGetDatabase();
+ case LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES:
+ return getTableSpaces();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_STORAGE_GROUP__STORAGE_PATHS:
+ getStoragePaths().clear();
+ getStoragePaths().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__OVERHEAD:
+ setOverhead(((Double)newValue).doubleValue());
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DEVICE_READ_RATE:
+ setDeviceReadRate(((Double)newValue).doubleValue());
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DATA_TAG:
+ setDataTag((String)newValue);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DEFAULT:
+ setDefault(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DATABASE:
+ setDatabase((LUWDatabase)newValue);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES:
+ getTableSpaces().clear();
+ getTableSpaces().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_STORAGE_GROUP__STORAGE_PATHS:
+ getStoragePaths().clear();
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__OVERHEAD:
+ setOverhead(OVERHEAD_EDEFAULT);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DEVICE_READ_RATE:
+ setDeviceReadRate(DEVICE_READ_RATE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DATA_TAG:
+ setDataTag(DATA_TAG_EDEFAULT);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DEFAULT:
+ setDefault(DEFAULT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__DATABASE:
+ setDatabase((LUWDatabase)null);
+ return;
+ case LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES:
+ getTableSpaces().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_STORAGE_GROUP__STORAGE_PATHS:
+ return storagePaths != null && !storagePaths.isEmpty();
+ case LUWPackage.LUW_STORAGE_GROUP__OVERHEAD:
+ return overhead != OVERHEAD_EDEFAULT;
+ case LUWPackage.LUW_STORAGE_GROUP__DEVICE_READ_RATE:
+ return deviceReadRate != DEVICE_READ_RATE_EDEFAULT;
+ case LUWPackage.LUW_STORAGE_GROUP__DATA_TAG:
+ return DATA_TAG_EDEFAULT == null ? dataTag != null : !DATA_TAG_EDEFAULT.equals(dataTag);
+ case LUWPackage.LUW_STORAGE_GROUP__DEFAULT:
+ return default_ != DEFAULT_EDEFAULT;
+ case LUWPackage.LUW_STORAGE_GROUP__DATABASE:
+ return database != null;
+ case LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES:
+ return tableSpaces != null && !tableSpaces.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (storagePaths: "); //$NON-NLS-1$
+ result.append(storagePaths);
+ result.append(", overhead: "); //$NON-NLS-1$
+ result.append(overhead);
+ result.append(", deviceReadRate: "); //$NON-NLS-1$
+ result.append(deviceReadRate);
+ result.append(", dataTag: "); //$NON-NLS-1$
+ result.append(dataTag);
+ result.append(", default: "); //$NON-NLS-1$
+ result.append(default_);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWStorageGroupImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTableImpl.java
new file mode 100644
index 0000000..cfa40e2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTableImpl.java
@@ -0,0 +1,1375 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWSecurityPolicy;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTableCompressionMode;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#isValueCompression <em>Value Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#isRowCompression <em>Row Compression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#isRowCompressionEmpty <em>Row Compression Empty</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getCompressionMode <em>Compression Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getPartitionKey <em>Partition Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getIndexDataTableSpace <em>Index Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getLOBDataTableSpace <em>LOB Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getRegularDataTableSpace <em>Regular Data Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getDataPartitions <em>Data Partitions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getDataPartitionKey <em>Data Partition Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getPCTFree <em>PCT Free</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#isRestrictOnDrop <em>Restrict On Drop</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getPartitionMode <em>Partition Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#isAppendMode <em>Append Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getLogMode <em>Log Mode</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#isLockSizeRow <em>Lock Size Row</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#isVolatile <em>Volatile</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getOptions <em>Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableImpl#getSecurityPolicy <em>Security Policy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWTableImpl extends DB2TableImpl implements LUWTable {
+ /**
+ * The default value of the '{@link #isValueCompression() <em>Value Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValueCompression()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VALUE_COMPRESSION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isValueCompression() <em>Value Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValueCompression()
+ * @generated
+ * @ordered
+ */
+ protected boolean valueCompression = VALUE_COMPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRowCompression() <em>Row Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompression()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ROW_COMPRESSION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRowCompression() <em>Row Compression</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompression()
+ * @generated
+ * @ordered
+ */
+ protected boolean rowCompression = ROW_COMPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRowCompressionEmpty() <em>Row Compression Empty</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompressionEmpty()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ROW_COMPRESSION_EMPTY_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isRowCompressionEmpty() <em>Row Compression Empty</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowCompressionEmpty()
+ * @generated
+ * @ordered
+ */
+ protected boolean rowCompressionEmpty = ROW_COMPRESSION_EMPTY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCompressionMode() <em>Compression Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompressionMode()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWStorageTableCompressionMode COMPRESSION_MODE_EDEFAULT = LUWStorageTableCompressionMode.NO_SELECTION_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getCompressionMode() <em>Compression Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompressionMode()
+ * @generated
+ * @ordered
+ */
+ protected LUWStorageTableCompressionMode compressionMode = COMPRESSION_MODE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPartitionKey() <em>Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionKey()
+ * @generated
+ * @ordered
+ */
+ protected LUWPartitionKey partitionKey;
+
+ /**
+ * The cached value of the '{@link #getIndexDataTableSpace() <em>Index Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace indexDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getLOBDataTableSpace() <em>LOB Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLOBDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace lobDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getRegularDataTableSpace() <em>Regular Data Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRegularDataTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace regularDataTableSpace;
+
+ /**
+ * The cached value of the '{@link #getDataPartitions() <em>Data Partitions</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataPartitions()
+ * @generated
+ * @ordered
+ */
+ protected EList dataPartitions;
+
+ /**
+ * The cached value of the '{@link #getDataPartitionKey() <em>Data Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataPartitionKey()
+ * @generated
+ * @ordered
+ */
+ protected LUWDataPartitionKey dataPartitionKey;
+
+ /**
+ * The default value of the '{@link #getPCTFree() <em>PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPCTFree()
+ * @generated
+ * @ordered
+ */
+ protected static final int PCT_FREE_EDEFAULT = -1;
+
+ /**
+ * The cached value of the '{@link #getPCTFree() <em>PCT Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPCTFree()
+ * @generated
+ * @ordered
+ */
+ protected int pctFree = PCT_FREE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRestrictOnDrop() <em>Restrict On Drop</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRestrictOnDrop()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RESTRICT_ON_DROP_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRestrictOnDrop() <em>Restrict On Drop</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRestrictOnDrop()
+ * @generated
+ * @ordered
+ */
+ protected boolean restrictOnDrop = RESTRICT_ON_DROP_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPartitionMode() <em>Partition Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionMode()
+ * @generated
+ * @ordered
+ */
+ protected static final String PARTITION_MODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPartitionMode() <em>Partition Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionMode()
+ * @generated
+ * @ordered
+ */
+ protected String partitionMode = PARTITION_MODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAppendMode() <em>Append Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAppendMode()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean APPEND_MODE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAppendMode() <em>Append Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAppendMode()
+ * @generated
+ * @ordered
+ */
+ protected boolean appendMode = APPEND_MODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLogMode() <em>Log Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogMode()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOG_MODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLogMode() <em>Log Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogMode()
+ * @generated
+ * @ordered
+ */
+ protected String logMode = LOG_MODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isLockSizeRow() <em>Lock Size Row</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLockSizeRow()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOCK_SIZE_ROW_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isLockSizeRow() <em>Lock Size Row</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLockSizeRow()
+ * @generated
+ * @ordered
+ */
+ protected boolean lockSizeRow = LOCK_SIZE_ROW_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isVolatile() <em>Volatile</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVolatile()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VOLATILE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isVolatile() <em>Volatile</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVolatile()
+ * @generated
+ * @ordered
+ */
+ protected boolean volatile_ = VOLATILE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList options;
+
+ /**
+ * The cached value of the '{@link #getSecurityPolicy() <em>Security Policy</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecurityPolicy()
+ * @generated
+ * @ordered
+ */
+ protected LUWSecurityPolicy securityPolicy;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWTableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_TABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isValueCompression() {
+ return valueCompression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValueCompression(boolean newValueCompression) {
+ boolean oldValueCompression = valueCompression;
+ valueCompression = newValueCompression;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__VALUE_COMPRESSION, oldValueCompression, valueCompression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRowCompression() {
+ return rowCompression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowCompression(boolean newRowCompression) {
+ boolean oldRowCompression = rowCompression;
+ rowCompression = newRowCompression;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__ROW_COMPRESSION, oldRowCompression, rowCompression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRowCompressionEmpty() {
+ return rowCompressionEmpty;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowCompressionEmpty(boolean newRowCompressionEmpty) {
+ boolean oldRowCompressionEmpty = rowCompressionEmpty;
+ rowCompressionEmpty = newRowCompressionEmpty;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__ROW_COMPRESSION_EMPTY, oldRowCompressionEmpty, rowCompressionEmpty));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageTableCompressionMode getCompressionMode() {
+ return compressionMode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompressionMode(LUWStorageTableCompressionMode newCompressionMode) {
+ LUWStorageTableCompressionMode oldCompressionMode = compressionMode;
+ compressionMode = newCompressionMode == null ? COMPRESSION_MODE_EDEFAULT : newCompressionMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__COMPRESSION_MODE, oldCompressionMode, compressionMode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getRegularDataTableSpace() {
+ if (regularDataTableSpace != null && regularDataTableSpace.eIsProxy()) {
+ InternalEObject oldRegularDataTableSpace = (InternalEObject)regularDataTableSpace;
+ regularDataTableSpace = (LUWTableSpace)eResolveProxy(oldRegularDataTableSpace);
+ if (regularDataTableSpace != oldRegularDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE, oldRegularDataTableSpace, regularDataTableSpace));
+ }
+ }
+ return regularDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetRegularDataTableSpace() {
+ return regularDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetRegularDataTableSpace(LUWTableSpace newRegularDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldRegularDataTableSpace = regularDataTableSpace;
+ regularDataTableSpace = newRegularDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE, oldRegularDataTableSpace, newRegularDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRegularDataTableSpace(LUWTableSpace newRegularDataTableSpace) {
+ if (newRegularDataTableSpace != regularDataTableSpace) {
+ NotificationChain msgs = null;
+ if (regularDataTableSpace != null)
+ msgs = ((InternalEObject)regularDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES, LUWTableSpace.class, msgs);
+ if (newRegularDataTableSpace != null)
+ msgs = ((InternalEObject)newRegularDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetRegularDataTableSpace(newRegularDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE, newRegularDataTableSpace, newRegularDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPCTFree() {
+ return pctFree;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPCTFree(int newPCTFree) {
+ int oldPCTFree = pctFree;
+ pctFree = newPCTFree;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__PCT_FREE, oldPCTFree, pctFree));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRestrictOnDrop() {
+ return restrictOnDrop;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestrictOnDrop(boolean newRestrictOnDrop) {
+ boolean oldRestrictOnDrop = restrictOnDrop;
+ restrictOnDrop = newRestrictOnDrop;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__RESTRICT_ON_DROP, oldRestrictOnDrop, restrictOnDrop));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPartitionMode() {
+ return partitionMode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitionMode(String newPartitionMode) {
+ String oldPartitionMode = partitionMode;
+ partitionMode = newPartitionMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__PARTITION_MODE, oldPartitionMode, partitionMode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAppendMode() {
+ return appendMode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAppendMode(boolean newAppendMode) {
+ boolean oldAppendMode = appendMode;
+ appendMode = newAppendMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__APPEND_MODE, oldAppendMode, appendMode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLogMode() {
+ return logMode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLogMode(String newLogMode) {
+ String oldLogMode = logMode;
+ logMode = newLogMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__LOG_MODE, oldLogMode, logMode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLockSizeRow() {
+ return lockSizeRow;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLockSizeRow(boolean newLockSizeRow) {
+ boolean oldLockSizeRow = lockSizeRow;
+ lockSizeRow = newLockSizeRow;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__LOCK_SIZE_ROW, oldLockSizeRow, lockSizeRow));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isVolatile() {
+ return volatile_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVolatile(boolean newVolatile) {
+ boolean oldVolatile = volatile_;
+ volatile_ = newVolatile;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__VOLATILE, oldVolatile, volatile_));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityPolicy getSecurityPolicy() {
+ if (securityPolicy != null && securityPolicy.eIsProxy()) {
+ InternalEObject oldSecurityPolicy = (InternalEObject)securityPolicy;
+ securityPolicy = (LUWSecurityPolicy)eResolveProxy(oldSecurityPolicy);
+ if (securityPolicy != oldSecurityPolicy) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE__SECURITY_POLICY, oldSecurityPolicy, securityPolicy));
+ }
+ }
+ return securityPolicy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSecurityPolicy basicGetSecurityPolicy() {
+ return securityPolicy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSecurityPolicy(LUWSecurityPolicy newSecurityPolicy, NotificationChain msgs) {
+ LUWSecurityPolicy oldSecurityPolicy = securityPolicy;
+ securityPolicy = newSecurityPolicy;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__SECURITY_POLICY, oldSecurityPolicy, newSecurityPolicy);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSecurityPolicy(LUWSecurityPolicy newSecurityPolicy) {
+ if (newSecurityPolicy != securityPolicy) {
+ NotificationChain msgs = null;
+ if (securityPolicy != null)
+ msgs = ((InternalEObject)securityPolicy).eInverseRemove(this, LUWPackage.LUW_SECURITY_POLICY__TABLE, LUWSecurityPolicy.class, msgs);
+ if (newSecurityPolicy != null)
+ msgs = ((InternalEObject)newSecurityPolicy).eInverseAdd(this, LUWPackage.LUW_SECURITY_POLICY__TABLE, LUWSecurityPolicy.class, msgs);
+ msgs = basicSetSecurityPolicy(newSecurityPolicy, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__SECURITY_POLICY, newSecurityPolicy, newSecurityPolicy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionKey getPartitionKey() {
+ return partitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPartitionKey(LUWPartitionKey newPartitionKey, NotificationChain msgs) {
+ LUWPartitionKey oldPartitionKey = partitionKey;
+ partitionKey = newPartitionKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__PARTITION_KEY, oldPartitionKey, newPartitionKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitionKey(LUWPartitionKey newPartitionKey) {
+ if (newPartitionKey != partitionKey) {
+ NotificationChain msgs = null;
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, LUWPackage.LUW_PARTITION_KEY__TABLE, LUWPartitionKey.class, msgs);
+ if (newPartitionKey != null)
+ msgs = ((InternalEObject)newPartitionKey).eInverseAdd(this, LUWPackage.LUW_PARTITION_KEY__TABLE, LUWPartitionKey.class, msgs);
+ msgs = basicSetPartitionKey(newPartitionKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__PARTITION_KEY, newPartitionKey, newPartitionKey));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getOptions() {
+ if (options == null) {
+ options = new EObjectContainmentEList(LUWOption.class, this, LUWPackage.LUW_TABLE__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getDataPartitions() {
+ if (dataPartitions == null) {
+ dataPartitions = new EObjectContainmentWithInverseEList(LUWDataPartition.class, this, LUWPackage.LUW_TABLE__DATA_PARTITIONS, LUWPackage.LUW_DATA_PARTITION__TABLE);
+ }
+ return dataPartitions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDataPartitionKey getDataPartitionKey() {
+ return dataPartitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDataPartitionKey(LUWDataPartitionKey newDataPartitionKey, NotificationChain msgs) {
+ LUWDataPartitionKey oldDataPartitionKey = dataPartitionKey;
+ dataPartitionKey = newDataPartitionKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__DATA_PARTITION_KEY, oldDataPartitionKey, newDataPartitionKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataPartitionKey(LUWDataPartitionKey newDataPartitionKey) {
+ if (newDataPartitionKey != dataPartitionKey) {
+ NotificationChain msgs = null;
+ if (dataPartitionKey != null)
+ msgs = ((InternalEObject)dataPartitionKey).eInverseRemove(this, LUWPackage.LUW_DATA_PARTITION_KEY__TABLE, LUWDataPartitionKey.class, msgs);
+ if (newDataPartitionKey != null)
+ msgs = ((InternalEObject)newDataPartitionKey).eInverseAdd(this, LUWPackage.LUW_DATA_PARTITION_KEY__TABLE, LUWDataPartitionKey.class, msgs);
+ msgs = basicSetDataPartitionKey(newDataPartitionKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__DATA_PARTITION_KEY, newDataPartitionKey, newDataPartitionKey));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getIndexDataTableSpace() {
+ if (indexDataTableSpace != null && indexDataTableSpace.eIsProxy()) {
+ InternalEObject oldIndexDataTableSpace = (InternalEObject)indexDataTableSpace;
+ indexDataTableSpace = (LUWTableSpace)eResolveProxy(oldIndexDataTableSpace);
+ if (indexDataTableSpace != oldIndexDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE, oldIndexDataTableSpace, indexDataTableSpace));
+ }
+ }
+ return indexDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetIndexDataTableSpace() {
+ return indexDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetIndexDataTableSpace(LUWTableSpace newIndexDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldIndexDataTableSpace = indexDataTableSpace;
+ indexDataTableSpace = newIndexDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE, oldIndexDataTableSpace, newIndexDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIndexDataTableSpace(LUWTableSpace newIndexDataTableSpace) {
+ if (newIndexDataTableSpace != indexDataTableSpace) {
+ NotificationChain msgs = null;
+ if (indexDataTableSpace != null)
+ msgs = ((InternalEObject)indexDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES, LUWTableSpace.class, msgs);
+ if (newIndexDataTableSpace != null)
+ msgs = ((InternalEObject)newIndexDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetIndexDataTableSpace(newIndexDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE, newIndexDataTableSpace, newIndexDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getLOBDataTableSpace() {
+ if (lobDataTableSpace != null && lobDataTableSpace.eIsProxy()) {
+ InternalEObject oldLOBDataTableSpace = (InternalEObject)lobDataTableSpace;
+ lobDataTableSpace = (LUWTableSpace)eResolveProxy(oldLOBDataTableSpace);
+ if (lobDataTableSpace != oldLOBDataTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE, oldLOBDataTableSpace, lobDataTableSpace));
+ }
+ }
+ return lobDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetLOBDataTableSpace() {
+ return lobDataTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLOBDataTableSpace(LUWTableSpace newLOBDataTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldLOBDataTableSpace = lobDataTableSpace;
+ lobDataTableSpace = newLOBDataTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE, oldLOBDataTableSpace, newLOBDataTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLOBDataTableSpace(LUWTableSpace newLOBDataTableSpace) {
+ if (newLOBDataTableSpace != lobDataTableSpace) {
+ NotificationChain msgs = null;
+ if (lobDataTableSpace != null)
+ msgs = ((InternalEObject)lobDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES, LUWTableSpace.class, msgs);
+ if (newLOBDataTableSpace != null)
+ msgs = ((InternalEObject)newLOBDataTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetLOBDataTableSpace(newLOBDataTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE, newLOBDataTableSpace, newLOBDataTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public List getTableSpaces() {
+ Vector tablespaceList = new Vector();
+ LUWTableSpace regularDataTablespace = this.getRegularDataTableSpace();
+ if (regularDataTablespace != null) {
+ tablespaceList.add(regularDataTablespace);
+ }
+ LUWTableSpace indexDataTablespace = this.getIndexDataTableSpace();
+ if (indexDataTablespace != null) {
+ tablespaceList.add(indexDataTablespace);
+ }
+ LUWTableSpace lobDataTablespace = this.getLOBDataTableSpace();
+ if (lobDataTablespace != null) {
+ tablespaceList.add(lobDataTablespace);
+ }
+ return (List)tablespaceList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE__PARTITION_KEY:
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_TABLE__PARTITION_KEY, null, msgs);
+ return basicSetPartitionKey((LUWPartitionKey)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE:
+ if (indexDataTableSpace != null)
+ msgs = ((InternalEObject)indexDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES, LUWTableSpace.class, msgs);
+ return basicSetIndexDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE:
+ if (lobDataTableSpace != null)
+ msgs = ((InternalEObject)lobDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES, LUWTableSpace.class, msgs);
+ return basicSetLOBDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE:
+ if (regularDataTableSpace != null)
+ msgs = ((InternalEObject)regularDataTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES, LUWTableSpace.class, msgs);
+ return basicSetRegularDataTableSpace((LUWTableSpace)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__DATA_PARTITIONS:
+ return ((InternalEList)getDataPartitions()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__DATA_PARTITION_KEY:
+ if (dataPartitionKey != null)
+ msgs = ((InternalEObject)dataPartitionKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_TABLE__DATA_PARTITION_KEY, null, msgs);
+ return basicSetDataPartitionKey((LUWDataPartitionKey)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__SECURITY_POLICY:
+ if (securityPolicy != null)
+ msgs = ((InternalEObject)securityPolicy).eInverseRemove(this, LUWPackage.LUW_SECURITY_POLICY__TABLE, LUWSecurityPolicy.class, msgs);
+ return basicSetSecurityPolicy((LUWSecurityPolicy)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE__PARTITION_KEY:
+ return basicSetPartitionKey(null, msgs);
+ case LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE:
+ return basicSetIndexDataTableSpace(null, msgs);
+ case LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE:
+ return basicSetLOBDataTableSpace(null, msgs);
+ case LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE:
+ return basicSetRegularDataTableSpace(null, msgs);
+ case LUWPackage.LUW_TABLE__DATA_PARTITIONS:
+ return ((InternalEList)getDataPartitions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__DATA_PARTITION_KEY:
+ return basicSetDataPartitionKey(null, msgs);
+ case LUWPackage.LUW_TABLE__OPTIONS:
+ return ((InternalEList)getOptions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE__SECURITY_POLICY:
+ return basicSetSecurityPolicy(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE__VALUE_COMPRESSION:
+ return isValueCompression() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION:
+ return isRowCompression() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION_EMPTY:
+ return isRowCompressionEmpty() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE__COMPRESSION_MODE:
+ return getCompressionMode();
+ case LUWPackage.LUW_TABLE__PARTITION_KEY:
+ return getPartitionKey();
+ case LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE:
+ if (resolve) return getIndexDataTableSpace();
+ return basicGetIndexDataTableSpace();
+ case LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE:
+ if (resolve) return getLOBDataTableSpace();
+ return basicGetLOBDataTableSpace();
+ case LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE:
+ if (resolve) return getRegularDataTableSpace();
+ return basicGetRegularDataTableSpace();
+ case LUWPackage.LUW_TABLE__DATA_PARTITIONS:
+ return getDataPartitions();
+ case LUWPackage.LUW_TABLE__DATA_PARTITION_KEY:
+ return getDataPartitionKey();
+ case LUWPackage.LUW_TABLE__PCT_FREE:
+ return new Integer(getPCTFree());
+ case LUWPackage.LUW_TABLE__RESTRICT_ON_DROP:
+ return isRestrictOnDrop() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE__PARTITION_MODE:
+ return getPartitionMode();
+ case LUWPackage.LUW_TABLE__APPEND_MODE:
+ return isAppendMode() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE__LOG_MODE:
+ return getLogMode();
+ case LUWPackage.LUW_TABLE__LOCK_SIZE_ROW:
+ return isLockSizeRow() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE__VOLATILE:
+ return isVolatile() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE__OPTIONS:
+ return getOptions();
+ case LUWPackage.LUW_TABLE__SECURITY_POLICY:
+ if (resolve) return getSecurityPolicy();
+ return basicGetSecurityPolicy();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE__VALUE_COMPRESSION:
+ setValueCompression(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION:
+ setRowCompression(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION_EMPTY:
+ setRowCompressionEmpty(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE__COMPRESSION_MODE:
+ setCompressionMode((LUWStorageTableCompressionMode)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE:
+ setIndexDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE:
+ setLOBDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE:
+ setRegularDataTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__DATA_PARTITIONS:
+ getDataPartitions().clear();
+ getDataPartitions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__DATA_PARTITION_KEY:
+ setDataPartitionKey((LUWDataPartitionKey)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__PCT_FREE:
+ setPCTFree(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_TABLE__RESTRICT_ON_DROP:
+ setRestrictOnDrop(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE__PARTITION_MODE:
+ setPartitionMode((String)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__APPEND_MODE:
+ setAppendMode(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE__LOG_MODE:
+ setLogMode((String)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__LOCK_SIZE_ROW:
+ setLockSizeRow(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE__VOLATILE:
+ setVolatile(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE__SECURITY_POLICY:
+ setSecurityPolicy((LUWSecurityPolicy)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE__VALUE_COMPRESSION:
+ setValueCompression(VALUE_COMPRESSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION:
+ setRowCompression(ROW_COMPRESSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION_EMPTY:
+ setRowCompressionEmpty(ROW_COMPRESSION_EMPTY_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__COMPRESSION_MODE:
+ setCompressionMode(COMPRESSION_MODE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)null);
+ return;
+ case LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE:
+ setIndexDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE:
+ setLOBDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE:
+ setRegularDataTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_TABLE__DATA_PARTITIONS:
+ getDataPartitions().clear();
+ return;
+ case LUWPackage.LUW_TABLE__DATA_PARTITION_KEY:
+ setDataPartitionKey((LUWDataPartitionKey)null);
+ return;
+ case LUWPackage.LUW_TABLE__PCT_FREE:
+ setPCTFree(PCT_FREE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__RESTRICT_ON_DROP:
+ setRestrictOnDrop(RESTRICT_ON_DROP_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__PARTITION_MODE:
+ setPartitionMode(PARTITION_MODE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__APPEND_MODE:
+ setAppendMode(APPEND_MODE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__LOG_MODE:
+ setLogMode(LOG_MODE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__LOCK_SIZE_ROW:
+ setLockSizeRow(LOCK_SIZE_ROW_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__VOLATILE:
+ setVolatile(VOLATILE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE__OPTIONS:
+ getOptions().clear();
+ return;
+ case LUWPackage.LUW_TABLE__SECURITY_POLICY:
+ setSecurityPolicy((LUWSecurityPolicy)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE__VALUE_COMPRESSION:
+ return valueCompression != VALUE_COMPRESSION_EDEFAULT;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION:
+ return rowCompression != ROW_COMPRESSION_EDEFAULT;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION_EMPTY:
+ return rowCompressionEmpty != ROW_COMPRESSION_EMPTY_EDEFAULT;
+ case LUWPackage.LUW_TABLE__COMPRESSION_MODE:
+ return compressionMode != COMPRESSION_MODE_EDEFAULT;
+ case LUWPackage.LUW_TABLE__PARTITION_KEY:
+ return partitionKey != null;
+ case LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE:
+ return indexDataTableSpace != null;
+ case LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE:
+ return lobDataTableSpace != null;
+ case LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE:
+ return regularDataTableSpace != null;
+ case LUWPackage.LUW_TABLE__DATA_PARTITIONS:
+ return dataPartitions != null && !dataPartitions.isEmpty();
+ case LUWPackage.LUW_TABLE__DATA_PARTITION_KEY:
+ return dataPartitionKey != null;
+ case LUWPackage.LUW_TABLE__PCT_FREE:
+ return pctFree != PCT_FREE_EDEFAULT;
+ case LUWPackage.LUW_TABLE__RESTRICT_ON_DROP:
+ return restrictOnDrop != RESTRICT_ON_DROP_EDEFAULT;
+ case LUWPackage.LUW_TABLE__PARTITION_MODE:
+ return PARTITION_MODE_EDEFAULT == null ? partitionMode != null : !PARTITION_MODE_EDEFAULT.equals(partitionMode);
+ case LUWPackage.LUW_TABLE__APPEND_MODE:
+ return appendMode != APPEND_MODE_EDEFAULT;
+ case LUWPackage.LUW_TABLE__LOG_MODE:
+ return LOG_MODE_EDEFAULT == null ? logMode != null : !LOG_MODE_EDEFAULT.equals(logMode);
+ case LUWPackage.LUW_TABLE__LOCK_SIZE_ROW:
+ return lockSizeRow != LOCK_SIZE_ROW_EDEFAULT;
+ case LUWPackage.LUW_TABLE__VOLATILE:
+ return volatile_ != VOLATILE_EDEFAULT;
+ case LUWPackage.LUW_TABLE__OPTIONS:
+ return options != null && !options.isEmpty();
+ case LUWPackage.LUW_TABLE__SECURITY_POLICY:
+ return securityPolicy != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWStorageTable.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_TABLE__VALUE_COMPRESSION: return LUWPackage.LUW_STORAGE_TABLE__VALUE_COMPRESSION;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION: return LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION;
+ case LUWPackage.LUW_TABLE__ROW_COMPRESSION_EMPTY: return LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION_EMPTY;
+ case LUWPackage.LUW_TABLE__COMPRESSION_MODE: return LUWPackage.LUW_STORAGE_TABLE__COMPRESSION_MODE;
+ case LUWPackage.LUW_TABLE__PARTITION_KEY: return LUWPackage.LUW_STORAGE_TABLE__PARTITION_KEY;
+ case LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE: return LUWPackage.LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE: return LUWPackage.LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE: return LUWPackage.LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_TABLE__DATA_PARTITIONS: return LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITIONS;
+ case LUWPackage.LUW_TABLE__DATA_PARTITION_KEY: return LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITION_KEY;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWStorageTable.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_STORAGE_TABLE__VALUE_COMPRESSION: return LUWPackage.LUW_TABLE__VALUE_COMPRESSION;
+ case LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION: return LUWPackage.LUW_TABLE__ROW_COMPRESSION;
+ case LUWPackage.LUW_STORAGE_TABLE__ROW_COMPRESSION_EMPTY: return LUWPackage.LUW_TABLE__ROW_COMPRESSION_EMPTY;
+ case LUWPackage.LUW_STORAGE_TABLE__COMPRESSION_MODE: return LUWPackage.LUW_TABLE__COMPRESSION_MODE;
+ case LUWPackage.LUW_STORAGE_TABLE__PARTITION_KEY: return LUWPackage.LUW_TABLE__PARTITION_KEY;
+ case LUWPackage.LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE: return LUWPackage.LUW_TABLE__INDEX_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE: return LUWPackage.LUW_TABLE__LOB_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE: return LUWPackage.LUW_TABLE__REGULAR_DATA_TABLE_SPACE;
+ case LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITIONS: return LUWPackage.LUW_TABLE__DATA_PARTITIONS;
+ case LUWPackage.LUW_STORAGE_TABLE__DATA_PARTITION_KEY: return LUWPackage.LUW_TABLE__DATA_PARTITION_KEY;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (valueCompression: "); //$NON-NLS-1$
+ result.append(valueCompression);
+ result.append(", rowCompression: "); //$NON-NLS-1$
+ result.append(rowCompression);
+ result.append(", rowCompressionEmpty: "); //$NON-NLS-1$
+ result.append(rowCompressionEmpty);
+ result.append(", compressionMode: "); //$NON-NLS-1$
+ result.append(compressionMode);
+ result.append(", PCTFree: "); //$NON-NLS-1$
+ result.append(pctFree);
+ result.append(", restrictOnDrop: "); //$NON-NLS-1$
+ result.append(restrictOnDrop);
+ result.append(", partitionMode: "); //$NON-NLS-1$
+ result.append(partitionMode);
+ result.append(", appendMode: "); //$NON-NLS-1$
+ result.append(appendMode);
+ result.append(", logMode: "); //$NON-NLS-1$
+ result.append(logMode);
+ result.append(", lockSizeRow: "); //$NON-NLS-1$
+ result.append(lockSizeRow);
+ result.append(", volatile: "); //$NON-NLS-1$
+ result.append(volatile_);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWTableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTableSpaceImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTableSpaceImpl.java
new file mode 100644
index 0000000..97ca485
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTableSpaceImpl.java
@@ -0,0 +1,2481 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.UnitType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.AverageTableSizeType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.FileSystemCachingType;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWBufferPool;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDataPartition;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabaseContainer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWIndex;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageGroup;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.ManagementType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PageSizeType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.SystemType;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.TableSpaceType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Table Space</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getTemporaryStorageTables <em>Temporary Storage Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getTablespaceType <em>Tablespace Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getManagementType <em>Management Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getExtentSize <em>Extent Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getPreFetchSize <em>Pre Fetch Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getOverhead <em>Overhead</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getTransferRate <em>Transfer Rate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#isRecoverDroppedTableOn <em>Recover Dropped Table On</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getPageSize <em>Page Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#isAutoResize <em>Auto Resize</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getInitialSize <em>Initial Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getIncreaseSize <em>Increase Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getMaximumSize <em>Maximum Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getInitialSizeUnit <em>Initial Size Unit</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getMaximumSizeUnit <em>Maximum Size Unit</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getIncreaseSizeUnit <em>Increase Size Unit</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getIncreasePercent <em>Increase Percent</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getFileSystemCaching <em>File System Caching</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getAverageSeekTime <em>Average Seek Time</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getRotationSpeed <em>Rotation Speed</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getTransfer <em>Transfer</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getSystemType <em>System Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getAverageTableSize <em>Average Table Size</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getExternalContainerCount <em>External Container Count</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#isInheritOverhead <em>Inherit Overhead</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#isInheritTransferate <em>Inherit Transferate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#isRebalance <em>Rebalance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getDataTag <em>Data Tag</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#isSuspendRebalance <em>Suspend Rebalance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#isResumeRebalance <em>Resume Rebalance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getContainers <em>Containers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getBufferPool <em>Buffer Pool</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getIndexDataTables <em>Index Data Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getLOBDataTables <em>LOB Data Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getRegularDataTables <em>Regular Data Tables</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getDatabase <em>Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getLOBDataPartition <em>LOB Data Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getRegularDataPartition <em>Regular Data Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getIndexes <em>Indexes</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getIndexDataPartition <em>Index Data Partition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTableSpaceImpl#getStorageGroup <em>Storage Group</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWTableSpaceImpl extends SQLObjectImpl implements LUWTableSpace {
+ /**
+ * The cached value of the '{@link #getTemporaryStorageTables() <em>Temporary Storage Tables</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemporaryStorageTables()
+ * @generated
+ * @ordered
+ */
+ protected EList temporaryStorageTables;
+
+ /**
+ * The default value of the '{@link #getTablespaceType() <em>Tablespace Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTablespaceType()
+ * @generated
+ * @ordered
+ */
+ protected static final TableSpaceType TABLESPACE_TYPE_EDEFAULT = TableSpaceType.REGULAR_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getTablespaceType() <em>Tablespace Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTablespaceType()
+ * @generated
+ * @ordered
+ */
+ protected TableSpaceType tablespaceType = TABLESPACE_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getManagementType() <em>Management Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getManagementType()
+ * @generated
+ * @ordered
+ */
+ protected static final ManagementType MANAGEMENT_TYPE_EDEFAULT = ManagementType.SYSTEM_MANAGED_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getManagementType() <em>Management Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getManagementType()
+ * @generated
+ * @ordered
+ */
+ protected ManagementType managementType = MANAGEMENT_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getExtentSize() <em>Extent Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtentSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int EXTENT_SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getExtentSize() <em>Extent Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtentSize()
+ * @generated
+ * @ordered
+ */
+ protected int extentSize = EXTENT_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPreFetchSize() <em>Pre Fetch Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreFetchSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int PRE_FETCH_SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getPreFetchSize() <em>Pre Fetch Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreFetchSize()
+ * @generated
+ * @ordered
+ */
+ protected int preFetchSize = PRE_FETCH_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOverhead() <em>Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOverhead()
+ * @generated
+ * @ordered
+ */
+ protected static final double OVERHEAD_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getOverhead() <em>Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOverhead()
+ * @generated
+ * @ordered
+ */
+ protected double overhead = OVERHEAD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTransferRate() <em>Transfer Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransferRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double TRANSFER_RATE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getTransferRate() <em>Transfer Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransferRate()
+ * @generated
+ * @ordered
+ */
+ protected double transferRate = TRANSFER_RATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRecoverDroppedTableOn() <em>Recover Dropped Table On</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRecoverDroppedTableOn()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RECOVER_DROPPED_TABLE_ON_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRecoverDroppedTableOn() <em>Recover Dropped Table On</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRecoverDroppedTableOn()
+ * @generated
+ * @ordered
+ */
+ protected boolean recoverDroppedTableOn = RECOVER_DROPPED_TABLE_ON_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPageSize() <em>Page Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPageSize()
+ * @generated
+ * @ordered
+ */
+ protected static final PageSizeType PAGE_SIZE_EDEFAULT = PageSizeType.FOUR_K_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getPageSize() <em>Page Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPageSize()
+ * @generated
+ * @ordered
+ */
+ protected PageSizeType pageSize = PAGE_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected static final long SIZE_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected long size = SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAutoResize() <em>Auto Resize</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAutoResize()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean AUTO_RESIZE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAutoResize() <em>Auto Resize</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAutoResize()
+ * @generated
+ * @ordered
+ */
+ protected boolean autoResize = AUTO_RESIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInitialSize() <em>Initial Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitialSize()
+ * @generated
+ * @ordered
+ */
+ protected static final long INITIAL_SIZE_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getInitialSize() <em>Initial Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitialSize()
+ * @generated
+ * @ordered
+ */
+ protected long initialSize = INITIAL_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIncreaseSize() <em>Increase Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncreaseSize()
+ * @generated
+ * @ordered
+ */
+ protected static final long INCREASE_SIZE_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getIncreaseSize() <em>Increase Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncreaseSize()
+ * @generated
+ * @ordered
+ */
+ protected long increaseSize = INCREASE_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMaximumSize() <em>Maximum Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMaximumSize()
+ * @generated
+ * @ordered
+ */
+ protected static final long MAXIMUM_SIZE_EDEFAULT = 0L;
+
+ /**
+ * The cached value of the '{@link #getMaximumSize() <em>Maximum Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMaximumSize()
+ * @generated
+ * @ordered
+ */
+ protected long maximumSize = MAXIMUM_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInitialSizeUnit() <em>Initial Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitialSizeUnit()
+ * @generated
+ * @ordered
+ */
+ protected static final UnitType INITIAL_SIZE_UNIT_EDEFAULT = UnitType.K_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getInitialSizeUnit() <em>Initial Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitialSizeUnit()
+ * @generated
+ * @ordered
+ */
+ protected UnitType initialSizeUnit = INITIAL_SIZE_UNIT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMaximumSizeUnit() <em>Maximum Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMaximumSizeUnit()
+ * @generated
+ * @ordered
+ */
+ protected static final UnitType MAXIMUM_SIZE_UNIT_EDEFAULT = UnitType.K_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getMaximumSizeUnit() <em>Maximum Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMaximumSizeUnit()
+ * @generated
+ * @ordered
+ */
+ protected UnitType maximumSizeUnit = MAXIMUM_SIZE_UNIT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIncreaseSizeUnit() <em>Increase Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncreaseSizeUnit()
+ * @generated
+ * @ordered
+ */
+ protected static final UnitType INCREASE_SIZE_UNIT_EDEFAULT = UnitType.K_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getIncreaseSizeUnit() <em>Increase Size Unit</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncreaseSizeUnit()
+ * @generated
+ * @ordered
+ */
+ protected UnitType increaseSizeUnit = INCREASE_SIZE_UNIT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIncreasePercent() <em>Increase Percent</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncreasePercent()
+ * @generated
+ * @ordered
+ */
+ protected static final int INCREASE_PERCENT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIncreasePercent() <em>Increase Percent</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIncreasePercent()
+ * @generated
+ * @ordered
+ */
+ protected int increasePercent = INCREASE_PERCENT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFileSystemCaching() <em>File System Caching</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileSystemCaching()
+ * @generated
+ * @ordered
+ */
+ protected static final FileSystemCachingType FILE_SYSTEM_CACHING_EDEFAULT = FileSystemCachingType.NONE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getFileSystemCaching() <em>File System Caching</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileSystemCaching()
+ * @generated
+ * @ordered
+ */
+ protected FileSystemCachingType fileSystemCaching = FILE_SYSTEM_CACHING_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAverageSeekTime() <em>Average Seek Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSeekTime()
+ * @generated
+ * @ordered
+ */
+ protected static final double AVERAGE_SEEK_TIME_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getAverageSeekTime() <em>Average Seek Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageSeekTime()
+ * @generated
+ * @ordered
+ */
+ protected double averageSeekTime = AVERAGE_SEEK_TIME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRotationSpeed() <em>Rotation Speed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRotationSpeed()
+ * @generated
+ * @ordered
+ */
+ protected static final int ROTATION_SPEED_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getRotationSpeed() <em>Rotation Speed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRotationSpeed()
+ * @generated
+ * @ordered
+ */
+ protected int rotationSpeed = ROTATION_SPEED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTransfer() <em>Transfer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransfer()
+ * @generated
+ * @ordered
+ */
+ protected static final double TRANSFER_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getTransfer() <em>Transfer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTransfer()
+ * @generated
+ * @ordered
+ */
+ protected double transfer = TRANSFER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSystemType() <em>System Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSystemType()
+ * @generated
+ * @ordered
+ */
+ protected static final SystemType SYSTEM_TYPE_EDEFAULT = SystemType.SATA_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getSystemType() <em>System Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSystemType()
+ * @generated
+ * @ordered
+ */
+ protected SystemType systemType = SYSTEM_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAverageTableSize() <em>Average Table Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageTableSize()
+ * @generated
+ * @ordered
+ */
+ protected static final AverageTableSizeType AVERAGE_TABLE_SIZE_EDEFAULT = AverageTableSizeType.LESS_THAN_50MB_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getAverageTableSize() <em>Average Table Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAverageTableSize()
+ * @generated
+ * @ordered
+ */
+ protected AverageTableSizeType averageTableSize = AVERAGE_TABLE_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getExternalContainerCount() <em>External Container Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExternalContainerCount()
+ * @generated
+ * @ordered
+ */
+ protected static final int EXTERNAL_CONTAINER_COUNT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getExternalContainerCount() <em>External Container Count</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExternalContainerCount()
+ * @generated
+ * @ordered
+ */
+ protected int externalContainerCount = EXTERNAL_CONTAINER_COUNT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInheritOverhead() <em>Inherit Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritOverhead()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INHERIT_OVERHEAD_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInheritOverhead() <em>Inherit Overhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritOverhead()
+ * @generated
+ * @ordered
+ */
+ protected boolean inheritOverhead = INHERIT_OVERHEAD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInheritTransferate() <em>Inherit Transferate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritTransferate()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INHERIT_TRANSFERATE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInheritTransferate() <em>Inherit Transferate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritTransferate()
+ * @generated
+ * @ordered
+ */
+ protected boolean inheritTransferate = INHERIT_TRANSFERATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRebalance() <em>Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRebalance()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean REBALANCE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRebalance() <em>Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRebalance()
+ * @generated
+ * @ordered
+ */
+ protected boolean rebalance = REBALANCE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDataTag() <em>Data Tag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataTag()
+ * @generated
+ * @ordered
+ */
+ protected static final String DATA_TAG_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDataTag() <em>Data Tag</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataTag()
+ * @generated
+ * @ordered
+ */
+ protected String dataTag = DATA_TAG_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSuspendRebalance() <em>Suspend Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSuspendRebalance()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SUSPEND_REBALANCE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSuspendRebalance() <em>Suspend Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSuspendRebalance()
+ * @generated
+ * @ordered
+ */
+ protected boolean suspendRebalance = SUSPEND_REBALANCE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isResumeRebalance() <em>Resume Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isResumeRebalance()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RESUME_REBALANCE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isResumeRebalance() <em>Resume Rebalance</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isResumeRebalance()
+ * @generated
+ * @ordered
+ */
+ protected boolean resumeRebalance = RESUME_REBALANCE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated
+ * @ordered
+ */
+ protected LUWPartitionGroup group;
+
+ /**
+ * The cached value of the '{@link #getContainers() <em>Containers</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContainers()
+ * @generated
+ * @ordered
+ */
+ protected EList containers;
+
+ /**
+ * The cached value of the '{@link #getBufferPool() <em>Buffer Pool</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBufferPool()
+ * @generated
+ * @ordered
+ */
+ protected LUWBufferPool bufferPool;
+
+ /**
+ * The cached value of the '{@link #getIndexDataTables() <em>Index Data Tables</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexDataTables()
+ * @generated
+ * @ordered
+ */
+ protected EList indexDataTables;
+
+ /**
+ * The cached value of the '{@link #getLOBDataTables() <em>LOB Data Tables</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLOBDataTables()
+ * @generated
+ * @ordered
+ */
+ protected EList lobDataTables;
+
+ /**
+ * The cached value of the '{@link #getRegularDataTables() <em>Regular Data Tables</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRegularDataTables()
+ * @generated
+ * @ordered
+ */
+ protected EList regularDataTables;
+
+ /**
+ * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDatabase()
+ * @generated
+ * @ordered
+ */
+ protected LUWDatabase database;
+
+ /**
+ * The cached value of the '{@link #getLOBDataPartition() <em>LOB Data Partition</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLOBDataPartition()
+ * @generated
+ * @ordered
+ */
+ protected EList lobDataPartition;
+
+ /**
+ * The cached value of the '{@link #getRegularDataPartition() <em>Regular Data Partition</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRegularDataPartition()
+ * @generated
+ * @ordered
+ */
+ protected EList regularDataPartition;
+
+ /**
+ * The cached value of the '{@link #getIndexes() <em>Indexes</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexes()
+ * @generated
+ * @ordered
+ */
+ protected EList indexes;
+
+ /**
+ * The cached value of the '{@link #getIndexDataPartition() <em>Index Data Partition</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexDataPartition()
+ * @generated
+ * @ordered
+ */
+ protected EList indexDataPartition;
+
+ /**
+ * The cached value of the '{@link #getStorageGroup() <em>Storage Group</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStorageGroup()
+ * @generated
+ * @ordered
+ */
+ protected LUWStorageGroup storageGroup;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWTableSpaceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_TABLE_SPACE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getTemporaryStorageTables() {
+ if (temporaryStorageTables == null) {
+ temporaryStorageTables = new EObjectWithInverseResolvingEList(LUWTemporaryStorageTable.class, this, LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE);
+ }
+ return temporaryStorageTables;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TableSpaceType getTablespaceType() {
+ return tablespaceType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTablespaceType(TableSpaceType newTablespaceType) {
+ TableSpaceType oldTablespaceType = tablespaceType;
+ tablespaceType = newTablespaceType == null ? TABLESPACE_TYPE_EDEFAULT : newTablespaceType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__TABLESPACE_TYPE, oldTablespaceType, tablespaceType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ManagementType getManagementType() {
+ return managementType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setManagementType(ManagementType newManagementType) {
+ ManagementType oldManagementType = managementType;
+ managementType = newManagementType == null ? MANAGEMENT_TYPE_EDEFAULT : newManagementType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__MANAGEMENT_TYPE, oldManagementType, managementType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExtentSize() {
+ return extentSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExtentSize(int newExtentSize) {
+ int oldExtentSize = extentSize;
+ extentSize = newExtentSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__EXTENT_SIZE, oldExtentSize, extentSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getPreFetchSize() {
+ return preFetchSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPreFetchSize(int newPreFetchSize) {
+ int oldPreFetchSize = preFetchSize;
+ preFetchSize = newPreFetchSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__PRE_FETCH_SIZE, oldPreFetchSize, preFetchSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getOverhead() {
+ return overhead;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOverhead(double newOverhead) {
+ double oldOverhead = overhead;
+ overhead = newOverhead;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__OVERHEAD, oldOverhead, overhead));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getTransferRate() {
+ return transferRate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransferRate(double newTransferRate) {
+ double oldTransferRate = transferRate;
+ transferRate = newTransferRate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__TRANSFER_RATE, oldTransferRate, transferRate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRecoverDroppedTableOn() {
+ return recoverDroppedTableOn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRecoverDroppedTableOn(boolean newRecoverDroppedTableOn) {
+ boolean oldRecoverDroppedTableOn = recoverDroppedTableOn;
+ recoverDroppedTableOn = newRecoverDroppedTableOn;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON, oldRecoverDroppedTableOn, recoverDroppedTableOn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PageSizeType getPageSize() {
+ return pageSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPageSize(PageSizeType newPageSize) {
+ PageSizeType oldPageSize = pageSize;
+ pageSize = newPageSize == null ? PAGE_SIZE_EDEFAULT : newPageSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__PAGE_SIZE, oldPageSize, pageSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSize(long newSize) {
+ long oldSize = size;
+ size = newSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__SIZE, oldSize, size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAutoResize() {
+ return autoResize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAutoResize(boolean newAutoResize) {
+ boolean oldAutoResize = autoResize;
+ autoResize = newAutoResize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__AUTO_RESIZE, oldAutoResize, autoResize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getInitialSize() {
+ return initialSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitialSize(long newInitialSize) {
+ long oldInitialSize = initialSize;
+ initialSize = newInitialSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE, oldInitialSize, initialSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getIncreaseSize() {
+ return increaseSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIncreaseSize(long newIncreaseSize) {
+ long oldIncreaseSize = increaseSize;
+ increaseSize = newIncreaseSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE, oldIncreaseSize, increaseSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public long getMaximumSize() {
+ return maximumSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMaximumSize(long newMaximumSize) {
+ long oldMaximumSize = maximumSize;
+ maximumSize = newMaximumSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE, oldMaximumSize, maximumSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnitType getInitialSizeUnit() {
+ return initialSizeUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInitialSizeUnit(UnitType newInitialSizeUnit) {
+ UnitType oldInitialSizeUnit = initialSizeUnit;
+ initialSizeUnit = newInitialSizeUnit == null ? INITIAL_SIZE_UNIT_EDEFAULT : newInitialSizeUnit;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE_UNIT, oldInitialSizeUnit, initialSizeUnit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnitType getMaximumSizeUnit() {
+ return maximumSizeUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMaximumSizeUnit(UnitType newMaximumSizeUnit) {
+ UnitType oldMaximumSizeUnit = maximumSizeUnit;
+ maximumSizeUnit = newMaximumSizeUnit == null ? MAXIMUM_SIZE_UNIT_EDEFAULT : newMaximumSizeUnit;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT, oldMaximumSizeUnit, maximumSizeUnit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnitType getIncreaseSizeUnit() {
+ return increaseSizeUnit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIncreaseSizeUnit(UnitType newIncreaseSizeUnit) {
+ UnitType oldIncreaseSizeUnit = increaseSizeUnit;
+ increaseSizeUnit = newIncreaseSizeUnit == null ? INCREASE_SIZE_UNIT_EDEFAULT : newIncreaseSizeUnit;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE_UNIT, oldIncreaseSizeUnit, increaseSizeUnit));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getIncreasePercent() {
+ return increasePercent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIncreasePercent(int newIncreasePercent) {
+ int oldIncreasePercent = increasePercent;
+ increasePercent = newIncreasePercent;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__INCREASE_PERCENT, oldIncreasePercent, increasePercent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FileSystemCachingType getFileSystemCaching() {
+ return fileSystemCaching;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFileSystemCaching(FileSystemCachingType newFileSystemCaching) {
+ FileSystemCachingType oldFileSystemCaching = fileSystemCaching;
+ fileSystemCaching = newFileSystemCaching == null ? FILE_SYSTEM_CACHING_EDEFAULT : newFileSystemCaching;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__FILE_SYSTEM_CACHING, oldFileSystemCaching, fileSystemCaching));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getAverageSeekTime() {
+ return averageSeekTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAverageSeekTime(double newAverageSeekTime) {
+ double oldAverageSeekTime = averageSeekTime;
+ averageSeekTime = newAverageSeekTime;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__AVERAGE_SEEK_TIME, oldAverageSeekTime, averageSeekTime));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getRotationSpeed() {
+ return rotationSpeed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRotationSpeed(int newRotationSpeed) {
+ int oldRotationSpeed = rotationSpeed;
+ rotationSpeed = newRotationSpeed;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__ROTATION_SPEED, oldRotationSpeed, rotationSpeed));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public double getTransfer() {
+ return transfer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransfer(double newTransfer) {
+ double oldTransfer = transfer;
+ transfer = newTransfer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__TRANSFER, oldTransfer, transfer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SystemType getSystemType() {
+ return systemType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSystemType(SystemType newSystemType) {
+ SystemType oldSystemType = systemType;
+ systemType = newSystemType == null ? SYSTEM_TYPE_EDEFAULT : newSystemType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__SYSTEM_TYPE, oldSystemType, systemType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AverageTableSizeType getAverageTableSize() {
+ return averageTableSize;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAverageTableSize(AverageTableSizeType newAverageTableSize) {
+ AverageTableSizeType oldAverageTableSize = averageTableSize;
+ averageTableSize = newAverageTableSize == null ? AVERAGE_TABLE_SIZE_EDEFAULT : newAverageTableSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE, oldAverageTableSize, averageTableSize));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getExternalContainerCount() {
+ return externalContainerCount;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExternalContainerCount(int newExternalContainerCount) {
+ int oldExternalContainerCount = externalContainerCount;
+ externalContainerCount = newExternalContainerCount;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT, oldExternalContainerCount, externalContainerCount));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInheritOverhead() {
+ return inheritOverhead;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInheritOverhead(boolean newInheritOverhead) {
+ boolean oldInheritOverhead = inheritOverhead;
+ inheritOverhead = newInheritOverhead;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__INHERIT_OVERHEAD, oldInheritOverhead, inheritOverhead));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInheritTransferate() {
+ return inheritTransferate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInheritTransferate(boolean newInheritTransferate) {
+ boolean oldInheritTransferate = inheritTransferate;
+ inheritTransferate = newInheritTransferate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__INHERIT_TRANSFERATE, oldInheritTransferate, inheritTransferate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRebalance() {
+ return rebalance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRebalance(boolean newRebalance) {
+ boolean oldRebalance = rebalance;
+ rebalance = newRebalance;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__REBALANCE, oldRebalance, rebalance));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDataTag() {
+ return dataTag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataTag(String newDataTag) {
+ String oldDataTag = dataTag;
+ dataTag = newDataTag;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__DATA_TAG, oldDataTag, dataTag));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSuspendRebalance() {
+ return suspendRebalance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSuspendRebalance(boolean newSuspendRebalance) {
+ boolean oldSuspendRebalance = suspendRebalance;
+ suspendRebalance = newSuspendRebalance;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__SUSPEND_REBALANCE, oldSuspendRebalance, suspendRebalance));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isResumeRebalance() {
+ return resumeRebalance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setResumeRebalance(boolean newResumeRebalance) {
+ boolean oldResumeRebalance = resumeRebalance;
+ resumeRebalance = newResumeRebalance;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__RESUME_REBALANCE, oldResumeRebalance, resumeRebalance));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionGroup getGroup() {
+ if (group != null && group.eIsProxy()) {
+ InternalEObject oldGroup = (InternalEObject)group;
+ group = (LUWPartitionGroup)eResolveProxy(oldGroup);
+ if (group != oldGroup) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE_SPACE__GROUP, oldGroup, group));
+ }
+ }
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionGroup basicGetGroup() {
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetGroup(LUWPartitionGroup newGroup, NotificationChain msgs) {
+ LUWPartitionGroup oldGroup = group;
+ group = newGroup;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__GROUP, oldGroup, newGroup);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGroup(LUWPartitionGroup newGroup) {
+ if (newGroup != group) {
+ NotificationChain msgs = null;
+ if (group != null)
+ msgs = ((InternalEObject)group).eInverseRemove(this, LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES, LUWPartitionGroup.class, msgs);
+ if (newGroup != null)
+ msgs = ((InternalEObject)newGroup).eInverseAdd(this, LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES, LUWPartitionGroup.class, msgs);
+ msgs = basicSetGroup(newGroup, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__GROUP, newGroup, newGroup));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getContainers() {
+ if (containers == null) {
+ containers = new EObjectContainmentWithInverseEList(LUWDatabaseContainer.class, this, LUWPackage.LUW_TABLE_SPACE__CONTAINERS, LUWPackage.LUW_DATABASE_CONTAINER__TABLE_SPACE);
+ }
+ return containers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPool getBufferPool() {
+ if (bufferPool != null && bufferPool.eIsProxy()) {
+ InternalEObject oldBufferPool = (InternalEObject)bufferPool;
+ bufferPool = (LUWBufferPool)eResolveProxy(oldBufferPool);
+ if (bufferPool != oldBufferPool) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL, oldBufferPool, bufferPool));
+ }
+ }
+ return bufferPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWBufferPool basicGetBufferPool() {
+ return bufferPool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBufferPool(LUWBufferPool newBufferPool, NotificationChain msgs) {
+ LUWBufferPool oldBufferPool = bufferPool;
+ bufferPool = newBufferPool;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL, oldBufferPool, newBufferPool);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBufferPool(LUWBufferPool newBufferPool) {
+ if (newBufferPool != bufferPool) {
+ NotificationChain msgs = null;
+ if (bufferPool != null)
+ msgs = ((InternalEObject)bufferPool).eInverseRemove(this, LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES, LUWBufferPool.class, msgs);
+ if (newBufferPool != null)
+ msgs = ((InternalEObject)newBufferPool).eInverseAdd(this, LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES, LUWBufferPool.class, msgs);
+ msgs = basicSetBufferPool(newBufferPool, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL, newBufferPool, newBufferPool));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRegularDataTables() {
+ if (regularDataTables == null) {
+ regularDataTables = new EObjectWithInverseResolvingEList(LUWStorageTable.class, this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES, LUWPackage.LUW_STORAGE_TABLE__REGULAR_DATA_TABLE_SPACE);
+ }
+ return regularDataTables;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase getDatabase() {
+ if (database != null && database.eIsProxy()) {
+ InternalEObject oldDatabase = (InternalEObject)database;
+ database = (LUWDatabase)eResolveProxy(oldDatabase);
+ if (database != oldDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE_SPACE__DATABASE, oldDatabase, database));
+ }
+ }
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase basicGetDatabase() {
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDatabase(LUWDatabase newDatabase, NotificationChain msgs) {
+ LUWDatabase oldDatabase = database;
+ database = newDatabase;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__DATABASE, oldDatabase, newDatabase);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDatabase(LUWDatabase newDatabase) {
+ if (newDatabase != database) {
+ NotificationChain msgs = null;
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__TABLESPACES, LUWDatabase.class, msgs);
+ if (newDatabase != null)
+ msgs = ((InternalEObject)newDatabase).eInverseAdd(this, LUWPackage.LUW_DATABASE__TABLESPACES, LUWDatabase.class, msgs);
+ msgs = basicSetDatabase(newDatabase, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__DATABASE, newDatabase, newDatabase));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getLOBDataPartition() {
+ if (lobDataPartition == null) {
+ lobDataPartition = new EObjectWithInverseResolvingEList(LUWDataPartition.class, this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION, LUWPackage.LUW_DATA_PARTITION__LOB_DATA_TABLE_SPACE);
+ }
+ return lobDataPartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRegularDataPartition() {
+ if (regularDataPartition == null) {
+ regularDataPartition = new EObjectWithInverseResolvingEList(LUWDataPartition.class, this, LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION, LUWPackage.LUW_DATA_PARTITION__REGULAR_DATA_TABLE_SPACE);
+ }
+ return regularDataPartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getIndexes() {
+ if (indexes == null) {
+ indexes = new EObjectWithInverseResolvingEList(LUWIndex.class, this, LUWPackage.LUW_TABLE_SPACE__INDEXES, LUWPackage.LUW_INDEX__TABLESPACE);
+ }
+ return indexes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getIndexDataPartition() {
+ if (indexDataPartition == null) {
+ indexDataPartition = new EObjectWithInverseResolvingEList(LUWDataPartition.class, this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION, LUWPackage.LUW_DATA_PARTITION__INDEX_DATA_TABLE_SPACE);
+ }
+ return indexDataPartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageGroup getStorageGroup() {
+ if (storageGroup != null && storageGroup.eIsProxy()) {
+ InternalEObject oldStorageGroup = (InternalEObject)storageGroup;
+ storageGroup = (LUWStorageGroup)eResolveProxy(oldStorageGroup);
+ if (storageGroup != oldStorageGroup) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP, oldStorageGroup, storageGroup));
+ }
+ }
+ return storageGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWStorageGroup basicGetStorageGroup() {
+ return storageGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStorageGroup(LUWStorageGroup newStorageGroup, NotificationChain msgs) {
+ LUWStorageGroup oldStorageGroup = storageGroup;
+ storageGroup = newStorageGroup;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP, oldStorageGroup, newStorageGroup);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStorageGroup(LUWStorageGroup newStorageGroup) {
+ if (newStorageGroup != storageGroup) {
+ NotificationChain msgs = null;
+ if (storageGroup != null)
+ msgs = ((InternalEObject)storageGroup).eInverseRemove(this, LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES, LUWStorageGroup.class, msgs);
+ if (newStorageGroup != null)
+ msgs = ((InternalEObject)newStorageGroup).eInverseAdd(this, LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES, LUWStorageGroup.class, msgs);
+ msgs = basicSetStorageGroup(newStorageGroup, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP, newStorageGroup, newStorageGroup));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getIndexDataTables() {
+ if (indexDataTables == null) {
+ indexDataTables = new EObjectWithInverseResolvingEList(LUWStorageTable.class, this, LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES, LUWPackage.LUW_STORAGE_TABLE__INDEX_DATA_TABLE_SPACE);
+ }
+ return indexDataTables;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getLOBDataTables() {
+ if (lobDataTables == null) {
+ lobDataTables = new EObjectWithInverseResolvingEList(LUWStorageTable.class, this, LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES, LUWPackage.LUW_STORAGE_TABLE__LOB_DATA_TABLE_SPACE);
+ }
+ return lobDataTables;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public List getTables()
+ {
+ List tableList = new ArrayList();
+ tableList.addAll( getRegularDataTables() );
+ tableList.addAll( getIndexDataTables() );
+ tableList.addAll( getLOBDataTables() );
+ return tableList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES:
+ return ((InternalEList)getTemporaryStorageTables()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__GROUP:
+ if (group != null)
+ msgs = ((InternalEObject)group).eInverseRemove(this, LUWPackage.LUW_PARTITION_GROUP__TABLE_SPACES, LUWPartitionGroup.class, msgs);
+ return basicSetGroup((LUWPartitionGroup)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__CONTAINERS:
+ return ((InternalEList)getContainers()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL:
+ if (bufferPool != null)
+ msgs = ((InternalEObject)bufferPool).eInverseRemove(this, LUWPackage.LUW_BUFFER_POOL__TABLE_SPACES, LUWBufferPool.class, msgs);
+ return basicSetBufferPool((LUWBufferPool)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES:
+ return ((InternalEList)getIndexDataTables()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES:
+ return ((InternalEList)getLOBDataTables()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES:
+ return ((InternalEList)getRegularDataTables()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__DATABASE:
+ if (database != null)
+ msgs = ((InternalEObject)database).eInverseRemove(this, LUWPackage.LUW_DATABASE__TABLESPACES, LUWDatabase.class, msgs);
+ return basicSetDatabase((LUWDatabase)otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION:
+ return ((InternalEList)getLOBDataPartition()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION:
+ return ((InternalEList)getRegularDataPartition()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__INDEXES:
+ return ((InternalEList)getIndexes()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION:
+ return ((InternalEList)getIndexDataPartition()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP:
+ if (storageGroup != null)
+ msgs = ((InternalEObject)storageGroup).eInverseRemove(this, LUWPackage.LUW_STORAGE_GROUP__TABLE_SPACES, LUWStorageGroup.class, msgs);
+ return basicSetStorageGroup((LUWStorageGroup)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES:
+ return ((InternalEList)getTemporaryStorageTables()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__GROUP:
+ return basicSetGroup(null, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__CONTAINERS:
+ return ((InternalEList)getContainers()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL:
+ return basicSetBufferPool(null, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES:
+ return ((InternalEList)getIndexDataTables()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES:
+ return ((InternalEList)getLOBDataTables()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES:
+ return ((InternalEList)getRegularDataTables()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__DATABASE:
+ return basicSetDatabase(null, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION:
+ return ((InternalEList)getLOBDataPartition()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION:
+ return ((InternalEList)getRegularDataPartition()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__INDEXES:
+ return ((InternalEList)getIndexes()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION:
+ return ((InternalEList)getIndexDataPartition()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP:
+ return basicSetStorageGroup(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES:
+ return getTemporaryStorageTables();
+ case LUWPackage.LUW_TABLE_SPACE__TABLESPACE_TYPE:
+ return getTablespaceType();
+ case LUWPackage.LUW_TABLE_SPACE__MANAGEMENT_TYPE:
+ return getManagementType();
+ case LUWPackage.LUW_TABLE_SPACE__EXTENT_SIZE:
+ return new Integer(getExtentSize());
+ case LUWPackage.LUW_TABLE_SPACE__PRE_FETCH_SIZE:
+ return new Integer(getPreFetchSize());
+ case LUWPackage.LUW_TABLE_SPACE__OVERHEAD:
+ return new Double(getOverhead());
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER_RATE:
+ return new Double(getTransferRate());
+ case LUWPackage.LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON:
+ return isRecoverDroppedTableOn() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE_SPACE__PAGE_SIZE:
+ return getPageSize();
+ case LUWPackage.LUW_TABLE_SPACE__SIZE:
+ return new Long(getSize());
+ case LUWPackage.LUW_TABLE_SPACE__AUTO_RESIZE:
+ return isAutoResize() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE:
+ return new Long(getInitialSize());
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE:
+ return new Long(getIncreaseSize());
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE:
+ return new Long(getMaximumSize());
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE_UNIT:
+ return getInitialSizeUnit();
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT:
+ return getMaximumSizeUnit();
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE_UNIT:
+ return getIncreaseSizeUnit();
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_PERCENT:
+ return new Integer(getIncreasePercent());
+ case LUWPackage.LUW_TABLE_SPACE__FILE_SYSTEM_CACHING:
+ return getFileSystemCaching();
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_SEEK_TIME:
+ return new Double(getAverageSeekTime());
+ case LUWPackage.LUW_TABLE_SPACE__ROTATION_SPEED:
+ return new Integer(getRotationSpeed());
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER:
+ return new Double(getTransfer());
+ case LUWPackage.LUW_TABLE_SPACE__SYSTEM_TYPE:
+ return getSystemType();
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE:
+ return getAverageTableSize();
+ case LUWPackage.LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT:
+ return new Integer(getExternalContainerCount());
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_OVERHEAD:
+ return isInheritOverhead() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_TRANSFERATE:
+ return isInheritTransferate() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE_SPACE__REBALANCE:
+ return isRebalance() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE_SPACE__DATA_TAG:
+ return getDataTag();
+ case LUWPackage.LUW_TABLE_SPACE__SUSPEND_REBALANCE:
+ return isSuspendRebalance() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE_SPACE__RESUME_REBALANCE:
+ return isResumeRebalance() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_TABLE_SPACE__GROUP:
+ if (resolve) return getGroup();
+ return basicGetGroup();
+ case LUWPackage.LUW_TABLE_SPACE__CONTAINERS:
+ return getContainers();
+ case LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL:
+ if (resolve) return getBufferPool();
+ return basicGetBufferPool();
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES:
+ return getIndexDataTables();
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES:
+ return getLOBDataTables();
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES:
+ return getRegularDataTables();
+ case LUWPackage.LUW_TABLE_SPACE__DATABASE:
+ if (resolve) return getDatabase();
+ return basicGetDatabase();
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION:
+ return getLOBDataPartition();
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION:
+ return getRegularDataPartition();
+ case LUWPackage.LUW_TABLE_SPACE__INDEXES:
+ return getIndexes();
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION:
+ return getIndexDataPartition();
+ case LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP:
+ if (resolve) return getStorageGroup();
+ return basicGetStorageGroup();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES:
+ getTemporaryStorageTables().clear();
+ getTemporaryStorageTables().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__TABLESPACE_TYPE:
+ setTablespaceType((TableSpaceType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__MANAGEMENT_TYPE:
+ setManagementType((ManagementType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__EXTENT_SIZE:
+ setExtentSize(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__PRE_FETCH_SIZE:
+ setPreFetchSize(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__OVERHEAD:
+ setOverhead(((Double)newValue).doubleValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER_RATE:
+ setTransferRate(((Double)newValue).doubleValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON:
+ setRecoverDroppedTableOn(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__PAGE_SIZE:
+ setPageSize((PageSizeType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__SIZE:
+ setSize(((Long)newValue).longValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__AUTO_RESIZE:
+ setAutoResize(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE:
+ setInitialSize(((Long)newValue).longValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE:
+ setIncreaseSize(((Long)newValue).longValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE:
+ setMaximumSize(((Long)newValue).longValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE_UNIT:
+ setInitialSizeUnit((UnitType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT:
+ setMaximumSizeUnit((UnitType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE_UNIT:
+ setIncreaseSizeUnit((UnitType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_PERCENT:
+ setIncreasePercent(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__FILE_SYSTEM_CACHING:
+ setFileSystemCaching((FileSystemCachingType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_SEEK_TIME:
+ setAverageSeekTime(((Double)newValue).doubleValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__ROTATION_SPEED:
+ setRotationSpeed(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER:
+ setTransfer(((Double)newValue).doubleValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__SYSTEM_TYPE:
+ setSystemType((SystemType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE:
+ setAverageTableSize((AverageTableSizeType)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT:
+ setExternalContainerCount(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_OVERHEAD:
+ setInheritOverhead(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_TRANSFERATE:
+ setInheritTransferate(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__REBALANCE:
+ setRebalance(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__DATA_TAG:
+ setDataTag((String)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__SUSPEND_REBALANCE:
+ setSuspendRebalance(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__RESUME_REBALANCE:
+ setResumeRebalance(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__GROUP:
+ setGroup((LUWPartitionGroup)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__CONTAINERS:
+ getContainers().clear();
+ getContainers().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL:
+ setBufferPool((LUWBufferPool)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES:
+ getIndexDataTables().clear();
+ getIndexDataTables().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES:
+ getLOBDataTables().clear();
+ getLOBDataTables().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES:
+ getRegularDataTables().clear();
+ getRegularDataTables().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__DATABASE:
+ setDatabase((LUWDatabase)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION:
+ getLOBDataPartition().clear();
+ getLOBDataPartition().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION:
+ getRegularDataPartition().clear();
+ getRegularDataPartition().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INDEXES:
+ getIndexes().clear();
+ getIndexes().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION:
+ getIndexDataPartition().clear();
+ getIndexDataPartition().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP:
+ setStorageGroup((LUWStorageGroup)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES:
+ getTemporaryStorageTables().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__TABLESPACE_TYPE:
+ setTablespaceType(TABLESPACE_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__MANAGEMENT_TYPE:
+ setManagementType(MANAGEMENT_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__EXTENT_SIZE:
+ setExtentSize(EXTENT_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__PRE_FETCH_SIZE:
+ setPreFetchSize(PRE_FETCH_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__OVERHEAD:
+ setOverhead(OVERHEAD_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER_RATE:
+ setTransferRate(TRANSFER_RATE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON:
+ setRecoverDroppedTableOn(RECOVER_DROPPED_TABLE_ON_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__PAGE_SIZE:
+ setPageSize(PAGE_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__SIZE:
+ setSize(SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__AUTO_RESIZE:
+ setAutoResize(AUTO_RESIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE:
+ setInitialSize(INITIAL_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE:
+ setIncreaseSize(INCREASE_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE:
+ setMaximumSize(MAXIMUM_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE_UNIT:
+ setInitialSizeUnit(INITIAL_SIZE_UNIT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT:
+ setMaximumSizeUnit(MAXIMUM_SIZE_UNIT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE_UNIT:
+ setIncreaseSizeUnit(INCREASE_SIZE_UNIT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_PERCENT:
+ setIncreasePercent(INCREASE_PERCENT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__FILE_SYSTEM_CACHING:
+ setFileSystemCaching(FILE_SYSTEM_CACHING_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_SEEK_TIME:
+ setAverageSeekTime(AVERAGE_SEEK_TIME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__ROTATION_SPEED:
+ setRotationSpeed(ROTATION_SPEED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER:
+ setTransfer(TRANSFER_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__SYSTEM_TYPE:
+ setSystemType(SYSTEM_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE:
+ setAverageTableSize(AVERAGE_TABLE_SIZE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT:
+ setExternalContainerCount(EXTERNAL_CONTAINER_COUNT_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_OVERHEAD:
+ setInheritOverhead(INHERIT_OVERHEAD_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_TRANSFERATE:
+ setInheritTransferate(INHERIT_TRANSFERATE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__REBALANCE:
+ setRebalance(REBALANCE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__DATA_TAG:
+ setDataTag(DATA_TAG_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__SUSPEND_REBALANCE:
+ setSuspendRebalance(SUSPEND_REBALANCE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__RESUME_REBALANCE:
+ setResumeRebalance(RESUME_REBALANCE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__GROUP:
+ setGroup((LUWPartitionGroup)null);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__CONTAINERS:
+ getContainers().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL:
+ setBufferPool((LUWBufferPool)null);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES:
+ getIndexDataTables().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES:
+ getLOBDataTables().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES:
+ getRegularDataTables().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__DATABASE:
+ setDatabase((LUWDatabase)null);
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION:
+ getLOBDataPartition().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION:
+ getRegularDataPartition().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INDEXES:
+ getIndexes().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION:
+ getIndexDataPartition().clear();
+ return;
+ case LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP:
+ setStorageGroup((LUWStorageGroup)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES:
+ return temporaryStorageTables != null && !temporaryStorageTables.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__TABLESPACE_TYPE:
+ return tablespaceType != TABLESPACE_TYPE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__MANAGEMENT_TYPE:
+ return managementType != MANAGEMENT_TYPE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__EXTENT_SIZE:
+ return extentSize != EXTENT_SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__PRE_FETCH_SIZE:
+ return preFetchSize != PRE_FETCH_SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__OVERHEAD:
+ return overhead != OVERHEAD_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER_RATE:
+ return transferRate != TRANSFER_RATE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__RECOVER_DROPPED_TABLE_ON:
+ return recoverDroppedTableOn != RECOVER_DROPPED_TABLE_ON_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__PAGE_SIZE:
+ return pageSize != PAGE_SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__SIZE:
+ return size != SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__AUTO_RESIZE:
+ return autoResize != AUTO_RESIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE:
+ return initialSize != INITIAL_SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE:
+ return increaseSize != INCREASE_SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE:
+ return maximumSize != MAXIMUM_SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__INITIAL_SIZE_UNIT:
+ return initialSizeUnit != INITIAL_SIZE_UNIT_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__MAXIMUM_SIZE_UNIT:
+ return maximumSizeUnit != MAXIMUM_SIZE_UNIT_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_SIZE_UNIT:
+ return increaseSizeUnit != INCREASE_SIZE_UNIT_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__INCREASE_PERCENT:
+ return increasePercent != INCREASE_PERCENT_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__FILE_SYSTEM_CACHING:
+ return fileSystemCaching != FILE_SYSTEM_CACHING_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_SEEK_TIME:
+ return averageSeekTime != AVERAGE_SEEK_TIME_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__ROTATION_SPEED:
+ return rotationSpeed != ROTATION_SPEED_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__TRANSFER:
+ return transfer != TRANSFER_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__SYSTEM_TYPE:
+ return systemType != SYSTEM_TYPE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__AVERAGE_TABLE_SIZE:
+ return averageTableSize != AVERAGE_TABLE_SIZE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__EXTERNAL_CONTAINER_COUNT:
+ return externalContainerCount != EXTERNAL_CONTAINER_COUNT_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_OVERHEAD:
+ return inheritOverhead != INHERIT_OVERHEAD_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__INHERIT_TRANSFERATE:
+ return inheritTransferate != INHERIT_TRANSFERATE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__REBALANCE:
+ return rebalance != REBALANCE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__DATA_TAG:
+ return DATA_TAG_EDEFAULT == null ? dataTag != null : !DATA_TAG_EDEFAULT.equals(dataTag);
+ case LUWPackage.LUW_TABLE_SPACE__SUSPEND_REBALANCE:
+ return suspendRebalance != SUSPEND_REBALANCE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__RESUME_REBALANCE:
+ return resumeRebalance != RESUME_REBALANCE_EDEFAULT;
+ case LUWPackage.LUW_TABLE_SPACE__GROUP:
+ return group != null;
+ case LUWPackage.LUW_TABLE_SPACE__CONTAINERS:
+ return containers != null && !containers.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__BUFFER_POOL:
+ return bufferPool != null;
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_TABLES:
+ return indexDataTables != null && !indexDataTables.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_TABLES:
+ return lobDataTables != null && !lobDataTables.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_TABLES:
+ return regularDataTables != null && !regularDataTables.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__DATABASE:
+ return database != null;
+ case LUWPackage.LUW_TABLE_SPACE__LOB_DATA_PARTITION:
+ return lobDataPartition != null && !lobDataPartition.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__REGULAR_DATA_PARTITION:
+ return regularDataPartition != null && !regularDataPartition.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__INDEXES:
+ return indexes != null && !indexes.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__INDEX_DATA_PARTITION:
+ return indexDataPartition != null && !indexDataPartition.isEmpty();
+ case LUWPackage.LUW_TABLE_SPACE__STORAGE_GROUP:
+ return storageGroup != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (tablespaceType: "); //$NON-NLS-1$
+ result.append(tablespaceType);
+ result.append(", managementType: "); //$NON-NLS-1$
+ result.append(managementType);
+ result.append(", extentSize: "); //$NON-NLS-1$
+ result.append(extentSize);
+ result.append(", preFetchSize: "); //$NON-NLS-1$
+ result.append(preFetchSize);
+ result.append(", overhead: "); //$NON-NLS-1$
+ result.append(overhead);
+ result.append(", transferRate: "); //$NON-NLS-1$
+ result.append(transferRate);
+ result.append(", recoverDroppedTableOn: "); //$NON-NLS-1$
+ result.append(recoverDroppedTableOn);
+ result.append(", pageSize: "); //$NON-NLS-1$
+ result.append(pageSize);
+ result.append(", size: "); //$NON-NLS-1$
+ result.append(size);
+ result.append(", autoResize: "); //$NON-NLS-1$
+ result.append(autoResize);
+ result.append(", initialSize: "); //$NON-NLS-1$
+ result.append(initialSize);
+ result.append(", increaseSize: "); //$NON-NLS-1$
+ result.append(increaseSize);
+ result.append(", maximumSize: "); //$NON-NLS-1$
+ result.append(maximumSize);
+ result.append(", initialSizeUnit: "); //$NON-NLS-1$
+ result.append(initialSizeUnit);
+ result.append(", maximumSizeUnit: "); //$NON-NLS-1$
+ result.append(maximumSizeUnit);
+ result.append(", increaseSizeUnit: "); //$NON-NLS-1$
+ result.append(increaseSizeUnit);
+ result.append(", increasePercent: "); //$NON-NLS-1$
+ result.append(increasePercent);
+ result.append(", fileSystemCaching: "); //$NON-NLS-1$
+ result.append(fileSystemCaching);
+ result.append(", averageSeekTime: "); //$NON-NLS-1$
+ result.append(averageSeekTime);
+ result.append(", rotationSpeed: "); //$NON-NLS-1$
+ result.append(rotationSpeed);
+ result.append(", transfer: "); //$NON-NLS-1$
+ result.append(transfer);
+ result.append(", systemType: "); //$NON-NLS-1$
+ result.append(systemType);
+ result.append(", averageTableSize: "); //$NON-NLS-1$
+ result.append(averageTableSize);
+ result.append(", externalContainerCount: "); //$NON-NLS-1$
+ result.append(externalContainerCount);
+ result.append(", inheritOverhead: "); //$NON-NLS-1$
+ result.append(inheritOverhead);
+ result.append(", inheritTransferate: "); //$NON-NLS-1$
+ result.append(inheritTransferate);
+ result.append(", rebalance: "); //$NON-NLS-1$
+ result.append(rebalance);
+ result.append(", dataTag: "); //$NON-NLS-1$
+ result.append(dataTag);
+ result.append(", suspendRebalance: "); //$NON-NLS-1$
+ result.append(suspendRebalance);
+ result.append(", resumeRebalance: "); //$NON-NLS-1$
+ result.append(resumeRebalance);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWTableSpaceImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTemporaryStorageTableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTemporaryStorageTableImpl.java
new file mode 100644
index 0000000..ac45bb5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTemporaryStorageTableImpl.java
@@ -0,0 +1,278 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Storage Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryStorageTableImpl#getPartitionKey <em>Partition Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryStorageTableImpl#getUserTemporaryTableSpace <em>User Temporary Table Space</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWTemporaryStorageTableImpl extends EObjectImpl implements LUWTemporaryStorageTable {
+ /**
+ * The cached value of the '{@link #getPartitionKey() <em>Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionKey()
+ * @generated
+ * @ordered
+ */
+ protected LUWPartitionKey partitionKey;
+
+ /**
+ * The cached value of the '{@link #getUserTemporaryTableSpace() <em>User Temporary Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUserTemporaryTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace userTemporaryTableSpace;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWTemporaryStorageTableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_TEMPORARY_STORAGE_TABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionKey getPartitionKey() {
+ return partitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPartitionKey(LUWPartitionKey newPartitionKey, NotificationChain msgs) {
+ LUWPartitionKey oldPartitionKey = partitionKey;
+ partitionKey = newPartitionKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY, oldPartitionKey, newPartitionKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitionKey(LUWPartitionKey newPartitionKey) {
+ if (newPartitionKey != partitionKey) {
+ NotificationChain msgs = null;
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE, LUWPartitionKey.class, msgs);
+ if (newPartitionKey != null)
+ msgs = ((InternalEObject)newPartitionKey).eInverseAdd(this, LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE, LUWPartitionKey.class, msgs);
+ msgs = basicSetPartitionKey(newPartitionKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY, newPartitionKey, newPartitionKey));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getUserTemporaryTableSpace() {
+ if (userTemporaryTableSpace != null && userTemporaryTableSpace.eIsProxy()) {
+ InternalEObject oldUserTemporaryTableSpace = (InternalEObject)userTemporaryTableSpace;
+ userTemporaryTableSpace = (LUWTableSpace)eResolveProxy(oldUserTemporaryTableSpace);
+ if (userTemporaryTableSpace != oldUserTemporaryTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE, oldUserTemporaryTableSpace, userTemporaryTableSpace));
+ }
+ }
+ return userTemporaryTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetUserTemporaryTableSpace() {
+ return userTemporaryTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetUserTemporaryTableSpace(LUWTableSpace newUserTemporaryTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldUserTemporaryTableSpace = userTemporaryTableSpace;
+ userTemporaryTableSpace = newUserTemporaryTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE, oldUserTemporaryTableSpace, newUserTemporaryTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUserTemporaryTableSpace(LUWTableSpace newUserTemporaryTableSpace) {
+ if (newUserTemporaryTableSpace != userTemporaryTableSpace) {
+ NotificationChain msgs = null;
+ if (userTemporaryTableSpace != null)
+ msgs = ((InternalEObject)userTemporaryTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES, LUWTableSpace.class, msgs);
+ if (newUserTemporaryTableSpace != null)
+ msgs = ((InternalEObject)newUserTemporaryTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetUserTemporaryTableSpace(newUserTemporaryTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE, newUserTemporaryTableSpace, newUserTemporaryTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY:
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY, null, msgs);
+ return basicSetPartitionKey((LUWPartitionKey)otherEnd, msgs);
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ if (userTemporaryTableSpace != null)
+ msgs = ((InternalEObject)userTemporaryTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES, LUWTableSpace.class, msgs);
+ return basicSetUserTemporaryTableSpace((LUWTableSpace)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY:
+ return basicSetPartitionKey(null, msgs);
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ return basicSetUserTemporaryTableSpace(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY:
+ return getPartitionKey();
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ if (resolve) return getUserTemporaryTableSpace();
+ return basicGetUserTemporaryTableSpace();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)newValue);
+ return;
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ setUserTemporaryTableSpace((LUWTableSpace)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)null);
+ return;
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ setUserTemporaryTableSpace((LUWTableSpace)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY:
+ return partitionKey != null;
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ return userTemporaryTableSpace != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //LUWTemporaryStorageTableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTemporaryTableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTemporaryTableImpl.java
new file mode 100644
index 0000000..0b96d7d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTemporaryTableImpl.java
@@ -0,0 +1,442 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPartitionKey;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTableSpace;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryStorageTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTable;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTemporaryTableLoggingOption;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.TemporaryTableImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Temporary Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl#getPartitionKey <em>Partition Key</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl#getUserTemporaryTableSpace <em>User Temporary Table Space</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl#getTable <em>Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTemporaryTableImpl#getLogOption <em>Log Option</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWTemporaryTableImpl extends TemporaryTableImpl implements LUWTemporaryTable {
+ /**
+ * The cached value of the '{@link #getPartitionKey() <em>Partition Key</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPartitionKey()
+ * @generated
+ * @ordered
+ */
+ protected LUWPartitionKey partitionKey;
+
+ /**
+ * The cached value of the '{@link #getUserTemporaryTableSpace() <em>User Temporary Table Space</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUserTemporaryTableSpace()
+ * @generated
+ * @ordered
+ */
+ protected LUWTableSpace userTemporaryTableSpace;
+
+ /**
+ * The cached value of the '{@link #getTable() <em>Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTable()
+ * @generated
+ * @ordered
+ */
+ protected Table table;
+
+ /**
+ * The default value of the '{@link #getLogOption() <em>Log Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogOption()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWTemporaryTableLoggingOption LOG_OPTION_EDEFAULT = LUWTemporaryTableLoggingOption.NOT_LOGGED_DELETE_ROWS_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getLogOption() <em>Log Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLogOption()
+ * @generated
+ * @ordered
+ */
+ protected LUWTemporaryTableLoggingOption logOption = LOG_OPTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWTemporaryTableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_TEMPORARY_TABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWPartitionKey getPartitionKey() {
+ return partitionKey;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPartitionKey(LUWPartitionKey newPartitionKey, NotificationChain msgs) {
+ LUWPartitionKey oldPartitionKey = partitionKey;
+ partitionKey = newPartitionKey;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY, oldPartitionKey, newPartitionKey);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitionKey(LUWPartitionKey newPartitionKey) {
+ if (newPartitionKey != partitionKey) {
+ NotificationChain msgs = null;
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE, LUWPartitionKey.class, msgs);
+ if (newPartitionKey != null)
+ msgs = ((InternalEObject)newPartitionKey).eInverseAdd(this, LUWPackage.LUW_PARTITION_KEY__TEMPORARY_STORAGE_TABLE, LUWPartitionKey.class, msgs);
+ msgs = basicSetPartitionKey(newPartitionKey, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY, newPartitionKey, newPartitionKey));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace getUserTemporaryTableSpace() {
+ if (userTemporaryTableSpace != null && userTemporaryTableSpace.eIsProxy()) {
+ InternalEObject oldUserTemporaryTableSpace = (InternalEObject)userTemporaryTableSpace;
+ userTemporaryTableSpace = (LUWTableSpace)eResolveProxy(oldUserTemporaryTableSpace);
+ if (userTemporaryTableSpace != oldUserTemporaryTableSpace) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE, oldUserTemporaryTableSpace, userTemporaryTableSpace));
+ }
+ }
+ return userTemporaryTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTableSpace basicGetUserTemporaryTableSpace() {
+ return userTemporaryTableSpace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetUserTemporaryTableSpace(LUWTableSpace newUserTemporaryTableSpace, NotificationChain msgs) {
+ LUWTableSpace oldUserTemporaryTableSpace = userTemporaryTableSpace;
+ userTemporaryTableSpace = newUserTemporaryTableSpace;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE, oldUserTemporaryTableSpace, newUserTemporaryTableSpace);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUserTemporaryTableSpace(LUWTableSpace newUserTemporaryTableSpace) {
+ if (newUserTemporaryTableSpace != userTemporaryTableSpace) {
+ NotificationChain msgs = null;
+ if (userTemporaryTableSpace != null)
+ msgs = ((InternalEObject)userTemporaryTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES, LUWTableSpace.class, msgs);
+ if (newUserTemporaryTableSpace != null)
+ msgs = ((InternalEObject)newUserTemporaryTableSpace).eInverseAdd(this, LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES, LUWTableSpace.class, msgs);
+ msgs = basicSetUserTemporaryTableSpace(newUserTemporaryTableSpace, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE, newUserTemporaryTableSpace, newUserTemporaryTableSpace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Table getTable() {
+ if (table != null && table.eIsProxy()) {
+ InternalEObject oldTable = (InternalEObject)table;
+ table = (Table)eResolveProxy(oldTable);
+ if (table != oldTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TEMPORARY_TABLE__TABLE, oldTable, table));
+ }
+ }
+ return table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Table basicGetTable() {
+ return table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(Table newTable) {
+ Table oldTable = table;
+ table = newTable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_TABLE__TABLE, oldTable, table));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWTemporaryTableLoggingOption getLogOption() {
+ return logOption;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLogOption(LUWTemporaryTableLoggingOption newLogOption) {
+ LUWTemporaryTableLoggingOption oldLogOption = logOption;
+ logOption = newLogOption == null ? LOG_OPTION_EDEFAULT : newLogOption;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TEMPORARY_TABLE__LOG_OPTION, oldLogOption, logOption));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY:
+ if (partitionKey != null)
+ msgs = ((InternalEObject)partitionKey).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY, null, msgs);
+ return basicSetPartitionKey((LUWPartitionKey)otherEnd, msgs);
+ case LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ if (userTemporaryTableSpace != null)
+ msgs = ((InternalEObject)userTemporaryTableSpace).eInverseRemove(this, LUWPackage.LUW_TABLE_SPACE__TEMPORARY_STORAGE_TABLES, LUWTableSpace.class, msgs);
+ return basicSetUserTemporaryTableSpace((LUWTableSpace)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY:
+ return basicSetPartitionKey(null, msgs);
+ case LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ return basicSetUserTemporaryTableSpace(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY:
+ return getPartitionKey();
+ case LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ if (resolve) return getUserTemporaryTableSpace();
+ return basicGetUserTemporaryTableSpace();
+ case LUWPackage.LUW_TEMPORARY_TABLE__TABLE:
+ if (resolve) return getTable();
+ return basicGetTable();
+ case LUWPackage.LUW_TEMPORARY_TABLE__LOG_OPTION:
+ return getLogOption();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)newValue);
+ return;
+ case LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ setUserTemporaryTableSpace((LUWTableSpace)newValue);
+ return;
+ case LUWPackage.LUW_TEMPORARY_TABLE__TABLE:
+ setTable((Table)newValue);
+ return;
+ case LUWPackage.LUW_TEMPORARY_TABLE__LOG_OPTION:
+ setLogOption((LUWTemporaryTableLoggingOption)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY:
+ setPartitionKey((LUWPartitionKey)null);
+ return;
+ case LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ setUserTemporaryTableSpace((LUWTableSpace)null);
+ return;
+ case LUWPackage.LUW_TEMPORARY_TABLE__TABLE:
+ setTable((Table)null);
+ return;
+ case LUWPackage.LUW_TEMPORARY_TABLE__LOG_OPTION:
+ setLogOption(LOG_OPTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY:
+ return partitionKey != null;
+ case LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE:
+ return userTemporaryTableSpace != null;
+ case LUWPackage.LUW_TEMPORARY_TABLE__TABLE:
+ return table != null;
+ case LUWPackage.LUW_TEMPORARY_TABLE__LOG_OPTION:
+ return logOption != LOG_OPTION_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == LUWTemporaryStorageTable.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY: return LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY;
+ case LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE: return LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == LUWTemporaryStorageTable.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__PARTITION_KEY: return LUWPackage.LUW_TEMPORARY_TABLE__PARTITION_KEY;
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE__USER_TEMPORARY_TABLE_SPACE: return LUWPackage.LUW_TEMPORARY_TABLE__USER_TEMPORARY_TABLE_SPACE;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (logOption: "); //$NON-NLS-1$
+ result.append(logOption);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWTemporaryTableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTypeMappingImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTypeMappingImpl.java
new file mode 100644
index 0000000..5b6d80a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWTypeMappingImpl.java
@@ -0,0 +1,445 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Date;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWTypeMapping;
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl#getServerType <em>Server Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl#getServerVesion <em>Server Vesion</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl#getServerName <em>Server Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl#getCreationTime <em>Creation Time</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl#getLocalType <em>Local Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWTypeMappingImpl#getRemoteType <em>Remote Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWTypeMappingImpl extends SQLObjectImpl implements LUWTypeMapping {
+ /**
+ * The default value of the '{@link #getServerType() <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerType()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerType() <em>Server Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerType()
+ * @generated
+ * @ordered
+ */
+ protected String serverType = SERVER_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getServerVesion() <em>Server Vesion</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerVesion()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_VESION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerVesion() <em>Server Vesion</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerVesion()
+ * @generated
+ * @ordered
+ */
+ protected String serverVesion = SERVER_VESION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getServerName() <em>Server Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerName()
+ * @generated
+ * @ordered
+ */
+ protected static final String SERVER_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getServerName() <em>Server Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServerName()
+ * @generated
+ * @ordered
+ */
+ protected String serverName = SERVER_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreationTime() <em>Creation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreationTime()
+ * @generated
+ * @ordered
+ */
+ protected static final Date CREATION_TIME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreationTime() <em>Creation Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreationTime()
+ * @generated
+ * @ordered
+ */
+ protected Date creationTime = CREATION_TIME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLocalType() <em>Local Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalType()
+ * @generated
+ * @ordered
+ */
+ protected PredefinedDataType localType;
+
+ /**
+ * The cached value of the '{@link #getRemoteType() <em>Remote Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteType()
+ * @generated
+ * @ordered
+ */
+ protected PredefinedDataType remoteType;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWTypeMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_TYPE_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerType() {
+ return serverType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerType(String newServerType) {
+ String oldServerType = serverType;
+ serverType = newServerType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TYPE_MAPPING__SERVER_TYPE, oldServerType, serverType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerVesion() {
+ return serverVesion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerVesion(String newServerVesion) {
+ String oldServerVesion = serverVesion;
+ serverVesion = newServerVesion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TYPE_MAPPING__SERVER_VESION, oldServerVesion, serverVesion));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getServerName() {
+ return serverName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServerName(String newServerName) {
+ String oldServerName = serverName;
+ serverName = newServerName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TYPE_MAPPING__SERVER_NAME, oldServerName, serverName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Date getCreationTime() {
+ return creationTime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreationTime(Date newCreationTime) {
+ Date oldCreationTime = creationTime;
+ creationTime = newCreationTime;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TYPE_MAPPING__CREATION_TIME, oldCreationTime, creationTime));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredefinedDataType getLocalType() {
+ if (localType != null && localType.eIsProxy()) {
+ InternalEObject oldLocalType = (InternalEObject)localType;
+ localType = (PredefinedDataType)eResolveProxy(oldLocalType);
+ if (localType != oldLocalType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TYPE_MAPPING__LOCAL_TYPE, oldLocalType, localType));
+ }
+ }
+ return localType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredefinedDataType basicGetLocalType() {
+ return localType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocalType(PredefinedDataType newLocalType) {
+ PredefinedDataType oldLocalType = localType;
+ localType = newLocalType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TYPE_MAPPING__LOCAL_TYPE, oldLocalType, localType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredefinedDataType getRemoteType() {
+ if (remoteType != null && remoteType.eIsProxy()) {
+ InternalEObject oldRemoteType = (InternalEObject)remoteType;
+ remoteType = (PredefinedDataType)eResolveProxy(oldRemoteType);
+ if (remoteType != oldRemoteType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_TYPE_MAPPING__REMOTE_TYPE, oldRemoteType, remoteType));
+ }
+ }
+ return remoteType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredefinedDataType basicGetRemoteType() {
+ return remoteType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteType(PredefinedDataType newRemoteType) {
+ PredefinedDataType oldRemoteType = remoteType;
+ remoteType = newRemoteType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_TYPE_MAPPING__REMOTE_TYPE, oldRemoteType, remoteType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_TYPE:
+ return getServerType();
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_VESION:
+ return getServerVesion();
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_NAME:
+ return getServerName();
+ case LUWPackage.LUW_TYPE_MAPPING__CREATION_TIME:
+ return getCreationTime();
+ case LUWPackage.LUW_TYPE_MAPPING__LOCAL_TYPE:
+ if (resolve) return getLocalType();
+ return basicGetLocalType();
+ case LUWPackage.LUW_TYPE_MAPPING__REMOTE_TYPE:
+ if (resolve) return getRemoteType();
+ return basicGetRemoteType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_TYPE:
+ setServerType((String)newValue);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_VESION:
+ setServerVesion((String)newValue);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_NAME:
+ setServerName((String)newValue);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__CREATION_TIME:
+ setCreationTime((Date)newValue);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__LOCAL_TYPE:
+ setLocalType((PredefinedDataType)newValue);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__REMOTE_TYPE:
+ setRemoteType((PredefinedDataType)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_TYPE:
+ setServerType(SERVER_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_VESION:
+ setServerVesion(SERVER_VESION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_NAME:
+ setServerName(SERVER_NAME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__CREATION_TIME:
+ setCreationTime(CREATION_TIME_EDEFAULT);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__LOCAL_TYPE:
+ setLocalType((PredefinedDataType)null);
+ return;
+ case LUWPackage.LUW_TYPE_MAPPING__REMOTE_TYPE:
+ setRemoteType((PredefinedDataType)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_TYPE:
+ return SERVER_TYPE_EDEFAULT == null ? serverType != null : !SERVER_TYPE_EDEFAULT.equals(serverType);
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_VESION:
+ return SERVER_VESION_EDEFAULT == null ? serverVesion != null : !SERVER_VESION_EDEFAULT.equals(serverVesion);
+ case LUWPackage.LUW_TYPE_MAPPING__SERVER_NAME:
+ return SERVER_NAME_EDEFAULT == null ? serverName != null : !SERVER_NAME_EDEFAULT.equals(serverName);
+ case LUWPackage.LUW_TYPE_MAPPING__CREATION_TIME:
+ return CREATION_TIME_EDEFAULT == null ? creationTime != null : !CREATION_TIME_EDEFAULT.equals(creationTime);
+ case LUWPackage.LUW_TYPE_MAPPING__LOCAL_TYPE:
+ return localType != null;
+ case LUWPackage.LUW_TYPE_MAPPING__REMOTE_TYPE:
+ return remoteType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (serverType: "); //$NON-NLS-1$
+ result.append(serverType);
+ result.append(", serverVesion: "); //$NON-NLS-1$
+ result.append(serverVesion);
+ result.append(", serverName: "); //$NON-NLS-1$
+ result.append(serverName);
+ result.append(", creationTime: "); //$NON-NLS-1$
+ result.append(creationTime);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWTypeMappingImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWUserMappingImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWUserMappingImpl.java
new file mode 100644
index 0000000..bc6708c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWUserMappingImpl.java
@@ -0,0 +1,299 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWUserMapping;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>User Mapping</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWUserMappingImpl#getLocalAuthId <em>Local Auth Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWUserMappingImpl#getServer <em>Server</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWUserMappingImpl#getOptions <em>Options</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWUserMappingImpl extends SQLObjectImpl implements LUWUserMapping {
+ /**
+ * The default value of the '{@link #getLocalAuthId() <em>Local Auth Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalAuthId()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOCAL_AUTH_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLocalAuthId() <em>Local Auth Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocalAuthId()
+ * @generated
+ * @ordered
+ */
+ protected String localAuthId = LOCAL_AUTH_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList options;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWUserMappingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_USER_MAPPING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLocalAuthId() {
+ return localAuthId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLocalAuthId(String newLocalAuthId) {
+ String oldLocalAuthId = localAuthId;
+ localAuthId = newLocalAuthId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_USER_MAPPING__LOCAL_AUTH_ID, oldLocalAuthId, localAuthId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWServer getServer() {
+ if (eContainerFeatureID() != LUWPackage.LUW_USER_MAPPING__SERVER) return null;
+ return (LUWServer)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetServer(LUWServer newServer, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newServer, LUWPackage.LUW_USER_MAPPING__SERVER, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setServer(LUWServer newServer) {
+ if (newServer != eInternalContainer() || (eContainerFeatureID() != LUWPackage.LUW_USER_MAPPING__SERVER && newServer != null)) {
+ if (EcoreUtil.isAncestor(this, newServer))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newServer != null)
+ msgs = ((InternalEObject)newServer).eInverseAdd(this, LUWPackage.LUW_SERVER__USER_MAPPINGS, LUWServer.class, msgs);
+ msgs = basicSetServer(newServer, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_USER_MAPPING__SERVER, newServer, newServer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getOptions() {
+ if (options == null) {
+ options = new EObjectContainmentEList(LUWOption.class, this, LUWPackage.LUW_USER_MAPPING__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_USER_MAPPING__SERVER:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetServer((LUWServer)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_USER_MAPPING__SERVER:
+ return basicSetServer(null, msgs);
+ case LUWPackage.LUW_USER_MAPPING__OPTIONS:
+ return ((InternalEList)getOptions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.LUW_USER_MAPPING__SERVER:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.LUW_SERVER__USER_MAPPINGS, LUWServer.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_USER_MAPPING__LOCAL_AUTH_ID:
+ return getLocalAuthId();
+ case LUWPackage.LUW_USER_MAPPING__SERVER:
+ return getServer();
+ case LUWPackage.LUW_USER_MAPPING__OPTIONS:
+ return getOptions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_USER_MAPPING__LOCAL_AUTH_ID:
+ setLocalAuthId((String)newValue);
+ return;
+ case LUWPackage.LUW_USER_MAPPING__SERVER:
+ setServer((LUWServer)newValue);
+ return;
+ case LUWPackage.LUW_USER_MAPPING__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_USER_MAPPING__LOCAL_AUTH_ID:
+ setLocalAuthId(LOCAL_AUTH_ID_EDEFAULT);
+ return;
+ case LUWPackage.LUW_USER_MAPPING__SERVER:
+ setServer((LUWServer)null);
+ return;
+ case LUWPackage.LUW_USER_MAPPING__OPTIONS:
+ getOptions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_USER_MAPPING__LOCAL_AUTH_ID:
+ return LOCAL_AUTH_ID_EDEFAULT == null ? localAuthId != null : !LOCAL_AUTH_ID_EDEFAULT.equals(localAuthId);
+ case LUWPackage.LUW_USER_MAPPING__SERVER:
+ return getServer() != null;
+ case LUWPackage.LUW_USER_MAPPING__OPTIONS:
+ return options != null && !options.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (localAuthId: "); //$NON-NLS-1$
+ result.append(localAuthId);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWUserMappingImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWViewImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWViewImpl.java
new file mode 100644
index 0000000..feb3cae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWViewImpl.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ViewImpl;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWView;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>View</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWViewImpl#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWViewImpl#isOptimizeQuery <em>Optimize Query</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LUWViewImpl extends DB2ViewImpl implements LUWView {
+ /**
+ * The default value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FEDERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected boolean federated = FEDERATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isOptimizeQuery() <em>Optimize Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOptimizeQuery()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean OPTIMIZE_QUERY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isOptimizeQuery() <em>Optimize Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOptimizeQuery()
+ * @generated
+ * @ordered
+ */
+ protected boolean optimizeQuery = OPTIMIZE_QUERY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWViewImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_VIEW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFederated() {
+ return federated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFederated(boolean newFederated) {
+ boolean oldFederated = federated;
+ federated = newFederated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_VIEW__FEDERATED, oldFederated, federated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOptimizeQuery() {
+ return optimizeQuery;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOptimizeQuery(boolean newOptimizeQuery) {
+ boolean oldOptimizeQuery = optimizeQuery;
+ optimizeQuery = newOptimizeQuery;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_VIEW__OPTIMIZE_QUERY, oldOptimizeQuery, optimizeQuery));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_VIEW__FEDERATED:
+ return isFederated() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_VIEW__OPTIMIZE_QUERY:
+ return isOptimizeQuery() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_VIEW__FEDERATED:
+ setFederated(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_VIEW__OPTIMIZE_QUERY:
+ setOptimizeQuery(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_VIEW__FEDERATED:
+ setFederated(FEDERATED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_VIEW__OPTIMIZE_QUERY:
+ setOptimizeQuery(OPTIMIZE_QUERY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_VIEW__FEDERATED:
+ return federated != FEDERATED_EDEFAULT;
+ case LUWPackage.LUW_VIEW__OPTIMIZE_QUERY:
+ return optimizeQuery != OPTIMIZE_QUERY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (federated: "); //$NON-NLS-1$
+ result.append(federated);
+ result.append(", optimizeQuery: "); //$NON-NLS-1$
+ result.append(optimizeQuery);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWViewImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWWrapperImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWWrapperImpl.java
new file mode 100644
index 0000000..15c7f92
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/LUWWrapperImpl.java
@@ -0,0 +1,610 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWDatabase;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWFederatedDataSource;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWOption;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWWrapper;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.WrapperType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Wrapper</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getLibrary <em>Library</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#isFenced <em>Fenced</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getWrapperType <em>Wrapper Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getDataSource <em>Data Source</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getDiscoveredLibraries <em>Discovered Libraries</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getServers <em>Servers</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getLUWDatabase <em>LUW Database</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.LUWWrapperImpl#getOptions <em>Options</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LUWWrapperImpl extends SQLObjectImpl implements LUWWrapper {
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLibrary() <em>Library</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLibrary()
+ * @generated
+ * @ordered
+ */
+ protected static final String LIBRARY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLibrary() <em>Library</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLibrary()
+ * @generated
+ * @ordered
+ */
+ protected String library = LIBRARY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFenced()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FENCED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFenced()
+ * @generated
+ * @ordered
+ */
+ protected boolean fenced = FENCED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getWrapperType() <em>Wrapper Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWrapperType()
+ * @generated
+ * @ordered
+ */
+ protected static final WrapperType WRAPPER_TYPE_EDEFAULT = WrapperType.RELATIONAL_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getWrapperType() <em>Wrapper Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWrapperType()
+ * @generated
+ * @ordered
+ */
+ protected WrapperType wrapperType = WRAPPER_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDataSource() <em>Data Source</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataSource()
+ * @generated
+ * @ordered
+ */
+ protected static final LUWFederatedDataSource DATA_SOURCE_EDEFAULT = LUWFederatedDataSource.DB2_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getDataSource() <em>Data Source</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataSource()
+ * @generated
+ * @ordered
+ */
+ protected LUWFederatedDataSource dataSource = DATA_SOURCE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getDiscoveredLibraries() <em>Discovered Libraries</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDiscoveredLibraries()
+ * @generated
+ * @ordered
+ */
+ protected EList discoveredLibraries;
+
+ /**
+ * The cached value of the '{@link #getServers() <em>Servers</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServers()
+ * @generated
+ * @ordered
+ */
+ protected EList servers;
+
+ /**
+ * The cached value of the '{@link #getLUWDatabase() <em>LUW Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLUWDatabase()
+ * @generated
+ * @ordered
+ */
+ protected LUWDatabase luwDatabase;
+
+ /**
+ * The cached value of the '{@link #getOptions() <em>Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList options;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWWrapperImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.LUW_WRAPPER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_WRAPPER__VERSION, oldVersion, version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLibrary() {
+ return library;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLibrary(String newLibrary) {
+ String oldLibrary = library;
+ library = newLibrary;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_WRAPPER__LIBRARY, oldLibrary, library));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFenced() {
+ return fenced;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFenced(boolean newFenced) {
+ boolean oldFenced = fenced;
+ fenced = newFenced;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_WRAPPER__FENCED, oldFenced, fenced));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WrapperType getWrapperType() {
+ return wrapperType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWrapperType(WrapperType newWrapperType) {
+ WrapperType oldWrapperType = wrapperType;
+ wrapperType = newWrapperType == null ? WRAPPER_TYPE_EDEFAULT : newWrapperType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_WRAPPER__WRAPPER_TYPE, oldWrapperType, wrapperType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWFederatedDataSource getDataSource() {
+ return dataSource;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataSource(LUWFederatedDataSource newDataSource) {
+ LUWFederatedDataSource oldDataSource = dataSource;
+ dataSource = newDataSource == null ? DATA_SOURCE_EDEFAULT : newDataSource;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_WRAPPER__DATA_SOURCE, oldDataSource, dataSource));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getDiscoveredLibraries() {
+ if (discoveredLibraries == null) {
+ discoveredLibraries = new EDataTypeUniqueEList(String.class, this, LUWPackage.LUW_WRAPPER__DISCOVERED_LIBRARIES);
+ }
+ return discoveredLibraries;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getServers() {
+ if (servers == null) {
+ servers = new EObjectWithInverseResolvingEList(LUWServer.class, this, LUWPackage.LUW_WRAPPER__SERVERS, LUWPackage.LUW_SERVER__WRAPPER);
+ }
+ return servers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase getLUWDatabase() {
+ if (luwDatabase != null && luwDatabase.eIsProxy()) {
+ InternalEObject oldLUWDatabase = (InternalEObject)luwDatabase;
+ luwDatabase = (LUWDatabase)eResolveProxy(oldLUWDatabase);
+ if (luwDatabase != oldLUWDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.LUW_WRAPPER__LUW_DATABASE, oldLUWDatabase, luwDatabase));
+ }
+ }
+ return luwDatabase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWDatabase basicGetLUWDatabase() {
+ return luwDatabase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWDatabase(LUWDatabase newLUWDatabase, NotificationChain msgs) {
+ LUWDatabase oldLUWDatabase = luwDatabase;
+ luwDatabase = newLUWDatabase;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_WRAPPER__LUW_DATABASE, oldLUWDatabase, newLUWDatabase);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWDatabase(LUWDatabase newLUWDatabase) {
+ if (newLUWDatabase != luwDatabase) {
+ NotificationChain msgs = null;
+ if (luwDatabase != null)
+ msgs = ((InternalEObject)luwDatabase).eInverseRemove(this, LUWPackage.LUW_DATABASE__WRAPPERS, LUWDatabase.class, msgs);
+ if (newLUWDatabase != null)
+ msgs = ((InternalEObject)newLUWDatabase).eInverseAdd(this, LUWPackage.LUW_DATABASE__WRAPPERS, LUWDatabase.class, msgs);
+ msgs = basicSetLUWDatabase(newLUWDatabase, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.LUW_WRAPPER__LUW_DATABASE, newLUWDatabase, newLUWDatabase));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getOptions() {
+ if (options == null) {
+ options = new EObjectContainmentEList(LUWOption.class, this, LUWPackage.LUW_WRAPPER__OPTIONS);
+ }
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_WRAPPER__SERVERS:
+ return ((InternalEList)getServers()).basicAdd(otherEnd, msgs);
+ case LUWPackage.LUW_WRAPPER__LUW_DATABASE:
+ if (luwDatabase != null)
+ msgs = ((InternalEObject)luwDatabase).eInverseRemove(this, LUWPackage.LUW_DATABASE__WRAPPERS, LUWDatabase.class, msgs);
+ return basicSetLUWDatabase((LUWDatabase)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.LUW_WRAPPER__SERVERS:
+ return ((InternalEList)getServers()).basicRemove(otherEnd, msgs);
+ case LUWPackage.LUW_WRAPPER__LUW_DATABASE:
+ return basicSetLUWDatabase(null, msgs);
+ case LUWPackage.LUW_WRAPPER__OPTIONS:
+ return ((InternalEList)getOptions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.LUW_WRAPPER__VERSION:
+ return getVersion();
+ case LUWPackage.LUW_WRAPPER__LIBRARY:
+ return getLibrary();
+ case LUWPackage.LUW_WRAPPER__FENCED:
+ return isFenced() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.LUW_WRAPPER__WRAPPER_TYPE:
+ return getWrapperType();
+ case LUWPackage.LUW_WRAPPER__DATA_SOURCE:
+ return getDataSource();
+ case LUWPackage.LUW_WRAPPER__DISCOVERED_LIBRARIES:
+ return getDiscoveredLibraries();
+ case LUWPackage.LUW_WRAPPER__SERVERS:
+ return getServers();
+ case LUWPackage.LUW_WRAPPER__LUW_DATABASE:
+ if (resolve) return getLUWDatabase();
+ return basicGetLUWDatabase();
+ case LUWPackage.LUW_WRAPPER__OPTIONS:
+ return getOptions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.LUW_WRAPPER__VERSION:
+ setVersion((String)newValue);
+ return;
+ case LUWPackage.LUW_WRAPPER__LIBRARY:
+ setLibrary((String)newValue);
+ return;
+ case LUWPackage.LUW_WRAPPER__FENCED:
+ setFenced(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.LUW_WRAPPER__WRAPPER_TYPE:
+ setWrapperType((WrapperType)newValue);
+ return;
+ case LUWPackage.LUW_WRAPPER__DATA_SOURCE:
+ setDataSource((LUWFederatedDataSource)newValue);
+ return;
+ case LUWPackage.LUW_WRAPPER__DISCOVERED_LIBRARIES:
+ getDiscoveredLibraries().clear();
+ getDiscoveredLibraries().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_WRAPPER__SERVERS:
+ getServers().clear();
+ getServers().addAll((Collection)newValue);
+ return;
+ case LUWPackage.LUW_WRAPPER__LUW_DATABASE:
+ setLUWDatabase((LUWDatabase)newValue);
+ return;
+ case LUWPackage.LUW_WRAPPER__OPTIONS:
+ getOptions().clear();
+ getOptions().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_WRAPPER__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case LUWPackage.LUW_WRAPPER__LIBRARY:
+ setLibrary(LIBRARY_EDEFAULT);
+ return;
+ case LUWPackage.LUW_WRAPPER__FENCED:
+ setFenced(FENCED_EDEFAULT);
+ return;
+ case LUWPackage.LUW_WRAPPER__WRAPPER_TYPE:
+ setWrapperType(WRAPPER_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_WRAPPER__DATA_SOURCE:
+ setDataSource(DATA_SOURCE_EDEFAULT);
+ return;
+ case LUWPackage.LUW_WRAPPER__DISCOVERED_LIBRARIES:
+ getDiscoveredLibraries().clear();
+ return;
+ case LUWPackage.LUW_WRAPPER__SERVERS:
+ getServers().clear();
+ return;
+ case LUWPackage.LUW_WRAPPER__LUW_DATABASE:
+ setLUWDatabase((LUWDatabase)null);
+ return;
+ case LUWPackage.LUW_WRAPPER__OPTIONS:
+ getOptions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.LUW_WRAPPER__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case LUWPackage.LUW_WRAPPER__LIBRARY:
+ return LIBRARY_EDEFAULT == null ? library != null : !LIBRARY_EDEFAULT.equals(library);
+ case LUWPackage.LUW_WRAPPER__FENCED:
+ return fenced != FENCED_EDEFAULT;
+ case LUWPackage.LUW_WRAPPER__WRAPPER_TYPE:
+ return wrapperType != WRAPPER_TYPE_EDEFAULT;
+ case LUWPackage.LUW_WRAPPER__DATA_SOURCE:
+ return dataSource != DATA_SOURCE_EDEFAULT;
+ case LUWPackage.LUW_WRAPPER__DISCOVERED_LIBRARIES:
+ return discoveredLibraries != null && !discoveredLibraries.isEmpty();
+ case LUWPackage.LUW_WRAPPER__SERVERS:
+ return servers != null && !servers.isEmpty();
+ case LUWPackage.LUW_WRAPPER__LUW_DATABASE:
+ return luwDatabase != null;
+ case LUWPackage.LUW_WRAPPER__OPTIONS:
+ return options != null && !options.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (version: "); //$NON-NLS-1$
+ result.append(version);
+ result.append(", library: "); //$NON-NLS-1$
+ result.append(library);
+ result.append(", fenced: "); //$NON-NLS-1$
+ result.append(fenced);
+ result.append(", wrapperType: "); //$NON-NLS-1$
+ result.append(wrapperType);
+ result.append(", dataSource: "); //$NON-NLS-1$
+ result.append(dataSource);
+ result.append(", DiscoveredLibraries: "); //$NON-NLS-1$
+ result.append(discoveredLibraries);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LUWWrapperImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/PLSQLPackageBodyImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/PLSQLPackageBodyImpl.java
new file mode 100644
index 0000000..46b9a12
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/PLSQLPackageBodyImpl.java
@@ -0,0 +1,193 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PLSQLPackageBodyImpl.java,v 1.1 2009/02/25 19:05:46 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody;
+
+import org.eclipse.datatools.modelbase.sql.routines.impl.SourceImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>PLSQL Package Body</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageBodyImpl#getPackage <em>Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PLSQLPackageBodyImpl extends SourceImpl implements PLSQLPackageBody {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PLSQLPackageBodyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.PLSQL_PACKAGE_BODY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PLSQLPackage getPackage() {
+ if (eContainerFeatureID() != LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE) return null;
+ return (PLSQLPackage)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPackage(PLSQLPackage newPackage, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newPackage, LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPackage(PLSQLPackage newPackage) {
+ if (newPackage != eInternalContainer() || (eContainerFeatureID() != LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE && newPackage != null)) {
+ if (EcoreUtil.isAncestor(this, newPackage))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newPackage != null)
+ msgs = ((InternalEObject)newPackage).eInverseAdd(this, LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY, PLSQLPackage.class, msgs);
+ msgs = basicSetPackage(newPackage, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE, newPackage, newPackage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetPackage((PLSQLPackage)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE:
+ return basicSetPackage(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE:
+ return eInternalContainer().eInverseRemove(this, LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY, PLSQLPackage.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE:
+ return getPackage();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE:
+ setPackage((PLSQLPackage)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE:
+ setPackage((PLSQLPackage)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE:
+ return getPackage() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //PLSQLPackageBodyImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/PLSQLPackageImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/PLSQLPackageImpl.java
new file mode 100644
index 0000000..9163312
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/PLSQLPackageImpl.java
@@ -0,0 +1,1823 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PLSQLPackageImpl.java,v 1.2 2009/03/06 22:38:09 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension;
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.PLSQLPackageBody;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.routines.impl.RoutineImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>PLSQL Package</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getSpecificName <em>Specific Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getLanguage <em>Language</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getParameterStyle <em>Parameter Style</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#isDeterministic <em>Deterministic</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getSqlDataAccess <em>Sql Data Access</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getCreationTS <em>Creation TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getLastAlteredTS <em>Last Altered TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getAuthorizationID <em>Authorization ID</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getSecurity <em>Security</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getExternalName <em>External Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getParameters <em>Parameters</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getSource <em>Source</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getFenced <em>Fenced</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getThreadsafe <em>Threadsafe</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#isDbInfo <em>Db Info</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#isImplicitSchema <em>Implicit Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getParmCcsid <em>Parm Ccsid</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getSpecialRegister <em>Special Register</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getChangeState <em>Change State</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getDebugId <em>Debug Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getProgramType <em>Program Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getOrigSchemaName <em>Orig Schema Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getOrigParmSig <em>Orig Parm Sig</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getExtendedOptions <em>Extended Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getRoutineExtensions <em>Routine Extensions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.PLSQLPackageImpl#getPackageBody <em>Package Body</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PLSQLPackageImpl extends LUWModuleImpl implements PLSQLPackage {
+ /**
+ * The default value of the '{@link #getSpecificName() <em>Specific Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecificName()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIFIC_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecificName() <em>Specific Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecificName()
+ * @generated
+ * @ordered
+ */
+ protected String specificName = SPECIFIC_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLanguage() <em>Language</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguage()
+ * @generated
+ * @ordered
+ */
+ protected static final String LANGUAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLanguage() <em>Language</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguage()
+ * @generated
+ * @ordered
+ */
+ protected String language = LANGUAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getParameterStyle() <em>Parameter Style</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameterStyle()
+ * @generated
+ * @ordered
+ */
+ protected static final String PARAMETER_STYLE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getParameterStyle() <em>Parameter Style</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameterStyle()
+ * @generated
+ * @ordered
+ */
+ protected String parameterStyle = PARAMETER_STYLE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDeterministic() <em>Deterministic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDeterministic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DETERMINISTIC_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDeterministic() <em>Deterministic</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDeterministic()
+ * @generated
+ * @ordered
+ */
+ protected boolean deterministic = DETERMINISTIC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSqlDataAccess() <em>Sql Data Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSqlDataAccess()
+ * @generated
+ * @ordered
+ */
+ protected static final DataAccess SQL_DATA_ACCESS_EDEFAULT = DataAccess.NO_SQL_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getSqlDataAccess() <em>Sql Data Access</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSqlDataAccess()
+ * @generated
+ * @ordered
+ */
+ protected DataAccess sqlDataAccess = SQL_DATA_ACCESS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreationTS() <em>Creation TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreationTS()
+ * @generated
+ * @ordered
+ */
+ protected static final String CREATION_TS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreationTS() <em>Creation TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreationTS()
+ * @generated
+ * @ordered
+ */
+ protected String creationTS = CREATION_TS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLastAlteredTS() <em>Last Altered TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastAlteredTS()
+ * @generated
+ * @ordered
+ */
+ protected static final String LAST_ALTERED_TS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLastAlteredTS() <em>Last Altered TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastAlteredTS()
+ * @generated
+ * @ordered
+ */
+ protected String lastAlteredTS = LAST_ALTERED_TS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAuthorizationID() <em>Authorization ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthorizationID()
+ * @generated
+ * @ordered
+ */
+ protected static final String AUTHORIZATION_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAuthorizationID() <em>Authorization ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAuthorizationID()
+ * @generated
+ * @ordered
+ */
+ protected String authorizationID = AUTHORIZATION_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSecurity() <em>Security</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecurity()
+ * @generated
+ * @ordered
+ */
+ protected static final String SECURITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSecurity() <em>Security</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecurity()
+ * @generated
+ * @ordered
+ */
+ protected String security = SECURITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getExternalName() <em>External Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExternalName()
+ * @generated
+ * @ordered
+ */
+ protected static final String EXTERNAL_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getExternalName() <em>External Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExternalName()
+ * @generated
+ * @ordered
+ */
+ protected String externalName = EXTERNAL_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParameters()
+ * @generated
+ * @ordered
+ */
+ protected EList parameters;
+
+ /**
+ * The cached value of the '{@link #getSource() <em>Source</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSource()
+ * @generated
+ * @ordered
+ */
+ protected Source source;
+
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected Schema schema;
+
+ /**
+ * The default value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected static final String FENCED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected String fenced = FENCED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected static final String THREADSAFE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected String threadsafe = THREADSAFE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DB_INFO_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected boolean dbInfo = DB_INFO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IMPLICIT_SCHEMA_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected boolean implicitSchema = IMPLICIT_SCHEMA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FEDERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected boolean federated = FEDERATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected static final String PARM_CCSID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected String parmCcsid = PARM_CCSID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIAL_REGISTER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected String specialRegister = SPECIAL_REGISTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected static final int CHANGE_STATE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected int changeState = CHANGE_STATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEBUG_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected String debugId = DEBUG_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROGRAM_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected String programType = PROGRAM_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_SCHEMA_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected String origSchemaName = ORIG_SCHEMA_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_PARM_SIG_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected String origParmSig = ORIG_PARM_SIG_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExtendedOptions() <em>Extended Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtendedOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList extendedOptions;
+
+ /**
+ * The cached value of the '{@link #getRoutineExtensions() <em>Routine Extensions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRoutineExtensions()
+ * @generated
+ * @ordered
+ */
+ protected EList routineExtensions;
+
+ /**
+ * The cached value of the '{@link #getPackageBody() <em>Package Body</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPackageBody()
+ * @generated
+ * @ordered
+ */
+ protected PLSQLPackageBody packageBody;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PLSQLPackageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.PLSQL_PACKAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSpecificName() {
+ return specificName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpecificName(String newSpecificName) {
+ String oldSpecificName = specificName;
+ specificName = newSpecificName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SPECIFIC_NAME, oldSpecificName, specificName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLanguage() {
+ return language;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLanguage(String newLanguage) {
+ String oldLanguage = language;
+ language = newLanguage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__LANGUAGE, oldLanguage, language));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getParameterStyle() {
+ return parameterStyle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParameterStyle(String newParameterStyle) {
+ String oldParameterStyle = parameterStyle;
+ parameterStyle = newParameterStyle;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__PARAMETER_STYLE, oldParameterStyle, parameterStyle));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDeterministic() {
+ return deterministic;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeterministic(boolean newDeterministic) {
+ boolean oldDeterministic = deterministic;
+ deterministic = newDeterministic;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__DETERMINISTIC, oldDeterministic, deterministic));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataAccess getSqlDataAccess() {
+ return sqlDataAccess;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSqlDataAccess(DataAccess newSqlDataAccess) {
+ DataAccess oldSqlDataAccess = sqlDataAccess;
+ sqlDataAccess = newSqlDataAccess == null ? SQL_DATA_ACCESS_EDEFAULT : newSqlDataAccess;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SQL_DATA_ACCESS, oldSqlDataAccess, sqlDataAccess));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCreationTS() {
+ return creationTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreationTS(String newCreationTS) {
+ String oldCreationTS = creationTS;
+ creationTS = newCreationTS;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__CREATION_TS, oldCreationTS, creationTS));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLastAlteredTS() {
+ return lastAlteredTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLastAlteredTS(String newLastAlteredTS) {
+ String oldLastAlteredTS = lastAlteredTS;
+ lastAlteredTS = newLastAlteredTS;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__LAST_ALTERED_TS, oldLastAlteredTS, lastAlteredTS));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAuthorizationID() {
+ return authorizationID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAuthorizationID(String newAuthorizationID) {
+ String oldAuthorizationID = authorizationID;
+ authorizationID = newAuthorizationID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__AUTHORIZATION_ID, oldAuthorizationID, authorizationID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSecurity() {
+ return security;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSecurity(String newSecurity) {
+ String oldSecurity = security;
+ security = newSecurity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SECURITY, oldSecurity, security));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExternalName() {
+ return externalName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExternalName(String newExternalName) {
+ String oldExternalName = externalName;
+ externalName = newExternalName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__EXTERNAL_NAME, oldExternalName, externalName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getParameters() {
+ if (parameters == null) {
+ parameters = new EObjectContainmentWithInverseEList(Parameter.class, this, LUWPackage.PLSQL_PACKAGE__PARAMETERS, SQLRoutinesPackage.PARAMETER__ROUTINE);
+ }
+ return parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Source getSource() {
+ return source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSource(Source newSource, NotificationChain msgs) {
+ Source oldSource = source;
+ source = newSource;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SOURCE, oldSource, newSource);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSource(Source newSource) {
+ if (newSource != source) {
+ NotificationChain msgs = null;
+ if (source != null)
+ msgs = ((InternalEObject)source).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.PLSQL_PACKAGE__SOURCE, null, msgs);
+ if (newSource != null)
+ msgs = ((InternalEObject)newSource).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - LUWPackage.PLSQL_PACKAGE__SOURCE, null, msgs);
+ msgs = basicSetSource(newSource, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SOURCE, newSource, newSource));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.PLSQL_PACKAGE__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(Schema newSchema, NotificationChain msgs) {
+ Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__ROUTINES, Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, SQLSchemaPackage.SCHEMA__ROUTINES, Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFenced() {
+ return fenced;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFenced(String newFenced) {
+ String oldFenced = fenced;
+ fenced = newFenced;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__FENCED, oldFenced, fenced));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getThreadsafe() {
+ return threadsafe;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setThreadsafe(String newThreadsafe) {
+ String oldThreadsafe = threadsafe;
+ threadsafe = newThreadsafe;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__THREADSAFE, oldThreadsafe, threadsafe));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDbInfo() {
+ return dbInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbInfo(boolean newDbInfo) {
+ boolean oldDbInfo = dbInfo;
+ dbInfo = newDbInfo;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__DB_INFO, oldDbInfo, dbInfo));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isImplicitSchema() {
+ return implicitSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplicitSchema(boolean newImplicitSchema) {
+ boolean oldImplicitSchema = implicitSchema;
+ implicitSchema = newImplicitSchema;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__IMPLICIT_SCHEMA, oldImplicitSchema, implicitSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFederated() {
+ return federated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFederated(boolean newFederated) {
+ boolean oldFederated = federated;
+ federated = newFederated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__FEDERATED, oldFederated, federated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getParmCcsid() {
+ return parmCcsid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParmCcsid(String newParmCcsid) {
+ String oldParmCcsid = parmCcsid;
+ parmCcsid = newParmCcsid;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__PARM_CCSID, oldParmCcsid, parmCcsid));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSpecialRegister() {
+ return specialRegister;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpecialRegister(String newSpecialRegister) {
+ String oldSpecialRegister = specialRegister;
+ specialRegister = newSpecialRegister;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__SPECIAL_REGISTER, oldSpecialRegister, specialRegister));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getChangeState() {
+ return changeState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChangeState(int newChangeState) {
+ int oldChangeState = changeState;
+ changeState = newChangeState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__CHANGE_STATE, oldChangeState, changeState));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDebugId() {
+ return debugId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDebugId(String newDebugId) {
+ String oldDebugId = debugId;
+ debugId = newDebugId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__DEBUG_ID, oldDebugId, debugId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProgramType() {
+ return programType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProgramType(String newProgramType) {
+ String oldProgramType = programType;
+ programType = newProgramType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__PROGRAM_TYPE, oldProgramType, programType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigSchemaName() {
+ return origSchemaName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigSchemaName(String newOrigSchemaName) {
+ String oldOrigSchemaName = origSchemaName;
+ origSchemaName = newOrigSchemaName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__ORIG_SCHEMA_NAME, oldOrigSchemaName, origSchemaName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigParmSig() {
+ return origParmSig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigParmSig(String newOrigParmSig) {
+ String oldOrigParmSig = origParmSig;
+ origParmSig = newOrigParmSig;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__ORIG_PARM_SIG, oldOrigParmSig, origParmSig));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getExtendedOptions() {
+ if (extendedOptions == null) {
+ extendedOptions = new EObjectContainmentEList(DB2ExtendedOptions.class, this, LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS);
+ }
+ return extendedOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRoutineExtensions() {
+ if (routineExtensions == null) {
+ routineExtensions = new EObjectResolvingEList(DB2RoutineExtension.class, this, LUWPackage.PLSQL_PACKAGE__ROUTINE_EXTENSIONS);
+ }
+ return routineExtensions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PLSQLPackageBody getPackageBody() {
+ return packageBody;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPackageBody(PLSQLPackageBody newPackageBody, NotificationChain msgs) {
+ PLSQLPackageBody oldPackageBody = packageBody;
+ packageBody = newPackageBody;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY, oldPackageBody, newPackageBody);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPackageBody(PLSQLPackageBody newPackageBody) {
+ if (newPackageBody != packageBody) {
+ NotificationChain msgs = null;
+ if (packageBody != null)
+ msgs = ((InternalEObject)packageBody).eInverseRemove(this, LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE, PLSQLPackageBody.class, msgs);
+ if (newPackageBody != null)
+ msgs = ((InternalEObject)newPackageBody).eInverseAdd(this, LUWPackage.PLSQL_PACKAGE_BODY__PACKAGE, PLSQLPackageBody.class, msgs);
+ msgs = basicSetPackageBody(newPackageBody, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY, newPackageBody, newPackageBody));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE__PARAMETERS:
+ return ((InternalEList)getParameters()).basicAdd(otherEnd, msgs);
+ case LUWPackage.PLSQL_PACKAGE__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, SQLSchemaPackage.SCHEMA__ROUTINES, Schema.class, msgs);
+ return basicSetSchema((Schema)otherEnd, msgs);
+ case LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY:
+ if (packageBody != null)
+ msgs = ((InternalEObject)packageBody).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY, null, msgs);
+ return basicSetPackageBody((PLSQLPackageBody)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE__PARAMETERS:
+ return ((InternalEList)getParameters()).basicRemove(otherEnd, msgs);
+ case LUWPackage.PLSQL_PACKAGE__SOURCE:
+ return basicSetSource(null, msgs);
+ case LUWPackage.PLSQL_PACKAGE__SCHEMA:
+ return basicSetSchema(null, msgs);
+ case LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS:
+ return ((InternalEList)getExtendedOptions()).basicRemove(otherEnd, msgs);
+ case LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY:
+ return basicSetPackageBody(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE__SPECIFIC_NAME:
+ return getSpecificName();
+ case LUWPackage.PLSQL_PACKAGE__LANGUAGE:
+ return getLanguage();
+ case LUWPackage.PLSQL_PACKAGE__PARAMETER_STYLE:
+ return getParameterStyle();
+ case LUWPackage.PLSQL_PACKAGE__DETERMINISTIC:
+ return isDeterministic() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.PLSQL_PACKAGE__SQL_DATA_ACCESS:
+ return getSqlDataAccess();
+ case LUWPackage.PLSQL_PACKAGE__CREATION_TS:
+ return getCreationTS();
+ case LUWPackage.PLSQL_PACKAGE__LAST_ALTERED_TS:
+ return getLastAlteredTS();
+ case LUWPackage.PLSQL_PACKAGE__AUTHORIZATION_ID:
+ return getAuthorizationID();
+ case LUWPackage.PLSQL_PACKAGE__SECURITY:
+ return getSecurity();
+ case LUWPackage.PLSQL_PACKAGE__EXTERNAL_NAME:
+ return getExternalName();
+ case LUWPackage.PLSQL_PACKAGE__PARAMETERS:
+ return getParameters();
+ case LUWPackage.PLSQL_PACKAGE__SOURCE:
+ return getSource();
+ case LUWPackage.PLSQL_PACKAGE__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ case LUWPackage.PLSQL_PACKAGE__FENCED:
+ return getFenced();
+ case LUWPackage.PLSQL_PACKAGE__THREADSAFE:
+ return getThreadsafe();
+ case LUWPackage.PLSQL_PACKAGE__DB_INFO:
+ return isDbInfo() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.PLSQL_PACKAGE__IMPLICIT_SCHEMA:
+ return isImplicitSchema() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.PLSQL_PACKAGE__FEDERATED:
+ return isFederated() ? Boolean.TRUE : Boolean.FALSE;
+ case LUWPackage.PLSQL_PACKAGE__PARM_CCSID:
+ return getParmCcsid();
+ case LUWPackage.PLSQL_PACKAGE__SPECIAL_REGISTER:
+ return getSpecialRegister();
+ case LUWPackage.PLSQL_PACKAGE__CHANGE_STATE:
+ return new Integer(getChangeState());
+ case LUWPackage.PLSQL_PACKAGE__DEBUG_ID:
+ return getDebugId();
+ case LUWPackage.PLSQL_PACKAGE__PROGRAM_TYPE:
+ return getProgramType();
+ case LUWPackage.PLSQL_PACKAGE__ORIG_SCHEMA_NAME:
+ return getOrigSchemaName();
+ case LUWPackage.PLSQL_PACKAGE__ORIG_PARM_SIG:
+ return getOrigParmSig();
+ case LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS:
+ return getExtendedOptions();
+ case LUWPackage.PLSQL_PACKAGE__ROUTINE_EXTENSIONS:
+ return getRoutineExtensions();
+ case LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY:
+ return getPackageBody();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE__SPECIFIC_NAME:
+ setSpecificName((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__LANGUAGE:
+ setLanguage((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PARAMETER_STYLE:
+ setParameterStyle((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__DETERMINISTIC:
+ setDeterministic(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SQL_DATA_ACCESS:
+ setSqlDataAccess((DataAccess)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__CREATION_TS:
+ setCreationTS((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__LAST_ALTERED_TS:
+ setLastAlteredTS((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__AUTHORIZATION_ID:
+ setAuthorizationID((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SECURITY:
+ setSecurity((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__EXTERNAL_NAME:
+ setExternalName((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PARAMETERS:
+ getParameters().clear();
+ getParameters().addAll((Collection)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SOURCE:
+ setSource((Source)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SCHEMA:
+ setSchema((Schema)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__FENCED:
+ setFenced((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__THREADSAFE:
+ setThreadsafe((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__DB_INFO:
+ setDbInfo(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.PLSQL_PACKAGE__IMPLICIT_SCHEMA:
+ setImplicitSchema(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.PLSQL_PACKAGE__FEDERATED:
+ setFederated(((Boolean)newValue).booleanValue());
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PARM_CCSID:
+ setParmCcsid((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SPECIAL_REGISTER:
+ setSpecialRegister((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__CHANGE_STATE:
+ setChangeState(((Integer)newValue).intValue());
+ return;
+ case LUWPackage.PLSQL_PACKAGE__DEBUG_ID:
+ setDebugId((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PROGRAM_TYPE:
+ setProgramType((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__ORIG_SCHEMA_NAME:
+ setOrigSchemaName((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__ORIG_PARM_SIG:
+ setOrigParmSig((String)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ getExtendedOptions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ getRoutineExtensions().addAll((Collection)newValue);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY:
+ setPackageBody((PLSQLPackageBody)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE__SPECIFIC_NAME:
+ setSpecificName(SPECIFIC_NAME_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__LANGUAGE:
+ setLanguage(LANGUAGE_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PARAMETER_STYLE:
+ setParameterStyle(PARAMETER_STYLE_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__DETERMINISTIC:
+ setDeterministic(DETERMINISTIC_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SQL_DATA_ACCESS:
+ setSqlDataAccess(SQL_DATA_ACCESS_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__CREATION_TS:
+ setCreationTS(CREATION_TS_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__LAST_ALTERED_TS:
+ setLastAlteredTS(LAST_ALTERED_TS_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__AUTHORIZATION_ID:
+ setAuthorizationID(AUTHORIZATION_ID_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SECURITY:
+ setSecurity(SECURITY_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__EXTERNAL_NAME:
+ setExternalName(EXTERNAL_NAME_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PARAMETERS:
+ getParameters().clear();
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SOURCE:
+ setSource((Source)null);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SCHEMA:
+ setSchema((Schema)null);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__FENCED:
+ setFenced(FENCED_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__THREADSAFE:
+ setThreadsafe(THREADSAFE_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__DB_INFO:
+ setDbInfo(DB_INFO_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__IMPLICIT_SCHEMA:
+ setImplicitSchema(IMPLICIT_SCHEMA_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__FEDERATED:
+ setFederated(FEDERATED_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PARM_CCSID:
+ setParmCcsid(PARM_CCSID_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__SPECIAL_REGISTER:
+ setSpecialRegister(SPECIAL_REGISTER_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__CHANGE_STATE:
+ setChangeState(CHANGE_STATE_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__DEBUG_ID:
+ setDebugId(DEBUG_ID_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PROGRAM_TYPE:
+ setProgramType(PROGRAM_TYPE_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__ORIG_SCHEMA_NAME:
+ setOrigSchemaName(ORIG_SCHEMA_NAME_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__ORIG_PARM_SIG:
+ setOrigParmSig(ORIG_PARM_SIG_EDEFAULT);
+ return;
+ case LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ return;
+ case LUWPackage.PLSQL_PACKAGE__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ return;
+ case LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY:
+ setPackageBody((PLSQLPackageBody)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.PLSQL_PACKAGE__SPECIFIC_NAME:
+ return SPECIFIC_NAME_EDEFAULT == null ? specificName != null : !SPECIFIC_NAME_EDEFAULT.equals(specificName);
+ case LUWPackage.PLSQL_PACKAGE__LANGUAGE:
+ return LANGUAGE_EDEFAULT == null ? language != null : !LANGUAGE_EDEFAULT.equals(language);
+ case LUWPackage.PLSQL_PACKAGE__PARAMETER_STYLE:
+ return PARAMETER_STYLE_EDEFAULT == null ? parameterStyle != null : !PARAMETER_STYLE_EDEFAULT.equals(parameterStyle);
+ case LUWPackage.PLSQL_PACKAGE__DETERMINISTIC:
+ return deterministic != DETERMINISTIC_EDEFAULT;
+ case LUWPackage.PLSQL_PACKAGE__SQL_DATA_ACCESS:
+ return sqlDataAccess != SQL_DATA_ACCESS_EDEFAULT;
+ case LUWPackage.PLSQL_PACKAGE__CREATION_TS:
+ return CREATION_TS_EDEFAULT == null ? creationTS != null : !CREATION_TS_EDEFAULT.equals(creationTS);
+ case LUWPackage.PLSQL_PACKAGE__LAST_ALTERED_TS:
+ return LAST_ALTERED_TS_EDEFAULT == null ? lastAlteredTS != null : !LAST_ALTERED_TS_EDEFAULT.equals(lastAlteredTS);
+ case LUWPackage.PLSQL_PACKAGE__AUTHORIZATION_ID:
+ return AUTHORIZATION_ID_EDEFAULT == null ? authorizationID != null : !AUTHORIZATION_ID_EDEFAULT.equals(authorizationID);
+ case LUWPackage.PLSQL_PACKAGE__SECURITY:
+ return SECURITY_EDEFAULT == null ? security != null : !SECURITY_EDEFAULT.equals(security);
+ case LUWPackage.PLSQL_PACKAGE__EXTERNAL_NAME:
+ return EXTERNAL_NAME_EDEFAULT == null ? externalName != null : !EXTERNAL_NAME_EDEFAULT.equals(externalName);
+ case LUWPackage.PLSQL_PACKAGE__PARAMETERS:
+ return parameters != null && !parameters.isEmpty();
+ case LUWPackage.PLSQL_PACKAGE__SOURCE:
+ return source != null;
+ case LUWPackage.PLSQL_PACKAGE__SCHEMA:
+ return schema != null;
+ case LUWPackage.PLSQL_PACKAGE__FENCED:
+ return FENCED_EDEFAULT == null ? fenced != null : !FENCED_EDEFAULT.equals(fenced);
+ case LUWPackage.PLSQL_PACKAGE__THREADSAFE:
+ return THREADSAFE_EDEFAULT == null ? threadsafe != null : !THREADSAFE_EDEFAULT.equals(threadsafe);
+ case LUWPackage.PLSQL_PACKAGE__DB_INFO:
+ return dbInfo != DB_INFO_EDEFAULT;
+ case LUWPackage.PLSQL_PACKAGE__IMPLICIT_SCHEMA:
+ return implicitSchema != IMPLICIT_SCHEMA_EDEFAULT;
+ case LUWPackage.PLSQL_PACKAGE__FEDERATED:
+ return federated != FEDERATED_EDEFAULT;
+ case LUWPackage.PLSQL_PACKAGE__PARM_CCSID:
+ return PARM_CCSID_EDEFAULT == null ? parmCcsid != null : !PARM_CCSID_EDEFAULT.equals(parmCcsid);
+ case LUWPackage.PLSQL_PACKAGE__SPECIAL_REGISTER:
+ return SPECIAL_REGISTER_EDEFAULT == null ? specialRegister != null : !SPECIAL_REGISTER_EDEFAULT.equals(specialRegister);
+ case LUWPackage.PLSQL_PACKAGE__CHANGE_STATE:
+ return changeState != CHANGE_STATE_EDEFAULT;
+ case LUWPackage.PLSQL_PACKAGE__DEBUG_ID:
+ return DEBUG_ID_EDEFAULT == null ? debugId != null : !DEBUG_ID_EDEFAULT.equals(debugId);
+ case LUWPackage.PLSQL_PACKAGE__PROGRAM_TYPE:
+ return PROGRAM_TYPE_EDEFAULT == null ? programType != null : !PROGRAM_TYPE_EDEFAULT.equals(programType);
+ case LUWPackage.PLSQL_PACKAGE__ORIG_SCHEMA_NAME:
+ return ORIG_SCHEMA_NAME_EDEFAULT == null ? origSchemaName != null : !ORIG_SCHEMA_NAME_EDEFAULT.equals(origSchemaName);
+ case LUWPackage.PLSQL_PACKAGE__ORIG_PARM_SIG:
+ return ORIG_PARM_SIG_EDEFAULT == null ? origParmSig != null : !ORIG_PARM_SIG_EDEFAULT.equals(origParmSig);
+ case LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS:
+ return extendedOptions != null && !extendedOptions.isEmpty();
+ case LUWPackage.PLSQL_PACKAGE__ROUTINE_EXTENSIONS:
+ return routineExtensions != null && !routineExtensions.isEmpty();
+ case LUWPackage.PLSQL_PACKAGE__PACKAGE_BODY:
+ return packageBody != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == Routine.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.PLSQL_PACKAGE__SPECIFIC_NAME: return SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME;
+ case LUWPackage.PLSQL_PACKAGE__LANGUAGE: return SQLRoutinesPackage.ROUTINE__LANGUAGE;
+ case LUWPackage.PLSQL_PACKAGE__PARAMETER_STYLE: return SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE;
+ case LUWPackage.PLSQL_PACKAGE__DETERMINISTIC: return SQLRoutinesPackage.ROUTINE__DETERMINISTIC;
+ case LUWPackage.PLSQL_PACKAGE__SQL_DATA_ACCESS: return SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS;
+ case LUWPackage.PLSQL_PACKAGE__CREATION_TS: return SQLRoutinesPackage.ROUTINE__CREATION_TS;
+ case LUWPackage.PLSQL_PACKAGE__LAST_ALTERED_TS: return SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS;
+ case LUWPackage.PLSQL_PACKAGE__AUTHORIZATION_ID: return SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID;
+ case LUWPackage.PLSQL_PACKAGE__SECURITY: return SQLRoutinesPackage.ROUTINE__SECURITY;
+ case LUWPackage.PLSQL_PACKAGE__EXTERNAL_NAME: return SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME;
+ case LUWPackage.PLSQL_PACKAGE__PARAMETERS: return SQLRoutinesPackage.ROUTINE__PARAMETERS;
+ case LUWPackage.PLSQL_PACKAGE__SOURCE: return SQLRoutinesPackage.ROUTINE__SOURCE;
+ case LUWPackage.PLSQL_PACKAGE__SCHEMA: return SQLRoutinesPackage.ROUTINE__SCHEMA;
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2AccessPlan.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.PLSQL_PACKAGE__FENCED: return DB2ModelPackage.DB2_ROUTINE__FENCED;
+ case LUWPackage.PLSQL_PACKAGE__THREADSAFE: return DB2ModelPackage.DB2_ROUTINE__THREADSAFE;
+ case LUWPackage.PLSQL_PACKAGE__DB_INFO: return DB2ModelPackage.DB2_ROUTINE__DB_INFO;
+ case LUWPackage.PLSQL_PACKAGE__IMPLICIT_SCHEMA: return DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA;
+ case LUWPackage.PLSQL_PACKAGE__FEDERATED: return DB2ModelPackage.DB2_ROUTINE__FEDERATED;
+ case LUWPackage.PLSQL_PACKAGE__PARM_CCSID: return DB2ModelPackage.DB2_ROUTINE__PARM_CCSID;
+ case LUWPackage.PLSQL_PACKAGE__SPECIAL_REGISTER: return DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER;
+ case LUWPackage.PLSQL_PACKAGE__CHANGE_STATE: return DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE;
+ case LUWPackage.PLSQL_PACKAGE__DEBUG_ID: return DB2ModelPackage.DB2_ROUTINE__DEBUG_ID;
+ case LUWPackage.PLSQL_PACKAGE__PROGRAM_TYPE: return DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE;
+ case LUWPackage.PLSQL_PACKAGE__ORIG_SCHEMA_NAME: return DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME;
+ case LUWPackage.PLSQL_PACKAGE__ORIG_PARM_SIG: return DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG;
+ case LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS: return DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS;
+ case LUWPackage.PLSQL_PACKAGE__ROUTINE_EXTENSIONS: return DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == Routine.class) {
+ switch (baseFeatureID) {
+ case SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME: return LUWPackage.PLSQL_PACKAGE__SPECIFIC_NAME;
+ case SQLRoutinesPackage.ROUTINE__LANGUAGE: return LUWPackage.PLSQL_PACKAGE__LANGUAGE;
+ case SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE: return LUWPackage.PLSQL_PACKAGE__PARAMETER_STYLE;
+ case SQLRoutinesPackage.ROUTINE__DETERMINISTIC: return LUWPackage.PLSQL_PACKAGE__DETERMINISTIC;
+ case SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS: return LUWPackage.PLSQL_PACKAGE__SQL_DATA_ACCESS;
+ case SQLRoutinesPackage.ROUTINE__CREATION_TS: return LUWPackage.PLSQL_PACKAGE__CREATION_TS;
+ case SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS: return LUWPackage.PLSQL_PACKAGE__LAST_ALTERED_TS;
+ case SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID: return LUWPackage.PLSQL_PACKAGE__AUTHORIZATION_ID;
+ case SQLRoutinesPackage.ROUTINE__SECURITY: return LUWPackage.PLSQL_PACKAGE__SECURITY;
+ case SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME: return LUWPackage.PLSQL_PACKAGE__EXTERNAL_NAME;
+ case SQLRoutinesPackage.ROUTINE__PARAMETERS: return LUWPackage.PLSQL_PACKAGE__PARAMETERS;
+ case SQLRoutinesPackage.ROUTINE__SOURCE: return LUWPackage.PLSQL_PACKAGE__SOURCE;
+ case SQLRoutinesPackage.ROUTINE__SCHEMA: return LUWPackage.PLSQL_PACKAGE__SCHEMA;
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2AccessPlan.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (baseFeatureID) {
+ case DB2ModelPackage.DB2_ROUTINE__FENCED: return LUWPackage.PLSQL_PACKAGE__FENCED;
+ case DB2ModelPackage.DB2_ROUTINE__THREADSAFE: return LUWPackage.PLSQL_PACKAGE__THREADSAFE;
+ case DB2ModelPackage.DB2_ROUTINE__DB_INFO: return LUWPackage.PLSQL_PACKAGE__DB_INFO;
+ case DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA: return LUWPackage.PLSQL_PACKAGE__IMPLICIT_SCHEMA;
+ case DB2ModelPackage.DB2_ROUTINE__FEDERATED: return LUWPackage.PLSQL_PACKAGE__FEDERATED;
+ case DB2ModelPackage.DB2_ROUTINE__PARM_CCSID: return LUWPackage.PLSQL_PACKAGE__PARM_CCSID;
+ case DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER: return LUWPackage.PLSQL_PACKAGE__SPECIAL_REGISTER;
+ case DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE: return LUWPackage.PLSQL_PACKAGE__CHANGE_STATE;
+ case DB2ModelPackage.DB2_ROUTINE__DEBUG_ID: return LUWPackage.PLSQL_PACKAGE__DEBUG_ID;
+ case DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE: return LUWPackage.PLSQL_PACKAGE__PROGRAM_TYPE;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME: return LUWPackage.PLSQL_PACKAGE__ORIG_SCHEMA_NAME;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG: return LUWPackage.PLSQL_PACKAGE__ORIG_PARM_SIG;
+ case DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS: return LUWPackage.PLSQL_PACKAGE__EXTENDED_OPTIONS;
+ case DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS: return LUWPackage.PLSQL_PACKAGE__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * Gets a list of IN and INOUT parameters associated with this routine.
+ * <p>
+ * @return a list of IN and INOUT parameters associated with this routine.
+ */
+ public EList getInputParameters() {
+ return getParameters(ParameterMode.IN);
+ }
+
+ /**
+ * Gets a list of OUT and INOUT parameters associated with this routine.
+ * <p>
+ * @return a list of OUT and INOUT parameters associated with this routine.
+ */
+ public EList getOutputParameters() {
+ return getParameters(ParameterMode.OUT);
+ }
+
+ /**
+ * Gets a list of IN and INOUT parameters associated with this routine. If
+ * the input parameter mode is <code>ParameterMode.IN</code>, then we
+ * return parameters that are both IN and INOUT. Similarly, if the input
+ * parameter mode is <code>ParameterMode.OUT</code>, then we return
+ * parameters that are both OUT and INOUT.
+ * <p>
+ * @param aMode Either IN or OUT, INOUT is returned for either case.
+ * @return A list of parameters according to the specified parameter
+ * @see Parameter
+ */
+ protected EList getParameters(int aMode) {
+ Parameter parm;
+ EList allList = getParameters();
+ EList filteredList = new BasicEList();
+ for (int i = 0, parmCnt = allList.size(); i < parmCnt; i++) {
+ parm = (Parameter)allList.get(i);
+ if ((aMode == ParameterMode.IN) && (parm.getMode().getValue() != ParameterMode.OUT))
+ filteredList.add(parm);
+ else if ((aMode == ParameterMode.OUT) && (parm.getMode().getValue() != ParameterMode.IN))
+ filteredList.add(parm);
+ }
+ return filteredList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (specificName: "); //$NON-NLS-1$
+ result.append(specificName);
+ result.append(", language: "); //$NON-NLS-1$
+ result.append(language);
+ result.append(", parameterStyle: "); //$NON-NLS-1$
+ result.append(parameterStyle);
+ result.append(", deterministic: "); //$NON-NLS-1$
+ result.append(deterministic);
+ result.append(", sqlDataAccess: "); //$NON-NLS-1$
+ result.append(sqlDataAccess);
+ result.append(", creationTS: "); //$NON-NLS-1$
+ result.append(creationTS);
+ result.append(", lastAlteredTS: "); //$NON-NLS-1$
+ result.append(lastAlteredTS);
+ result.append(", authorizationID: "); //$NON-NLS-1$
+ result.append(authorizationID);
+ result.append(", security: "); //$NON-NLS-1$
+ result.append(security);
+ result.append(", externalName: "); //$NON-NLS-1$
+ result.append(externalName);
+ result.append(", fenced: "); //$NON-NLS-1$
+ result.append(fenced);
+ result.append(", threadsafe: "); //$NON-NLS-1$
+ result.append(threadsafe);
+ result.append(", dbInfo: "); //$NON-NLS-1$
+ result.append(dbInfo);
+ result.append(", implicitSchema: "); //$NON-NLS-1$
+ result.append(implicitSchema);
+ result.append(", federated: "); //$NON-NLS-1$
+ result.append(federated);
+ result.append(", parmCcsid: "); //$NON-NLS-1$
+ result.append(parmCcsid);
+ result.append(", specialRegister: "); //$NON-NLS-1$
+ result.append(specialRegister);
+ result.append(", changeState: "); //$NON-NLS-1$
+ result.append(changeState);
+ result.append(", debugId: "); //$NON-NLS-1$
+ result.append(debugId);
+ result.append(", programType: "); //$NON-NLS-1$
+ result.append(programType);
+ result.append(", origSchemaName: "); //$NON-NLS-1$
+ result.append(origSchemaName);
+ result.append(", origParmSig: "); //$NON-NLS-1$
+ result.append(origParmSig);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PLSQLPackageImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RelationalRemoteDataSetImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RelationalRemoteDataSetImpl.java
new file mode 100644
index 0000000..b336fdc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RelationalRemoteDataSetImpl.java
@@ -0,0 +1,252 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RelationalRemoteDataSetImpl.java,v 1.10 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Remote Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteDataSetImpl#getNickname <em>Nickname</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteDataSetImpl#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RelationalRemoteDataSetImpl extends SQLObjectImpl implements RelationalRemoteDataSet {
+ /**
+ * The cached value of the '{@link #getNickname() <em>Nickname</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNickname()
+ * @generated
+ * @ordered
+ */
+ protected EList nickname;
+
+ /**
+ * The cached value of the '{@link #getTable() <em>Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTable()
+ * @generated
+ * @ordered
+ */
+ protected BaseTable table;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RelationalRemoteDataSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.RELATIONAL_REMOTE_DATA_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getNickname() {
+ if (nickname == null) {
+ nickname = new EObjectWithInverseResolvingEList(LUWNickname.class, this, LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME, LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET);
+ }
+ return nickname;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BaseTable getTable() {
+ if (table != null && table.eIsProxy()) {
+ InternalEObject oldTable = (InternalEObject)table;
+ table = (BaseTable)eResolveProxy(oldTable);
+ if (table != oldTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.RELATIONAL_REMOTE_DATA_SET__TABLE, oldTable, table));
+ }
+ }
+ return table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BaseTable basicGetTable() {
+ return table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(BaseTable newTable) {
+ BaseTable oldTable = table;
+ table = newTable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.RELATIONAL_REMOTE_DATA_SET__TABLE, oldTable, table));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME:
+ return ((InternalEList)getNickname()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME:
+ return ((InternalEList)getNickname()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME:
+ return getNickname();
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__TABLE:
+ if (resolve) return getTable();
+ return basicGetTable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME:
+ getNickname().clear();
+ getNickname().addAll((Collection)newValue);
+ return;
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__TABLE:
+ setTable((BaseTable)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME:
+ getNickname().clear();
+ return;
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__TABLE:
+ setTable((BaseTable)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME:
+ return nickname != null && !nickname.isEmpty();
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__TABLE:
+ return table != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == RemoteDataSet.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME: return LUWPackage.REMOTE_DATA_SET__NICKNAME;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == RemoteDataSet.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.REMOTE_DATA_SET__NICKNAME: return LUWPackage.RELATIONAL_REMOTE_DATA_SET__NICKNAME;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+} //RemoteTableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RelationalRemoteServerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RelationalRemoteServerImpl.java
new file mode 100644
index 0000000..b72911c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RelationalRemoteServerImpl.java
@@ -0,0 +1,297 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RelationalRemoteServerImpl.java,v 1.10 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Remote Database</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteServerImpl#getLUWServer <em>LUW Server</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RelationalRemoteServerImpl#getDatabase <em>Database</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RelationalRemoteServerImpl extends SQLObjectImpl implements RelationalRemoteServer {
+ /**
+ * The cached value of the '{@link #getLUWServer() <em>LUW Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLUWServer()
+ * @generated
+ * @ordered
+ */
+ protected LUWServer luwServer;
+
+ /**
+ * The cached value of the '{@link #getDatabase() <em>Database</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDatabase()
+ * @generated
+ * @ordered
+ */
+ protected Database database;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RelationalRemoteServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.RELATIONAL_REMOTE_SERVER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWServer getLUWServer() {
+ if (luwServer != null && luwServer.eIsProxy()) {
+ InternalEObject oldLUWServer = (InternalEObject)luwServer;
+ luwServer = (LUWServer)eResolveProxy(oldLUWServer);
+ if (luwServer != oldLUWServer) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER, oldLUWServer, luwServer));
+ }
+ }
+ return luwServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWServer basicGetLUWServer() {
+ return luwServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWServer(LUWServer newLUWServer, NotificationChain msgs) {
+ LUWServer oldLUWServer = luwServer;
+ luwServer = newLUWServer;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER, oldLUWServer, newLUWServer);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWServer(LUWServer newLUWServer) {
+ if (newLUWServer != luwServer) {
+ NotificationChain msgs = null;
+ if (luwServer != null)
+ msgs = ((InternalEObject)luwServer).eInverseRemove(this, LUWPackage.LUW_SERVER__REMOTE_SERVER, LUWServer.class, msgs);
+ if (newLUWServer != null)
+ msgs = ((InternalEObject)newLUWServer).eInverseAdd(this, LUWPackage.LUW_SERVER__REMOTE_SERVER, LUWServer.class, msgs);
+ msgs = basicSetLUWServer(newLUWServer, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER, newLUWServer, newLUWServer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Database getDatabase() {
+ if (database != null && database.eIsProxy()) {
+ InternalEObject oldDatabase = (InternalEObject)database;
+ database = (Database)eResolveProxy(oldDatabase);
+ if (database != oldDatabase) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.RELATIONAL_REMOTE_SERVER__DATABASE, oldDatabase, database));
+ }
+ }
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Database basicGetDatabase() {
+ return database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDatabase(Database newDatabase) {
+ Database oldDatabase = database;
+ database = newDatabase;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.RELATIONAL_REMOTE_SERVER__DATABASE, oldDatabase, database));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER:
+ if (luwServer != null)
+ msgs = ((InternalEObject)luwServer).eInverseRemove(this, LUWPackage.LUW_SERVER__REMOTE_SERVER, LUWServer.class, msgs);
+ return basicSetLUWServer((LUWServer)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER:
+ return basicSetLUWServer(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER:
+ if (resolve) return getLUWServer();
+ return basicGetLUWServer();
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__DATABASE:
+ if (resolve) return getDatabase();
+ return basicGetDatabase();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER:
+ setLUWServer((LUWServer)newValue);
+ return;
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__DATABASE:
+ setDatabase((Database)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER:
+ setLUWServer((LUWServer)null);
+ return;
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__DATABASE:
+ setDatabase((Database)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER:
+ return luwServer != null;
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__DATABASE:
+ return database != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == RemoteServer.class) {
+ switch (derivedFeatureID) {
+ case LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER: return LUWPackage.REMOTE_SERVER__LUW_SERVER;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == RemoteServer.class) {
+ switch (baseFeatureID) {
+ case LUWPackage.REMOTE_SERVER__LUW_SERVER: return LUWPackage.RELATIONAL_REMOTE_SERVER__LUW_SERVER;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+} //RemoteDatabaseImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RemoteDataSetImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RemoteDataSetImpl.java
new file mode 100644
index 0000000..197464e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RemoteDataSetImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RemoteDataSetImpl.java,v 1.10 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWNickname;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteDataSet;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Remote Data Set</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteDataSetImpl#getNickname <em>Nickname</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RemoteDataSetImpl extends EObjectImpl implements RemoteDataSet {
+ /**
+ * The cached value of the '{@link #getNickname() <em>Nickname</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNickname()
+ * @generated
+ * @ordered
+ */
+ protected EList nickname;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RemoteDataSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.REMOTE_DATA_SET;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getNickname() {
+ if (nickname == null) {
+ nickname = new EObjectWithInverseResolvingEList(LUWNickname.class, this, LUWPackage.REMOTE_DATA_SET__NICKNAME, LUWPackage.LUW_NICKNAME__REMOTE_DATA_SET);
+ }
+ return nickname;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_DATA_SET__NICKNAME:
+ return ((InternalEList)getNickname()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_DATA_SET__NICKNAME:
+ return ((InternalEList)getNickname()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_DATA_SET__NICKNAME:
+ return getNickname();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_DATA_SET__NICKNAME:
+ getNickname().clear();
+ getNickname().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_DATA_SET__NICKNAME:
+ getNickname().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_DATA_SET__NICKNAME:
+ return nickname != null && !nickname.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RemoteDataSetImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RemoteServerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RemoteServerImpl.java
new file mode 100644
index 0000000..0f09720
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/impl/RemoteServerImpl.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: RemoteServerImpl.java,v 1.10 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWServer;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RemoteServer;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Remote Server</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.luw.model.impl.RemoteServerImpl#getLUWServer <em>LUW Server</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RemoteServerImpl extends EObjectImpl implements RemoteServer {
+ /**
+ * The cached value of the '{@link #getLUWServer() <em>LUW Server</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLUWServer()
+ * @generated
+ * @ordered
+ */
+ protected LUWServer luwServer;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RemoteServerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return LUWPackage.Literals.REMOTE_SERVER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWServer getLUWServer() {
+ if (luwServer != null && luwServer.eIsProxy()) {
+ InternalEObject oldLUWServer = (InternalEObject)luwServer;
+ luwServer = (LUWServer)eResolveProxy(oldLUWServer);
+ if (luwServer != oldLUWServer) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, LUWPackage.REMOTE_SERVER__LUW_SERVER, oldLUWServer, luwServer));
+ }
+ }
+ return luwServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWServer basicGetLUWServer() {
+ return luwServer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetLUWServer(LUWServer newLUWServer, NotificationChain msgs) {
+ LUWServer oldLUWServer = luwServer;
+ luwServer = newLUWServer;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, LUWPackage.REMOTE_SERVER__LUW_SERVER, oldLUWServer, newLUWServer);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLUWServer(LUWServer newLUWServer) {
+ if (newLUWServer != luwServer) {
+ NotificationChain msgs = null;
+ if (luwServer != null)
+ msgs = ((InternalEObject)luwServer).eInverseRemove(this, LUWPackage.LUW_SERVER__REMOTE_SERVER, LUWServer.class, msgs);
+ if (newLUWServer != null)
+ msgs = ((InternalEObject)newLUWServer).eInverseAdd(this, LUWPackage.LUW_SERVER__REMOTE_SERVER, LUWServer.class, msgs);
+ msgs = basicSetLUWServer(newLUWServer, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, LUWPackage.REMOTE_SERVER__LUW_SERVER, newLUWServer, newLUWServer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_SERVER__LUW_SERVER:
+ if (luwServer != null)
+ msgs = ((InternalEObject)luwServer).eInverseRemove(this, LUWPackage.LUW_SERVER__REMOTE_SERVER, LUWServer.class, msgs);
+ return basicSetLUWServer((LUWServer)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_SERVER__LUW_SERVER:
+ return basicSetLUWServer(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_SERVER__LUW_SERVER:
+ if (resolve) return getLUWServer();
+ return basicGetLUWServer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_SERVER__LUW_SERVER:
+ setLUWServer((LUWServer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_SERVER__LUW_SERVER:
+ setLUWServer((LUWServer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case LUWPackage.REMOTE_SERVER__LUW_SERVER:
+ return luwServer != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //RemoteServerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/DatabaseToRemoteServerHelper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/DatabaseToRemoteServerHelper.java
new file mode 100644
index 0000000..3435c13
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/DatabaseToRemoteServerHelper.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.util;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteServer;
+import org.eclipse.datatools.enablement.ibm.db2.model.util.ReverseNavigationHelper;
+
+/**
+ * @author ellersr
+ *
+ * Helper to provide the ability to navigate the <code>RelationalRemoteServer.database</code> relationship
+ * in the inverse direction. (I.e. navigate from an SQL Database object back to an
+ * LUW RelationalRemoteServer object, even though the relationship RelationalRemoteServer to
+ * Database is modeled to be one directional.)
+ */
+public class DatabaseToRemoteServerHelper extends ReverseNavigationHelper {
+
+
+ protected static final EReference databaseRef = LUWPackage.eINSTANCE.getRelationalRemoteServer_Database();
+
+ /**
+ * The singleton instance of <code>INVERSE_DATABASE_ADAPTER</code> must be attached to
+ * any instance of RelationalRemoteServer for which reverse navigation is required.
+ * This adapter should be attached at the time the RelationalRemoteServer object is
+ * created.
+ */
+ public static final InverseAdapter INVERSE_DATABASE_ADAPTER = new InverseAdapter(databaseRef, SINGLE);
+
+
+ /**
+ * Helper method to get the LUW RelationalRemoteServer object that points to
+ * a specified instance of a SQL Database object via the <code>RelationalRemoteServer.database</code> relationship.
+ * @param db The SQL Database object
+ * @return The corresponding LUW RelationalRemoteServer object
+ */
+ public static RelationalRemoteServer getRemoteServer(Database db) {
+ return (RelationalRemoteServer) INVERSE_DATABASE_ADAPTER.getOppositeEnd(db);
+ }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/LUWAdapterFactory.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/LUWAdapterFactory.java
new file mode 100644
index 0000000..08420d8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/LUWAdapterFactory.java
@@ -0,0 +1,2040 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.util;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Database;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Member;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2View;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.*;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.TemporaryTable;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see com.ibm.db.models.db2.luw.LUWPackage
+ * @generated
+ */
+public class LUWAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static LUWPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = LUWPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LUWSwitch modelSwitch =
+ new LUWSwitch() {
+ public Object caseLUWPartitionGroup(LUWPartitionGroup object) {
+ return createLUWPartitionGroupAdapter();
+ }
+ public Object caseLUWTableSpace(LUWTableSpace object) {
+ return createLUWTableSpaceAdapter();
+ }
+ public Object caseLUWDatabasePartition(LUWDatabasePartition object) {
+ return createLUWDatabasePartitionAdapter();
+ }
+ public Object caseLUWDatabaseContainer(LUWDatabaseContainer object) {
+ return createLUWDatabaseContainerAdapter();
+ }
+ public Object caseLUWAdminServer(LUWAdminServer object) {
+ return createLUWAdminServerAdapter();
+ }
+ public Object caseLUWBufferPool(LUWBufferPool object) {
+ return createLUWBufferPoolAdapter();
+ }
+ public Object caseLUWTable(LUWTable object) {
+ return createLUWTableAdapter();
+ }
+ public Object caseLUWView(LUWView object) {
+ return createLUWViewAdapter();
+ }
+ public Object caseLUWPartitionKey(LUWPartitionKey object) {
+ return createLUWPartitionKeyAdapter();
+ }
+ public Object caseLUWNickname(LUWNickname object) {
+ return createLUWNicknameAdapter();
+ }
+ public Object caseLUWFunctionMapping(LUWFunctionMapping object) {
+ return createLUWFunctionMappingAdapter();
+ }
+ public Object caseLUWWrapper(LUWWrapper object) {
+ return createLUWWrapperAdapter();
+ }
+ public Object caseLUWNonRelationalNickname(LUWNonRelationalNickname object) {
+ return createLUWNonRelationalNicknameAdapter();
+ }
+ public Object caseLUWNonRelationalServer(LUWNonRelationalServer object) {
+ return createLUWNonRelationalServerAdapter();
+ }
+ public Object caseLUWNonRelationalWrapper(LUWNonRelationalWrapper object) {
+ return createLUWNonRelationalWrapperAdapter();
+ }
+ public Object caseLUWRelationalNickname(LUWRelationalNickname object) {
+ return createLUWRelationalNicknameAdapter();
+ }
+ public Object caseLUWGenericUserMapping(LUWGenericUserMapping object) {
+ return createLUWGenericUserMappingAdapter();
+ }
+ public Object caseLUWRelationalWrapper(LUWRelationalWrapper object) {
+ return createLUWRelationalWrapperAdapter();
+ }
+ public Object caseLUWServer(LUWServer object) {
+ return createLUWServerAdapter();
+ }
+ public Object caseLUWTypeMapping(LUWTypeMapping object) {
+ return createLUWTypeMappingAdapter();
+ }
+ public Object caseLUWUserMapping(LUWUserMapping object) {
+ return createLUWUserMappingAdapter();
+ }
+ public Object caseLUWOption(LUWOption object) {
+ return createLUWOptionAdapter();
+ }
+ public Object caseLUWRelationalServer(LUWRelationalServer object) {
+ return createLUWRelationalServerAdapter();
+ }
+ public Object caseLUWDatabase(LUWDatabase object) {
+ return createLUWDatabaseAdapter();
+ }
+ public Object caseLUWColumn(LUWColumn object) {
+ return createLUWColumnAdapter();
+ }
+ public Object caseLUWGenericNickname(LUWGenericNickname object) {
+ return createLUWGenericNicknameAdapter();
+ }
+ public Object caseLUWGenericServer(LUWGenericServer object) {
+ return createLUWGenericServerAdapter();
+ }
+ public Object caseLUWMaterializedQueryTable(LUWMaterializedQueryTable object) {
+ return createLUWMaterializedQueryTableAdapter();
+ }
+ public Object caseLUWGenericWrapper(LUWGenericWrapper object) {
+ return createLUWGenericWrapperAdapter();
+ }
+ public Object caseLUWStorageTable(LUWStorageTable object) {
+ return createLUWStorageTableAdapter();
+ }
+ public Object caseRelationalRemoteServer(RelationalRemoteServer object) {
+ return createRelationalRemoteServerAdapter();
+ }
+ public Object caseRelationalRemoteDataSet(RelationalRemoteDataSet object) {
+ return createRelationalRemoteDataSetAdapter();
+ }
+ public Object caseRemoteServer(RemoteServer object) {
+ return createRemoteServerAdapter();
+ }
+ public Object caseRemoteDataSet(RemoteDataSet object) {
+ return createRemoteDataSetAdapter();
+ }
+ public Object caseLUWIndex(LUWIndex object) {
+ return createLUWIndexAdapter();
+ }
+ public Object caseLUWAttributeDefinition(LUWAttributeDefinition object) {
+ return createLUWAttributeDefinitionAdapter();
+ }
+ public Object caseFederatedProcedure(FederatedProcedure object) {
+ return createFederatedProcedureAdapter();
+ }
+ public Object caseFederatedParameter(FederatedParameter object) {
+ return createFederatedParameterAdapter();
+ }
+ public Object caseLUWPartitionExpression(LUWPartitionExpression object) {
+ return createLUWPartitionExpressionAdapter();
+ }
+ public Object caseLUWPartitionElement(LUWPartitionElement object) {
+ return createLUWPartitionElementAdapter();
+ }
+ public Object caseLUWDataPartition(LUWDataPartition object) {
+ return createLUWDataPartitionAdapter();
+ }
+ public Object caseLUWDataPartitionKey(LUWDataPartitionKey object) {
+ return createLUWDataPartitionKeyAdapter();
+ }
+ public Object caseLUWDatabasePackage(LUWDatabasePackage object) {
+ return createLUWDatabasePackageAdapter();
+ }
+ public Object caseLUWModule(LUWModule object) {
+ return createLUWModuleAdapter();
+ }
+ public Object caseLUWModuleObject(LUWModuleObject object) {
+ return createLUWModuleObjectAdapter();
+ }
+ public Object caseLUWModuleFunction(LUWModuleFunction object) {
+ return createLUWModuleFunctionAdapter();
+ }
+ public Object caseLUWModuleProcedure(LUWModuleProcedure object) {
+ return createLUWModuleProcedureAdapter();
+ }
+ public Object caseLUWModuleCondition(LUWModuleCondition object) {
+ return createLUWModuleConditionAdapter();
+ }
+ public Object caseLUWGlobalVariable(LUWGlobalVariable object) {
+ return createLUWGlobalVariableAdapter();
+ }
+ public Object caseLUWModuleType(LUWModuleType object) {
+ return createLUWModuleTypeAdapter();
+ }
+ public Object caseLUWModuleRowDataType(LUWModuleRowDataType object) {
+ return createLUWModuleRowDataTypeAdapter();
+ }
+ public Object caseLUWModuleArrayDataType(LUWModuleArrayDataType object) {
+ return createLUWModuleArrayDataTypeAdapter();
+ }
+ public Object caseLUWModuleDistinctType(LUWModuleDistinctType object) {
+ return createLUWModuleDistinctTypeAdapter();
+ }
+ public Object caseLUWModuleGlobalVariable(LUWModuleGlobalVariable object) {
+ return createLUWModuleGlobalVariableAdapter();
+ }
+ public Object caseLUWArrayDataType(LUWArrayDataType object) {
+ return createLUWArrayDataTypeAdapter();
+ }
+ public Object caseLUWRowDataType(LUWRowDataType object) {
+ return createLUWRowDataTypeAdapter();
+ }
+ public Object casePLSQLPackage(PLSQLPackage object) {
+ return createPLSQLPackageAdapter();
+ }
+ public Object casePLSQLPackageBody(PLSQLPackageBody object) {
+ return createPLSQLPackageBodyAdapter();
+ }
+ public Object caseLUWCursorDataType(LUWCursorDataType object) {
+ return createLUWCursorDataTypeAdapter();
+ }
+ public Object caseLUWModuleCursorDataType(LUWModuleCursorDataType object) {
+ return createLUWModuleCursorDataTypeAdapter();
+ }
+ public Object caseLUWBufferPoolSizeException(LUWBufferPoolSizeException object) {
+ return createLUWBufferPoolSizeExceptionAdapter();
+ }
+ public Object caseLUWMember(LUWMember object) {
+ return createLUWMemberAdapter();
+ }
+ public Object caseLUWSecurityPolicy(LUWSecurityPolicy object) {
+ return createLUWSecurityPolicyAdapter();
+ }
+ public Object caseLUWSecurityLabelComponent(LUWSecurityLabelComponent object) {
+ return createLUWSecurityLabelComponentAdapter();
+ }
+ public Object caseLUWSecurityLabel(LUWSecurityLabel object) {
+ return createLUWSecurityLabelAdapter();
+ }
+ public Object caseLUWSecurityLabelComponentElement(LUWSecurityLabelComponentElement object) {
+ return createLUWSecurityLabelComponentElementAdapter();
+ }
+ public Object caseLUWStorageGroup(LUWStorageGroup object) {
+ return createLUWStorageGroupAdapter();
+ }
+ public Object caseLUWTemporaryStorageTable(LUWTemporaryStorageTable object) {
+ return createLUWTemporaryStorageTableAdapter();
+ }
+ public Object caseLUWTemporaryTable(LUWTemporaryTable object) {
+ return createLUWTemporaryTableAdapter();
+ }
+ public Object caseArrayIndexElementType(ArrayIndexElementType object) {
+ return createArrayIndexElementTypeAdapter();
+ }
+ public Object caseLUWPartitionEveryClauseElement(LUWPartitionEveryClauseElement object) {
+ return createLUWPartitionEveryClauseElementAdapter();
+ }
+ public Object caseEModelElement(EModelElement object) {
+ return createEModelElementAdapter();
+ }
+ public Object caseENamedElement(ENamedElement object) {
+ return createENamedElementAdapter();
+ }
+ public Object caseSQLObject(SQLObject object) {
+ return createSQLObjectAdapter();
+ }
+ public Object caseTable(Table object) {
+ return createTableAdapter();
+ }
+ public Object caseBaseTable(BaseTable object) {
+ return createBaseTableAdapter();
+ }
+ public Object casePersistentTable(PersistentTable object) {
+ return createPersistentTableAdapter();
+ }
+ public Object caseDB2Table(DB2Table object) {
+ return createDB2TableAdapter();
+ }
+ public Object caseDerivedTable(DerivedTable object) {
+ return createDerivedTableAdapter();
+ }
+ public Object caseViewTable(ViewTable object) {
+ return createViewTableAdapter();
+ }
+ public Object caseDB2View(DB2View object) {
+ return createDB2ViewAdapter();
+ }
+ public Object caseDatabase(Database object) {
+ return createDatabaseAdapter();
+ }
+ public Object caseDB2Database(DB2Database object) {
+ return createDB2DatabaseAdapter();
+ }
+ public Object caseTypedElement(TypedElement object) {
+ return createTypedElementAdapter();
+ }
+ public Object caseColumn(Column object) {
+ return createColumnAdapter();
+ }
+ public Object caseDB2Column(DB2Column object) {
+ return createDB2ColumnAdapter();
+ }
+ public Object caseDB2MaterializedQueryTable(DB2MaterializedQueryTable object) {
+ return createDB2MaterializedQueryTableAdapter();
+ }
+ public Object caseIndex(Index object) {
+ return createIndexAdapter();
+ }
+ public Object caseDB2Index(DB2Index object) {
+ return createDB2IndexAdapter();
+ }
+ public Object caseAttributeDefinition(AttributeDefinition object) {
+ return createAttributeDefinitionAdapter();
+ }
+ public Object caseRoutine(Routine object) {
+ return createRoutineAdapter();
+ }
+ public Object caseProcedure(Procedure object) {
+ return createProcedureAdapter();
+ }
+ public Object caseDB2AccessPlan(DB2AccessPlan object) {
+ return createDB2AccessPlanAdapter();
+ }
+ public Object caseDB2Routine(DB2Routine object) {
+ return createDB2RoutineAdapter();
+ }
+ public Object caseDB2Procedure(DB2Procedure object) {
+ return createDB2ProcedureAdapter();
+ }
+ public Object caseParameter(Parameter object) {
+ return createParameterAdapter();
+ }
+ public Object caseDB2Package(DB2Package object) {
+ return createDB2PackageAdapter();
+ }
+ public Object caseFunction(Function object) {
+ return createFunctionAdapter();
+ }
+ public Object caseUserDefinedFunction(UserDefinedFunction object) {
+ return createUserDefinedFunctionAdapter();
+ }
+ public Object caseDB2Function(DB2Function object) {
+ return createDB2FunctionAdapter();
+ }
+ public Object caseDB2UserDefinedFunction(DB2UserDefinedFunction object) {
+ return createDB2UserDefinedFunctionAdapter();
+ }
+ public Object caseDataType(DataType object) {
+ return createDataTypeAdapter();
+ }
+ public Object caseUserDefinedType(UserDefinedType object) {
+ return createUserDefinedTypeAdapter();
+ }
+ public Object caseConstructedDataType(ConstructedDataType object) {
+ return createConstructedDataTypeAdapter();
+ }
+ public Object caseRowDataType(RowDataType object) {
+ return createRowDataTypeAdapter();
+ }
+ public Object caseCollectionDataType(CollectionDataType object) {
+ return createCollectionDataTypeAdapter();
+ }
+ public Object caseArrayDataType(ArrayDataType object) {
+ return createArrayDataTypeAdapter();
+ }
+ public Object caseDistinctUserDefinedType(DistinctUserDefinedType object) {
+ return createDistinctUserDefinedTypeAdapter();
+ }
+ public Object caseSource(Source object) {
+ return createSourceAdapter();
+ }
+ public Object caseDB2Member(DB2Member object) {
+ return createDB2MemberAdapter();
+ }
+ public Object caseTemporaryTable(TemporaryTable object) {
+ return createTemporaryTableAdapter();
+ }
+ public Object caseElementType(ElementType object) {
+ return createElementTypeAdapter();
+ }
+ public Object defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWPartitionGroup <em>Partition Group</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWPartitionGroup
+ * @generated
+ */
+ public Adapter createLUWPartitionGroupAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWTableSpace <em>Table Space</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWTableSpace
+ * @generated
+ */
+ public Adapter createLUWTableSpaceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWDatabasePartition <em>Database Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWDatabasePartition
+ * @generated
+ */
+ public Adapter createLUWDatabasePartitionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWDatabaseContainer <em>Database Container</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWDatabaseContainer
+ * @generated
+ */
+ public Adapter createLUWDatabaseContainerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWAdminServer <em>Admin Server</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWAdminServer
+ * @generated
+ */
+ public Adapter createLUWAdminServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWBufferPool <em>Buffer Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWBufferPool
+ * @generated
+ */
+ public Adapter createLUWBufferPoolAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWTable
+ * @generated
+ */
+ public Adapter createLUWTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWView <em>View</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWView
+ * @generated
+ */
+ public Adapter createLUWViewAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWPartitionKey <em>Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWPartitionKey
+ * @generated
+ */
+ public Adapter createLUWPartitionKeyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWNickname <em>Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWNickname
+ * @generated
+ */
+ public Adapter createLUWNicknameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWFunctionMapping <em>Function Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWFunctionMapping
+ * @generated
+ */
+ public Adapter createLUWFunctionMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWWrapper <em>Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWWrapper
+ * @generated
+ */
+ public Adapter createLUWWrapperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWNonRelationalNickname <em>Non Relational Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWNonRelationalNickname
+ * @generated
+ */
+ public Adapter createLUWNonRelationalNicknameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWNonRelationalServer <em>Non Relational Server</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWNonRelationalServer
+ * @generated
+ */
+ public Adapter createLUWNonRelationalServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWNonRelationalWrapper <em>Non Relational Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWNonRelationalWrapper
+ * @generated
+ */
+ public Adapter createLUWNonRelationalWrapperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWRelationalNickname <em>Relational Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWRelationalNickname
+ * @generated
+ */
+ public Adapter createLUWRelationalNicknameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWGenericUserMapping <em>Generic User Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWGenericUserMapping
+ * @generated
+ */
+ public Adapter createLUWGenericUserMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWRelationalWrapper <em>Relational Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWRelationalWrapper
+ * @generated
+ */
+ public Adapter createLUWRelationalWrapperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWServer
+ * @generated
+ */
+ public Adapter createLUWServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWTypeMapping <em>Type Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWTypeMapping
+ * @generated
+ */
+ public Adapter createLUWTypeMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWUserMapping <em>User Mapping</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWUserMapping
+ * @generated
+ */
+ public Adapter createLUWUserMappingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWOption <em>Option</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWOption
+ * @generated
+ */
+ public Adapter createLUWOptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWRelationalServer <em>Relational Server</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWRelationalServer
+ * @generated
+ */
+ public Adapter createLUWRelationalServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWDatabase <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWDatabase
+ * @generated
+ */
+ public Adapter createLUWDatabaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWColumn <em>Column</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWColumn
+ * @generated
+ */
+ public Adapter createLUWColumnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWGenericNickname <em>Generic Nickname</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWGenericNickname
+ * @generated
+ */
+ public Adapter createLUWGenericNicknameAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWGenericServer <em>Generic Server</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWGenericServer
+ * @generated
+ */
+ public Adapter createLUWGenericServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWMaterializedQueryTable <em>Materialized Query Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWMaterializedQueryTable
+ * @generated
+ */
+ public Adapter createLUWMaterializedQueryTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWGenericWrapper <em>Generic Wrapper</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWGenericWrapper
+ * @generated
+ */
+ public Adapter createLUWGenericWrapperAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWStorageTable <em>Storage Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWStorageTable
+ * @generated
+ */
+ public Adapter createLUWStorageTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.RelationalRemoteServer <em>Relational Remote Server</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.RelationalRemoteServer
+ * @generated
+ */
+ public Adapter createRelationalRemoteServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.RelationalRemoteDataSet <em>Relational Remote Data Set</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.RelationalRemoteDataSet
+ * @generated
+ */
+ public Adapter createRelationalRemoteDataSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.RemoteServer <em>Remote Server</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.RemoteServer
+ * @generated
+ */
+ public Adapter createRemoteServerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.RemoteDataSet <em>Remote Data Set</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.RemoteDataSet
+ * @generated
+ */
+ public Adapter createRemoteDataSetAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWIndex <em>Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWIndex
+ * @generated
+ */
+ public Adapter createLUWIndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWAttributeDefinition <em>Attribute Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWAttributeDefinition
+ * @generated
+ */
+ public Adapter createLUWAttributeDefinitionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.FederatedProcedure <em>Federated Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.FederatedProcedure
+ * @generated
+ */
+ public Adapter createFederatedProcedureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.FederatedParameter <em>Federated Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.FederatedParameter
+ * @generated
+ */
+ public Adapter createFederatedParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWPartitionExpression <em>Partition Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWPartitionExpression
+ * @generated
+ */
+ public Adapter createLUWPartitionExpressionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWPartitionElement <em>Partition Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWPartitionElement
+ * @generated
+ */
+ public Adapter createLUWPartitionElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWDataPartition <em>Data Partition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWDataPartition
+ * @generated
+ */
+ public Adapter createLUWDataPartitionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWDataPartitionKey <em>Data Partition Key</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWDataPartitionKey
+ * @generated
+ */
+ public Adapter createLUWDataPartitionKeyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWDatabasePackage <em>Database Package</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWDatabasePackage
+ * @generated
+ */
+ public Adapter createLUWDatabasePackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModule <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModule
+ * @generated
+ */
+ public Adapter createLUWModuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleObject <em>Module Object</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleObject
+ * @generated
+ */
+ public Adapter createLUWModuleObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleFunction <em>Module Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleFunction
+ * @generated
+ */
+ public Adapter createLUWModuleFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleProcedure <em>Module Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleProcedure
+ * @generated
+ */
+ public Adapter createLUWModuleProcedureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleCondition <em>Module Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleCondition
+ * @generated
+ */
+ public Adapter createLUWModuleConditionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWGlobalVariable <em>Global Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWGlobalVariable
+ * @generated
+ */
+ public Adapter createLUWGlobalVariableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleType <em>Module Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleType
+ * @generated
+ */
+ public Adapter createLUWModuleTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleRowDataType <em>Module Row Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleRowDataType
+ * @generated
+ */
+ public Adapter createLUWModuleRowDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleArrayDataType <em>Module Array Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleArrayDataType
+ * @generated
+ */
+ public Adapter createLUWModuleArrayDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleDistinctType <em>Module Distinct Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleDistinctType
+ * @generated
+ */
+ public Adapter createLUWModuleDistinctTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleGlobalVariable <em>Module Global Variable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleGlobalVariable
+ * @generated
+ */
+ public Adapter createLUWModuleGlobalVariableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWArrayDataType <em>Array Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWArrayDataType
+ * @generated
+ */
+ public Adapter createLUWArrayDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWRowDataType <em>Row Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWRowDataType
+ * @generated
+ */
+ public Adapter createLUWRowDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.PLSQLPackage <em>PLSQL Package</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.PLSQLPackage
+ * @generated
+ */
+ public Adapter createPLSQLPackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.PLSQLPackageBody <em>PLSQL Package Body</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.PLSQLPackageBody
+ * @generated
+ */
+ public Adapter createPLSQLPackageBodyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWCursorDataType <em>Cursor Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWCursorDataType
+ * @generated
+ */
+ public Adapter createLUWCursorDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWModuleCursorDataType <em>Module Cursor Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWModuleCursorDataType
+ * @generated
+ */
+ public Adapter createLUWModuleCursorDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWBufferPoolSizeException <em>Buffer Pool Size Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWBufferPoolSizeException
+ * @generated
+ */
+ public Adapter createLUWBufferPoolSizeExceptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWMember <em>Member</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWMember
+ * @generated
+ */
+ public Adapter createLUWMemberAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWSecurityPolicy <em>Security Policy</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWSecurityPolicy
+ * @generated
+ */
+ public Adapter createLUWSecurityPolicyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWSecurityLabelComponent <em>Security Label Component</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWSecurityLabelComponent
+ * @generated
+ */
+ public Adapter createLUWSecurityLabelComponentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWSecurityLabel <em>Security Label</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWSecurityLabel
+ * @generated
+ */
+ public Adapter createLUWSecurityLabelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWSecurityLabelComponentElement <em>Security Label Component Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWSecurityLabelComponentElement
+ * @generated
+ */
+ public Adapter createLUWSecurityLabelComponentElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWStorageGroup <em>Storage Group</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWStorageGroup
+ * @generated
+ */
+ public Adapter createLUWStorageGroupAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWTemporaryStorageTable <em>Temporary Storage Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWTemporaryStorageTable
+ * @generated
+ */
+ public Adapter createLUWTemporaryStorageTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWTemporaryTable <em>Temporary Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWTemporaryTable
+ * @generated
+ */
+ public Adapter createLUWTemporaryTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.ArrayIndexElementType <em>Array Index Element Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.ArrayIndexElementType
+ * @generated
+ */
+ public Adapter createArrayIndexElementTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.luw.LUWPartitionEveryClauseElement <em>Partition Every Clause Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.luw.LUWPartitionEveryClauseElement
+ * @generated
+ */
+ public Adapter createLUWPartitionEveryClauseElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.EModelElement
+ * @generated
+ */
+ public Adapter createEModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.ENamedElement
+ * @generated
+ */
+ public Adapter createENamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+ * @generated
+ */
+ public Adapter createSQLObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Table <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.Table
+ * @generated
+ */
+ public Adapter createTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable <em>Base Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable
+ * @generated
+ */
+ public Adapter createBaseTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.PersistentTable <em>Persistent Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.PersistentTable
+ * @generated
+ */
+ public Adapter createPersistentTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Table <em>DB2 Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Table
+ * @generated
+ */
+ public Adapter createDB2TableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable <em>Derived Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.DerivedTable
+ * @generated
+ */
+ public Adapter createDerivedTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.ViewTable <em>View Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.ViewTable
+ * @generated
+ */
+ public Adapter createViewTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2View <em>DB2 View</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2View
+ * @generated
+ */
+ public Adapter createDB2ViewAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Database <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.Database
+ * @generated
+ */
+ public Adapter createDatabaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Database <em>DB2 Database</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Database
+ * @generated
+ */
+ public Adapter createDB2DatabaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement <em>Typed Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement
+ * @generated
+ */
+ public Adapter createTypedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Column <em>Column</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.Column
+ * @generated
+ */
+ public Adapter createColumnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Column <em>DB2 Column</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Column
+ * @generated
+ */
+ public Adapter createDB2ColumnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2MaterializedQueryTable <em>DB2 Materialized Query Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2MaterializedQueryTable
+ * @generated
+ */
+ public Adapter createDB2MaterializedQueryTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.Index <em>Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.constraints.Index
+ * @generated
+ */
+ public Adapter createIndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Index <em>DB2 Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Index
+ * @generated
+ */
+ public Adapter createDB2IndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition <em>Attribute Definition</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition
+ * @generated
+ */
+ public Adapter createAttributeDefinitionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Routine <em>Routine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Routine
+ * @generated
+ */
+ public Adapter createRoutineAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure <em>Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Procedure
+ * @generated
+ */
+ public Adapter createProcedureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2AccessPlan <em>DB2 Access Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2AccessPlan
+ * @generated
+ */
+ public Adapter createDB2AccessPlanAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Routine <em>DB2 Routine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Routine
+ * @generated
+ */
+ public Adapter createDB2RoutineAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Procedure <em>DB2 Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Procedure
+ * @generated
+ */
+ public Adapter createDB2ProcedureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Parameter <em>Parameter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Parameter
+ * @generated
+ */
+ public Adapter createParameterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Package <em>DB2 Package</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Package
+ * @generated
+ */
+ public Adapter createDB2PackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Function <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Function
+ * @generated
+ */
+ public Adapter createFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction <em>User Defined Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction
+ * @generated
+ */
+ public Adapter createUserDefinedFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Function <em>DB2 Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Function
+ * @generated
+ */
+ public Adapter createDB2FunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2UserDefinedFunction <em>DB2 User Defined Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2UserDefinedFunction
+ * @generated
+ */
+ public Adapter createDB2UserDefinedFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataType <em>Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.DataType
+ * @generated
+ */
+ public Adapter createDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType <em>User Defined Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType
+ * @generated
+ */
+ public Adapter createUserDefinedTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType <em>Constructed Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType
+ * @generated
+ */
+ public Adapter createConstructedDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.RowDataType <em>Row Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.RowDataType
+ * @generated
+ */
+ public Adapter createRowDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType <em>Collection Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType
+ * @generated
+ */
+ public Adapter createCollectionDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType <em>Array Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType
+ * @generated
+ */
+ public Adapter createArrayDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType <em>Distinct User Defined Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType
+ * @generated
+ */
+ public Adapter createDistinctUserDefinedTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Source <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Source
+ * @generated
+ */
+ public Adapter createSourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Member <em>DB2 Member</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Member
+ * @generated
+ */
+ public Adapter createDB2MemberAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.TemporaryTable <em>Temporary Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.TemporaryTable
+ * @generated
+ */
+ public Adapter createTemporaryTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.ElementType <em>Element Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.ElementType
+ * @generated
+ */
+ public Adapter createElementTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //LUWAdapterFactory
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/LUWSwitch.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/LUWSwitch.java
new file mode 100644
index 0000000..31df322
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/LUWSwitch.java
@@ -0,0 +1,2573 @@
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.util;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Database;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Member;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2View;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.*;
+import java.util.List;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.CollectionDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ConstructedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.ElementType;
+import org.eclipse.datatools.modelbase.sql.datatypes.RowDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.TemporaryTable;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage
+ * @generated
+ */
+public class LUWSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static LUWPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LUWSwitch() {
+ if (modelPackage == null) {
+ modelPackage = LUWPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case LUWPackage.LUW_PARTITION_GROUP: {
+ LUWPartitionGroup luwPartitionGroup = (LUWPartitionGroup)theEObject;
+ Object result = caseLUWPartitionGroup(luwPartitionGroup);
+ if (result == null) result = caseSQLObject(luwPartitionGroup);
+ if (result == null) result = caseENamedElement(luwPartitionGroup);
+ if (result == null) result = caseEModelElement(luwPartitionGroup);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_TABLE_SPACE: {
+ LUWTableSpace luwTableSpace = (LUWTableSpace)theEObject;
+ Object result = caseLUWTableSpace(luwTableSpace);
+ if (result == null) result = caseSQLObject(luwTableSpace);
+ if (result == null) result = caseENamedElement(luwTableSpace);
+ if (result == null) result = caseEModelElement(luwTableSpace);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_DATABASE_PARTITION: {
+ LUWDatabasePartition luwDatabasePartition = (LUWDatabasePartition)theEObject;
+ Object result = caseLUWDatabasePartition(luwDatabasePartition);
+ if (result == null) result = caseSQLObject(luwDatabasePartition);
+ if (result == null) result = caseENamedElement(luwDatabasePartition);
+ if (result == null) result = caseEModelElement(luwDatabasePartition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_DATABASE_CONTAINER: {
+ LUWDatabaseContainer luwDatabaseContainer = (LUWDatabaseContainer)theEObject;
+ Object result = caseLUWDatabaseContainer(luwDatabaseContainer);
+ if (result == null) result = caseSQLObject(luwDatabaseContainer);
+ if (result == null) result = caseENamedElement(luwDatabaseContainer);
+ if (result == null) result = caseEModelElement(luwDatabaseContainer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_ADMIN_SERVER: {
+ LUWAdminServer luwAdminServer = (LUWAdminServer)theEObject;
+ Object result = caseLUWAdminServer(luwAdminServer);
+ if (result == null) result = caseSQLObject(luwAdminServer);
+ if (result == null) result = caseENamedElement(luwAdminServer);
+ if (result == null) result = caseEModelElement(luwAdminServer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_BUFFER_POOL: {
+ LUWBufferPool luwBufferPool = (LUWBufferPool)theEObject;
+ Object result = caseLUWBufferPool(luwBufferPool);
+ if (result == null) result = caseSQLObject(luwBufferPool);
+ if (result == null) result = caseENamedElement(luwBufferPool);
+ if (result == null) result = caseEModelElement(luwBufferPool);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_TABLE: {
+ LUWTable luwTable = (LUWTable)theEObject;
+ Object result = caseLUWTable(luwTable);
+ if (result == null) result = caseDB2Table(luwTable);
+ if (result == null) result = caseLUWStorageTable(luwTable);
+ if (result == null) result = casePersistentTable(luwTable);
+ if (result == null) result = caseBaseTable(luwTable);
+ if (result == null) result = caseTable(luwTable);
+ if (result == null) result = caseSQLObject(luwTable);
+ if (result == null) result = caseENamedElement(luwTable);
+ if (result == null) result = caseEModelElement(luwTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_VIEW: {
+ LUWView luwView = (LUWView)theEObject;
+ Object result = caseLUWView(luwView);
+ if (result == null) result = caseDB2View(luwView);
+ if (result == null) result = caseViewTable(luwView);
+ if (result == null) result = caseDerivedTable(luwView);
+ if (result == null) result = caseTable(luwView);
+ if (result == null) result = caseSQLObject(luwView);
+ if (result == null) result = caseENamedElement(luwView);
+ if (result == null) result = caseEModelElement(luwView);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_PARTITION_KEY: {
+ LUWPartitionKey luwPartitionKey = (LUWPartitionKey)theEObject;
+ Object result = caseLUWPartitionKey(luwPartitionKey);
+ if (result == null) result = caseSQLObject(luwPartitionKey);
+ if (result == null) result = caseENamedElement(luwPartitionKey);
+ if (result == null) result = caseEModelElement(luwPartitionKey);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_NICKNAME: {
+ LUWNickname luwNickname = (LUWNickname)theEObject;
+ Object result = caseLUWNickname(luwNickname);
+ if (result == null) result = caseLUWTable(luwNickname);
+ if (result == null) result = caseDB2Table(luwNickname);
+ if (result == null) result = caseLUWStorageTable(luwNickname);
+ if (result == null) result = casePersistentTable(luwNickname);
+ if (result == null) result = caseBaseTable(luwNickname);
+ if (result == null) result = caseTable(luwNickname);
+ if (result == null) result = caseSQLObject(luwNickname);
+ if (result == null) result = caseENamedElement(luwNickname);
+ if (result == null) result = caseEModelElement(luwNickname);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_FUNCTION_MAPPING: {
+ LUWFunctionMapping luwFunctionMapping = (LUWFunctionMapping)theEObject;
+ Object result = caseLUWFunctionMapping(luwFunctionMapping);
+ if (result == null) result = caseSQLObject(luwFunctionMapping);
+ if (result == null) result = caseENamedElement(luwFunctionMapping);
+ if (result == null) result = caseEModelElement(luwFunctionMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_WRAPPER: {
+ LUWWrapper luwWrapper = (LUWWrapper)theEObject;
+ Object result = caseLUWWrapper(luwWrapper);
+ if (result == null) result = caseSQLObject(luwWrapper);
+ if (result == null) result = caseENamedElement(luwWrapper);
+ if (result == null) result = caseEModelElement(luwWrapper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_NON_RELATIONAL_NICKNAME: {
+ LUWNonRelationalNickname luwNonRelationalNickname = (LUWNonRelationalNickname)theEObject;
+ Object result = caseLUWNonRelationalNickname(luwNonRelationalNickname);
+ if (result == null) result = caseLUWNickname(luwNonRelationalNickname);
+ if (result == null) result = caseLUWTable(luwNonRelationalNickname);
+ if (result == null) result = caseDB2Table(luwNonRelationalNickname);
+ if (result == null) result = caseLUWStorageTable(luwNonRelationalNickname);
+ if (result == null) result = casePersistentTable(luwNonRelationalNickname);
+ if (result == null) result = caseBaseTable(luwNonRelationalNickname);
+ if (result == null) result = caseTable(luwNonRelationalNickname);
+ if (result == null) result = caseSQLObject(luwNonRelationalNickname);
+ if (result == null) result = caseENamedElement(luwNonRelationalNickname);
+ if (result == null) result = caseEModelElement(luwNonRelationalNickname);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_NON_RELATIONAL_SERVER: {
+ LUWNonRelationalServer luwNonRelationalServer = (LUWNonRelationalServer)theEObject;
+ Object result = caseLUWNonRelationalServer(luwNonRelationalServer);
+ if (result == null) result = caseLUWServer(luwNonRelationalServer);
+ if (result == null) result = caseSQLObject(luwNonRelationalServer);
+ if (result == null) result = caseENamedElement(luwNonRelationalServer);
+ if (result == null) result = caseEModelElement(luwNonRelationalServer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_NON_RELATIONAL_WRAPPER: {
+ LUWNonRelationalWrapper luwNonRelationalWrapper = (LUWNonRelationalWrapper)theEObject;
+ Object result = caseLUWNonRelationalWrapper(luwNonRelationalWrapper);
+ if (result == null) result = caseLUWWrapper(luwNonRelationalWrapper);
+ if (result == null) result = caseSQLObject(luwNonRelationalWrapper);
+ if (result == null) result = caseENamedElement(luwNonRelationalWrapper);
+ if (result == null) result = caseEModelElement(luwNonRelationalWrapper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_RELATIONAL_NICKNAME: {
+ LUWRelationalNickname luwRelationalNickname = (LUWRelationalNickname)theEObject;
+ Object result = caseLUWRelationalNickname(luwRelationalNickname);
+ if (result == null) result = caseLUWNickname(luwRelationalNickname);
+ if (result == null) result = caseLUWTable(luwRelationalNickname);
+ if (result == null) result = caseDB2Table(luwRelationalNickname);
+ if (result == null) result = caseLUWStorageTable(luwRelationalNickname);
+ if (result == null) result = casePersistentTable(luwRelationalNickname);
+ if (result == null) result = caseBaseTable(luwRelationalNickname);
+ if (result == null) result = caseTable(luwRelationalNickname);
+ if (result == null) result = caseSQLObject(luwRelationalNickname);
+ if (result == null) result = caseENamedElement(luwRelationalNickname);
+ if (result == null) result = caseEModelElement(luwRelationalNickname);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_GENERIC_USER_MAPPING: {
+ LUWGenericUserMapping luwGenericUserMapping = (LUWGenericUserMapping)theEObject;
+ Object result = caseLUWGenericUserMapping(luwGenericUserMapping);
+ if (result == null) result = caseLUWUserMapping(luwGenericUserMapping);
+ if (result == null) result = caseSQLObject(luwGenericUserMapping);
+ if (result == null) result = caseENamedElement(luwGenericUserMapping);
+ if (result == null) result = caseEModelElement(luwGenericUserMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_RELATIONAL_WRAPPER: {
+ LUWRelationalWrapper luwRelationalWrapper = (LUWRelationalWrapper)theEObject;
+ Object result = caseLUWRelationalWrapper(luwRelationalWrapper);
+ if (result == null) result = caseLUWWrapper(luwRelationalWrapper);
+ if (result == null) result = caseSQLObject(luwRelationalWrapper);
+ if (result == null) result = caseENamedElement(luwRelationalWrapper);
+ if (result == null) result = caseEModelElement(luwRelationalWrapper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_SERVER: {
+ LUWServer luwServer = (LUWServer)theEObject;
+ Object result = caseLUWServer(luwServer);
+ if (result == null) result = caseSQLObject(luwServer);
+ if (result == null) result = caseENamedElement(luwServer);
+ if (result == null) result = caseEModelElement(luwServer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_TYPE_MAPPING: {
+ LUWTypeMapping luwTypeMapping = (LUWTypeMapping)theEObject;
+ Object result = caseLUWTypeMapping(luwTypeMapping);
+ if (result == null) result = caseSQLObject(luwTypeMapping);
+ if (result == null) result = caseENamedElement(luwTypeMapping);
+ if (result == null) result = caseEModelElement(luwTypeMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_USER_MAPPING: {
+ LUWUserMapping luwUserMapping = (LUWUserMapping)theEObject;
+ Object result = caseLUWUserMapping(luwUserMapping);
+ if (result == null) result = caseSQLObject(luwUserMapping);
+ if (result == null) result = caseENamedElement(luwUserMapping);
+ if (result == null) result = caseEModelElement(luwUserMapping);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_OPTION: {
+ LUWOption luwOption = (LUWOption)theEObject;
+ Object result = caseLUWOption(luwOption);
+ if (result == null) result = caseSQLObject(luwOption);
+ if (result == null) result = caseENamedElement(luwOption);
+ if (result == null) result = caseEModelElement(luwOption);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_RELATIONAL_SERVER: {
+ LUWRelationalServer luwRelationalServer = (LUWRelationalServer)theEObject;
+ Object result = caseLUWRelationalServer(luwRelationalServer);
+ if (result == null) result = caseLUWServer(luwRelationalServer);
+ if (result == null) result = caseSQLObject(luwRelationalServer);
+ if (result == null) result = caseENamedElement(luwRelationalServer);
+ if (result == null) result = caseEModelElement(luwRelationalServer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_DATABASE: {
+ LUWDatabase luwDatabase = (LUWDatabase)theEObject;
+ Object result = caseLUWDatabase(luwDatabase);
+ if (result == null) result = caseDB2Database(luwDatabase);
+ if (result == null) result = caseDatabase(luwDatabase);
+ if (result == null) result = caseSQLObject(luwDatabase);
+ if (result == null) result = caseENamedElement(luwDatabase);
+ if (result == null) result = caseEModelElement(luwDatabase);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_COLUMN: {
+ LUWColumn luwColumn = (LUWColumn)theEObject;
+ Object result = caseLUWColumn(luwColumn);
+ if (result == null) result = caseDB2Column(luwColumn);
+ if (result == null) result = caseColumn(luwColumn);
+ if (result == null) result = caseTypedElement(luwColumn);
+ if (result == null) result = caseSQLObject(luwColumn);
+ if (result == null) result = caseENamedElement(luwColumn);
+ if (result == null) result = caseEModelElement(luwColumn);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_GENERIC_NICKNAME: {
+ LUWGenericNickname luwGenericNickname = (LUWGenericNickname)theEObject;
+ Object result = caseLUWGenericNickname(luwGenericNickname);
+ if (result == null) result = caseLUWNickname(luwGenericNickname);
+ if (result == null) result = caseLUWTable(luwGenericNickname);
+ if (result == null) result = caseDB2Table(luwGenericNickname);
+ if (result == null) result = caseLUWStorageTable(luwGenericNickname);
+ if (result == null) result = casePersistentTable(luwGenericNickname);
+ if (result == null) result = caseBaseTable(luwGenericNickname);
+ if (result == null) result = caseTable(luwGenericNickname);
+ if (result == null) result = caseSQLObject(luwGenericNickname);
+ if (result == null) result = caseENamedElement(luwGenericNickname);
+ if (result == null) result = caseEModelElement(luwGenericNickname);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_GENERIC_SERVER: {
+ LUWGenericServer luwGenericServer = (LUWGenericServer)theEObject;
+ Object result = caseLUWGenericServer(luwGenericServer);
+ if (result == null) result = caseLUWServer(luwGenericServer);
+ if (result == null) result = caseSQLObject(luwGenericServer);
+ if (result == null) result = caseENamedElement(luwGenericServer);
+ if (result == null) result = caseEModelElement(luwGenericServer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MATERIALIZED_QUERY_TABLE: {
+ LUWMaterializedQueryTable luwMaterializedQueryTable = (LUWMaterializedQueryTable)theEObject;
+ Object result = caseLUWMaterializedQueryTable(luwMaterializedQueryTable);
+ if (result == null) result = caseDB2MaterializedQueryTable(luwMaterializedQueryTable);
+ if (result == null) result = caseLUWStorageTable(luwMaterializedQueryTable);
+ if (result == null) result = caseDerivedTable(luwMaterializedQueryTable);
+ if (result == null) result = caseTable(luwMaterializedQueryTable);
+ if (result == null) result = caseSQLObject(luwMaterializedQueryTable);
+ if (result == null) result = caseENamedElement(luwMaterializedQueryTable);
+ if (result == null) result = caseEModelElement(luwMaterializedQueryTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_GENERIC_WRAPPER: {
+ LUWGenericWrapper luwGenericWrapper = (LUWGenericWrapper)theEObject;
+ Object result = caseLUWGenericWrapper(luwGenericWrapper);
+ if (result == null) result = caseLUWWrapper(luwGenericWrapper);
+ if (result == null) result = caseSQLObject(luwGenericWrapper);
+ if (result == null) result = caseENamedElement(luwGenericWrapper);
+ if (result == null) result = caseEModelElement(luwGenericWrapper);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_STORAGE_TABLE: {
+ LUWStorageTable luwStorageTable = (LUWStorageTable)theEObject;
+ Object result = caseLUWStorageTable(luwStorageTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.RELATIONAL_REMOTE_SERVER: {
+ RelationalRemoteServer relationalRemoteServer = (RelationalRemoteServer)theEObject;
+ Object result = caseRelationalRemoteServer(relationalRemoteServer);
+ if (result == null) result = caseSQLObject(relationalRemoteServer);
+ if (result == null) result = caseRemoteServer(relationalRemoteServer);
+ if (result == null) result = caseENamedElement(relationalRemoteServer);
+ if (result == null) result = caseEModelElement(relationalRemoteServer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.RELATIONAL_REMOTE_DATA_SET: {
+ RelationalRemoteDataSet relationalRemoteDataSet = (RelationalRemoteDataSet)theEObject;
+ Object result = caseRelationalRemoteDataSet(relationalRemoteDataSet);
+ if (result == null) result = caseSQLObject(relationalRemoteDataSet);
+ if (result == null) result = caseRemoteDataSet(relationalRemoteDataSet);
+ if (result == null) result = caseENamedElement(relationalRemoteDataSet);
+ if (result == null) result = caseEModelElement(relationalRemoteDataSet);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.REMOTE_SERVER: {
+ RemoteServer remoteServer = (RemoteServer)theEObject;
+ Object result = caseRemoteServer(remoteServer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.REMOTE_DATA_SET: {
+ RemoteDataSet remoteDataSet = (RemoteDataSet)theEObject;
+ Object result = caseRemoteDataSet(remoteDataSet);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_INDEX: {
+ LUWIndex luwIndex = (LUWIndex)theEObject;
+ Object result = caseLUWIndex(luwIndex);
+ if (result == null) result = caseDB2Index(luwIndex);
+ if (result == null) result = caseIndex(luwIndex);
+ if (result == null) result = caseSQLObject(luwIndex);
+ if (result == null) result = caseENamedElement(luwIndex);
+ if (result == null) result = caseEModelElement(luwIndex);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_ATTRIBUTE_DEFINITION: {
+ LUWAttributeDefinition luwAttributeDefinition = (LUWAttributeDefinition)theEObject;
+ Object result = caseLUWAttributeDefinition(luwAttributeDefinition);
+ if (result == null) result = caseAttributeDefinition(luwAttributeDefinition);
+ if (result == null) result = caseTypedElement(luwAttributeDefinition);
+ if (result == null) result = caseSQLObject(luwAttributeDefinition);
+ if (result == null) result = caseENamedElement(luwAttributeDefinition);
+ if (result == null) result = caseEModelElement(luwAttributeDefinition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.FEDERATED_PROCEDURE: {
+ FederatedProcedure federatedProcedure = (FederatedProcedure)theEObject;
+ Object result = caseFederatedProcedure(federatedProcedure);
+ if (result == null) result = caseDB2Procedure(federatedProcedure);
+ if (result == null) result = caseProcedure(federatedProcedure);
+ if (result == null) result = caseDB2Routine(federatedProcedure);
+ if (result == null) result = caseRoutine(federatedProcedure);
+ if (result == null) result = caseDB2AccessPlan(federatedProcedure);
+ if (result == null) result = caseSQLObject(federatedProcedure);
+ if (result == null) result = caseENamedElement(federatedProcedure);
+ if (result == null) result = caseEModelElement(federatedProcedure);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.FEDERATED_PARAMETER: {
+ FederatedParameter federatedParameter = (FederatedParameter)theEObject;
+ Object result = caseFederatedParameter(federatedParameter);
+ if (result == null) result = caseParameter(federatedParameter);
+ if (result == null) result = caseTypedElement(federatedParameter);
+ if (result == null) result = caseSQLObject(federatedParameter);
+ if (result == null) result = caseENamedElement(federatedParameter);
+ if (result == null) result = caseEModelElement(federatedParameter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_PARTITION_EXPRESSION: {
+ LUWPartitionExpression luwPartitionExpression = (LUWPartitionExpression)theEObject;
+ Object result = caseLUWPartitionExpression(luwPartitionExpression);
+ if (result == null) result = caseSQLObject(luwPartitionExpression);
+ if (result == null) result = caseENamedElement(luwPartitionExpression);
+ if (result == null) result = caseEModelElement(luwPartitionExpression);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_PARTITION_ELEMENT: {
+ LUWPartitionElement luwPartitionElement = (LUWPartitionElement)theEObject;
+ Object result = caseLUWPartitionElement(luwPartitionElement);
+ if (result == null) result = caseSQLObject(luwPartitionElement);
+ if (result == null) result = caseENamedElement(luwPartitionElement);
+ if (result == null) result = caseEModelElement(luwPartitionElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_DATA_PARTITION: {
+ LUWDataPartition luwDataPartition = (LUWDataPartition)theEObject;
+ Object result = caseLUWDataPartition(luwDataPartition);
+ if (result == null) result = caseSQLObject(luwDataPartition);
+ if (result == null) result = caseENamedElement(luwDataPartition);
+ if (result == null) result = caseEModelElement(luwDataPartition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_DATA_PARTITION_KEY: {
+ LUWDataPartitionKey luwDataPartitionKey = (LUWDataPartitionKey)theEObject;
+ Object result = caseLUWDataPartitionKey(luwDataPartitionKey);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_DATABASE_PACKAGE: {
+ LUWDatabasePackage luwDatabasePackage = (LUWDatabasePackage)theEObject;
+ Object result = caseLUWDatabasePackage(luwDatabasePackage);
+ if (result == null) result = caseDB2Package(luwDatabasePackage);
+ if (result == null) result = caseDB2AccessPlan(luwDatabasePackage);
+ if (result == null) result = caseSQLObject(luwDatabasePackage);
+ if (result == null) result = caseENamedElement(luwDatabasePackage);
+ if (result == null) result = caseEModelElement(luwDatabasePackage);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE: {
+ LUWModule luwModule = (LUWModule)theEObject;
+ Object result = caseLUWModule(luwModule);
+ if (result == null) result = caseSQLObject(luwModule);
+ if (result == null) result = caseENamedElement(luwModule);
+ if (result == null) result = caseEModelElement(luwModule);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_OBJECT: {
+ LUWModuleObject luwModuleObject = (LUWModuleObject)theEObject;
+ Object result = caseLUWModuleObject(luwModuleObject);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_FUNCTION: {
+ LUWModuleFunction luwModuleFunction = (LUWModuleFunction)theEObject;
+ Object result = caseLUWModuleFunction(luwModuleFunction);
+ if (result == null) result = caseDB2UserDefinedFunction(luwModuleFunction);
+ if (result == null) result = caseLUWModuleObject(luwModuleFunction);
+ if (result == null) result = caseUserDefinedFunction(luwModuleFunction);
+ if (result == null) result = caseDB2Function(luwModuleFunction);
+ if (result == null) result = caseFunction(luwModuleFunction);
+ if (result == null) result = caseDB2Routine(luwModuleFunction);
+ if (result == null) result = caseRoutine(luwModuleFunction);
+ if (result == null) result = caseDB2AccessPlan(luwModuleFunction);
+ if (result == null) result = caseSQLObject(luwModuleFunction);
+ if (result == null) result = caseENamedElement(luwModuleFunction);
+ if (result == null) result = caseEModelElement(luwModuleFunction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_PROCEDURE: {
+ LUWModuleProcedure luwModuleProcedure = (LUWModuleProcedure)theEObject;
+ Object result = caseLUWModuleProcedure(luwModuleProcedure);
+ if (result == null) result = caseDB2Procedure(luwModuleProcedure);
+ if (result == null) result = caseLUWModuleObject(luwModuleProcedure);
+ if (result == null) result = caseProcedure(luwModuleProcedure);
+ if (result == null) result = caseDB2Routine(luwModuleProcedure);
+ if (result == null) result = caseRoutine(luwModuleProcedure);
+ if (result == null) result = caseDB2AccessPlan(luwModuleProcedure);
+ if (result == null) result = caseSQLObject(luwModuleProcedure);
+ if (result == null) result = caseENamedElement(luwModuleProcedure);
+ if (result == null) result = caseEModelElement(luwModuleProcedure);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_CONDITION: {
+ LUWModuleCondition luwModuleCondition = (LUWModuleCondition)theEObject;
+ Object result = caseLUWModuleCondition(luwModuleCondition);
+ if (result == null) result = caseSQLObject(luwModuleCondition);
+ if (result == null) result = caseLUWModuleObject(luwModuleCondition);
+ if (result == null) result = caseENamedElement(luwModuleCondition);
+ if (result == null) result = caseEModelElement(luwModuleCondition);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_GLOBAL_VARIABLE: {
+ LUWGlobalVariable luwGlobalVariable = (LUWGlobalVariable)theEObject;
+ Object result = caseLUWGlobalVariable(luwGlobalVariable);
+ if (result == null) result = caseTypedElement(luwGlobalVariable);
+ if (result == null) result = caseSQLObject(luwGlobalVariable);
+ if (result == null) result = caseENamedElement(luwGlobalVariable);
+ if (result == null) result = caseEModelElement(luwGlobalVariable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_TYPE: {
+ LUWModuleType luwModuleType = (LUWModuleType)theEObject;
+ Object result = caseLUWModuleType(luwModuleType);
+ if (result == null) result = caseLUWModuleObject(luwModuleType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_ROW_DATA_TYPE: {
+ LUWModuleRowDataType luwModuleRowDataType = (LUWModuleRowDataType)theEObject;
+ Object result = caseLUWModuleRowDataType(luwModuleRowDataType);
+ if (result == null) result = caseLUWRowDataType(luwModuleRowDataType);
+ if (result == null) result = caseLUWModuleType(luwModuleRowDataType);
+ if (result == null) result = caseUserDefinedType(luwModuleRowDataType);
+ if (result == null) result = caseRowDataType(luwModuleRowDataType);
+ if (result == null) result = caseLUWModuleObject(luwModuleRowDataType);
+ if (result == null) result = caseConstructedDataType(luwModuleRowDataType);
+ if (result == null) result = caseDataType(luwModuleRowDataType);
+ if (result == null) result = caseSQLObject(luwModuleRowDataType);
+ if (result == null) result = caseENamedElement(luwModuleRowDataType);
+ if (result == null) result = caseEModelElement(luwModuleRowDataType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_ARRAY_DATA_TYPE: {
+ LUWModuleArrayDataType luwModuleArrayDataType = (LUWModuleArrayDataType)theEObject;
+ Object result = caseLUWModuleArrayDataType(luwModuleArrayDataType);
+ if (result == null) result = caseLUWArrayDataType(luwModuleArrayDataType);
+ if (result == null) result = caseLUWModuleType(luwModuleArrayDataType);
+ if (result == null) result = caseArrayDataType(luwModuleArrayDataType);
+ if (result == null) result = caseUserDefinedType(luwModuleArrayDataType);
+ if (result == null) result = caseLUWModuleObject(luwModuleArrayDataType);
+ if (result == null) result = caseCollectionDataType(luwModuleArrayDataType);
+ if (result == null) result = caseConstructedDataType(luwModuleArrayDataType);
+ if (result == null) result = caseDataType(luwModuleArrayDataType);
+ if (result == null) result = caseSQLObject(luwModuleArrayDataType);
+ if (result == null) result = caseENamedElement(luwModuleArrayDataType);
+ if (result == null) result = caseEModelElement(luwModuleArrayDataType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_DISTINCT_TYPE: {
+ LUWModuleDistinctType luwModuleDistinctType = (LUWModuleDistinctType)theEObject;
+ Object result = caseLUWModuleDistinctType(luwModuleDistinctType);
+ if (result == null) result = caseDistinctUserDefinedType(luwModuleDistinctType);
+ if (result == null) result = caseLUWModuleType(luwModuleDistinctType);
+ if (result == null) result = caseUserDefinedType(luwModuleDistinctType);
+ if (result == null) result = caseLUWModuleObject(luwModuleDistinctType);
+ if (result == null) result = caseDataType(luwModuleDistinctType);
+ if (result == null) result = caseSQLObject(luwModuleDistinctType);
+ if (result == null) result = caseENamedElement(luwModuleDistinctType);
+ if (result == null) result = caseEModelElement(luwModuleDistinctType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_GLOBAL_VARIABLE: {
+ LUWModuleGlobalVariable luwModuleGlobalVariable = (LUWModuleGlobalVariable)theEObject;
+ Object result = caseLUWModuleGlobalVariable(luwModuleGlobalVariable);
+ if (result == null) result = caseLUWGlobalVariable(luwModuleGlobalVariable);
+ if (result == null) result = caseLUWModuleObject(luwModuleGlobalVariable);
+ if (result == null) result = caseTypedElement(luwModuleGlobalVariable);
+ if (result == null) result = caseSQLObject(luwModuleGlobalVariable);
+ if (result == null) result = caseENamedElement(luwModuleGlobalVariable);
+ if (result == null) result = caseEModelElement(luwModuleGlobalVariable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_ARRAY_DATA_TYPE: {
+ LUWArrayDataType luwArrayDataType = (LUWArrayDataType)theEObject;
+ Object result = caseLUWArrayDataType(luwArrayDataType);
+ if (result == null) result = caseArrayDataType(luwArrayDataType);
+ if (result == null) result = caseUserDefinedType(luwArrayDataType);
+ if (result == null) result = caseCollectionDataType(luwArrayDataType);
+ if (result == null) result = caseConstructedDataType(luwArrayDataType);
+ if (result == null) result = caseDataType(luwArrayDataType);
+ if (result == null) result = caseSQLObject(luwArrayDataType);
+ if (result == null) result = caseENamedElement(luwArrayDataType);
+ if (result == null) result = caseEModelElement(luwArrayDataType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_ROW_DATA_TYPE: {
+ LUWRowDataType luwRowDataType = (LUWRowDataType)theEObject;
+ Object result = caseLUWRowDataType(luwRowDataType);
+ if (result == null) result = caseUserDefinedType(luwRowDataType);
+ if (result == null) result = caseRowDataType(luwRowDataType);
+ if (result == null) result = caseConstructedDataType(luwRowDataType);
+ if (result == null) result = caseDataType(luwRowDataType);
+ if (result == null) result = caseSQLObject(luwRowDataType);
+ if (result == null) result = caseENamedElement(luwRowDataType);
+ if (result == null) result = caseEModelElement(luwRowDataType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.PLSQL_PACKAGE: {
+ PLSQLPackage plsqlPackage = (PLSQLPackage)theEObject;
+ Object result = casePLSQLPackage(plsqlPackage);
+ if (result == null) result = caseLUWModule(plsqlPackage);
+ if (result == null) result = caseDB2Routine(plsqlPackage);
+ if (result == null) result = caseRoutine(plsqlPackage);
+ if (result == null) result = caseDB2AccessPlan(plsqlPackage);
+ if (result == null) result = caseSQLObject(plsqlPackage);
+ if (result == null) result = caseENamedElement(plsqlPackage);
+ if (result == null) result = caseEModelElement(plsqlPackage);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.PLSQL_PACKAGE_BODY: {
+ PLSQLPackageBody plsqlPackageBody = (PLSQLPackageBody)theEObject;
+ Object result = casePLSQLPackageBody(plsqlPackageBody);
+ if (result == null) result = caseSource(plsqlPackageBody);
+ if (result == null) result = caseSQLObject(plsqlPackageBody);
+ if (result == null) result = caseENamedElement(plsqlPackageBody);
+ if (result == null) result = caseEModelElement(plsqlPackageBody);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_CURSOR_DATA_TYPE: {
+ LUWCursorDataType luwCursorDataType = (LUWCursorDataType)theEObject;
+ Object result = caseLUWCursorDataType(luwCursorDataType);
+ if (result == null) result = caseUserDefinedType(luwCursorDataType);
+ if (result == null) result = caseDataType(luwCursorDataType);
+ if (result == null) result = caseSQLObject(luwCursorDataType);
+ if (result == null) result = caseENamedElement(luwCursorDataType);
+ if (result == null) result = caseEModelElement(luwCursorDataType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MODULE_CURSOR_DATA_TYPE: {
+ LUWModuleCursorDataType luwModuleCursorDataType = (LUWModuleCursorDataType)theEObject;
+ Object result = caseLUWModuleCursorDataType(luwModuleCursorDataType);
+ if (result == null) result = caseLUWCursorDataType(luwModuleCursorDataType);
+ if (result == null) result = caseLUWModuleType(luwModuleCursorDataType);
+ if (result == null) result = caseUserDefinedType(luwModuleCursorDataType);
+ if (result == null) result = caseLUWModuleObject(luwModuleCursorDataType);
+ if (result == null) result = caseDataType(luwModuleCursorDataType);
+ if (result == null) result = caseSQLObject(luwModuleCursorDataType);
+ if (result == null) result = caseENamedElement(luwModuleCursorDataType);
+ if (result == null) result = caseEModelElement(luwModuleCursorDataType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_BUFFER_POOL_SIZE_EXCEPTION: {
+ LUWBufferPoolSizeException luwBufferPoolSizeException = (LUWBufferPoolSizeException)theEObject;
+ Object result = caseLUWBufferPoolSizeException(luwBufferPoolSizeException);
+ if (result == null) result = caseSQLObject(luwBufferPoolSizeException);
+ if (result == null) result = caseENamedElement(luwBufferPoolSizeException);
+ if (result == null) result = caseEModelElement(luwBufferPoolSizeException);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_MEMBER: {
+ LUWMember luwMember = (LUWMember)theEObject;
+ Object result = caseLUWMember(luwMember);
+ if (result == null) result = caseDB2Member(luwMember);
+ if (result == null) result = caseSQLObject(luwMember);
+ if (result == null) result = caseENamedElement(luwMember);
+ if (result == null) result = caseEModelElement(luwMember);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_SECURITY_POLICY: {
+ LUWSecurityPolicy luwSecurityPolicy = (LUWSecurityPolicy)theEObject;
+ Object result = caseLUWSecurityPolicy(luwSecurityPolicy);
+ if (result == null) result = caseSQLObject(luwSecurityPolicy);
+ if (result == null) result = caseENamedElement(luwSecurityPolicy);
+ if (result == null) result = caseEModelElement(luwSecurityPolicy);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT: {
+ LUWSecurityLabelComponent luwSecurityLabelComponent = (LUWSecurityLabelComponent)theEObject;
+ Object result = caseLUWSecurityLabelComponent(luwSecurityLabelComponent);
+ if (result == null) result = caseSQLObject(luwSecurityLabelComponent);
+ if (result == null) result = caseENamedElement(luwSecurityLabelComponent);
+ if (result == null) result = caseEModelElement(luwSecurityLabelComponent);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_SECURITY_LABEL: {
+ LUWSecurityLabel luwSecurityLabel = (LUWSecurityLabel)theEObject;
+ Object result = caseLUWSecurityLabel(luwSecurityLabel);
+ if (result == null) result = caseSQLObject(luwSecurityLabel);
+ if (result == null) result = caseENamedElement(luwSecurityLabel);
+ if (result == null) result = caseEModelElement(luwSecurityLabel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_SECURITY_LABEL_COMPONENT_ELEMENT: {
+ LUWSecurityLabelComponentElement luwSecurityLabelComponentElement = (LUWSecurityLabelComponentElement)theEObject;
+ Object result = caseLUWSecurityLabelComponentElement(luwSecurityLabelComponentElement);
+ if (result == null) result = caseSQLObject(luwSecurityLabelComponentElement);
+ if (result == null) result = caseENamedElement(luwSecurityLabelComponentElement);
+ if (result == null) result = caseEModelElement(luwSecurityLabelComponentElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_STORAGE_GROUP: {
+ LUWStorageGroup luwStorageGroup = (LUWStorageGroup)theEObject;
+ Object result = caseLUWStorageGroup(luwStorageGroup);
+ if (result == null) result = caseSQLObject(luwStorageGroup);
+ if (result == null) result = caseENamedElement(luwStorageGroup);
+ if (result == null) result = caseEModelElement(luwStorageGroup);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_TEMPORARY_STORAGE_TABLE: {
+ LUWTemporaryStorageTable luwTemporaryStorageTable = (LUWTemporaryStorageTable)theEObject;
+ Object result = caseLUWTemporaryStorageTable(luwTemporaryStorageTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_TEMPORARY_TABLE: {
+ LUWTemporaryTable luwTemporaryTable = (LUWTemporaryTable)theEObject;
+ Object result = caseLUWTemporaryTable(luwTemporaryTable);
+ if (result == null) result = caseTemporaryTable(luwTemporaryTable);
+ if (result == null) result = caseLUWTemporaryStorageTable(luwTemporaryTable);
+ if (result == null) result = caseBaseTable(luwTemporaryTable);
+ if (result == null) result = caseTable(luwTemporaryTable);
+ if (result == null) result = caseSQLObject(luwTemporaryTable);
+ if (result == null) result = caseENamedElement(luwTemporaryTable);
+ if (result == null) result = caseEModelElement(luwTemporaryTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.ARRAY_INDEX_ELEMENT_TYPE: {
+ ArrayIndexElementType arrayIndexElementType = (ArrayIndexElementType)theEObject;
+ Object result = caseArrayIndexElementType(arrayIndexElementType);
+ if (result == null) result = caseElementType(arrayIndexElementType);
+ if (result == null) result = caseTypedElement(arrayIndexElementType);
+ if (result == null) result = caseSQLObject(arrayIndexElementType);
+ if (result == null) result = caseENamedElement(arrayIndexElementType);
+ if (result == null) result = caseEModelElement(arrayIndexElementType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case LUWPackage.LUW_PARTITION_EVERY_CLAUSE_ELEMENT: {
+ LUWPartitionEveryClauseElement luwPartitionEveryClauseElement = (LUWPartitionEveryClauseElement)theEObject;
+ Object result = caseLUWPartitionEveryClauseElement(luwPartitionEveryClauseElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Partition Group</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Partition Group</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWPartitionGroup(LUWPartitionGroup object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Table Space</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Table Space</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWTableSpace(LUWTableSpace object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Database Partition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Database Partition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWDatabasePartition(LUWDatabasePartition object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Database Container</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Database Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWDatabaseContainer(LUWDatabaseContainer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Admin Server</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Admin Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWAdminServer(LUWAdminServer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Buffer Pool</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Buffer Pool</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWBufferPool(LUWBufferPool object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWTable(LUWTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>View</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWView(LUWView object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Partition Key</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Partition Key</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWPartitionKey(LUWPartitionKey object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Nickname</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Nickname</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWNickname(LUWNickname object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Function Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Function Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWFunctionMapping(LUWFunctionMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Wrapper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Wrapper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWWrapper(LUWWrapper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Non Relational Nickname</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Non Relational Nickname</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWNonRelationalNickname(LUWNonRelationalNickname object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Non Relational Server</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Non Relational Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWNonRelationalServer(LUWNonRelationalServer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Non Relational Wrapper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Non Relational Wrapper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWNonRelationalWrapper(LUWNonRelationalWrapper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Relational Nickname</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Relational Nickname</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWRelationalNickname(LUWRelationalNickname object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generic User Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generic User Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWGenericUserMapping(LUWGenericUserMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Relational Wrapper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Relational Wrapper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWRelationalWrapper(LUWRelationalWrapper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Server</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWServer(LUWServer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Type Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Type Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWTypeMapping(LUWTypeMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>User Mapping</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>User Mapping</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWUserMapping(LUWUserMapping object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Option</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Option</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWOption(LUWOption object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Relational Server</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Relational Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWRelationalServer(LUWRelationalServer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Database</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Database</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWDatabase(LUWDatabase object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Column</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Column</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWColumn(LUWColumn object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generic Nickname</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generic Nickname</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWGenericNickname(LUWGenericNickname object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generic Server</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generic Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWGenericServer(LUWGenericServer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Materialized Query Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Materialized Query Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWMaterializedQueryTable(LUWMaterializedQueryTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Generic Wrapper</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Generic Wrapper</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWGenericWrapper(LUWGenericWrapper object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Storage Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Storage Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWStorageTable(LUWStorageTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Relational Remote Server</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Relational Remote Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseRelationalRemoteServer(RelationalRemoteServer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Relational Remote Data Set</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Relational Remote Data Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseRelationalRemoteDataSet(RelationalRemoteDataSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Remote Server</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Remote Server</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseRemoteServer(RemoteServer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Remote Data Set</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Remote Data Set</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseRemoteDataSet(RemoteDataSet object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWIndex(LUWIndex object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Attribute Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Attribute Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWAttributeDefinition(LUWAttributeDefinition object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Federated Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Federated Procedure</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseFederatedProcedure(FederatedProcedure object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Federated Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Federated Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseFederatedParameter(FederatedParameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Partition Expression</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Partition Expression</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWPartitionExpression(LUWPartitionExpression object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Partition Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Partition Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWPartitionElement(LUWPartitionElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Partition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Data Partition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWDataPartition(LUWDataPartition object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Partition Key</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Data Partition Key</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWDataPartitionKey(LUWDataPartitionKey object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Database Package</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Database Package</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWDatabasePackage(LUWDatabasePackage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModule(LUWModule object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Object</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleObject(LUWModuleObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleFunction(LUWModuleFunction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Procedure</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleProcedure(LUWModuleProcedure object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Condition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Condition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleCondition(LUWModuleCondition object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Global Variable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Global Variable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWGlobalVariable(LUWGlobalVariable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleType(LUWModuleType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Row Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Row Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleRowDataType(LUWModuleRowDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Array Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Array Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleArrayDataType(LUWModuleArrayDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Distinct Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Distinct Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleDistinctType(LUWModuleDistinctType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Global Variable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Global Variable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleGlobalVariable(LUWModuleGlobalVariable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Array Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Array Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWArrayDataType(LUWArrayDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Row Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Row Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWRowDataType(LUWRowDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PLSQL Package</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PLSQL Package</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePLSQLPackage(PLSQLPackage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PLSQL Package Body</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PLSQL Package Body</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePLSQLPackageBody(PLSQLPackageBody object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cursor Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cursor Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWCursorDataType(LUWCursorDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Module Cursor Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Module Cursor Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWModuleCursorDataType(LUWModuleCursorDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Buffer Pool Size Exception</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Buffer Pool Size Exception</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWBufferPoolSizeException(LUWBufferPoolSizeException object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Member</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Member</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWMember(LUWMember object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Security Policy</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Security Policy</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWSecurityPolicy(LUWSecurityPolicy object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Security Label Component</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Security Label Component</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWSecurityLabelComponent(LUWSecurityLabelComponent object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Security Label</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Security Label</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWSecurityLabel(LUWSecurityLabel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Security Label Component Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Security Label Component Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWSecurityLabelComponentElement(LUWSecurityLabelComponentElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Storage Group</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Storage Group</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWStorageGroup(LUWStorageGroup object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Storage Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Storage Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWTemporaryStorageTable(LUWTemporaryStorageTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWTemporaryTable(LUWTemporaryTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Array Index Element Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Array Index Element Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseArrayIndexElementType(ArrayIndexElementType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Partition Every Clause Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Partition Every Clause Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLUWPartitionEveryClauseElement(LUWPartitionEveryClauseElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseEModelElement(EModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseENamedElement(ENamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseSQLObject(SQLObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseTable(Table object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Base Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Base Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseBaseTable(BaseTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Persistent Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Persistent Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePersistentTable(PersistentTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Table(DB2Table object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Derived Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Derived Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDerivedTable(DerivedTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>View Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseViewTable(ViewTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 View</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 View</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2View(DB2View object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Database</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Database</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDatabase(Database object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Database</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Database</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Database(DB2Database object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseTypedElement(TypedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Column</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Column</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseColumn(Column object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Column</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Column</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Column(DB2Column object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Materialized Query Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Materialized Query Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2MaterializedQueryTable(DB2MaterializedQueryTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseIndex(Index object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Index(DB2Index object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Attribute Definition</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Attribute Definition</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseAttributeDefinition(AttributeDefinition object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Routine</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Routine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseRoutine(Routine object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Procedure</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProcedure(Procedure object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Access Plan</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Access Plan</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2AccessPlan(DB2AccessPlan object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Routine</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Routine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Routine(DB2Routine object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Procedure</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Procedure(DB2Procedure object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Parameter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Parameter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseParameter(Parameter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Package</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Package</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Package(DB2Package object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseFunction(Function object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>User Defined Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>User Defined Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseUserDefinedFunction(UserDefinedFunction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Function(DB2Function object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 User Defined Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 User Defined Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2UserDefinedFunction(DB2UserDefinedFunction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDataType(DataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>User Defined Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>User Defined Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseUserDefinedType(UserDefinedType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Constructed Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Constructed Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseConstructedDataType(ConstructedDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Row Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Row Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseRowDataType(RowDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Collection Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Collection Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseCollectionDataType(CollectionDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Array Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Array Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseArrayDataType(ArrayDataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Distinct User Defined Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Distinct User Defined Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDistinctUserDefinedType(DistinctUserDefinedType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Source</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Source</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseSource(Source object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Member</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Member</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Member(DB2Member object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Temporary Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Temporary Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseTemporaryTable(TemporaryTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Element Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Element Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseElementType(ElementType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //LUWSwitch
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/TableToRemoteDataSetHelper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/TableToRemoteDataSetHelper.java
new file mode 100644
index 0000000..7ffca3a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2.luw/src/org/eclipse/datatools/enablement/ibm/db2/luw/model/util/TableToRemoteDataSetHelper.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.luw.model.util;
+
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.LUWPackage;
+import org.eclipse.datatools.enablement.ibm.db2.luw.model.RelationalRemoteDataSet;
+import org.eclipse.datatools.enablement.ibm.db2.model.util.ReverseNavigationHelper;
+
+/**
+ * @author ellersr
+ *
+ * Helper to provide the ability to navigate the <code>RelationalRemoteDataSet.table</code> relationship
+ * in the inverse direction. (I.e. navigate from an SQL BaseTable object back to an
+ * LUW RelationalRemoteDataSet object, even though the relationship RelationalRemoteDataSet to
+ * BaseTable is modeled to be one directional.)
+ */
+public class TableToRemoteDataSetHelper extends ReverseNavigationHelper {
+
+
+ protected static final EReference tableRef = LUWPackage.eINSTANCE.getRelationalRemoteDataSet_Table();
+
+ /**
+ * The singleton instance of <code>INVERSE_TABLE_ADAPTER</code> must be attached to
+ * any instance of RelationalRemoteDataSet for which reverse navigation is required.
+ * This adapter should be attached at the time the RelationalRemoteDataSet object is
+ * created.
+ */
+ public static final InverseAdapter INVERSE_TABLE_ADAPTER = new InverseAdapter(tableRef, SINGLE);
+
+
+ /**
+ * Helper method to get the LUW RelationalRemoteDataSet object that points to
+ * a specified instance of a SQL BaseTable object via the <code>RelationalRemoteDataSet.table</code> relationship.
+ * @param tab The SQL BaseTable object
+ * @return The corresponding LUW RelationalRemoteDataSet object
+ */
+ public static RelationalRemoteDataSet getRemoteDataSet(BaseTable tab) {
+ return (RelationalRemoteDataSet) INVERSE_TABLE_ADAPTER.getOppositeEnd(tab);
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/.classpath b/plugins/org.eclipse.datatools.enablement.ibm.db2/.classpath
new file mode 100644
index 0000000..1fa3e68
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/.project b/plugins/org.eclipse.datatools.enablement.ibm.db2/.project
new file mode 100644
index 0000000..a2e2948
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.datatools.enablement.ibm.db2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.enablement.ibm.db2/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..14831d3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.enablement.ibm.db2;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.datatools.enablement.ibm.db2.DB2PluginActivator
+Bundle-Vendor: %providerName
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.datatools.connectivity;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.connectivity.sqm.core;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.enablement.ibm;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.modelbase.sql;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.sqltools.data.core;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecore.change;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)"
+Export-Package: org.eclipse.datatools.enablement.ibm.db2,
+ org.eclipse.datatools.enablement.ibm.db2.catalog,
+ org.eclipse.datatools.enablement.ibm.db2.catalog.util,
+ org.eclipse.datatools.enablement.ibm.db2.containment,
+ org.eclipse.datatools.enablement.ibm.db2.data,
+ org.eclipse.datatools.enablement.ibm.db2.ddl,
+ org.eclipse.datatools.enablement.ibm.db2.model,
+ org.eclipse.datatools.enablement.ibm.db2.model.impl,
+ org.eclipse.datatools.enablement.ibm.db2.model.util,
+ org.eclipse.datatools.enablement.ibm.db2.util
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/about.html b/plugins/org.eclipse.datatools.enablement.ibm.db2/about.html
new file mode 100644
index 0000000..d0a7cc2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 15, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/build.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2/build.properties
new file mode 100644
index 0000000..cdd2db7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/plugin.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2/plugin.properties
new file mode 100644
index 0000000..b829651
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2014 IBM Corporation and others.
+# 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:
+# IBM Corporation - initial API and implementation
+###############################################################################
+pluginName=Eclipse Data Tools Platform IBM DB2 Plug-in
+providerName=Eclipse Data Tools Platform
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/DB2PluginActivator.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/DB2PluginActivator.java
new file mode 100644
index 0000000..dc436b0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/DB2PluginActivator.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentService;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinitionRegistry;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+//bgp import org.eclipse.datatools.enablement.ibm.db2.util.DataToolsCommandManager;
+
+public class DB2PluginActivator extends Plugin {
+
+ private static DB2PluginActivator instance;
+//bgp private DataToolsCommandManager command = null;
+ public static final String PLUGIN_ID = "org.eclipse.datatools.enablement.ibm.db2"; //$NON-NLS-1$
+
+ public static DB2PluginActivator getInstance() { return instance; }
+
+ public DB2PluginActivator() {
+ super();
+ instance = this;
+ }
+
+ public DatabaseDefinitionRegistry getDatabaseDefinitionRegistry()
+ {
+ return RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry();
+ }
+
+ public ContainmentService getContainmentService()
+ {
+ return RDBCorePlugin.getDefault().getContainmentService();
+ }
+
+//<bgp public synchronized DataToolsCommandManager getCommandManager ()
+// {
+// if (this.command == null)
+// {
+// this.command = new DataToolsCommandManager();
+// }
+// return this.command;
+//bgp> }
+
+ public static void log( Throwable e )
+ {
+ getInstance().getLog().log( (e instanceof CoreException)
+ ? ((CoreException)e).getStatus()
+ : new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, e.getMessage(), e ) );
+ }
+
+ public static final int INTERNAL_ERROR = 0x1;
+ public static final int CATALOG_LOAD_ERROR = 0x2;
+
+ public static int enabledLogging = CATALOG_LOAD_ERROR;
+
+ public static void log( Throwable e, int flags )
+ {
+ if ( (flags & enabledLogging) != 0 )
+ {
+ log( e );
+ }
+ }
+
+ /**
+ * Method writeLog.
+ * @param severity - the severity; one of IStatus.OK, IStatus.ERROR, IStatus.INFO, or IStatus.WARNING
+ * @param code - the plug-in-specific status code, or OK
+ * @param message - a human-readable message, localized to the current locale
+ * @param exception a low-level exception, or null if not applicable
+ */
+ public void writeLog(int severity, int code, String message, Throwable exception) {
+ if (message == null)
+ message = ""; //$NON-NLS-1$
+
+ getLog().log(
+ new Status(severity, getBundle().getSymbolicName(), code, message, exception));
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/JavaProcedureInfo.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/JavaProcedureInfo.java
new file mode 100644
index 0000000..6b2078b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/JavaProcedureInfo.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.catalog;
+
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions;
+
+/**
+ * @author yehsh
+ */
+public interface JavaProcedureInfo {
+ public DB2JavaOptions getJavaProcedure();
+ public Source getSource();
+ public String getExternalName();
+ /** Get the root package name associated with the SQLJ stored procedure */
+ public String getDB2Package();
+ /** Get the collection name associated with the SQLJ stored procedure */
+ public String getCollectionName();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/util/JavaProcedureProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/util/JavaProcedureProvider.java
new file mode 100644
index 0000000..e74c156
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/util/JavaProcedureProvider.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.catalog.util;
+
+import java.sql.Connection;
+import org.eclipse.datatools.enablement.ibm.db2.catalog.JavaProcedureInfo;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+
+public interface JavaProcedureProvider {
+ public JavaProcedureInfo getProviderInstance(DB2Procedure sp, Connection connection);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/util/JavaProcedureProviderRegistry.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/util/JavaProcedureProviderRegistry.java
new file mode 100644
index 0000000..5245dba
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/catalog/util/JavaProcedureProviderRegistry.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.catalog.util;
+
+import java.sql.Connection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+
+import org.eclipse.datatools.enablement.ibm.db2.catalog.JavaProcedureInfo;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+
+public class JavaProcedureProviderRegistry {
+ public static JavaProcedureProviderRegistry INSTANCE = new JavaProcedureProviderRegistry();
+ private Map providers = new HashMap();
+ private JavaProcedureProvider nullProvider = new JavaProcedureProvider() {
+ public JavaProcedureInfo getProviderInstance(DB2Procedure sp, Connection connection) {
+ return null;
+ }
+ };
+
+ public JavaProcedureProvider getProvider(DatabaseDefinition definition) {
+ if(!providers.containsKey(definition)) {
+ providers.put(definition, loadProvider(definition));
+ }
+ return (JavaProcedureProvider) providers.get(definition);
+ }
+
+ private JavaProcedureProvider loadProvider(DatabaseDefinition def) {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.db2", "javaProcedure"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("provider")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(product.equals(def.getProduct())) {
+ String version = configElements[j].getAttribute("version"); //$NON-NLS-1$
+ if(version.equals(def.getVersion())) {
+ try {
+ return (JavaProcedureProvider) configElements[j].createExecutableExtension("class"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return this.nullProvider;
+ }
+
+ private JavaProcedureProviderRegistry() {
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2AliasContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2AliasContainmentProvider.java
new file mode 100644
index 0000000..29aad41
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2AliasContainmentProvider.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+
+public class DB2AliasContainmentProvider extends AbstractContainmentProvider {
+
+ public EObject getContainer(EObject obj) {
+ return ((DB2Alias) obj).getSchema();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return SQLSchemaPackage.eINSTANCE.getSchema_Tables();
+ }
+
+ public String getGroupId(EObject obj) {
+ return DB2GroupID.ALIAS;
+ }
+
+ public Collection getContainedElements(EObject obj) {
+ List myList = new ArrayList();
+ return (Collection)myList;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2GroupID.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2GroupID.java
new file mode 100644
index 0000000..aef5c3e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2GroupID.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+public interface DB2GroupID {
+ public static final String ALIAS = "core.db2.DB2Alias"; //$NON-NLS-1$
+ public static final String JAR = "core.db2.DB2Jar"; //$NON-NLS-1$
+ public static final String MQT = "core.db2.DB2MaterializedQueryTable"; //$NON-NLS-1$
+ public static final String TEMPTABLE = "core.db2.TemporaryTable"; //$NON-NLS-1$
+ public static final String XMLSCHEMA = "core.db2.DB2XMLSchema"; //$NON-NLS-1$
+ public static final String XMLSCHEMADOC = "core.db2.DB2XMLSchemaDocument"; //$NON-NLS-1$
+ public static final String DB2PACKAGE = "core.db2.DB2Package"; //$NON-NLS-1$
+ public static final String DB2PERMISSION = "core.db2.DB2Permission"; //$NON-NLS-1$
+ public static final String DB2MASK = "core.db2.DB2Mask"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2JarContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2JarContainmentProvider.java
new file mode 100644
index 0000000..81686d3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2JarContainmentProvider.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+/**
+ * @author cdchu
+ * Clifford Chu (cdchu@us.ibm.com)
+ */
+public class DB2JarContainmentProvider extends AbstractContainmentProvider {
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ DB2Jar jar = (DB2Jar) obj;
+ children.addAll(jar.getProcedures());
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((DB2Jar) obj).getSchema();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ if (this.getContainer(obj) == null)
+ return null;
+ else
+ return DB2ModelPackage.eINSTANCE.getDB2Schema_Jars();
+ }
+
+ public String getGroupId(EObject obj) {
+ if(obj instanceof DB2Jar) {
+ return DB2GroupID.JAR;
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2MQTContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2MQTContainmentProvider.java
new file mode 100644
index 0000000..73cfdad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2MQTContainmentProvider.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class DB2MQTContainmentProvider extends AbstractContainmentProvider {
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ DB2MaterializedQueryTable table = (DB2MaterializedQueryTable) obj;
+ children.addAll(table.getIndex());
+ children.addAll(table.getTriggers());
+ children.addAll(table.getPermissions());
+ children.addAll(table.getMasks());
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((DB2MaterializedQueryTable) obj).getSchema();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return SQLSchemaPackage.eINSTANCE.getSchema_Tables();
+ }
+
+ public String getGroupId(EObject obj) {
+ return DB2GroupID.MQT;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2MaskContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2MaskContainmentProvider.java
new file mode 100644
index 0000000..322bc79
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2MaskContainmentProvider.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class DB2MaskContainmentProvider extends AbstractContainmentProvider {
+ public EObject getContainer(EObject obj)
+ {
+ DB2Mask mask = (DB2Mask)obj;
+ return mask.getSubjectTable() != null ?
+ mask.getSubjectTable() : mask.getSubjectMQT();
+ }
+ public EStructuralFeature getContainmentFeature(EObject obj)
+ {
+ DB2Mask mask = (DB2Mask)obj;
+ return mask.getSubjectTable() != null ?
+ DB2ModelPackage.eINSTANCE.getDB2Table_Masks() :
+ DB2ModelPackage.eINSTANCE.getDB2MaterializedQueryTable_Masks();
+ }
+
+ public String getGroupId(EObject obj) {
+ return DB2GroupID.DB2MASK;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2PackageContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2PackageContainmentProvider.java
new file mode 100644
index 0000000..bafb5c1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2PackageContainmentProvider.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class DB2PackageContainmentProvider extends AbstractContainmentProvider {
+
+ public EObject getContainer(EObject obj) {
+ return ((DB2Package) obj).getSchema();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj) {
+ return DB2ModelPackage.eINSTANCE.getDB2Schema_Packages();
+ }
+
+ public String getGroupId(EObject obj) {
+ return DB2GroupID.DB2PACKAGE;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2PermissionContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2PermissionContainmentProvider.java
new file mode 100644
index 0000000..94d4353
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2PermissionContainmentProvider.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class DB2PermissionContainmentProvider extends AbstractContainmentProvider
+{
+ public EObject getContainer(EObject obj)
+ {
+ DB2Permission permission = (DB2Permission)obj;
+ return permission.getSubjectTable() != null ?
+ permission.getSubjectTable() : permission.getSubjectMQT();
+ }
+
+ public EStructuralFeature getContainmentFeature(EObject obj)
+ {
+ DB2Permission permission = (DB2Permission)obj;
+ return permission.getSubjectTable() != null ?
+ DB2ModelPackage.eINSTANCE.getDB2Table_Permissions() :
+ DB2ModelPackage.eINSTANCE.getDB2MaterializedQueryTable_Permissions();
+ }
+
+ public String getGroupId(EObject obj)
+ {
+ return DB2GroupID.DB2PERMISSION;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2SchemaContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2SchemaContainmentProvider.java
new file mode 100644
index 0000000..16513f2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2SchemaContainmentProvider.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.internal.core.containment.SchemaContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.emf.ecore.EObject;
+
+public class DB2SchemaContainmentProvider extends SchemaContainmentProvider {
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ DB2Schema schema = (DB2Schema) obj;
+ children.addAll(schema.getOlapObjects());
+ children.addAll(schema.getJars());
+ children.addAll(schema.getXsrObjects());
+ children.addAll(schema.getPackages());
+ children.addAll(schema.getModules());
+ children.addAll(schema.getGlobalVariables());
+ return children;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2TableContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2TableContainmentProvider.java
new file mode 100644
index 0000000..2bef2ac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2TableContainmentProvider.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.internal.core.containment.TableContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+import org.eclipse.emf.ecore.EObject;
+
+public class DB2TableContainmentProvider extends TableContainmentProvider {
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ DB2Table table = (DB2Table) obj;
+ children.addAll(table.getPermissions());
+ children.addAll(table.getMasks());
+ return children;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2XMLSchemaContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2XMLSchemaContainmentProvider.java
new file mode 100644
index 0000000..ca9f0b1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2XMLSchemaContainmentProvider.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * @author debbani
+ */
+public class DB2XMLSchemaContainmentProvider extends
+ AbstractContainmentProvider {
+ public Collection getContainedElements(EObject obj) {
+ // causes bug that sometimes shows duplicate entries,
+ // so disabled super call
+ // Collection children = super.getContainedElements(obj);
+ DB2XMLSchema xmlSchema = (DB2XMLSchema) obj;
+ Collection children = xmlSchema.getXmlSchemaDocs();
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((DB2XMLSchema) obj).getSchema();
+ }
+
+ public String getGroupId(EObject obj) {
+ if(obj instanceof DB2XMLSchema) {
+ return DB2GroupID.XMLSCHEMA;
+ }
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2XMLSchemaDocumentContainmentProvider.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2XMLSchemaDocumentContainmentProvider.java
new file mode 100644
index 0000000..0ebe35f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/containment/DB2XMLSchemaDocumentContainmentProvider.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.containment;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.AbstractContainmentProvider;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * @author debbani
+ */
+public class DB2XMLSchemaDocumentContainmentProvider
+ extends AbstractContainmentProvider
+{
+ public Collection getContainedElements(EObject obj) {
+ Collection children = super.getContainedElements(obj);
+ return children;
+ }
+
+ public EObject getContainer(EObject obj) {
+ return ((DB2XMLSchemaDocument) obj).getXmlSchema();
+ }
+
+ public String getGroupId(EObject obj) {
+ if(obj instanceof DB2XMLSchemaDocument) {
+ return DB2GroupID.XMLSCHEMADOC;
+ }
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/data/DatalinkAccessor.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/data/DatalinkAccessor.java
new file mode 100644
index 0000000..a27f7ee
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/data/DatalinkAccessor.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.data;
+
+import org.eclipse.datatools.sqltools.data.internal.core.common.DefaultColumnDataAccessor;
+
+
+public class DatalinkAccessor extends DefaultColumnDataAccessor {
+
+ public String getSelectExpr() {
+ String col = super.getSelectExpr();
+ return "DLURLCOMPLETEONLY(" + col + ")";
+ }
+
+ public boolean supportsInlineEdit() {
+ return false;
+ }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/data/DistinctAccessor.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/data/DistinctAccessor.java
new file mode 100644
index 0000000..d0b8fc8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/data/DistinctAccessor.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.data;
+
+import org.eclipse.datatools.sqltools.data.internal.core.common.DefaultColumnDataAccessor;
+import org.eclipse.datatools.sqltools.data.internal.core.editor.TableDataImpl;
+
+public class DistinctAccessor extends DefaultColumnDataAccessor
+{
+ public String getWhereCond(Object val)
+ {
+ String s = getQuotedColumnName();
+ if (val==null) {
+ s += " is null"; //$NON-NLS-1$
+ }
+ else {
+// A parameter marker cannot have a user-defined type or reference type as its data type
+// unless it is part of an assignment (VALUES clause of INSERT or SET clause of UPDATE) or
+// it is being explicitly cast to a user-defined distinct data type.
+ s += "=CAST(? AS "; //$NON-NLS-1$
+ s += TableDataImpl.getFormattedTypeName(sqlCol) + ")"; //$NON-NLS-1$ //$NON-NLS-2$ }
+ }
+ return s;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DataPreservationDdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DataPreservationDdlBuilder.java
new file mode 100644
index 0000000..6c6b742
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DataPreservationDdlBuilder.java
@@ -0,0 +1,558 @@
+package org.eclipse.datatools.enablement.ibm.db2.ddl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.GenerateType;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlGenerationUtility;
+import org.eclipse.datatools.enablement.ibm.util.SimpleColumnDetails;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+public class DB2DataPreservationDdlBuilder extends DB2DdlBuilder {
+
+ protected static final String COMMENT_DELIMITER = "--"; //$NON-NLS-1$
+ protected final static String RENAME = "RENAME"; //$NON-NLS-1$
+ protected final static String INSERT = "INSERT"; //$NON-NLS-1$
+ protected final static String INTO = "INTO"; //$NON-NLS-1$
+ protected final static String SELECT = "SELECT"; //$NON-NLS-1$
+ protected final static String BACKUP_SUFFIX = "_BU"; //$NON-NLS-1$
+ protected static final String DECIMAL = "DECIMAL"; //$NON-NLS-1$
+ protected static final String REAL = "REAL"; //$NON-NLS-1$
+ protected static final String INTEGER = "INTEGER"; //$NON-NLS-1$
+ protected static final String BIGINT = "BIGINT"; //$NON-NLS-1$
+ protected static final String SMALLINT = "SMALLINT"; //$NON-NLS-1$
+ protected static final String GRAPHIC = "GRAPHIC"; //$NON-NLS-1$
+ protected static final String CHAR = "CHAR"; //$NON-NLS-1$
+ protected static final String TIMESTAMP = "TIMESTAMP"; //$NON-NLS-1$
+ protected static final String TIME = "TIME"; //$NON-NLS-1$
+ protected static final String DATE = "DATE"; //$NON-NLS-1$
+ protected static final String DOUBLE = "DOUBLE"; //$NON-NLS-1$
+ protected static final String XML = "XML"; //$NON-NLS-1$
+ protected static final String RENAME_TABLE_COMMENT = "Renaming table to maintain a backup"; //$NON-NLS-1$
+ protected static final String POPULATE_COMMENT = "Populating table from backup using optimistic transformations"; //$NON-NLS-1$
+ protected static final String RESTART_IDENTITY_COMMENT = "Replace <restart value placeholder> with an appropriate value"; //$NON-NLS-1$
+ protected static final String DROP_BACKUP_COMMENT = "Dropping backup table"; //$NON-NLS-1$
+ protected static final String UPDATE_NULL_COLUMNS_COMMENT = "Update columns changed to NOT NULL with default"; //$NON-NLS-1$
+
+ protected Map backupTableMap = new HashMap();
+
+ /**
+ * Get the name of the backup table.
+ * @param table
+ * @param quoteIdentifiers
+ * @param qualifyNames
+ * @return
+ */
+ protected String getNewBackupName(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String tableNamePrefix = table.getName() + BACKUP_SUFFIX;
+ Schema schema = table.getSchema();
+ String schemaName = schema.getName();
+
+ String tableName = DdlGenerationUtility.getUniqueTableName(schema,tableNamePrefix);
+ backupTableMap.put(tableNamePrefix,tableName);
+
+ if(quoteIdentifiers) {
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ tableName = schemaName + DOT + tableName;
+ }
+
+ return tableName;
+ }
+
+ protected String getExistingBackupName(String schemaName,String tablename,boolean quoteIdentifiers, boolean qualifyNames) {
+ String tableNamePrefix = tablename + BACKUP_SUFFIX;
+ String tableName = (String)backupTableMap.get(tableNamePrefix);
+ if(quoteIdentifiers) {
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ tableName = schemaName + DOT + tableName;
+ }
+ return tableName;
+ }
+
+ public String renameTableToBackup(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = RENAME + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames) + SPACE + TO + SPACE;
+ String backupTableName = getNewBackupName(table,quoteIdentifiers,false);
+ return (statement + backupTableName);
+ }
+
+ public String getRenameComment() {
+ return NEWLINE + COMMENT_DELIMITER + SPACE + RENAME_TABLE_COMMENT;
+ }
+
+ public String getUpdateComment() {
+ return NEWLINE + COMMENT_DELIMITER + SPACE + UPDATE_NULL_COLUMNS_COMMENT;
+ }
+
+ public String getSuspendGenerateAlwaysStatement(Table newTable,Column idColumn,boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = null;
+ if (idColumn.getIdentitySpecifier() != null) {
+ statement = ALTER + SPACE + TABLE + SPACE + getName(newTable, quoteIdentifiers, qualifyNames)
+ + SPACE + ALTER + SPACE + COLUMN + SPACE + getName(idColumn, quoteIdentifiers,false)
+ + " SET GENERATED BY DEFAULT";
+ }
+ else {
+ statement = ALTER + SPACE + TABLE + SPACE + getName(newTable, quoteIdentifiers, qualifyNames)
+ + SPACE + ALTER + SPACE + COLUMN + SPACE + getName(idColumn, quoteIdentifiers,false)
+ + " DROP EXPRESSION";
+ }
+ return statement;
+ }
+
+ public String getSetGenerateAlwaysStatement(Table newTable,Column idColumn,boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(newTable, quoteIdentifiers, qualifyNames)
+ + SPACE + ALTER + SPACE + COLUMN + SPACE + getName(idColumn, quoteIdentifiers,false)
+ + " SET GENERATED ALWAYS";
+ ValueExpression genExp = idColumn.getGenerateExpression();
+ if (genExp != null) {
+ statement += SPACE + AS + SPACE + LEFT_PARENTHESIS + genExp.getSQL() + RIGHT_PARENTHESIS;
+ }
+ return statement;
+ }
+
+ public String getRestartIdentityComment() {
+ return NEWLINE + COMMENT_DELIMITER + SPACE + RESTART_IDENTITY_COMMENT;
+ }
+
+ public String getRestartIdentityStatement(Table newTable,Column idColumn,boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = COMMENT_DELIMITER + SPACE + ALTER + SPACE + TABLE + SPACE + getName(newTable, quoteIdentifiers, qualifyNames)
+ + SPACE + ALTER + SPACE + COLUMN + SPACE + getName(idColumn, quoteIdentifiers,false)
+ + " RESTART WITH " + "<restart value placeholder>";
+ return statement;
+ }
+
+ public ArrayList getAlwaysGeneratedColumns(Table table) {
+ ArrayList genColumns = new ArrayList();
+ Iterator it = table.getColumns().iterator();
+ while (it.hasNext()) {
+ DB2Column column = (DB2Column)it.next();
+ // A column is not really generate ALWAYS unless an expression
+ // or identity specifier is provided
+ if ((column.getGenerationType() == GenerateType.ALWAYS_LITERAL)
+ &&((column.getGenerateExpression() != null) || //
+ column.getIdentitySpecifier() != null)) {
+ genColumns.add(column);
+ }
+ }
+ return genColumns;
+ }
+
+ public String populateTableFromBackup(Table newTable, String oldTableName, Map oldColumns, boolean quoteIdentifiers, boolean qualifyNames) {
+ StringBuffer statement = new StringBuffer(COMMENT_DELIMITER + SPACE + INSERT + SPACE + INTO + SPACE + getName(newTable, quoteIdentifiers, qualifyNames) + LEFT_PARENTHESIS);
+ Iterator it = newTable.getColumns().iterator();
+ boolean firstColumn = true;
+ while (it.hasNext()) {
+ Column newColumn = (Column)it.next();
+ SimpleColumnDetails oldColDetails = (SimpleColumnDetails)oldColumns.get(newColumn);
+ if (oldColDetails == null) continue;
+ if (!firstColumn) statement.append(COMMA);
+ firstColumn = false;
+ statement.append(getName(newColumn, quoteIdentifiers, false));
+ }
+ statement.append(RIGHT_PARENTHESIS + SPACE + SELECT + SPACE);
+ it = newTable.getColumns().iterator();
+ firstColumn = true;
+ while (it.hasNext()) {
+ Column newColumn = (Column)it.next();
+ SimpleColumnDetails newColDetails = new SimpleColumnDetails(newColumn);
+ SimpleColumnDetails oldColDetails = (SimpleColumnDetails)oldColumns.get(newColumn);
+ if (oldColDetails == null) continue;
+ if (!firstColumn) statement.append(COMMA);
+ firstColumn = false;
+ String xformedColumn = getXformBackupColumn(
+ quoteIdentifiers?getDoubleQuotedString(oldColDetails.name):oldColDetails.name,
+ oldColDetails.type,newColDetails.type,
+ oldColDetails.length,newColDetails.length,
+ oldColDetails.scale,newColDetails.scale);
+ statement.append(xformedColumn);
+ }
+ statement.append(SPACE + FROM + SPACE +
+ getExistingBackupName(newTable.getSchema().getName(),oldTableName,quoteIdentifiers,qualifyNames));
+ return statement.toString();
+ }
+
+ public String getPopulateComment() {
+ return NEWLINE + COMMENT_DELIMITER + SPACE + POPULATE_COMMENT;
+ }
+
+ public String dropBackupTable(Table oldTable, boolean quoteIdentifiers, boolean qualifyNames) {
+ StringBuffer statement = new StringBuffer(COMMENT_DELIMITER + SPACE + DROP + SPACE + TABLE + SPACE);
+ statement.append(getExistingBackupName(oldTable.getSchema().getName(),oldTable.getName(),quoteIdentifiers,qualifyNames));
+ return statement.toString();
+ }
+
+ public String dropBackupTable(String oldSchema, String oldName, boolean quoteIdentifiers, boolean qualifyNames) {
+ StringBuffer statement = new StringBuffer(COMMENT_DELIMITER + SPACE + DROP + SPACE + TABLE + SPACE);
+ statement.append(getExistingBackupName(oldSchema, oldName, quoteIdentifiers, qualifyNames));
+ return statement.toString();
+ }
+
+ public String getDropBackupComment() {
+ return NEWLINE + COMMENT_DELIMITER + SPACE + DROP_BACKUP_COMMENT;
+ }
+
+ /*
+ * Get the substring which transforms a changed column for the DML
+ * used to move data from the backed up table to the newly created table.
+ * The intent here is not to ensure that the transformation will work for
+ * all values in the backed up table, but to provide a solution which
+ * will move the data assuming that all the original data can be
+ * presented without compromise into the new version of the table.
+ */
+ public String getXformBackupColumn(String backupColumnName, String type1, String type2, int length1, int length2, int scale1, int scale2) {
+ if(type1.equals(SMALLINT)) {
+ // SMALLINT range: -32 768 to +32 767
+ //
+ // Any character string of length 6 or greater
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ // DECIMAL (precision less than 15)
+ else if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,length2,scale2);
+ }
+ }
+ else if(type1.equals(INTEGER)) {
+ // INTEGER range: -2 147 483 648 to +2 147 483 647
+ //
+ // Any character string of length 11 or greater
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ // SMALLINT, REAL
+ else if ((type2.equals(SMALLINT))
+ || (type2.equals(REAL))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ // DECIMAL
+ else if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,length2,scale2);
+ }
+ }
+ else if(type1.equals(BIGINT)) {
+ // BIGINT range: -9 223 372 036 854 775 80 to +9 223 372 036 854 775 807
+ //
+ // Any character string of length 11 or greater
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ // SMALLINT, REAL
+ else if ((type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(REAL))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ // DECIMAL
+ else if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,length2,scale2);
+ }
+ }
+ else if(type1.equals(REAL)) {
+ // 32 bit floating point number;
+ // range -7.2E+75 to 7.2E+75
+ // -5.4E-79 to 5.4E-79
+ //
+ // Character string, minimum length 8
+ // 4 characters for exponent representation (i.e., 'E-79')
+ // 4 characters minimum for mantissa representation (i.e., '-5.4')
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ // SMALLINT, INTEGER, BIGINT
+ else if ((type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(BIGINT))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ // DECIMAL
+ else if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,length2,scale2);
+ }
+ }
+ else if(type1.equals(DOUBLE)) {
+ // 64 bit floating point number;
+ // range -7.2E+75 to 7.2E+75
+ // -5.4E-79 to 5.4E-79
+ //
+ // Character string, minimum length 8
+ // 4 characters for exponent representation (i.e., 'E-79')
+ // 4 characters minimum for mantissa representation (i.e., '-5.4')
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ // REAL, SMALLINT, INTEGER, BIGINT
+ else if ((type2.equals(REAL))
+ || (type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(BIGINT))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ // DECIMAL
+ else if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,length2,scale2);
+ }
+ }
+ else if(type1.equals(DECIMAL)) {
+ // 32 bit floating point number;
+ // range (1-(10**31)) to ((10**31)-1)
+ // scale >=0 and scale <= precision
+ // precision <= 31
+ //
+ // Any character string of length (precision + 2) or greater
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ // REAL, SMALLINT, INTEGER, BIGINT
+ else if ((type2.equals(REAL))
+ || (type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(BIGINT))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ // DECIMAL (different precision, scale)
+ else if ((type2.equals(DECIMAL))
+ && ((length1 != length2)
+ || (scale1 != scale2))) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,length2,scale2);
+ }
+ }
+ else if(type1.equals(DATE)) {
+ // 4 byte date;
+ // range 0001-01-01 to 9999-12-31
+ //
+ // Any character string of length greater than 10 and less than 256
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ }
+ else if(type1.equals(TIME)) {
+ // 3 byte time;
+ // range 00:00:01 to 24:00:00
+ //
+ // Any character string of length greater than 8 and less than 256
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ }
+ else if(type1.equals(TIMESTAMP)) {
+ // 10 byte timestamp;
+ // range 0001-01-01Z00:00:00.000001 to 9999-12-31Z24:00:00.000000
+ //
+ // Any character string of length greater than 26 and less than 256
+ if (isCharacterStringType(type2)) {
+ return getGeneratedNumberToStringXformExpression(backupColumnName,type2,length2);
+ }
+ if ((type2.equals(DATE))
+ || (type2.equals(TIME))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ }
+ else if (type1.equals(CHAR)) {
+ if ((type2.equals(CHAR)
+ && (length2 < length1))
+ || (type2.equals(VARCHAR))) {
+ if (length2 < length1) {
+ // Assume we must trim the original value to fit into the new column
+ return getGeneratedScalarFunctionExpression("RTRIM",backupColumnName); //$NON-NLS-1$
+ }
+ }
+ if ((type2.equals(GRAPHIC))
+ || (type2.equals(VARGRAPHIC))) {
+ // Assume we must trim the original value to fit into the new column
+ return getGeneratedScalarFunctionExpression(GRAPHIC,
+ getGeneratedScalarFunctionExpression("RTRIM",backupColumnName)); //$NON-NLS-1$
+ }
+ if ((type2.equals(CLOB))
+ || (type2.equals(DBCLOB))) {
+ // Assume we must trim the original value to fit into the new column
+ return getGeneratedScalarFunctionExpression(type2,
+ getGeneratedScalarFunctionExpression("RTRIM",backupColumnName)); //$NON-NLS-1$
+ }
+ if ((type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(BIGINT))
+ || (type2.equals(REAL))
+ || (type2.equals(DOUBLE))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,
+ length2, scale2);
+ }
+ if ((type2.equals(DATE))
+ || (type2.equals(TIME))
+ || (type2.equals(TIMESTAMP))) {
+ return getGeneratedScalarFunctionExpression(type2,
+ getGeneratedScalarFunctionExpression("RTRIM",backupColumnName)); //$NON-NLS-1$
+ }
+ }
+ else if (type1.equals(VARCHAR)) {
+ if ((type2.equals(CLOB))
+ || (type2.equals(DBCLOB))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ if ((type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(BIGINT))
+ || (type2.equals(REAL))
+ || (type2.equals(DOUBLE))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(backupColumnName,
+ length2, scale2);
+ }
+ if ((type2.equals(DATE))
+ || (type2.equals(TIME))
+ || (type2.equals(TIMESTAMP))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ }
+ else if (type1.equals(GRAPHIC)) {
+ if ((type2.equals(CHAR))
+ || (type2.equals(VARCHAR))) {
+ // Assume we must trim the original value to fit into the new column
+ return getGeneratedScalarFunctionExpression(CHAR,
+ getGeneratedScalarFunctionExpression("RTRIM",backupColumnName)); //$NON-NLS-1$
+ }
+ if ((type2.equals(GRAPHIC)
+ && (length2 < length1))
+ || (type2.equals(VARGRAPHIC))) {
+ // Assume we must trim the original value to fit into the new column
+ return getGeneratedScalarFunctionExpression("RTRIM",backupColumnName); //$NON-NLS-1$
+ }
+ if ((type2.equals(CLOB))
+ || (type2.equals(DBCLOB))) {
+ // Assume we must trim the original value to fit into the new column
+ return getGeneratedScalarFunctionExpression(type2,
+ getGeneratedScalarFunctionExpression("RTRIM",backupColumnName)); //$NON-NLS-1$
+ }
+ if ((type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(BIGINT))
+ || (type2.equals(REAL))
+ || (type2.equals(DOUBLE))) {
+ return getGeneratedScalarFunctionExpression(type2,
+ getGeneratedScalarFunctionExpression(CHAR,backupColumnName));
+ }
+ if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(
+ getGeneratedScalarFunctionExpression(CHAR,backupColumnName),
+ length2, scale2);
+ }
+ if ((type2.equals(DATE))
+ || (type2.equals(TIME))
+ || (type2.equals(TIMESTAMP))) {
+ return getGeneratedScalarFunctionExpression(type2,
+ getGeneratedScalarFunctionExpression("RTRIM",backupColumnName)); //$NON-NLS-1$
+ }
+ }
+ else if (type1.equals(VARGRAPHIC)) {
+ if ((type2.equals(CLOB))
+ || (type2.equals(DBCLOB))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ if ((type2.equals(SMALLINT))
+ || (type2.equals(INTEGER))
+ || (type2.equals(BIGINT))
+ || (type2.equals(REAL))
+ || (type2.equals(DOUBLE))) {
+ return getGeneratedScalarFunctionExpression(type2,
+ getGeneratedScalarFunctionExpression(CHAR,backupColumnName));
+ }
+ if (type2.equals(DECIMAL)) {
+ return getGeneratedDecimalFunctionExpression(
+ getGeneratedScalarFunctionExpression(CHAR,backupColumnName),
+ length2, scale2);
+ }
+ if ((type2.equals(DATE))
+ || (type2.equals(TIME))
+ || (type2.equals(TIMESTAMP))) {
+ return getGeneratedScalarFunctionExpression(type2,backupColumnName);
+ }
+ }
+ else if (type1.equals(XML)) {
+ return getGeneratedXmlXformExpression(backupColumnName,type2);
+ }
+ return backupColumnName;
+ }
+
+ private String getGeneratedNumberToStringXformExpression(String colName, String type, int length) {
+ if (isFixedLengthStringType(type)) {
+ return getGeneratedScalarFunctionExpression(type,
+ getGeneratedScalarFunctionExpression(type,colName,String.valueOf(length)));
+ }
+ else if (isLOBType(type)) {
+ if (isDoubleByteType(type)) {
+ return getGeneratedScalarFunctionExpression(type,
+ getGeneratedScalarFunctionExpression(VARGRAPHIC,colName));
+ }
+ else {
+ return getGeneratedScalarFunctionExpression(type,
+ getGeneratedScalarFunctionExpression(VARCHAR,colName));
+ }
+ }
+ return getGeneratedScalarFunctionExpression(type,colName);
+ }
+
+ private String getGeneratedScalarFunctionExpression(String function, String parm1, String parm2) {
+ return function + LEFT_PARENTHESIS + parm1 + COMMA + parm2 + RIGHT_PARENTHESIS;
+ }
+
+ private String getGeneratedDecimalFunctionExpression(String parm,int precision, int scale) {
+ return DECIMAL + LEFT_PARENTHESIS + parm + COMMA + String.valueOf(precision) + COMMA + String.valueOf(scale) + RIGHT_PARENTHESIS;
+ }
+
+ private String getGeneratedScalarFunctionExpression(String function,String parm) {
+ return function + LEFT_PARENTHESIS + parm + RIGHT_PARENTHESIS;
+ }
+
+ protected String getGeneratedXmlXformExpression(String backupColName, String type2) {
+ if (isCharacterStringType(type2) && !isDoubleByteType(type2)) {
+ return "XMLSERIALIZE (" + backupColName + " AS " + type2 + ")"; //$NON-NLS-1$ //$NON-NLS-1$ //$NON-NLS-1$
+ }
+ return backupColName;
+ }
+
+ private boolean isCharacterStringType(String type) {
+ if (type.equals(CHAR)
+ || type.equals(VARCHAR)
+ || type.equals(GRAPHIC)
+ || type.equals(VARGRAPHIC)
+ || type.equals(CLOB)
+ || type.equals(DBCLOB)) return true;
+ return false;
+ }
+
+ private boolean isDoubleByteType(String type) {
+ if (type.equals(GRAPHIC)
+ || type.equals(VARGRAPHIC)
+ || type.equals(DBCLOB)) return true;
+ return false;
+ }
+
+ private boolean isLOBType(String type) {
+ if (type.equals(CLOB)
+ || type.equals(BLOB)
+ || type.equals(DBCLOB)) return true;
+ return false;
+ }
+
+ private boolean isFixedLengthStringType(String type) {
+ if (type.equals(CHAR)
+ || type.equals(GRAPHIC)) return true;
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlBuilder.java
new file mode 100644
index 0000000..79b34db
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlBuilder.java
@@ -0,0 +1,1267 @@
+/*
+ *+------------------------------------------------------------------------+
+ *| Licensed Materials - Property of IBM |
+ *| Copyright IBM Corp. 2003, 2013. All Rights Reserved. |
+ *| |
+ *| US Government Users Restricted Rights - Use, duplication or disclosure |
+ *| restricted by GSA ADP Schedule Contract with IBM Corp. |
+ *+------------------------------------------------------------------------+
+ */
+package org.eclipse.datatools.enablement.ibm.db2.ddl;
+
+import java.text.MessageFormat;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.internal.core.definition.DatabaseDefinitionRegistryImpl;
+import org.eclipse.datatools.enablement.ibm.db2.DB2PluginActivator;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2View;
+import org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType;
+import org.eclipse.datatools.enablement.ibm.db2.model.GenerateType;
+import org.eclipse.datatools.enablement.ibm.db2.model.OriginType;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlBuilder;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlGenerationUtility;
+import org.eclipse.datatools.enablement.ibm.ddl.RoutineDdlBuilder;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.ArrayDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.routines.DataAccess;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.ParameterMode;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.RoutineResultTable;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.tables.ActionGranularityType;
+import org.eclipse.datatools.modelbase.sql.tables.ActionTimeType;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.CheckType;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.ecore.EObject;
+
+public abstract class DB2DdlBuilder extends DdlBuilder {
+ protected final static String DB2SQL = "DB2SQL"; //$NON-NLS-1$
+ protected final static String MODE = "MODE"; //$NON-NLS-1$
+ protected final static String CYCLE = "CYCLE"; //$NON-NLS-1$
+ protected final static String CACHE = "CACHE"; //$NON-NLS-1$
+ protected final static String IN = "IN"; //$NON-NLS-1$
+ protected final static String OUT = "OUT"; //$NON-NLS-1$
+ protected final static String INOUT = "INOUT"; //$NON-NLS-1$
+ protected final static String LOCATOR = "LOCATOR"; //$NON-NLS-1$
+ protected final static String RETURNS = "RETURNS"; //$NON-NLS-1$
+ protected final static String CAST = "CAST"; //$NON-NLS-1$
+ protected final static String SPECIFIC = "SPECIFIC"; //$NON-NLS-1$
+ protected final static String EXTERNAL = "EXTERNAL"; //$NON-NLS-1$
+ protected final static String COLUMN = "COLUMN"; //$NON-NLS-1$
+ protected final static String NICKNAME = "NICKNAME"; //$NON-NLS-1$
+ protected final static String TEMPLATE = "TEMPLATE"; //$NON-NLS-1$
+ protected final static String LABEL = "LABEL"; //$NON-NLS-1$
+ protected final static String PACKAGE = "PACKAGE"; //$NON-NLS-1$
+ protected static final String MAXVALUE = "MAXVALUE "; //$NON-NLS-1$
+ protected static final String NO_MAXVALUE = "NO MAXVALUE "; //$NON-NLS-1$
+ protected static final String MINVALUE = "MINVALUE "; //$NON-NLS-1$
+ protected static final String NO_MINVALUE = "NO MINVALUE "; //$NON-NLS-1$
+ protected static final String INCREMENT_BY = "INCREMENT BY "; //$NON-NLS-1$
+ protected static final String START_WITH = "START WITH "; //$NON-NLS-1$
+ protected static final String SET_MAXVALUE = "SET MAXVALUE "; //$NON-NLS-1$
+ protected static final String SET_NO_MAXVALUE = "SET NO MAXVALUE "; //$NON-NLS-1$
+ protected static final String SET_MINVALUE = "SET MINVALUE "; //$NON-NLS-1$
+ protected static final String SET_NO_MINVALUE = "SET NO MINVALUE "; //$NON-NLS-1$
+ protected static final String SET_INCREMENT_BY = "SET INCREMENT BY "; //$NON-NLS-1$
+ protected static final String RESTART_WITH = "RESTART WITH "; //$NON-NLS-1$
+ protected static final String RESTART = "RESTART "; //$NON-NLS-1$
+ protected static final String EMPTY_STRING = ""; //$NON-NLS-1$
+ protected static final String COMMA = ", "; //$NON-NLS-1$
+ protected static final String ORDER = "ORDER "; //$NON-NLS-1$
+ protected static final String SINGLE_QUOTED_EMPTY_STRING = "\'\'"; //$NON-NLS-1$
+
+ public String createAlias(DB2Alias alias, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table aliased = alias.getAliasedTable();
+ if(aliased == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_ALIAS_TABLE_NOT_EXIST, new Object[] { getName(alias, false, true)}));
+ return null;
+ }
+ return CREATE + SPACE + ALIAS + SPACE + getName(alias, quoteIdentifiers, qualifyNames)
+ + SPACE + FOR + SPACE + getName(aliased, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropAlias(DB2Alias alias, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + ALIAS + SPACE + getName(alias, quoteIdentifiers, qualifyNames);
+ }
+
+ public String createSchema(Schema schema, boolean quoteIdentifiers,boolean qualifyNames) {
+ return CREATE + SPACE + SCHEMA + SPACE + getName(schema, quoteIdentifiers,qualifyNames);
+ }
+
+ //@bd00058820gs
+ public String dropSchema(Schema schema, boolean quoteIdentifiers, boolean qualifyNames) {
+ return super.dropSchema(schema,quoteIdentifiers,qualifyNames) + SPACE + RESTRICT;
+ }
+
+ public String createDistinctUserDefinedType(DistinctUserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ PredefinedDataType dataType = type.getPredefinedRepresentation();
+ if (dataType == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_DISTINCT_TYPE_HAS_NO_SOURCE_TYPE, new Object[] { getName(type, false, true)}));
+ return null;
+ }
+ String dataTypeString;
+ EObject root = ContainmentServiceImpl.INSTANCE.getRootElement(type);
+ if(root instanceof Database) {
+ DatabaseDefinition def = DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition((Database) root);
+ dataTypeString = def.getPredefinedDataTypeFormattedName(dataType);
+ }
+ else {
+ //TODO report error
+ return null;
+ }
+
+ String statement = CREATE + SPACE + DISTINCT + SPACE + TYPE + SPACE + getName(type, quoteIdentifiers, qualifyNames)
+ + SPACE + AS + SPACE + dataTypeString;
+ if(!dataTypeString.equals(BLOB) && !dataTypeString.equals(CLOB) && !dataTypeString.equals(DBCLOB)
+ && !dataTypeString.equals(LONG + SPACE + VARCHAR) && !dataTypeString.equals(LONG + SPACE + VARGRAPHIC)
+ && !dataTypeString.equals(DATALINK)) {
+ statement += SPACE + WITH + SPACE + COMPARISONS;
+ }
+ return statement;
+ }
+
+ public String createTrigger(DB2Trigger trigger, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = CREATE + SPACE + TRIGGER + SPACE + getName(trigger, quoteIdentifiers, qualifyNames) + SPACE;
+
+ final ActionTimeType actionTime = trigger.getActionTime();
+ if(actionTime == ActionTimeType.AFTER_LITERAL) {
+ statement += NEWLINE + TAB + AFTER;
+ }
+ else if(actionTime == ActionTimeType.BEFORE_LITERAL) {
+ statement += NEWLINE + TAB + NO + SPACE + CASCADE + SPACE + BEFORE;
+ }
+ else if(actionTime == ActionTimeType.INSTEADOF_LITERAL) {
+ statement += NEWLINE + TAB + INSTEAD_OF;
+ }
+ statement += SPACE;
+
+ if(trigger.isDeleteType()) {
+ statement += DELETE;
+ }
+ else if(trigger.isInsertType()) {
+ statement += INSERT;
+ }
+ else if(trigger.isUpdateType()) {
+ statement += UPDATE;
+ Collection updateColumns = trigger.getTriggerColumn();
+ if(!updateColumns.isEmpty()) {
+ statement += SPACE + OF + SPACE ;
+ Iterator it = updateColumns.iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ statement += this.getName(column, quoteIdentifiers, false);
+ if(it.hasNext()) {
+ statement += COMMA + SPACE;
+ }
+ }
+ }
+ }
+
+ statement += SPACE + ON + SPACE + getName(trigger.getSubjectTable(), quoteIdentifiers, qualifyNames) + NEWLINE;
+
+ final String newRow = trigger.getNewRow();
+ final String oldRow = trigger.getOldRow();
+ final String newTable = trigger.getNewTable();
+ final String oldTable = trigger.getOldTable();
+
+ String referenceStr = EMPTY_STRING;
+ if(newRow != null && newRow.length() != 0) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE + TAB + TAB) + NEW + SPACE + AS + SPACE + newRow;
+ }
+ if(oldRow != null && oldRow.length() != 0) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE +TAB + TAB) + OLD + SPACE + AS + SPACE + oldRow;
+ }
+ if(newTable != null && newTable.length() != 0) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE +TAB + TAB) + this.getTriggerReferenceNewTable() + SPACE + AS + SPACE + newTable;
+ }
+ if(oldTable != null && oldTable.length() != 0) {
+ referenceStr += (referenceStr.equals(EMPTY_STRING)? SPACE: NEWLINE +TAB + TAB) + this.getTriggerReferenceOldTable() + SPACE + AS + SPACE + oldTable;
+ }
+
+ if (!referenceStr.equals(EMPTY_STRING)) {
+ statement += TAB + REFERENCING + SPACE + referenceStr + NEWLINE;
+ }
+
+ if(trigger.getActionGranularity() == ActionGranularityType.ROW_LITERAL) {
+ statement += TAB + FOR + SPACE + EACH + SPACE + ROW;
+ }
+ else {
+ statement += TAB + FOR + SPACE + EACH + SPACE + STATEMENT;
+ }
+
+ statement += SPACE + MODE + SPACE + DB2SQL + NEWLINE;
+
+ SearchCondition condition = trigger.getWhen();
+ if(condition != null) {
+ String c = condition.getSQL();
+ if ( c != null && c.trim().length() != 0 && DdlGenerationUtility.filterOutComments( c ) )
+ {
+ statement += WHEN + SPACE + LEFT_PARENTHESIS + DdlGenerationUtility.convertLineEndings(c, NEWLINE) + RIGHT_PARENTHESIS + NEWLINE;
+ }
+ }
+
+ String sqlBody = EMPTY_STRING;
+ Iterator it = trigger.getActionStatement().iterator();
+ while(it.hasNext()) {
+ SQLStatement s = (SQLStatement) it.next();
+ sqlBody += s.getSQL();
+ }
+
+ if ( sqlBody.equals( EMPTY_STRING ) || !DdlGenerationUtility.filterOutComments( sqlBody ) )
+ {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_TRIGGER_ACTION_EMPTY, new Object[] { getName(trigger, quoteIdentifiers, qualifyNames)}));
+ return null;
+ }
+
+ statement += DdlGenerationUtility.convertLineEndings(sqlBody, NEWLINE);
+
+ return statement;
+ }
+
+ public String createView(DB2View view, boolean quoteIdentifiers, boolean qualifyNames) {
+ String viewDefinition = CREATE + SPACE + VIEW + SPACE + getName(view, quoteIdentifiers, qualifyNames) + SPACE;
+
+ String columns = getViewColumnList(view,quoteIdentifiers);
+ if(columns != null) {
+ viewDefinition += LEFT_PARENTHESIS + columns + RIGHT_PARENTHESIS + SPACE;
+ }
+ viewDefinition += AS + NEWLINE;
+ QueryExpression expression = view.getQueryExpression();
+ if (expression == null || expression.getSQL() == null || expression.getSQL().length() == 0) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_VIEW_HAS_NO_BODY, new Object[] { getName(view, false, true)}));
+ }
+ else {
+ viewDefinition += expression.getSQL();
+ }
+ CheckType checkType = view.getCheckType();
+ if(checkType == CheckType.CASCADED_LITERAL) {
+ viewDefinition += NEWLINE + WITH + SPACE + CASCADED + SPACE + CHECK + SPACE + OPTION;
+ }
+ else if(checkType == CheckType.LOCAL_LITERAL) {
+ viewDefinition += NEWLINE + WITH + SPACE + LOCAL + SPACE + CHECK + SPACE + OPTION;
+ }
+ return viewDefinition;
+ }
+
+ public String createUserDefinedFunction(DB2UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ Database database = function.getSchema().getDatabase();
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildCreateRoutineStatement(function,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+
+ String language = function.getLanguage();
+ if (language == null && function.getOrigin() == OriginType.NONE_LITERAL) language = "SQL"; //$NON-NLS-1$
+ if(language.trim().equalsIgnoreCase("SQL")) { //$NON-NLS-1$
+ Source source = function.getSource();
+ if (source != null) {
+ return source.getBody();
+ } else {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_ROUTINE_SOURCE_EMPTY, new Object[] { getName(function, false, true)}));
+ return null;
+ }
+ }
+
+ String text = CREATE + SPACE + FUNCTION + SPACE + getName(function, quoteIdentifiers, qualifyNames)
+ + SPACE + LEFT_PARENTHESIS + getParameters(function,qualifyNames) + RIGHT_PARENTHESIS + NEWLINE
+ + TAB + getFunctionReturnsClause(function,qualifyNames);
+
+ if (function.getOrigin() == OriginType.TEMPLATE_LITERAL ) {
+ text += NEWLINE + TAB + AS + SPACE + TEMPLATE; //$NON-NLS-1$
+ text += getDeterministicOption(function);
+ text += getExternalActionOption(function);
+ } else {
+ text += getSpecificOption(function,quoteIdentifiers,qualifyNames);
+ text += getDeterministicOption(function);
+ text += getDataAccessOption(function);
+ text += getExternalActionOption(function);
+ text += getNullCallOption(function);
+ text += getParallelOption(function);
+ text += getFederatedOption(function);
+
+ text += getLanguageOption(function);
+ text += getCardinalityOption(function);
+ text += getDBInfoOption(function);
+ text += getExternalNameOption(function,quoteIdentifiers,qualifyNames);
+ text += getFencedOption(function);
+ text += getFinalCallOption(function);
+ text += getParameterStyleOption(function);
+ text += getParameterCcsidOption(function);
+ text += getPredicatesOption(function);
+ text += getScratchPadCallOption(function);
+ text += getSecurityOption(function);
+
+ }
+ return text;
+ }
+
+ public String createProcedure(DB2Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+
+ Database database = procedure.getSchema().getDatabase();
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildCreateRoutineStatement(procedure,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+
+ String language = procedure.getLanguage();
+ if (language == null) language = "SQL"; //$NON-NLS-1$
+ if(language.equalsIgnoreCase("SQL")) { //$NON-NLS-1$
+ Source source = procedure.getSource();
+ if (source != null) {
+ return source.getBody();
+ } else {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_ROUTINE_SOURCE_EMPTY, new Object[] { getName(procedure, false, true)}));
+ return null;
+ }
+ }
+
+ String text = CREATE + SPACE + PROCEDURE + SPACE + getName(procedure, quoteIdentifiers, qualifyNames)
+ + SPACE + LEFT_PARENTHESIS + getParameters(procedure,qualifyNames) + RIGHT_PARENTHESIS;
+
+ text += getSpecificOption(procedure,quoteIdentifiers,qualifyNames);
+ text += getDataAccessOption(procedure);
+ text += getDeterministicOption(procedure);
+ text += getDynamicResultSetsOption(procedure);
+ text += getFederatedOption(procedure);
+
+ text += NEWLINE + TAB + "LANGUAGE " + language; //$NON-NLS-1$
+ text += getFencedOption(procedure);
+ text += getParameterStyleOption(procedure);
+ text += getProgramTypeOption(procedure);
+ text += getDBInfoOption(procedure);
+ text += getExternalNameOption(procedure,quoteIdentifiers,qualifyNames);
+
+ return text;
+ }
+
+
+ public String addCheckConstraint(CheckConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ String text = super.addCheckConstraint(constraint,quoteIdentifiers,qualifyNames);
+ text += this.getEnforcedOption(constraint);
+ return text;
+ }
+
+ public String addForeignKey(ForeignKey foreignKey, boolean quoteIdentifiers, boolean qualifyNames) {
+ String text =super.addForeignKey(foreignKey,quoteIdentifiers,qualifyNames);
+ if (text == null) {
+ this.getEngineeringCallBack().writeMessage(MessageFormat.format(
+ DB2DdlMessages.FE_PARENT_TABLLE_OR_KEY_DO_NOT_EXIST, new Object[] { foreignKey.getName()}));
+ return null;
+ }
+ text += this.getEnforcedOption(foreignKey);
+ return text;
+ }
+
+ public String commentOn(DB2Alias alias, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = alias.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ return COMMENT + SPACE + ON + SPACE + ALIAS + SPACE + getName(alias, quoteIdentifiers, qualifyNames)
+ + SPACE + IS + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = column.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ Table table = column.getTable();
+ if (! (table instanceof PersistentTable) && ! (table instanceof ViewTable)){
+ return null;
+ }
+
+ String columnName = column.getName();
+ String tableName = table.getName();
+ String schemaName = column.getTable().getSchema().getName();
+
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ columnName = schemaName + DOT + tableName + DOT + columnName;
+ } else {
+ columnName = tableName + DOT + columnName;
+ }
+
+ return COMMENT + SPACE + ON + SPACE + COLUMN + SPACE + columnName
+ + SPACE + IS + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(DistinctUserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = type.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String name = getName(type, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + DISTINCT + SPACE + TYPE + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(ArrayDataType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = type.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String name = getName(type, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + TYPE + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ private String getName(ArrayDataType type, boolean quoteIdentifiers,
+ boolean qualifyNames) {
+ String typeName = type.getName();
+ String schemaName = ((UserDefinedType) type).getSchema() != null ? ((UserDefinedType) type).getSchema().getName() : null;
+
+ if (schemaName == null) {
+ DB2PluginActivator.getInstance().writeLog(IStatus.ERROR, 0, "User-defined type " + type + " does not have a schema. The user-defined type name will not be qualified in the DDL.", null);
+ }
+
+ if(quoteIdentifiers) {
+ typeName = this.getDoubleQuotedString(typeName);
+ if (schemaName != null) {
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ }
+
+ if(qualifyNames && schemaName != null) {
+ typeName = schemaName + DOT + typeName;
+ }
+
+ return typeName;
+ }
+
+ public String labelOn(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = column.getLabel();
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ Table table = column.getTable();
+ if (! (table instanceof PersistentTable) && ! (table instanceof ViewTable)){
+ return null;
+ }
+
+ String columnName = column.getName();
+ String tableName = table.getName();
+ String schemaName = column.getTable().getSchema().getName();
+
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ columnName = schemaName + DOT + tableName + DOT + columnName;
+ } else {
+ columnName = tableName + DOT + columnName;
+ }
+
+ return LABEL + SPACE + ON + SPACE + COLUMN + SPACE + columnName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(DB2Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = procedure.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String procedureName = procedure.getName();
+ String schemaName = procedure.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ procedureName = this.getDoubleQuotedString(procedureName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ procedureName = schemaName + DOT + procedureName; //$NON-NLS-1$
+ }
+
+ return LABEL + SPACE + ON + SPACE + PROCEDURE + SPACE + procedureName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(DB2UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = function.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String functionName = function.getName();
+ String schemaName = function.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ functionName = this.getDoubleQuotedString(functionName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ functionName = schemaName + DOT + functionName; //$NON-NLS-1$
+ }
+
+ return LABEL + SPACE + ON + SPACE + FUNCTION + SPACE + functionName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(DB2Trigger trigger, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = trigger.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String triggerName = trigger.getName();
+ String schemaName = trigger.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ triggerName = this.getDoubleQuotedString(triggerName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ triggerName = schemaName + DOT + triggerName; //$NON-NLS-1$
+ }
+
+ return LABEL + SPACE + ON + SPACE + TRIGGER + SPACE + triggerName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(TableConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = constraint.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String constraintName = constraint.getName();
+ String tableName = constraint.getBaseTable().getName();
+ String schemaName = constraint.getBaseTable().getSchema().getName();
+
+ if(quoteIdentifiers) {
+ constraintName = this.getDoubleQuotedString(constraintName);
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ constraintName = schemaName + DOT + tableName + DOT + constraintName;
+ }
+ else {
+ constraintName = tableName + DOT + constraintName;
+ }
+
+ return LABEL + SPACE + ON + SPACE + CONSTRAINT + SPACE + constraintName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(DB2Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = index.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String indexName = index.getName();
+ String schemaName = index.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ indexName = this.getDoubleQuotedString(indexName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames){
+ indexName = schemaName + DOT + indexName;
+ }
+
+ return LABEL + SPACE + ON + SPACE + INDEX + SPACE + indexName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(DistinctUserDefinedType userDefinedType, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = userDefinedType.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String userDefinedTypeName = userDefinedType.getName();
+ String schemaName = userDefinedType.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ userDefinedTypeName = this.getDoubleQuotedString(userDefinedTypeName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ userDefinedTypeName = schemaName + DOT + userDefinedTypeName; //$NON-NLS-1$
+ }
+
+ return LABEL + SPACE + ON + SPACE + TYPE + SPACE + userDefinedTypeName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = sequence.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String sequenceName = sequence.getName();
+ String schemaName = sequence.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ sequenceName = this.getDoubleQuotedString(sequenceName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ sequenceName = schemaName + DOT + sequenceName; //$NON-NLS-1$
+ }
+
+ return LABEL + SPACE + ON + SPACE + SEQUENCE + SPACE + sequenceName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(Schema schema, boolean quoteIdentifiers) {
+ String label = schema.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String schemaName = schema.getName();
+
+ if(quoteIdentifiers) {
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ return LABEL + SPACE + ON + SPACE + SCHEMA + SPACE + schemaName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public String labelOn(Table table, boolean quoteIdentifiers,boolean qualifyNames) {
+ String label = table.getLabel();
+
+ if (label == null){ //$NON-NLS-1$
+ return null;
+ }
+
+ label = label.trim();
+ if (label.equals(EMPTY_STRING)) //$NON-NLS-1$
+ return null;
+
+ String tableName = table.getName();
+ String schemaName = table.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ tableName = schemaName + DOT + tableName; //$NON-NLS-1$
+ }
+
+ return LABEL + SPACE + ON + SPACE + TABLE + SPACE + tableName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+
+ }
+
+ public String labelOn(DB2Alias alias, boolean quoteIdentifiers, boolean qualifyNames) {
+ String label = alias.getLabel();
+
+ if (label == null || label.equals(EMPTY_STRING)){ //$NON-NLS-1$
+ return null;
+ }
+
+ String aliasName = alias.getName();
+ String schemaName = alias.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ aliasName = this.getDoubleQuotedString(aliasName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ aliasName = schemaName + DOT + aliasName; //$NON-NLS-1$
+ }
+
+ return LABEL + SPACE + ON + SPACE + ALIAS + SPACE + aliasName + SPACE + IS + NEWLINE + this.getSingleQuotedString(label); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+
+ public String alterTableAlterColumnIdentity(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+ if(!(table instanceof BaseTable)) return null;
+
+ DB2Column db2Column = (DB2Column) column;
+ String columnName = db2Column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + " ALTER COLUMN "+columnName;
+
+ DB2IdentitySpecifier identitySpecifier = (DB2IdentitySpecifier)db2Column.getIdentitySpecifier();
+ if (identitySpecifier == null) { //Drop
+ statement += " DROP IDENTITY";
+ } else { //modify
+ String columnString = EMPTY_STRING;
+ GenerateType generateType = db2Column.getGenerationType();
+ if(generateType == GenerateType.ALWAYS_LITERAL) {
+ columnString += " SET GENERATED ALWAYS "; //$NON-NLS-1$
+ }
+ else {
+ columnString += " SET GENERATED BY DEFAULT "; //$NON-NLS-1$
+ }
+
+ columnString += getIdentityAlterationString(identitySpecifier);
+
+ statement += columnString;
+ }
+ return statement;
+ }
+
+ protected String getIdentityString(DB2IdentitySpecifier identitySpecifier) {
+ StringBuffer sb = new StringBuffer();
+ if (identitySpecifier.getStartValue() != null)
+ sb.append(NEWLINE + TAB + TAB + TAB + START_WITH + identitySpecifier.getStartValue());
+ if (identitySpecifier.getIncrement() != null) {
+ sb.append(NEWLINE + TAB + TAB + TAB + INCREMENT_BY + identitySpecifier.getIncrement());
+ }
+ if (identitySpecifier.getMinimum() != null) {
+ sb.append(NEWLINE + TAB +TAB + TAB + MINVALUE + identitySpecifier.getMinimum());
+ }
+ else {
+ sb.append(NEWLINE + TAB +TAB + TAB + NO_MINVALUE);
+ }
+ if (identitySpecifier.getMaximum() != null) {
+ sb.append(NEWLINE + TAB + TAB + TAB + MAXVALUE + identitySpecifier.getMaximum());
+ }
+ else {
+ sb.append(NEWLINE + TAB + TAB + TAB + NO_MAXVALUE);
+ }
+ if(identitySpecifier.isCycleOption()) {
+ sb.append(NEWLINE + TAB +TAB + TAB + CYCLE);
+ }
+ else {
+ sb.append(NEWLINE + TAB + TAB + TAB + NO + SPACE + CYCLE);
+ }
+ if (identitySpecifier.getCache() > 1) {
+ sb.append(NEWLINE + TAB +TAB + TAB + CACHE + SPACE + identitySpecifier.getCache());
+ } else {
+ sb.append(NEWLINE + TAB + TAB + TAB +NO + SPACE + CACHE);
+ }
+ if(identitySpecifier.isOrder()) {
+ sb.append(NEWLINE + TAB + TAB + TAB +ORDER);
+ }
+ else {
+ sb.append(NEWLINE + TAB + TAB + TAB +NO + SPACE + ORDER);
+ }
+ return sb.toString();
+ }
+
+ protected String getIdentityAlterationString(DB2IdentitySpecifier identitySpecifier) {
+ StringBuffer sb = new StringBuffer();
+ if (identitySpecifier.getStartValue() != null)
+ sb.append(SPACE + RESTART_WITH + identitySpecifier.getStartValue());
+ if (identitySpecifier.getIncrement() != null) {
+ sb.append(SPACE + SET_INCREMENT_BY + identitySpecifier.getIncrement());
+ }
+ if (identitySpecifier.getMinimum() != null) {
+ sb.append(SPACE + SET_MINVALUE + identitySpecifier.getMinimum());
+ }
+ if (identitySpecifier.getMaximum() != null) {
+ sb.append(SPACE + SET_MAXVALUE + identitySpecifier.getMaximum());
+ }
+ if(identitySpecifier.isCycleOption()) {
+ sb.append(SPACE + SET + SPACE + CYCLE);
+ }
+ else {
+ sb.append(SPACE + SET + SPACE + NO + SPACE + CYCLE);
+ }
+ if (identitySpecifier.getCache() > 1) {
+ sb.append(SPACE + SET + SPACE + CACHE + SPACE + identitySpecifier.getCache());
+ } else {
+ sb.append(SPACE + SET + SPACE + NO + SPACE + CACHE);
+ }
+ return sb.toString();
+ }
+
+ protected String getParameters(Routine routine, boolean qualifyNames) {
+ String parameters = EMPTY_STRING;
+ Iterator it = routine.getParameters().iterator();
+ while(it.hasNext()) {
+ Parameter p = (Parameter) it.next();
+ ParameterMode mode = p.getMode();
+ if(mode == ParameterMode.INOUT_LITERAL) {
+ parameters += INOUT + SPACE;
+ }
+ else if(mode == ParameterMode.OUT_LITERAL) {
+ parameters += OUT + SPACE;
+ }
+ String name = p.getName();
+ if(name != null && name.length() != 0) {
+ parameters += p.getName() + SPACE;
+ }
+ parameters += this.getDataTypeString(p, routine.getSchema(),qualifyNames);
+ if(p.isLocator()) {
+ parameters += SPACE + AS + SPACE + LOCATOR;
+ }
+ if(it.hasNext()) {
+ parameters += COMMA + NEWLINE + TAB + TAB;
+ }
+ }
+ return parameters;
+ }
+
+ protected String getFunctionReturnsClause(DB2UserDefinedFunction function, boolean qualifyNames) {
+ if(function.getReturnScalar() != null) {
+ Parameter scaler = function.getReturnScalar();
+ String text = RETURNS + SPACE + this.getDataTypeString(scaler,function.getSchema(),qualifyNames);
+ if(function.getReturnCast() != null) {
+ Parameter cast = function.getReturnCast();
+ text += SPACE + CAST + SPACE + FROM + SPACE + this.getDataTypeString(cast,function.getSchema(),qualifyNames);
+ }
+ return text;
+ }
+ else if(function.getReturnTable() != null) {
+ RoutineResultTable resultTable = function.getReturnTable();
+ String text = RETURNS + SPACE + TABLE + SPACE + LEFT_PARENTHESIS;
+ Iterator it = resultTable.getColumns().iterator();
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ text += c.getName() + SPACE + getDataTypeString(c,function.getSchema(),qualifyNames);
+ if(it.hasNext()) {
+ text += COMMA + SPACE;
+ }
+ }
+ text += RIGHT_PARENTHESIS;
+ return text;
+ }
+ if(function.getReturnCast() != null) {
+ Parameter cast = function.getReturnCast();
+ String text = RETURNS + SPACE + this.getDataTypeString(cast,function.getSchema(),qualifyNames);
+ return text;
+ }
+ else {
+ return function.getReturnClause();
+ }
+ }
+
+ protected String getSpecificOption(Routine routine,boolean quoteIdentifiers, boolean qualifyNames) {
+ String specificName = routine.getSpecificName();
+ if(specificName != null && specificName.length() != 0) {
+ String schemaName = routine.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ specificName = this.getDoubleQuotedString(specificName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ specificName = schemaName + DOT + specificName;
+ }
+
+ return NEWLINE + TAB + SPECIFIC + SPACE + specificName;
+ }
+ return EMPTY_STRING;
+ }
+
+ protected String getParameterStyleOption(Routine routine) {
+ String parameterStyle = routine.getParameterStyle();
+ if ( parameterStyle == null || parameterStyle.trim().isEmpty() ) {
+ return EMPTY_STRING;
+ }
+ if ( parameterStyle.trim().equals("GNRLNULL") ) { //$NON-NLS-1$
+ parameterStyle = "GENERAL WITH NULLS"; //$NON-NLS-1$
+ }
+ return NEWLINE + TAB + "PARAMETER STYLE " + parameterStyle; //$NON-NLS-1$
+ }
+
+ protected String getDeterministicOption(Routine routine) {
+ if(routine.isDeterministic()) {
+ return NEWLINE + TAB + "DETERMINISTIC"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+
+ protected String getLanguageOption(Routine routine) {
+ String language = routine.getLanguage();
+ if ( language == null || language.trim().isEmpty() ) {
+ return EMPTY_STRING;
+ }
+
+ return NEWLINE + TAB + "LANGUAGE " + language; //$NON-NLS-1$
+ }
+
+ /**
+ * The input routine must be a JAVA routine.
+ * It looks like zSeries JAVA routine's externalName field does not include a JAR ID
+ * after catalog load. The zSeries DDL builder can compensate this by implementing
+ * this method.
+ * @param routine
+ * @param quoteIdentifiers
+ * @param qualifyNames
+ * @return the Jar ID of the JAVA routine or null
+ */
+ protected String getJarID (Routine routine, boolean quoteIdentifiers, boolean qualifyNames) {
+ return null;
+ }
+
+ /**
+ * Returns the JAR name of the DB2Jar object or null.
+ * @param jar
+ * @param quoteIdentifiers
+ * @param qualifyNames
+ * @return
+ */
+ protected String getName(DB2Jar jar, boolean quoteIdentifiers, boolean qualifyNames) {
+ String jarschema = null;
+ String jarname = null;
+ if (jar != null) {
+ if (jar.getSchema() != null) {
+ jarschema = jar.getSchema().getName();
+ }
+ jarname = jar.getName();
+ }
+ StringBuffer jaridbuf = new StringBuffer(50);
+ if (jarname != null && jarname.length() > 0) {
+ if(quoteIdentifiers) {
+ jarname = this.getDoubleQuotedString(jarname);
+ }
+ jaridbuf.append(jarname);
+ }
+ if (jarschema != null && jarschema.length() > 0) {
+ if(quoteIdentifiers) {
+ jarschema = this.getDoubleQuotedString(jarschema);
+ }
+ jaridbuf.insert(0, '.');
+ jaridbuf.insert(0, jarschema);
+ }
+ if (jaridbuf.length() == 0) {
+ return null;
+ }
+ else {
+ return jaridbuf.toString();
+ }
+ }
+
+ protected String getExternalNameOption(Routine routine,boolean quoteIdentifiers, boolean qualifyNames) {
+ String option = NEWLINE + TAB + EXTERNAL;
+ String externalName = routine.getExternalName();
+ if(externalName != null && externalName.length() != 0) {
+ String schemaName = routine.getSchema().getName();
+
+ if (routine.getLanguage().equalsIgnoreCase("JAVA")){ //$NON-NLS-1$
+ //RATLC00399525 Sev 2 CUST:FORUM:Generate DDL shows incorrect External Name for z/OS Java stored procedure
+ //The External Name that was constructed by the DDL generator based on the value of
+ //the externalName field of the routine object. The externalName was set during catalog load based on
+ //the EXTERNAL_NAME column of SYSIBM.SYSROUTINES. The jar name is not part of the externalName.
+ //The fix here is to add the jar name to the external name clause when constructing the clause for
+ //zSeries Java procedures. This is not needed for LUW or iSeries Java procedures because their
+ //externalName field has been loaded with the jar name.
+ String jarid = getJarID(routine, quoteIdentifiers, qualifyNames);
+ if (jarid != null) {
+ externalName = jarid + ":" + externalName;
+ }
+ externalName = this.getSingleQuotedString(externalName);
+ } else {
+ if(quoteIdentifiers) {
+ externalName = this.getDoubleQuotedString(externalName);
+// schemaName = this.getDoubleQuotedString(schemaName);
+// }
+// if(qualifyNames) {
+// externalName = schemaName + DOT + externalName;
+ }
+ }
+
+ option += " NAME " + externalName; //$NON-NLS-1$
+ }
+ return option;
+ }
+ protected String getDataAccessOption(Routine routine) {
+ DataAccess dataAccess = routine.getSqlDataAccess();
+ if(dataAccess == DataAccess.CONTAINS_SQL_LITERAL) {
+ return NEWLINE + TAB + "CONTAINS SQL"; //$NON-NLS-1$
+ }
+ else if(dataAccess == DataAccess.MODIFIES_SQL_DATA_LITERAL) {
+ return NEWLINE + TAB + "MODIFIES SQL DATA"; //$NON-NLS-1$
+ }
+ else if(dataAccess == DataAccess.NO_SQL_LITERAL) {
+ return NEWLINE + TAB + "NO SQL"; //$NON-NLS-1$
+ }
+ else if(dataAccess == DataAccess.READS_SQL_DATA_LITERAL) {
+ return NEWLINE + TAB + "READS SQL DATA"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getSecurityOption(Routine routine) {
+ String security = routine.getSecurity();
+ if(security != null && security.length() != 0) {
+ return NEWLINE + TAB + "SECURITY " + security; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getDBInfoOption(DB2Routine routine) {
+ if(routine.isDbInfo()) {
+ return NEWLINE + TAB + "DBINFO"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getParameterCcsidOption(DB2Routine routine) {
+ String ccsid = routine.getParmCcsid();
+ if(ccsid != null && ccsid.length() != 0) {
+ return NEWLINE + TAB + "PARAMETER CCSID " + ccsid; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getProgramTypeOption(DB2Routine routine) {
+ String programType = routine.getProgramType();
+ if(programType != null && programType.length() != 0) {
+ return NEWLINE + TAB + "PROGRAM TYPE " + programType; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getFederatedOption(DB2Routine routine) {
+ if(routine.isFederated()) {
+ return NEWLINE + TAB + "FEDERATED"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getFencedOption(DB2Routine routine) {
+ String fenced = routine.getFenced();
+ if (fenced == null) fenced = "FENCED"; //$NON-NLS-1$
+ if(fenced.equalsIgnoreCase("FENCED")) { //$NON-NLS-1$
+ String threadsafe = routine.getThreadsafe();
+ if (threadsafe == null) threadsafe ="THREADSAFE"; //$NON-NLS-1$
+ fenced += SPACE + threadsafe;
+ }
+ return NEWLINE + TAB + fenced;
+ }
+ protected String getNullCallOption(Function function) {
+ if(function.isNullCall()) {
+ return NEWLINE + TAB + "CALLED ON NULL INPUT"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getTransformGroupOption(Function function) {
+ String transform = function.getTransformGroup();
+ if(transform != null && transform.length() != 0) {
+ return NEWLINE + TAB + "TRANSFORM GROUP " + transform; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getDynamicResultSetsOption(Procedure procedure) {
+ int rs = procedure.getMaxResultSets();
+ if(rs > 0) {
+ return NEWLINE + TAB + "DYNAMIC RESULT SETS " + rs; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getExternalActionOption(DB2Function function) {
+ if(!function.isExternalAction()) {
+ return NEWLINE + TAB + "NO EXTERNAL ACTION"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getCardinalityOption(DB2Function function) {
+ int c = function.getCardinality();
+ if(c > 0) {
+ return NEWLINE + TAB + "CARDINALITY " + c; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getParallelOption(DB2Function function) {
+ if(function.isAllowParallel()) {
+ return NEWLINE + TAB + "ALLOW PARALLEL"; //$NON-NLS-1$
+ }
+ else {
+ return NEWLINE + TAB + "DISALLOW PARALLEL"; //$NON-NLS-1$
+ }
+ }
+ protected String getFinalCallOption(DB2Function function) {
+ if(function.isFinalCall()) {
+ return NEWLINE + TAB + "FINAL CALL"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getScratchPadCallOption(DB2Function function) {
+ int scratch = function.getScratchPadLength();
+ if(scratch > 0) {
+ return NEWLINE + TAB + "SCRATCHPAD " + scratch; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+ protected String getPredicatesOption(DB2Function function) {
+ String predicates = function.getPredicate();
+ if(predicates != null && predicates.length() != 0) {
+ return NEWLINE + TAB + "PREDICATES " + LEFT_PARENTHESIS + predicates + RIGHT_PARENTHESIS; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+
+ public String getEnforcedOption(Constraint constraint) {
+ if (!constraint.isEnforced()) {
+ return NEWLINE + TAB + "NOT ENFORCED"; //$NON-NLS-1$
+ }
+ return EMPTY_STRING;
+ }
+
+ //this is for PB generate routine body according to the signature.
+ public String createRoutineStatement(DB2Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ Database database = procedure.getSchema().getDatabase();
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildCreateRoutineStatement(procedure,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+
+ String text = CREATE + SPACE + PROCEDURE + SPACE + getName(procedure, quoteIdentifiers, qualifyNames)
+ + SPACE + LEFT_PARENTHESIS + getParameters(procedure,qualifyNames) + RIGHT_PARENTHESIS;
+
+ text += getSpecificOption(procedure,quoteIdentifiers,qualifyNames);
+ text += getDataAccessOption(procedure);
+ text += getDeterministicOption(procedure);
+ text += getDynamicResultSetsOption(procedure);
+ text += getFederatedOption(procedure);
+
+ String language = procedure.getLanguage();
+ if (language == null) language = "SQL"; //$NON-NLS-1$
+ if(language.equalsIgnoreCase("SQL")) { //$NON-NLS-1$
+ text += TAB + "LANGUAGE " + language + NEWLINE; //$NON-NLS-1$
+ text += procedure.getSource().getBody();
+ }
+ else {
+ text += NEWLINE + TAB + "LANGUAGE " + language; //$NON-NLS-1$
+ text += getFencedOption(procedure);
+ text += getParameterStyleOption(procedure);
+ text += getProgramTypeOption(procedure);
+ text += getDBInfoOption(procedure);
+ text += getExternalNameOption(procedure,quoteIdentifiers,qualifyNames);
+ }
+ return text;
+ }
+
+ //this is for PB generate routine body according to the signature.
+ public String createRoutineStatement(DB2UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ Database database = function.getSchema().getDatabase();
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildCreateRoutineStatement(function,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+
+ String text = CREATE + SPACE + FUNCTION + SPACE + getName(function, quoteIdentifiers, qualifyNames)
+ + SPACE + LEFT_PARENTHESIS + getParameters(function,qualifyNames) + RIGHT_PARENTHESIS + NEWLINE
+ + TAB + getFunctionReturnsClause(function,qualifyNames);
+
+ text += getSpecificOption(function,quoteIdentifiers,qualifyNames);
+ text += getDeterministicOption(function);
+ text += getDataAccessOption(function);
+ text += getExternalActionOption(function);
+ text += getNullCallOption(function);
+ text += getParallelOption(function);
+ text += getFederatedOption(function);
+
+ String language = function.getLanguage();
+ if (language == null) language = "SQL"; //$NON-NLS-1$
+ if(language.equalsIgnoreCase("SQL")) { //$NON-NLS-1$
+ text += function.getSource().getBody();
+ }
+ else {
+ text += NEWLINE + TAB + "LANGUAGE " + language; //$NON-NLS-1$
+ text += getCardinalityOption(function);
+ text += getDBInfoOption(function);
+ text += getExternalNameOption(function,quoteIdentifiers,qualifyNames);
+ text += getFencedOption(function);
+ text += getFinalCallOption(function);
+ text += getParameterStyleOption(function);
+ text += getParameterCcsidOption(function);
+ text += getPredicatesOption(function);
+ text += getScratchPadCallOption(function);
+ text += getSecurityOption(function);
+ }
+ return text;
+ }
+
+ protected String getTriggerReferenceNewTable(){
+ return NEW_TABLE;
+ }
+
+ protected String getTriggerReferenceOldTable(){
+ return OLD_TABLE;
+ }
+
+ protected String getDataCapture(DB2Table table) {
+ DataCaptureType validProc = table.getDataCapture();
+ if (validProc == DataCaptureType.NONE_LITERAL) {
+ return NEWLINE + TAB + "DATA CAPTURE NONE ";
+ } else {
+ return NEWLINE + TAB + "DATA CAPTURE CHANGES ";
+ }
+ }
+
+ protected String getGrantUseOfStatement(Privilege privilege, boolean quoteIdentifiers, boolean qualifyNames) {
+ String ret = NEWLINE + GRANT + SPACE + privilege.getAction() + SPACE + OF + SPACE
+ + getPrivilegedObjectTypeString(privilege) + SPACE
+ + getPrivilegedObjectName(privilege, quoteIdentifiers, qualifyNames)
+ + SPACE + TO + SPACE + getGranteeSubstring(privilege.getGrantee(), quoteIdentifiers);
+ if (privilege.isGrantable()) ret += SPACE + WITH + SPACE + GRANT + SPACE + OPTION;
+ return ret;
+ }
+
+ protected String getRevokeUseOfStatement(Privilege privilege, boolean quoteIdentifiers, boolean qualifyNames) {
+ String ret = NEWLINE + REVOKE + SPACE + privilege.getAction() + SPACE + OF + SPACE
+ + getPrivilegedObjectTypeString(privilege) + SPACE
+ + getPrivilegedObjectName(privilege, quoteIdentifiers, qualifyNames)
+ + SPACE + FROM + SPACE + getGranteeSubstring(privilege.getGrantee(), quoteIdentifiers);
+ return ret;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlMessages.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlMessages.java
new file mode 100644
index 0000000..cf7fe78
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlMessages.java
@@ -0,0 +1,31 @@
+/*
+ *+------------------------------------------------------------------------+
+ *| Licensed Materials - Property of IBM |
+ *| (C) Copyright IBM Corp. 2003, 2005. All Rights Reserved. |
+ *| |
+ *| US Government Users Restricted Rights - Use, duplication or disclosure |
+ *| restricted by GSA ADP Schedule Contract with IBM Corp. |
+ *+------------------------------------------------------------------------+
+ */
+package org.eclipse.datatools.enablement.ibm.db2.ddl;
+
+import org.eclipse.osgi.util.NLS;
+
+public final class DB2DdlMessages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.datatools.enablement.ibm.db2.ddl.DB2DdlMessages";//$NON-NLS-1$
+
+ private DB2DdlMessages() {
+ }
+
+ public static String FE_ALIAS_TABLE_NOT_EXIST;
+ public static String FE_DISTINCT_TYPE_HAS_NO_SOURCE_TYPE;
+ public static String FE_VIEW_HAS_NO_BODY;
+ public static String FE_ROUTINE_SOURCE_EMPTY;
+ public static String FE_PARENT_TABLLE_OR_KEY_DO_NOT_EXIST;
+ public static String FE_TRIGGER_ACTION_EMPTY;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, DB2DdlMessages.class);
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlMessages.properties b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlMessages.properties
new file mode 100644
index 0000000..a380046
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlMessages.properties
@@ -0,0 +1,18 @@
+# NLS_MESSAGEFORMAT_VAR needed to handle quotes correctly
+# NLS_ENCODING=UNICODE
+#
+# Licensed Materials - Property of IBM
+# (C) Copyright IBM Corporation 2005. All Rights Reserved.
+#
+# Note to U.S. Government Users Restricted Rights:
+# Use, duplication or disclosure restricted
+# by GSA ADP Schedule Contract with IBM Corp.
+#
+
+#FE
+FE_ALIAS_TABLE_NOT_EXIST = The referenced table by alias {0} does not exist
+FE_DISTINCT_TYPE_HAS_NO_SOURCE_TYPE = The user-defined type {0} has no source type
+FE_VIEW_HAS_NO_BODY = The view {0} has no SELECT statement
+FE_ROUTINE_SOURCE_EMPTY = The routine {0} body is empty
+FE_PARENT_TABLLE_OR_KEY_DO_NOT_EXIST = The parent table/key referenced by foreign key {0} does not exist
+FE_TRIGGER_ACTION_EMPTY = The trigger {0} action is empty
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlParser.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlParser.java
new file mode 100644
index 0000000..44946be
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DdlParser.java
@@ -0,0 +1,215 @@
+/*
+ *+------------------------------------------------------------------------+
+ *| Licensed Materials - Property of IBM |
+ *| (C) Copyright IBM Corp. 2003, 2012. All Rights Reserved. |
+ *| |
+ *| US Government Users Restricted Rights - Use, duplication or disclosure |
+ *| restricted by GSA ADP Schedule Contract with IBM Corp. |
+ *+------------------------------------------------------------------------+
+ */
+package org.eclipse.datatools.enablement.ibm.db2.ddl;
+
+import java.util.Iterator;
+import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlParser;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpressionDefault;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchConditionDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementDefault;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.util.EList;
+
+public abstract class DB2DdlParser implements DdlParser{
+
+ public DB2DdlParser(DatabaseDefinition def){
+ this.def = def;
+ }
+
+ public void parseView (ViewTable view,String viewText){
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+
+ String[] tokens = viewText.split("[)\\s][aA][sS][\\s(]",Pattern.CASE_INSENSITIVE);
+ String body = viewText.substring(tokens[0].length()).trim();
+ body = body.replaceAll("^[)]?[aA][sS]", "");
+
+ Pattern pattern = Pattern.compile("(.*SELECT.*)[\\s]+?WITH[\\s]+?.*CHECK[\\s]+?OPTION.*",Pattern.CASE_INSENSITIVE|Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher = pattern.matcher(body);
+ if (matcher.matches()) {
+ body = matcher.group(1).trim();
+ }
+
+ body = body.trim();
+ if (body.startsWith("(") ) {
+ int pos = this.findMatchParenths(body);
+ if (pos == body.length()-1 ) {
+ body = body.substring(1, body.length() -1);
+ }
+ }
+ QueryExpression queryExpression = (QueryExpression) factory.create(SQLExpressionsPackage.eINSTANCE.getQueryExpressionDefault());
+ ((QueryExpressionDefault)queryExpression).setSQL(body);
+ view.setQueryExpression(queryExpression);
+ }
+
+ public void parseTrigger (Trigger trigger,String triggerText){
+ DataModelElementFactory factory = this.def.getDataModelElementFactory();
+
+ String body = triggerText;
+ String whenClause=""; //$NON-NLS-1$
+ Pattern pattern = java.util.regex.Pattern.compile("[\\s]*CREATE[\\s]+?TRIGGER(.*)ON(.*)[\\s]+?MODE[\\s]+?DB2SQL(.*)",java.util.regex.Pattern.CASE_INSENSITIVE|java.util.regex.Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher = pattern.matcher(triggerText);
+ if (matcher.matches()) {
+ this.parseUpdateColumns(matcher.group(1).trim(),trigger);
+ this.parseReferencingCluase(matcher.group(2).trim(),trigger);
+ body = matcher.group(3).trim();
+ int whenPos = this.parseWhenClause(body);
+ if (whenPos >= 0) {
+ whenClause = body.substring(body.indexOf("(")+1,whenPos); //$NON-NLS-1$
+ body = body.substring(whenPos+1).trim();
+ }
+ }
+
+ SearchCondition searchCondition = (SearchCondition) factory.create(SQLExpressionsPackage.eINSTANCE.getSearchConditionDefault());
+ trigger.setWhen(searchCondition);
+ ((SearchConditionDefault)searchCondition).setSQL(whenClause);
+
+
+ SQLStatement sqlbody = (SQLStatement) factory.create(SQLStatementsPackage.eINSTANCE.getSQLStatementDefault());
+ ((SQLStatementDefault)sqlbody).setSQL(body);
+ trigger.getActionStatement().clear();
+ trigger.getActionStatement().add(sqlbody);
+
+ }
+
+ protected int parseWhenClause(String body) {
+ int pos = -1;
+ Pattern pattern = Pattern.compile("[\\s]*WHEN[\\s]*?\\u0028(.*)",Pattern.CASE_INSENSITIVE|Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher = pattern.matcher(body);
+ if (matcher.matches()) {
+ String whenClause =matcher.group(1);
+ int matches = 0;
+ for (int i = 0; i < body.length(); i++) {
+ if (body.charAt(i)=='(') {
+ matches++;
+ } else if (body.charAt(i) ==')') {
+ matches--;
+ if (matches == 0) {
+ pos = i;
+ break;
+ }
+ }
+ }
+ }
+ return pos;
+ }
+
+ protected void parseUpdateColumns(String body,Trigger trigger) {
+ Pattern pattern = Pattern.compile(".*[\\s]+?UPDATE[\\s]+?OF(.*)",Pattern.CASE_INSENSITIVE|Pattern.DOTALL); //$NON-NLS-1$
+ Matcher matcher = pattern.matcher(body);
+ if (matcher.matches()) {
+ EList columns = trigger.getTriggerColumn();
+ StringTokenizer tokenizer = new StringTokenizer(matcher.group(1), ","); //$NON-NLS-1$
+ String token = ""; //$NON-NLS-1$
+ while (tokenizer.hasMoreTokens()) {
+ token = tokenizer.nextToken().trim().replaceAll("\"", "");
+ Column column = this.getColumn(trigger.getSubjectTable(), token);
+ if (column != null) columns.add(column);
+ }
+ }
+ }
+
+ protected void parseReferencingCluase(String body,Trigger trigger) {
+ final byte OLD = 1;
+ final byte NEW = 2;
+ final byte OLD_TABLE = 3;
+ final byte NEW_TABLE = 4;
+
+ StringTokenizer tokenizer = new StringTokenizer(body, " \r\n\t"); //$NON-NLS-1$
+ byte previousToken = 0;
+ boolean expectingNameOrASToken = false;
+ while (tokenizer.hasMoreTokens()) {
+ String token = tokenizer.nextToken().trim();
+ if (token.equalsIgnoreCase("OLD") && previousToken != OLD && !expectingNameOrASToken){ //$NON-NLS-1$
+ previousToken = OLD;
+ expectingNameOrASToken = true;
+ } else if (token.equalsIgnoreCase("NEW") && previousToken != NEW && !expectingNameOrASToken){ //$NON-NLS-1$
+ previousToken = NEW;
+ expectingNameOrASToken = true;
+ } else if (token.equalsIgnoreCase("OLD_TABLE") && previousToken != OLD_TABLE
+ && !expectingNameOrASToken) { //$NON-NLS-1$
+ previousToken = OLD_TABLE;
+ expectingNameOrASToken = true;
+ } else if (token.equalsIgnoreCase("NEW_TABLE") && previousToken != NEW_TABLE
+ && !expectingNameOrASToken) { //$NON-NLS-1$
+ previousToken = NEW_TABLE;
+ expectingNameOrASToken = true;
+ } else if (token.equalsIgnoreCase("AS")){ //$NON-NLS-1$
+ expectingNameOrASToken = true;
+ } else {
+ switch (previousToken){
+ case OLD:
+ trigger.setOldRow(token);
+ previousToken = 0;
+ break;
+ case NEW:
+ trigger.setNewRow(token);
+ previousToken = 0;
+ break;
+ case OLD_TABLE:
+ trigger.setOldTable(token);
+ previousToken = 0;
+ break;
+ case NEW_TABLE:
+ trigger.setNewTable(token);
+ previousToken = 0;
+ break;
+ }
+ expectingNameOrASToken = false;
+ }
+
+ }
+ }
+ private Column getColumn(Table table, String columnName){
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ if(c.getName().equalsIgnoreCase(columnName)) return c;
+ }
+ return null;
+ }
+
+ private int findMatchParenths(String body){
+ int pos = -1;
+ int matches = 1;
+ for (int i = 1; i < body.length(); i++) {
+ if (body.charAt(i)=='(') {
+ matches++;
+ } else if (body.charAt(i) ==')') {
+ matches--;
+ if (matches == 0) {
+ pos = i;
+ break;
+ }
+ }
+ }
+
+ return pos;
+
+ }
+
+ abstract public DB2MaterializedQueryTable parseMQT(String mqtText);
+
+ protected DatabaseDefinition def = null;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DeltaDdlGenerator.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DeltaDdlGenerator.java
new file mode 100644
index 0000000..da63f7d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/ddl/DB2DeltaDdlGenerator.java
@@ -0,0 +1,103 @@
+package org.eclipse.datatools.enablement.ibm.db2.ddl;
+
+import java.math.BigInteger;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.ddl.CoreDeltaDdlGenerator;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.change.FeatureChange;
+
+public abstract class DB2DeltaDdlGenerator extends CoreDeltaDdlGenerator {
+
+ protected DB2DataPreservationDdlBuilder dPDdlBuilder = null;
+
+ protected DB2DataPreservationDdlBuilder getDPDdlBuilder() {
+ if (dPDdlBuilder == null) initDPDdlBuilder();
+ return dPDdlBuilder;
+ }
+
+ protected abstract void initDPDdlBuilder();
+
+ protected boolean canAlter(PredefinedDataType type) {
+ String t2 = type.getName();
+ String t1 = (String) getOldValue(EcorePackage.eINSTANCE.getENamedElement_Name(), type);
+ int l2 = 0;
+ int s2 = 0;
+ int l1 = 0;
+ int s1 = 0;
+ EStructuralFeature f = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ if(f != null) {
+ l2 = ((Integer) type.eGet(f)).intValue();
+ l1 = ((Integer) getOldValue(f, type)).intValue();
+ }
+ f = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ if(f != null) {
+ l2 = ((Integer) type.eGet(f)).intValue();
+ l1 = ((Integer) getOldValue(f, type)).intValue();
+ }
+ f = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ if(f != null) {
+ s2 = ((Integer) type.eGet(f)).intValue();
+ s1 = ((Integer) getOldValue(f, type)).intValue();
+ }
+
+ return canAlter(t1, t2, l1, l2, s1, s2);
+ }
+
+ protected boolean canAlter(PredefinedDataType type1, PredefinedDataType type2) {
+ String t1 = type1.getName();
+ int l1 = 0;
+ int s1 = 0;
+ EStructuralFeature f = type1.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ if(f != null) {
+ l1 = ((Integer) type1.eGet(f)).intValue();
+ }
+ f = type1.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ if(f != null) {
+ l1 = ((Integer) type1.eGet(f)).intValue();
+ }
+ f = type1.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ if(f != null) {
+ s1 = ((Integer) type1.eGet(f)).intValue();
+ }
+
+ String t2 = type2.getName();
+ int l2 = 0;
+ int s2 = 0;
+ f = type2.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ if(f != null) {
+ l2 = ((Integer) type2.eGet(f)).intValue();
+ }
+ f = type2.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ if(f != null) {
+ l2 = ((Integer) type2.eGet(f)).intValue();
+ }
+ f = type2.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ if(f != null) {
+ s2 = ((Integer) type2.eGet(f)).intValue();
+ }
+
+ return canAlter(t1, t2, l1, l2, s1, s2);
+ }
+
+ protected boolean canAlter(Sequence changed, EStructuralFeature feature, FeatureChange setting) {
+ Object changedObj = changed.eGet(feature);
+ if(changedObj instanceof DB2IdentitySpecifier) {
+ DB2IdentitySpecifier is = (DB2IdentitySpecifier)changedObj;
+ EStructuralFeature f = is.eClass().getEStructuralFeature(SQLSchemaPackage.eINSTANCE.IDENTITY_SPECIFIER__START_VALUE);
+ BigInteger startValue = (BigInteger)is.eGet(f);
+ DB2IdentitySpecifier changeToValue = (DB2IdentitySpecifier)setting.getValue();
+ BigInteger changedToStartValue = (BigInteger)changeToValue.eGet(f);
+ if(startValue.intValue() != changedToStartValue.intValue()) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ abstract protected boolean canAlter(String type1, String type2, int length1, int length2, int scale1, int scale2);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2AccessPlan.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2AccessPlan.java
new file mode 100644
index 0000000..a5630eb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2AccessPlan.java
@@ -0,0 +1,23 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Access Plan</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2AccessPlan()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface DB2AccessPlan extends SQLObject {
+} // DB2AccessPlan
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Alias.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Alias.java
new file mode 100644
index 0000000..f090a1d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Alias.java
@@ -0,0 +1,88 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Alias</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Aliases (Chapter 1. Concepts 9)
+ *
+ * An alias is an alternate name for a table or view. An alias can be used to reference a table or view in cases where an existing table or view can be referenced. However, the option of referencing a table or view by an alias is not explicitly shown in the syntax diagrams or mentioned in the description of SQL statements.
+ *
+ * Like tables and views, an alias may be created, dropped, and have a comment associated with it. No authority is necessary to use an alias. Access to the tables and views that are referred to by the alias, however, still requires the appropriate authorization for the current statement.
+ *
+ * An alias is created with the CREATE ALIAS statement. For more information about creating aliases, see " CREATE ALIAS" on page 318.
+ *
+ * CREATE ALIAS
+ * The CREATE ALIAS statement defines an alias for a table or view.
+ *
+ * Invocation: This statement can be embedded in an application program or issued interactively. It is an executable statement that can be dynamically prepared.
+ *
+ * Authorization: The privileges held by the authorization ID of the statement must include at least one of the following:
+ * - The privilege to create in the schema
+ * - Administrative authority.
+ * Syntax: CREATE ALIAS alias-name FOR table-name view-name
+ *
+ * Description alias-name
+ * Names the alias. The name, including the implicit or explicit qualifier, must not be the same as an index, table, view or alias that already exists at the current server. If the alias-name is qualified, the schema name must not be a system schema.
+ *
+ * FOR table-name or view-name
+ * Identifies the table or view at the current server for which alias-name is defined. An alias name must not be specified (an alias cannot refer to another alias). An alias can be defined for an object that does not exist at the time of the definition. If it does not exist when the alias is created, a warning is returned. However, the referenced object must exist when a SQL statement containing the alias is used, otherwise an error is returned.
+ *
+ * Example: Create an alias named CURRENT_PROJECTS for the PROJECT table.
+ * CREATE ALIAS CURRENT_PROJECTS FOR PROJECT
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias#getAliasedTable <em>Aliased Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Alias()
+ * @model
+ * @generated
+ */
+public interface DB2Alias extends Table {
+ /**
+ * Returns the value of the '<em><b>Aliased Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Aliased Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Aliased Table</em>' reference.
+ * @see #setAliasedTable(Table)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Alias_AliasedTable()
+ * @model required="true"
+ * @generated
+ */
+ Table getAliasedTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias#getAliasedTable <em>Aliased Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Aliased Table</em>' reference.
+ * @see #getAliasedTable()
+ * @generated
+ */
+ void setAliasedTable(Table value);
+
+} // DB2Alias
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ApplicationProcess.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ApplicationProcess.java
new file mode 100644
index 0000000..7b9c5bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ApplicationProcess.java
@@ -0,0 +1,94 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Application Process</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Application processes, concurrency, and recovery
+ *
+ * All SQL programs execute as part of an application process. An application process involves the execution of one or more programs, and is the unit to which the database manager allocates resources and locks. Different application processes may involve the execution of different programs, or different executions of the same program. The means of starting and ending an application process are dependent on the environment.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getIsolationLevel <em>Isolation Level</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getUnitOfWork <em>Unit Of Work</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ApplicationProcess()
+ * @model
+ * @generated
+ */
+public interface DB2ApplicationProcess extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Isolation Level</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Isolation Level</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Isolation Level</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType
+ * @see #setIsolationLevel(IsolationLevelType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ApplicationProcess_IsolationLevel()
+ * @model
+ * @generated
+ */
+ IsolationLevelType getIsolationLevel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getIsolationLevel <em>Isolation Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Isolation Level</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType
+ * @see #getIsolationLevel()
+ * @generated
+ */
+ void setIsolationLevel(IsolationLevelType value);
+
+ /**
+ * Returns the value of the '<em><b>Unit Of Work</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unit Of Work</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unit Of Work</em>' containment reference.
+ * @see #setUnitOfWork(DB2Transaction)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ApplicationProcess_UnitOfWork()
+ * @model containment="true"
+ * @generated
+ */
+ DB2Transaction getUnitOfWork();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getUnitOfWork <em>Unit Of Work</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unit Of Work</em>' containment reference.
+ * @see #getUnitOfWork()
+ * @generated
+ */
+ void setUnitOfWork(DB2Transaction value);
+
+} // DB2ApplicationProcess
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Cluster.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Cluster.java
new file mode 100644
index 0000000..2051355
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Cluster.java
@@ -0,0 +1,99 @@
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Cluster</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getLevel <em>Level</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getInstance <em>Instance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getMembers <em>Members</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Cluster()
+ * @model
+ * @generated
+ */
+public interface DB2Cluster extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Level</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Level</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Level</em>' attribute.
+ * @see #setLevel(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Cluster_Level()
+ * @model
+ * @generated
+ */
+ String getLevel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getLevel <em>Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Level</em>' attribute.
+ * @see #getLevel()
+ * @generated
+ */
+ void setLevel(String value);
+
+ /**
+ * Returns the value of the '<em><b>Instance</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getCluster <em>Cluster</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Instance</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Instance</em>' reference.
+ * @see #setInstance(DB2DatabaseManager)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Cluster_Instance()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getCluster
+ * @model opposite="cluster" required="true"
+ * @generated
+ */
+ DB2DatabaseManager getInstance();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getInstance <em>Instance</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Instance</em>' reference.
+ * @see #getInstance()
+ * @generated
+ */
+ void setInstance(DB2DatabaseManager value);
+
+ /**
+ * Returns the value of the '<em><b>Members</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCluster <em>Cluster</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Members</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Members</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Cluster_Members()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCluster
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Member" opposite="cluster"
+ * @generated
+ */
+ EList getMembers();
+
+} // DB2Cluster
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Column.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Column.java
new file mode 100644
index 0000000..cca00e9
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Column.java
@@ -0,0 +1,233 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2Column.java,v 1.6 2008/04/28 20:54:22 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Column</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getGenerationType <em>Generation Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowChangeTimestamp <em>Row Change Timestamp</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowBegin <em>Row Begin</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowEnd <em>Row End</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isTransStartID <em>Trans Start ID</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getBeginPeriod <em>Begin Period</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getEndPeriod <em>End Period</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column()
+ * @model
+ * @generated
+ */
+public interface DB2Column extends Column {
+ /**
+ * Returns the value of the '<em><b>Generation Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.GenerateType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Generation Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Generation Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.GenerateType
+ * @see #setGenerationType(GenerateType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column_GenerationType()
+ * @model
+ * @generated
+ */
+ GenerateType getGenerationType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getGenerationType <em>Generation Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Generation Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.GenerateType
+ * @see #getGenerationType()
+ * @generated
+ */
+ void setGenerationType(GenerateType value);
+
+ /**
+ * Returns the value of the '<em><b>Row Change Timestamp</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Row Change Timestamp</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Row Change Timestamp</em>' attribute.
+ * @see #setRowChangeTimestamp(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column_RowChangeTimestamp()
+ * @model
+ * @generated
+ */
+ boolean isRowChangeTimestamp();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowChangeTimestamp <em>Row Change Timestamp</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Row Change Timestamp</em>' attribute.
+ * @see #isRowChangeTimestamp()
+ * @generated
+ */
+ void setRowChangeTimestamp(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Row Begin</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Row Begin</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Row Begin</em>' attribute.
+ * @see #setRowBegin(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column_RowBegin()
+ * @model default="False"
+ * @generated
+ */
+ boolean isRowBegin();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowBegin <em>Row Begin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Row Begin</em>' attribute.
+ * @see #isRowBegin()
+ * @generated
+ */
+ void setRowBegin(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Row End</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Row End</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Row End</em>' attribute.
+ * @see #setRowEnd(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column_RowEnd()
+ * @model default="False"
+ * @generated
+ */
+ boolean isRowEnd();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowEnd <em>Row End</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Row End</em>' attribute.
+ * @see #isRowEnd()
+ * @generated
+ */
+ void setRowEnd(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Trans Start ID</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Trans Start ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Trans Start ID</em>' attribute.
+ * @see #setTransStartID(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column_TransStartID()
+ * @model default="False"
+ * @generated
+ */
+ boolean isTransStartID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isTransStartID <em>Trans Start ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Trans Start ID</em>' attribute.
+ * @see #isTransStartID()
+ * @generated
+ */
+ void setTransStartID(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Begin Period</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getBeginColumn <em>Begin Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Begin Period</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Begin Period</em>' reference.
+ * @see #setBeginPeriod(DB2Period)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column_BeginPeriod()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getBeginColumn
+ * @model opposite="beginColumn"
+ * @generated
+ */
+ DB2Period getBeginPeriod();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getBeginPeriod <em>Begin Period</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Begin Period</em>' reference.
+ * @see #getBeginPeriod()
+ * @generated
+ */
+ void setBeginPeriod(DB2Period value);
+
+ /**
+ * Returns the value of the '<em><b>End Period</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getEndColumn <em>End Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>End Period</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>End Period</em>' reference.
+ * @see #setEndPeriod(DB2Period)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Column_EndPeriod()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getEndColumn
+ * @model opposite="endColumn"
+ * @generated
+ */
+ DB2Period getEndPeriod();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getEndPeriod <em>End Period</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>End Period</em>' reference.
+ * @see #getEndPeriod()
+ * @generated
+ */
+ void setEndPeriod(DB2Period value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ boolean isGenerated();
+
+} // DB2Column
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Database.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Database.java
new file mode 100644
index 0000000..b2a4198
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Database.java
@@ -0,0 +1,95 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Database</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Relational databases (Chapter 1. Concepts 1)
+ *
+ * A relational database is a database that can be perceived as a set of tables and can be manipulated in accordance with the relational model of data. The relational database contains a set of objects used to store, access, and manage data. The set of objects includes tables, views, indexes, aliases, distinct types, functions, procedures, and packages. Any number of relational databases can be created on a given physical machine.
+ *
+ * A partitioned relational database is a relational database whose data is managed across multiple partitions (also called nodes). This separation of data across partitions is transparent to users of most SQL statements. However, some data definition language (DDL) statements take partition information into consideration (for example, CREATE DATABASE PARTITION GROUP). (Data definition language is the subset of SQL statements used to describe data relationships in a database.)
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isPartitioned <em>Partitioned</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isDefaultOrganizeByRow <em>Default Organize By Row</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Database()
+ * @model
+ * @generated
+ */
+public interface DB2Database extends Database {
+ /**
+ * Returns the value of the '<em><b>Partitioned</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Partitioned</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Partitioned</em>' attribute.
+ * @see #setPartitioned(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Database_Partitioned()
+ * @model
+ * @generated
+ */
+ boolean isPartitioned();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isPartitioned <em>Partitioned</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Partitioned</em>' attribute.
+ * @see #isPartitioned()
+ * @generated
+ */
+ void setPartitioned(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Default Organize By Row</b></em>' attribute.
+ * The default value is <code>"True"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Organize By Row</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Organize By Row</em>' attribute.
+ * @see #setDefaultOrganizeByRow(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Database_DefaultOrganizeByRow()
+ * @model default="True"
+ * @generated
+ */
+ boolean isDefaultOrganizeByRow();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isDefaultOrganizeByRow <em>Default Organize By Row</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Organize By Row</em>' attribute.
+ * @see #isDefaultOrganizeByRow()
+ * @generated
+ */
+ void setDefaultOrganizeByRow(boolean value);
+
+} // DB2Database
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2DatabaseManager.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2DatabaseManager.java
new file mode 100644
index 0000000..92e935e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2DatabaseManager.java
@@ -0,0 +1,128 @@
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Database Manager</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * [...]
+ * SQL statements are executed by a database manager. One of the functions of the database manager is to transform the specification of a result table into a sequence of internal operations that optimize data retrieval.
+ *
+ * [...]
+ * The database manager maintains a set of tables and views containing information about objects in the database. These tables and views are collectively known as the catalog. The catalog tables and catalog views contain information about objects such as tables, views, indexes, packages, and constraints.
+ *
+ * [...]
+ * An application process involves the execution of one or more programs, and is the unit to which the database manager allocates resources and locks.
+ *
+ * [...]
+ * The locking facilities of the database managers are similar but not identical. One of the common properties is that each of the database managers can acquire locks in order to prevent uncommitted changes made by one application process from being perceived by any other. The database manager will release all locks it has acquired on behalf of an application process when that process ends, but an application process itself can also explicitly request that locks be released sooner.
+ *
+ * [...]
+ * Like the locking facilities, the recovery facilities of the database managers are similar but not identical. One common property is that each of the database managers provides a means of backing out uncommitted changes made by an application process.
+ *
+ * [...]
+ * The database manager can back out all changes made in a unit of work or only selected changes.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getDatabases <em>Databases</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getDb2Process <em>Db2 Process</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getServer <em>Server</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getCluster <em>Cluster</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2DatabaseManager()
+ * @model
+ * @generated
+ */
+public interface DB2DatabaseManager extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Databases</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Databases</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Databases</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2DatabaseManager_Databases()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Database"
+ * @generated
+ */
+ EList getDatabases();
+
+ /**
+ * Returns the value of the '<em><b>Db2 Process</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Db2 Process</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Db2 Process</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2DatabaseManager_Db2Process()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess"
+ * @generated
+ */
+ EList getDb2Process();
+
+ /**
+ * Returns the value of the '<em><b>Server</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWAdminServer}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWAdminServer#getInstances <em>Instances</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Server</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Server</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2DatabaseManager_Server()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWAdminServer#getInstances
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWAdminServer" opposite="instances"
+ * @generated
+ */
+ EList getServer();
+
+ /**
+ * Returns the value of the '<em><b>Cluster</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getInstance <em>Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cluster</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cluster</em>' reference.
+ * @see #setCluster(DB2Cluster)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2DatabaseManager_Cluster()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getInstance
+ * @model opposite="instance"
+ * @generated
+ */
+ DB2Cluster getCluster();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getCluster <em>Cluster</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cluster</em>' reference.
+ * @see #getCluster()
+ * @generated
+ */
+ void setCluster(DB2Cluster value);
+
+} // DB2DatabaseManager
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2DistinctUserDefinedType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2DistinctUserDefinedType.java
new file mode 100644
index 0000000..049721c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2DistinctUserDefinedType.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Distinct User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2DistinctUserDefinedType()
+ * @model abstract="true"
+ * @generated
+ */
+public interface DB2DistinctUserDefinedType extends DistinctUserDefinedType {
+} // DB2DistinctUserDefinedType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ExtendedOptions.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ExtendedOptions.java
new file mode 100644
index 0000000..56facab
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ExtendedOptions.java
@@ -0,0 +1,239 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Extended Options</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getClasspathCompileJars <em>Classpath Compile Jars</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getPreCompileOpts <em>Pre Compile Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isForDebug <em>For Debug</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isBuilt <em>Built</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getCompileOpts <em>Compile Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getLinkOpts <em>Link Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getBindOpts <em>Bind Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getColid <em>Colid</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions()
+ * @model
+ * @generated
+ */
+public interface DB2ExtendedOptions extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Classpath Compile Jars</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Java classpath required to compile each of the source files that are part of either the stored procedure or UDF.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Classpath Compile Jars</em>' attribute.
+ * @see #setClasspathCompileJars(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_ClasspathCompileJars()
+ * @model
+ * @generated
+ */
+ String getClasspathCompileJars();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getClasspathCompileJars <em>Classpath Compile Jars</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classpath Compile Jars</em>' attribute.
+ * @see #getClasspathCompileJars()
+ * @generated
+ */
+ void setClasspathCompileJars(String value);
+
+ /**
+ * Returns the value of the '<em><b>Pre Compile Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Specifies the precompile options to be used for the stored procedure. For SQLJ
+ * procedure we keep the db2profc options which also includes DB2 package name.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Pre Compile Opts</em>' attribute.
+ * @see #setPreCompileOpts(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_PreCompileOpts()
+ * @model
+ * @generated
+ */
+ String getPreCompileOpts();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getPreCompileOpts <em>Pre Compile Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pre Compile Opts</em>' attribute.
+ * @see #getPreCompileOpts()
+ * @generated
+ */
+ void setPreCompileOpts(String value);
+
+ /**
+ * Returns the value of the '<em><b>For Debug</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Indicates whether the routine is to be built for debug.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>For Debug</em>' attribute.
+ * @see #setForDebug(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_ForDebug()
+ * @model
+ * @generated
+ */
+ boolean isForDebug();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isForDebug <em>For Debug</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>For Debug</em>' attribute.
+ * @see #isForDebug()
+ * @generated
+ */
+ void setForDebug(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Built</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * False -> has yet to be successfully built by DC/subuilder/other app
+ * True -> has been built at least once successfully within DC/subuilder/other app.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Built</em>' attribute.
+ * @see #setBuilt(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_Built()
+ * @model
+ * @generated
+ */
+ boolean isBuilt();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isBuilt <em>Built</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Built</em>' attribute.
+ * @see #isBuilt()
+ * @generated
+ */
+ void setBuilt(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Compile Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Specifies the compile options to be used for the stored procedure.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Compile Opts</em>' attribute.
+ * @see #setCompileOpts(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_CompileOpts()
+ * @model
+ * @generated
+ */
+ String getCompileOpts();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getCompileOpts <em>Compile Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Compile Opts</em>' attribute.
+ * @see #getCompileOpts()
+ * @generated
+ */
+ void setCompileOpts(String value);
+
+ /**
+ * Returns the value of the '<em><b>Link Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Specifies the link options to be used for the stored procedure.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Link Opts</em>' attribute.
+ * @see #setLinkOpts(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_LinkOpts()
+ * @model
+ * @generated
+ */
+ String getLinkOpts();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getLinkOpts <em>Link Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Link Opts</em>' attribute.
+ * @see #getLinkOpts()
+ * @generated
+ */
+ void setLinkOpts(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bind Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Specifies the bind options to be used for the stored procedure.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Bind Opts</em>' attribute.
+ * @see #setBindOpts(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_BindOpts()
+ * @model
+ * @generated
+ */
+ String getBindOpts();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getBindOpts <em>Bind Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bind Opts</em>' attribute.
+ * @see #getBindOpts()
+ * @generated
+ */
+ void setBindOpts(String value);
+
+ /**
+ * Returns the value of the '<em><b>Colid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Column id previously a zSeries item, now also for LUW.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Colid</em>' attribute.
+ * @see #setColid(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ExtendedOptions_Colid()
+ * @model
+ * @generated
+ */
+ String getColid();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getColid <em>Colid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Colid</em>' attribute.
+ * @see #getColid()
+ * @generated
+ */
+ void setColid(String value);
+
+} // DB2ExtendedOptions
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Function.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Function.java
new file mode 100644
index 0000000..5aabcfb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Function.java
@@ -0,0 +1,573 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Functions (Chapter 1. Concepts 9)
+ *
+ * A function is a routine that can be invoked from within other SQL statements and returns a value, or a table. For more information, see "Functions" on page 93.
+ *
+ * Functions (Chapter 2. Language elements 93)
+ *
+ * A function is an operation denoted by a function name followed by zero or more operands that are enclosed in parentheses. It represents a relationship between a set of input values and a set of result values. The input values to a function are called arguments. For example, a function can be passed two input arguments that have date and time data types and return a value with a timestamp data type as the result.
+ *
+ * Types of functions:
+ * There are several ways to classify functions. One way to classify functions is as built-in, user-defined, or generated user-defined functions for distinct types.
+ * - Built-in functions are functions that come with the database manager. These functions provide a single-value result. Built-in functions include operator functions such as ??+??, column functions such as AVG, and scalar functions such as SUBSTR. For a list of the built-in column and scalar functions and information on these functions, see Chapter 3, "Built-in functions", on page 131. The built-in functions are in a product-specific schema.
+ * - User-defined functions are functions that are created using the CREATE FUNCTION statement and registered to the database manager in the catalog. For more information, see "CREATE FUNCTION" on page 325. These functions allow users to extend the function of the database manager by adding their own or third party vendor function definitions. A user-defined function is an SQL, external, or sourced function. An SQL function is defined to the database using only an SQL RETURN statement. An external function is defined to the database with a reference to an external program that is executed when the function is invoked. A sourced function is defined to the
+ * database with a reference to a built-in function or another user-defined function. Sourced functions can be used to extend built-in column and scalar functions for use on distinct types. A user-defined function resides in the schema in which it was created.
+ * - Generated user-defined functions for distinct types are functions that the database manager automatically generates when a distinct type is created using the CREATE DISTINCT TYPE statement. These functions support casting from the distinct type to the source type and from the source type to the distinct type. The ability to cast between the data types is important because a distinct type is compatible only with itself. The generated user-defined functions for distinct types reside in the same schema as the distinct type for which they were created. For more information about the functions that are generated for a distinct type, see "CREATE DISTINCT TYPE" on page 319.
+ *
+ * Another way to classify functions is as column, scalar, or table functions, depending on the input data values and result values.
+ * - A column function receives a set of values for each argument (such as the values of a column) and returns a single-value result for the set of input values. Column functions are sometimes called aggregating functions. Built-in functions and user-defined sourced functions can be column functions.
+ * - A scalar function receives a single value for each argument and returns a single-value result. Built-in functions and user-defined functions can be scalar functions. Generated user-defined functions for distinct types are also scalar functions.
+ * - A table function returns a table for the set of arguments it receives. Each argument is a single value. A table function can be referenced only in the FROM clause of a subselect. A table function can be defined as an external function, but a table function cannot be a sourced function. Table functions can be used to apply SQL language processing power to data that is not data that is not stored in the database or to allow access to such data
+ * as if it were stored in a result table. For example, a table function can take a file and convert it to a table, get data from the Web and tabularize it, or access a Lotus Notes database and return information about email messages.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isFinalCall <em>Final Call</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isScratchPad <em>Scratch Pad</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getScratchPadLength <em>Scratch Pad Length</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getFunctionType <em>Function Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getPredicate <em>Predicate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isExternalAction <em>External Action</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getCardinality <em>Cardinality</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isAllowParallel <em>Allow Parallel</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getReturnClause <em>Return Clause</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getOrigin <em>Origin</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInheritLockRequest <em>Inherit Lock Request</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getDialect <em>Dialect</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInline <em>Inline</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isSecured <em>Secured</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface DB2Function extends DB2Routine {
+ /**
+ * Pseudo-enumerated value for type. COLUMN_TYPE means
+ * the function returns a column.
+ * @see DB2Function#setType(String);
+ */
+ String COLUMN_TYPE = "C"; //$NON-NLS-1$
+
+ /**
+ * Pseudo-enumerated value for type. SCALAR_TYPE means
+ * the function returns a scalar.
+ * @see DB2Function#setType(String);
+ */
+ String SCALAR_TYPE = "S"; //$NON-NLS-1$
+
+ /**
+ * Pseudo-enumerated value for type. TABLE_TYPE means
+ * the function returns a table.
+ * @see DB2Function#setType(String);
+ */
+ String TABLE_TYPE = "T"; //$NON-NLS-1$
+
+ /**
+ * Pseudo-enumerated value for type. ROW_TYPE means
+ * the function returns a row.
+ * @see DB2Function#setType(String);
+ */
+ String ROW_TYPE = "R"; //$NON-NLS-1$
+
+ /**
+ * Returns the value of the '<em><b>Final Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This optional clause specifies whether a final call is to be made to an
+ * external function. The purpose of such a final call is to enable the external
+ * function to free any system resources it has acquired. It can be useful in
+ * conjunction with the SCRATCHPAD keyword in situations where the
+ * external function acquires system resources such as memory and anchors
+ * them in the scratchpad.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Final Call</em>' attribute.
+ * @see #setFinalCall(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_FinalCall()
+ * @model
+ * @generated
+ */
+ boolean isFinalCall();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isFinalCall <em>Final Call</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Final Call</em>' attribute.
+ * @see #isFinalCall()
+ * @generated
+ */
+ void setFinalCall(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Scratch Pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * <DL>
+ * <DT>SCRATCHPAD (True)
+ * <DD>Indicates whether the function requires a static memory area.
+ * <DT>NO SCRATCHPAD (False)
+ * <DD>Indicates that the function does not require a persistent memory area.
+ * </DL>
+ * <p>
+ * If True, then there can be an optional length (see scratchPadLength)
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Scratch Pad</em>' attribute.
+ * @see #setScratchPad(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_ScratchPad()
+ * @model
+ * @generated
+ */
+ boolean isScratchPad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isScratchPad <em>Scratch Pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Scratch Pad</em>' attribute.
+ * @see #isScratchPad()
+ * @generated
+ */
+ void setScratchPad(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Scratch Pad Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * If this is null or empty or a string value other than 1..32767, then
+ * NO SCRATCHPAD
+ * otherwise there will be
+ * SCRATCHPAD <length>
+ * where the default is 100, the same as if no length was specified.
+ *
+ * NO SCRATCHPAD or SCRATCHPAD length
+ * This optional clause may be used to specify whether a scratchpad is to be
+ * provided for an external function. (It is strongly recommended that
+ * user-defined functions be re-entrant, so a scratchpad provides a means for
+ * the function to "save state" from one call to the next.)
+ *
+ * SCRATCHPAD is not supported for PARAMETER STYLE JAVA functions.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Scratch Pad Length</em>' attribute.
+ * @see #setScratchPadLength(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_ScratchPadLength()
+ * @model
+ * @generated
+ */
+ int getScratchPadLength();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getScratchPadLength <em>Scratch Pad Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Scratch Pad Length</em>' attribute.
+ * @see #getScratchPadLength()
+ * @generated
+ */
+ void setScratchPadLength(int value);
+
+ /**
+ * Returns the value of the '<em><b>Function Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * Please refer to the defined constants at the beginning of this module for
+ * the values to use when passing in the argument.
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The valid values to indicate the function type are:
+ * C (Column)
+ * S (Scaler)
+ * T (Table)
+ * R (Row)
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Function Type</em>' attribute.
+ * @see #setFunctionType(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_FunctionType()
+ * @model
+ * @generated
+ */
+ String getFunctionType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getFunctionType <em>Function Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * Please refer to the defined constants at the beginning of this module for
+ * the values to use when passing in the argument.
+ * </p>
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Function Type</em>' attribute.
+ * @see #getFunctionType()
+ * @generated
+ */
+ void setFunctionType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Predicate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Defines the filtering and/or index extension exploitation performed when
+ * this function is used in a predicate. A predicate-specification allows the
+ * optional SELECTIVITY clause of a search-condition to be specified. If the
+ * PREDICATES clause is specified, the function must be defined as
+ * DETERMINISTIC with NO EXTERNAL ACTION (SQLSTATE 42613).
+ *
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Predicate</em>' attribute.
+ * @see #setPredicate(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_Predicate()
+ * @model
+ * @generated
+ */
+ String getPredicate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getPredicate <em>Predicate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Predicate</em>' attribute.
+ * @see #getPredicate()
+ * @generated
+ */
+ void setPredicate(String value);
+
+ /**
+ * Returns the value of the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This optional clause specifies whether or not the function takes some
+ * action that changes the state of an object not managed by the database
+ * manager. Optimizations that assume functions have no external impacts
+ * are prevented by specifying EXTERNAL ACTION. For example: sending a
+ * message, ringing a bell, or writing a record to a file.
+ *
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>External Action</em>' attribute.
+ * @see #setExternalAction(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_ExternalAction()
+ * @model
+ * @generated
+ */
+ boolean isExternalAction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isExternalAction <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>External Action</em>' attribute.
+ * @see #isExternalAction()
+ * @generated
+ */
+ void setExternalAction(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Cardinality</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From the UDB 7.1 documentation for CREATE FUNCTION (External Table):
+ *
+ * This optional clause provides an estimate of the expected number of rows
+ * to be returned by the function for optimization purposes. Valid values for
+ * integer range from 0 to 2,147,483,647 inclusive.
+ *
+ * If the CARDINALITY clause is not specified for a table function, DB2 will
+ * assume a finite value as a default- the same value assumed for tables for
+ * which the RUNSTATS utility has not gathered statistics.
+ *
+ * Warning: if a function does in fact have infinite cardinality, i.e. it returns a
+ * row every time it is called to do so, never returning the .end-of-table.
+ * condition, then queries which require the .end-of-table. condition to
+ * correctly function will be infinite, and will have to be interrupted.
+ *
+ * Examples of such queries are those involving GROUP BY and ORDER BY.
+ * The user is advised to not write such UDFs.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Cardinality</em>' attribute.
+ * @see #setCardinality(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_Cardinality()
+ * @model
+ * @generated
+ */
+ int getCardinality();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getCardinality <em>Cardinality</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cardinality</em>' attribute.
+ * @see #getCardinality()
+ * @generated
+ */
+ void setCardinality(int value);
+
+ /**
+ * Returns the value of the '<em><b>Allow Parallel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This optional clause specifies whether, for a single reference to the
+ * function, the invocation of the function can be parallelized. In general, the
+ * invocations of most scalar functions should be parallelizable, but there
+ * may be functions (such as those depending on a single copy of a
+ * scratchpad) that cannot. If either ALLOW PARALLEL or DISALLOW
+ * PARALLEL are specified for a scalar function, then DB2 will accept this
+ * specification.
+ *
+ * The syntax diagram indicates that the default value is ALLOW PARALLEL.
+ * However, the default is DISALLOW PARALLEL if one or more of the
+ * following options is specified in the statement:
+ * NOT DETERMINISTIC
+ * EXTERNAL ACTION
+ * SCRATCHPAD
+ * FINAL CALL
+ * MODIFIES SQL DATA (version 8)
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Allow Parallel</em>' attribute.
+ * @see #setAllowParallel(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_AllowParallel()
+ * @model
+ * @generated
+ */
+ boolean isAllowParallel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isAllowParallel <em>Allow Parallel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Allow Parallel</em>' attribute.
+ * @see #isAllowParallel()
+ * @generated
+ */
+ void setAllowParallel(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Return Clause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Contains the text of the SQL statement in the
+ * RETURN <SQL-statement>
+ *
+ * temporary until we hook in the SQLStatement portion of the model.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Return Clause</em>' attribute.
+ * @see #setReturnClause(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_ReturnClause()
+ * @model
+ * @generated
+ */
+ String getReturnClause();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getReturnClause <em>Return Clause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return Clause</em>' attribute.
+ * @see #getReturnClause()
+ * @generated
+ */
+ void setReturnClause(String value);
+
+ /**
+ * Returns the value of the '<em><b>Origin</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.OriginType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Origin</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Origin</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.OriginType
+ * @see #setOrigin(OriginType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_Origin()
+ * @model
+ * @generated
+ */
+ OriginType getOrigin();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getOrigin <em>Origin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Origin</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.OriginType
+ * @see #getOrigin()
+ * @generated
+ */
+ void setOrigin(OriginType value);
+
+ /**
+ * Returns the value of the '<em><b>Inherit Lock Request</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inherit Lock Request</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inherit Lock Request</em>' attribute.
+ * @see #setInheritLockRequest(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_InheritLockRequest()
+ * @model
+ * @generated
+ */
+ boolean isInheritLockRequest();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInheritLockRequest <em>Inherit Lock Request</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inherit Lock Request</em>' attribute.
+ * @see #isInheritLockRequest()
+ * @generated
+ */
+ void setInheritLockRequest(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Dialect</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dialect</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dialect</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see #setDialect(SourceDialect)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_Dialect()
+ * @model
+ * @generated
+ */
+ SourceDialect getDialect();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getDialect <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dialect</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see #getDialect()
+ * @generated
+ */
+ void setDialect(SourceDialect value);
+
+ /**
+ * Returns the value of the '<em><b>Inline</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inline</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inline</em>' attribute.
+ * @see #setInline(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_Inline()
+ * @model
+ * @generated
+ */
+ boolean isInline();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInline <em>Inline</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inline</em>' attribute.
+ * @see #isInline()
+ * @generated
+ */
+ void setInline(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_Version()
+ * @model
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Secured</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Secured</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Secured</em>' attribute.
+ * @see #setSecured(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Function_Secured()
+ * @model
+ * @generated
+ */
+ boolean isSecured();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isSecured <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Secured</em>' attribute.
+ * @see #isSecured()
+ * @generated
+ */
+ void setSecured(boolean value);
+
+} // DB2Function
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2IdentitySpecifier.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2IdentitySpecifier.java
new file mode 100644
index 0000000..6631a7d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2IdentitySpecifier.java
@@ -0,0 +1,136 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2IdentitySpecifier.java,v 1.10 2009/07/30 00:21:45 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.math.BigInteger;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Identity Specifier</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getCache <em>Cache</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isOrder <em>Order</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isSystemGenerated <em>System Generated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getRestartValue <em>Restart Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2IdentitySpecifier()
+ * @model
+ * @generated
+ */
+public interface DB2IdentitySpecifier extends IdentitySpecifier {
+ /**
+ * Returns the value of the '<em><b>Cache</b></em>' attribute.
+ * The default value is <code>"20"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cache</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cache</em>' attribute.
+ * @see #setCache(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2IdentitySpecifier_Cache()
+ * @model default="20"
+ * @generated
+ */
+ int getCache();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getCache <em>Cache</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cache</em>' attribute.
+ * @see #getCache()
+ * @generated
+ */
+ void setCache(int value);
+
+ /**
+ * Returns the value of the '<em><b>Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Sequences values are dispensed in order if True else unique but not necissarily unique.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Order</em>' attribute.
+ * @see #setOrder(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2IdentitySpecifier_Order()
+ * @model
+ * @generated
+ */
+ boolean isOrder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isOrder <em>Order</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Order</em>' attribute.
+ * @see #isOrder()
+ * @generated
+ */
+ void setOrder(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>System Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>System Generated</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>System Generated</em>' attribute.
+ * @see #setSystemGenerated(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2IdentitySpecifier_SystemGenerated()
+ * @model
+ * @generated
+ */
+ boolean isSystemGenerated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isSystemGenerated <em>System Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>System Generated</em>' attribute.
+ * @see #isSystemGenerated()
+ * @generated
+ */
+ void setSystemGenerated(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Restart Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restart Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restart Value</em>' attribute.
+ * @see #setRestartValue(BigInteger)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2IdentitySpecifier_RestartValue()
+ * @model
+ * @generated
+ */
+ BigInteger getRestartValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getRestartValue <em>Restart Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Restart Value</em>' attribute.
+ * @see #getRestartValue()
+ * @generated
+ */
+ void setRestartValue(BigInteger value);
+
+} // DB2IdentitySpecifier
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Index.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Index.java
new file mode 100644
index 0000000..756b1f1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Index.java
@@ -0,0 +1,143 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Index</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getIndexType <em>Index Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isEncodedVector <em>Encoded Vector</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getDB2MultidimensionalIndex <em>DB2 Multidimensional Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Index()
+ * @model
+ * @generated
+ */
+public interface DB2Index extends Index {
+ /**
+ * Returns the value of the '<em><b>Index Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Index Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Index Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType
+ * @see #setIndexType(DB2IndexType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Index_IndexType()
+ * @model
+ * @generated
+ */
+ DB2IndexType getIndexType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getIndexType <em>Index Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Index Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType
+ * @see #getIndexType()
+ * @generated
+ */
+ void setIndexType(DB2IndexType value);
+
+ /**
+ * Returns the value of the '<em><b>Bus Period Without Overlap</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bus Period Without Overlap</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bus Period Without Overlap</em>' attribute.
+ * @see #setBusPeriodWithoutOverlap(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Index_BusPeriodWithoutOverlap()
+ * @model default="False"
+ * @generated
+ */
+ boolean isBusPeriodWithoutOverlap();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bus Period Without Overlap</em>' attribute.
+ * @see #isBusPeriodWithoutOverlap()
+ * @generated
+ */
+ void setBusPeriodWithoutOverlap(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Encoded Vector</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Encoded Vector</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Encoded Vector</em>' attribute.
+ * @see #setEncodedVector(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Index_EncodedVector()
+ * @model default="False"
+ * @generated
+ */
+ boolean isEncodedVector();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isEncodedVector <em>Encoded Vector</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Encoded Vector</em>' attribute.
+ * @see #isEncodedVector()
+ * @generated
+ */
+ void setEncodedVector(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>DB2 Multidimensional Index</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex#getDimensionIndexes <em>Dimension Indexes</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>DB2 Multidimensional Index</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>DB2 Multidimensional Index</em>' reference.
+ * @see #setDB2MultidimensionalIndex(DB2MultidimensionalIndex)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Index_DB2MultidimensionalIndex()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex#getDimensionIndexes
+ * @model opposite="dimensionIndexes" required="true"
+ * @generated
+ */
+ DB2MultidimensionalIndex getDB2MultidimensionalIndex();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getDB2MultidimensionalIndex <em>DB2 Multidimensional Index</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>DB2 Multidimensional Index</em>' reference.
+ * @see #getDB2MultidimensionalIndex()
+ * @generated
+ */
+ void setDB2MultidimensionalIndex(DB2MultidimensionalIndex value);
+
+} // DB2Index
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2IndexType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2IndexType.java
new file mode 100644
index 0000000..91f2d6f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2IndexType.java
@@ -0,0 +1,286 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2IndexType.java,v 1.8 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>DB2 Index Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2IndexType()
+ * @model
+ * @generated
+ */
+public final class DB2IndexType extends AbstractEnumerator {
+ /**
+ * The '<em><b>REGULAR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REGULAR_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REGULAR = 0;
+
+ /**
+ * The '<em><b>BLOCK</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BLOCK_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BLOCK = 1;
+
+ /**
+ * The '<em><b>DIMENSION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DIMENSION_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DIMENSION = 2;
+
+ /**
+ * The '<em><b>XMLPATH</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #XMLPATH_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int XMLPATH = 3;
+
+ /**
+ * The '<em><b>XMLREGION</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #XMLREGION_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int XMLREGION = 4;
+
+ /**
+ * The '<em><b>XMLCOLUMN LOGICAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #XMLCOLUMN_LOGICAL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int XMLCOLUMN_LOGICAL = 5;
+
+ /**
+ * The '<em><b>XMLCOLUMN PHYSICAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #XMLCOLUMN_PHYSICAL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int XMLCOLUMN_PHYSICAL = 6;
+
+ /**
+ * The '<em><b>REGULAR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REGULAR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REGULAR
+ * @generated
+ * @ordered
+ */
+ public static final DB2IndexType REGULAR_LITERAL = new DB2IndexType(REGULAR, "REGULAR", "REGULAR"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>BLOCK</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BLOCK</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BLOCK
+ * @generated
+ * @ordered
+ */
+ public static final DB2IndexType BLOCK_LITERAL = new DB2IndexType(BLOCK, "BLOCK", "BLOCK"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>DIMENSION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DIMENSION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DIMENSION
+ * @generated
+ * @ordered
+ */
+ public static final DB2IndexType DIMENSION_LITERAL = new DB2IndexType(DIMENSION, "DIMENSION", "DIMENSION"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>XMLPATH</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>XMLPATH</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #XMLPATH
+ * @generated
+ * @ordered
+ */
+ public static final DB2IndexType XMLPATH_LITERAL = new DB2IndexType(XMLPATH, "XMLPATH", "XMLPATH"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>XMLREGION</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>XMLREGION</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #XMLREGION
+ * @generated
+ * @ordered
+ */
+ public static final DB2IndexType XMLREGION_LITERAL = new DB2IndexType(XMLREGION, "XMLREGION", "XMLREGION"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>XMLCOLUMN LOGICAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>XMLCOLUMN LOGICAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #XMLCOLUMN_LOGICAL
+ * @generated
+ * @ordered
+ */
+ public static final DB2IndexType XMLCOLUMN_LOGICAL_LITERAL = new DB2IndexType(XMLCOLUMN_LOGICAL, "XMLCOLUMN_LOGICAL", "XMLCOLUMN_LOGICAL"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>XMLCOLUMN PHYSICAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>XMLCOLUMN PHYSICAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #XMLCOLUMN_PHYSICAL
+ * @generated
+ * @ordered
+ */
+ public static final DB2IndexType XMLCOLUMN_PHYSICAL_LITERAL = new DB2IndexType(XMLCOLUMN_PHYSICAL, "XMLCOLUMN_PHYSICAL", "XMLCOLUMN_PHYSICAL"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>DB2 Index Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DB2IndexType[] VALUES_ARRAY =
+ new DB2IndexType[] {
+ REGULAR_LITERAL,
+ BLOCK_LITERAL,
+ DIMENSION_LITERAL,
+ XMLPATH_LITERAL,
+ XMLREGION_LITERAL,
+ XMLCOLUMN_LOGICAL_LITERAL,
+ XMLCOLUMN_PHYSICAL_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>DB2 Index Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>DB2 Index Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2IndexType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2IndexType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2 Index Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2IndexType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2IndexType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2 Index Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2IndexType get(int value) {
+ switch (value) {
+ case REGULAR: return REGULAR_LITERAL;
+ case BLOCK: return BLOCK_LITERAL;
+ case DIMENSION: return DIMENSION_LITERAL;
+ case XMLPATH: return XMLPATH_LITERAL;
+ case XMLREGION: return XMLREGION_LITERAL;
+ case XMLCOLUMN_LOGICAL: return XMLCOLUMN_LOGICAL_LITERAL;
+ case XMLCOLUMN_PHYSICAL: return XMLCOLUMN_PHYSICAL_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DB2IndexType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //DB2IndexType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Jar.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Jar.java
new file mode 100644
index 0000000..40e2d6c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Jar.java
@@ -0,0 +1,210 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2Jar.java,v 1.6 2007/10/12 23:05:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Jar</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getFileName <em>File Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getCreatedTS <em>Created TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getAlteredTS <em>Altered TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getProcedures <em>Procedures</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar()
+ * @model
+ * @generated
+ */
+public interface DB2Jar extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * File name for the jar.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>File Name</em>' attribute.
+ * @see #setFileName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar_FileName()
+ * @model
+ * @generated
+ */
+ String getFileName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getFileName <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Name</em>' attribute.
+ * @see #getFileName()
+ * @generated
+ */
+ void setFileName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Path</em>' attribute.
+ * @see #setPath(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar_Path()
+ * @model
+ * @generated
+ */
+ String getPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getPath <em>Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Path</em>' attribute.
+ * @see #getPath()
+ * @generated
+ */
+ void setPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Owner</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owner</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owner</em>' attribute.
+ * @see #setOwner(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar_Owner()
+ * @model
+ * @generated
+ */
+ String getOwner();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getOwner <em>Owner</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owner</em>' attribute.
+ * @see #getOwner()
+ * @generated
+ */
+ void setOwner(String value);
+
+ /**
+ * Returns the value of the '<em><b>Created TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Created TS</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Created TS</em>' attribute.
+ * @see #setCreatedTS(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar_CreatedTS()
+ * @model
+ * @generated
+ */
+ String getCreatedTS();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getCreatedTS <em>Created TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Created TS</em>' attribute.
+ * @see #getCreatedTS()
+ * @generated
+ */
+ void setCreatedTS(String value);
+
+ /**
+ * Returns the value of the '<em><b>Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Altered TS</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Altered TS</em>' attribute.
+ * @see #setAlteredTS(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar_AlteredTS()
+ * @model
+ * @generated
+ */
+ String getAlteredTS();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getAlteredTS <em>Altered TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Altered TS</em>' attribute.
+ * @see #getAlteredTS()
+ * @generated
+ */
+ void setAlteredTS(String value);
+
+ /**
+ * Returns the value of the '<em><b>Procedures</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getJar <em>Jar</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Procedures</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Procedures</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar_Procedures()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getJar
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions" opposite="jar"
+ * @generated
+ */
+ EList getProcedures();
+
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getJars <em>Jars</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' reference.
+ * @see #setSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Jar_Schema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getJars
+ * @model opposite="jars" required="true"
+ * @generated
+ */
+ DB2Schema getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getSchema <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' reference.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(DB2Schema value);
+
+} // DB2Jar
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2JavaOptions.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2JavaOptions.java
new file mode 100644
index 0000000..ea3ccf1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2JavaOptions.java
@@ -0,0 +1,165 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2JavaOptions.java,v 1.6 2007/10/12 23:05:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Java Options</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getClassName <em>Class Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getMethodName <em>Method Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#isSqlj <em>Sqlj</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getProcedure <em>Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getJar <em>Jar</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2JavaOptions()
+ * @model
+ * @generated
+ */
+public interface DB2JavaOptions extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The Java class name of the routine registered with the database, initially the same as the method name.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Class Name</em>' attribute.
+ * @see #setClassName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2JavaOptions_ClassName()
+ * @model
+ * @generated
+ */
+ String getClassName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getClassName <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class Name</em>' attribute.
+ * @see #getClassName()
+ * @generated
+ */
+ void setClassName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Method Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The Java method name (entry point), initially derived from the procedure name.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Method Name</em>' attribute.
+ * @see #setMethodName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2JavaOptions_MethodName()
+ * @model
+ * @generated
+ */
+ String getMethodName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getMethodName <em>Method Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Method Name</em>' attribute.
+ * @see #getMethodName()
+ * @generated
+ */
+ void setMethodName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Sqlj</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * If <code>true</code>, then the stored procedure is SQLJ, a static Java stored procedure. If <code>false</code>, then the java stored procedure is dynamic
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Sqlj</em>' attribute.
+ * @see #setSqlj(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2JavaOptions_Sqlj()
+ * @model
+ * @generated
+ */
+ boolean isSqlj();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#isSqlj <em>Sqlj</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sqlj</em>' attribute.
+ * @see #isSqlj()
+ * @generated
+ */
+ void setSqlj(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Procedure</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getJavaOptions <em>Java Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Procedure</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Procedure</em>' container reference.
+ * @see #setProcedure(DB2Procedure)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2JavaOptions_Procedure()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getJavaOptions
+ * @model opposite="javaOptions" required="true"
+ * @generated
+ */
+ DB2Procedure getProcedure();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getProcedure <em>Procedure</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Procedure</em>' container reference.
+ * @see #getProcedure()
+ * @generated
+ */
+ void setProcedure(DB2Procedure value);
+
+ /**
+ * Returns the value of the '<em><b>Jar</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getProcedures <em>Procedures</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Jar</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Jar</em>' reference.
+ * @see #setJar(DB2Jar)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2JavaOptions_Jar()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getProcedures
+ * @model opposite="procedures"
+ * @generated
+ */
+ DB2Jar getJar();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getJar <em>Jar</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Jar</em>' reference.
+ * @see #getJar()
+ * @generated
+ */
+ void setJar(DB2Jar value);
+
+} // DB2JavaOptions
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Mask.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Mask.java
new file mode 100644
index 0000000..df3e1ab
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Mask.java
@@ -0,0 +1,225 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Mask</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCorrelationName <em>Correlation Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCaseExpression <em>Case Expression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#isEnable <em>Enable</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectTable <em>Subject Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectMQT <em>Subject MQT</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectColumn <em>Subject Column</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask()
+ * @model
+ * @generated
+ */
+public interface DB2Mask extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Correlation Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Correlation Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Correlation Name</em>' attribute.
+ * @see #setCorrelationName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask_CorrelationName()
+ * @model
+ * @generated
+ */
+ String getCorrelationName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCorrelationName <em>Correlation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Correlation Name</em>' attribute.
+ * @see #getCorrelationName()
+ * @generated
+ */
+ void setCorrelationName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Case Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Case Expression</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Case Expression</em>' containment reference.
+ * @see #setCaseExpression(QueryExpression)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask_CaseExpression()
+ * @model containment="true"
+ * @generated
+ */
+ QueryExpression getCaseExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCaseExpression <em>Case Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Case Expression</em>' containment reference.
+ * @see #getCaseExpression()
+ * @generated
+ */
+ void setCaseExpression(QueryExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Enable</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Enable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Enable</em>' attribute.
+ * @see #setEnable(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask_Enable()
+ * @model default="true"
+ * @generated
+ */
+ boolean isEnable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#isEnable <em>Enable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Enable</em>' attribute.
+ * @see #isEnable()
+ * @generated
+ */
+ void setEnable(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getMasks <em>Masks</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' reference.
+ * @see #setSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask_Schema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getMasks
+ * @model opposite="masks" required="true"
+ * @generated
+ */
+ DB2Schema getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSchema <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' reference.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(DB2Schema value);
+
+ /**
+ * Returns the value of the '<em><b>Subject Table</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getMasks <em>Masks</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Subject Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Subject Table</em>' reference.
+ * @see #setSubjectTable(DB2Table)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask_SubjectTable()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getMasks
+ * @model opposite="masks" required="true"
+ * @generated
+ */
+ DB2Table getSubjectTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectTable <em>Subject Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Subject Table</em>' reference.
+ * @see #getSubjectTable()
+ * @generated
+ */
+ void setSubjectTable(DB2Table value);
+
+ /**
+ * Returns the value of the '<em><b>Subject MQT</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMasks <em>Masks</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Subject MQT</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Subject MQT</em>' reference.
+ * @see #setSubjectMQT(DB2MaterializedQueryTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask_SubjectMQT()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMasks
+ * @model opposite="masks" required="true"
+ * @generated
+ */
+ DB2MaterializedQueryTable getSubjectMQT();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectMQT <em>Subject MQT</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Subject MQT</em>' reference.
+ * @see #getSubjectMQT()
+ * @generated
+ */
+ void setSubjectMQT(DB2MaterializedQueryTable value);
+
+ /**
+ * Returns the value of the '<em><b>Subject Column</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Subject Column</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Subject Column</em>' reference.
+ * @see #setSubjectColumn(DB2Column)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Mask_SubjectColumn()
+ * @model required="true"
+ * @generated
+ */
+ DB2Column getSubjectColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectColumn <em>Subject Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Subject Column</em>' reference.
+ * @see #getSubjectColumn()
+ * @generated
+ */
+ void setSubjectColumn(DB2Column value);
+
+} // DB2Mask
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2MaterializedQueryTable.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2MaterializedQueryTable.java
new file mode 100644
index 0000000..0612bb2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2MaterializedQueryTable.java
@@ -0,0 +1,155 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Materialized Query Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getRefresh <em>Refresh</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isOptimizeQuery <em>Optimize Query</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMaintainedBy <em>Maintained By</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateRowAccessControl <em>Activate Row Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateColumnAccessControl <em>Activate Column Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMasks <em>Masks</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getPermissions <em>Permissions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MaterializedQueryTable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface DB2MaterializedQueryTable extends DerivedTable {
+
+ /**
+ * Returns the value of the '<em><b>Optimize Query</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optimize Query</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optimize Query</em>' attribute.
+ * @see #setOptimizeQuery(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MaterializedQueryTable_OptimizeQuery()
+ * @model default="true"
+ * @generated
+ */
+ boolean isOptimizeQuery();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isOptimizeQuery <em>Optimize Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optimize Query</em>' attribute.
+ * @see #isOptimizeQuery()
+ * @generated
+ */
+ void setOptimizeQuery(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activate Row Access Control</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activate Row Access Control</em>' attribute.
+ * @see #setActivateRowAccessControl(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MaterializedQueryTable_ActivateRowAccessControl()
+ * @model default="False"
+ * @generated
+ */
+ boolean isActivateRowAccessControl();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateRowAccessControl <em>Activate Row Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activate Row Access Control</em>' attribute.
+ * @see #isActivateRowAccessControl()
+ * @generated
+ */
+ void setActivateRowAccessControl(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activate Column Access Control</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activate Column Access Control</em>' attribute.
+ * @see #setActivateColumnAccessControl(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MaterializedQueryTable_ActivateColumnAccessControl()
+ * @model default="False"
+ * @generated
+ */
+ boolean isActivateColumnAccessControl();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateColumnAccessControl <em>Activate Column Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activate Column Access Control</em>' attribute.
+ * @see #isActivateColumnAccessControl()
+ * @generated
+ */
+ void setActivateColumnAccessControl(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Masks</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectMQT <em>Subject MQT</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Masks</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Masks</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MaterializedQueryTable_Masks()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectMQT
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask" opposite="subjectMQT"
+ * @generated
+ */
+ EList getMasks();
+
+ /**
+ * Returns the value of the '<em><b>Permissions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectMQT <em>Subject MQT</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Permissions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Permissions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MaterializedQueryTable_Permissions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectMQT
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission" opposite="subjectMQT"
+ * @generated
+ */
+ EList getPermissions();
+
+} // DB2MaterializedQueryTable
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Member.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Member.java
new file mode 100644
index 0000000..f86612e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Member.java
@@ -0,0 +1,134 @@
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Member</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getHomeHost <em>Home Host</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCurrentHost <em>Current Host</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getState <em>State</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCluster <em>Cluster</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Member()
+ * @model
+ * @generated
+ */
+public interface DB2Member extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Member_Id()
+ * @model
+ * @generated
+ */
+ int getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(int value);
+
+ /**
+ * Returns the value of the '<em><b>Home Host</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Home Host</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Home Host</em>' attribute.
+ * @see #setHomeHost(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Member_HomeHost()
+ * @model
+ * @generated
+ */
+ String getHomeHost();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getHomeHost <em>Home Host</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Home Host</em>' attribute.
+ * @see #getHomeHost()
+ * @generated
+ */
+ void setHomeHost(String value);
+
+ /**
+ * Returns the value of the '<em><b>Current Host</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Current Host</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Current Host</em>' attribute.
+ * @see #setCurrentHost(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Member_CurrentHost()
+ * @model
+ * @generated
+ */
+ String getCurrentHost();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCurrentHost <em>Current Host</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Current Host</em>' attribute.
+ * @see #getCurrentHost()
+ * @generated
+ */
+ void setCurrentHost(String value);
+
+ /**
+ * Returns the value of the '<em><b>Cluster</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getMembers <em>Members</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cluster</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cluster</em>' reference.
+ * @see #setCluster(DB2Cluster)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Member_Cluster()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getMembers
+ * @model opposite="members" required="true"
+ * @generated
+ */
+ DB2Cluster getCluster();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCluster <em>Cluster</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Cluster</em>' reference.
+ * @see #getCluster()
+ * @generated
+ */
+ void setCluster(DB2Cluster value);
+
+} // DB2Member
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Method.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Method.java
new file mode 100644
index 0000000..80e73c6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Method.java
@@ -0,0 +1,99 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Method</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Inherits both DB2Model::DB2Function and SQLModel::Method and
+ * used in SQLModel::StructuredUserDefinedType
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isReturnsSelfAsResult <em>Returns Self As Result</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isImplemented <em>Implemented</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Method()
+ * @model
+ * @generated
+ */
+public interface DB2Method extends Method, DB2Function {
+ /**
+ * Returns the value of the '<em><b>Returns Self As Result</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * SELF AS RESULT
+ * Identifies this method as a type-preserving method, which means the
+ * following:
+ * - The declared return type must be the same as the declared subject-type
+ * (SQLSTATE 428EQ).
+ * - When an SQL statement is compiled and resolves to a type preserving
+ * method, the static type of the result of the method is the same as the
+ * static type of the subject argument.
+ * - The method must be implemented in such a way that the dynamic type
+ * of the result is the same as the dynamic type of the subject argument
+ * (SQLSTATE 2200G), and the result cannot be NULL (SQLSTATE 22004).
+ *
+ * If the method being defined overrides another method, this clause cannot
+ * be specified (SQLSTATE 428FV).
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Returns Self As Result</em>' attribute.
+ * @see #setReturnsSelfAsResult(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Method_ReturnsSelfAsResult()
+ * @model
+ * @generated
+ */
+ boolean isReturnsSelfAsResult();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isReturnsSelfAsResult <em>Returns Self As Result</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Returns Self As Result</em>' attribute.
+ * @see #isReturnsSelfAsResult()
+ * @generated
+ */
+ void setReturnsSelfAsResult(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Implemented</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Implemented</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Implemented</em>' attribute.
+ * @see #setImplemented(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Method_Implemented()
+ * @model
+ * @generated
+ */
+ boolean isImplemented();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isImplemented <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Implemented</em>' attribute.
+ * @see #isImplemented()
+ * @generated
+ */
+ void setImplemented(boolean value);
+
+} // DB2Method
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ModelFactory.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ModelFactory.java
new file mode 100644
index 0000000..77a0623
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ModelFactory.java
@@ -0,0 +1,347 @@
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage
+ * @generated
+ */
+public interface DB2ModelFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ DB2ModelFactory eINSTANCE = org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>DB2 Database</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Database</em>'.
+ * @generated
+ */
+ DB2Database createDB2Database();
+
+ /**
+ * Returns a new object of class '<em>DB2 Package</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Package</em>'.
+ * @generated
+ */
+ DB2Package createDB2Package();
+
+ /**
+ * Returns a new object of class '<em>DB2 Table</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Table</em>'.
+ * @generated
+ */
+ DB2Table createDB2Table();
+
+ /**
+ * Returns a new object of class '<em>DB2 Trigger</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Trigger</em>'.
+ * @generated
+ */
+ DB2Trigger createDB2Trigger();
+
+ /**
+ * Returns a new object of class '<em>DB2 Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Procedure</em>'.
+ * @generated
+ */
+ DB2Procedure createDB2Procedure();
+
+ /**
+ * Returns a new object of class '<em>DB2 Schema</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Schema</em>'.
+ * @generated
+ */
+ DB2Schema createDB2Schema();
+
+ /**
+ * Returns a new object of class '<em>DB2 Database Manager</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Database Manager</em>'.
+ * @generated
+ */
+ DB2DatabaseManager createDB2DatabaseManager();
+
+ /**
+ * Returns a new object of class '<em>DB2 View</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 View</em>'.
+ * @generated
+ */
+ DB2View createDB2View();
+
+ /**
+ * Returns a new object of class '<em>DB2 Application Process</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Application Process</em>'.
+ * @generated
+ */
+ DB2ApplicationProcess createDB2ApplicationProcess();
+
+ /**
+ * Returns a new object of class '<em>DB2 Transaction</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Transaction</em>'.
+ * @generated
+ */
+ DB2Transaction createDB2Transaction();
+
+ /**
+ * Returns a new object of class '<em>DB2 System Schema</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 System Schema</em>'.
+ * @generated
+ */
+ DB2SystemSchema createDB2SystemSchema();
+
+ /**
+ * Returns a new object of class '<em>DB2 Source</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Source</em>'.
+ * @generated
+ */
+ DB2Source createDB2Source();
+
+ /**
+ * Returns a new object of class '<em>DB2 User Defined Function</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 User Defined Function</em>'.
+ * @generated
+ */
+ DB2UserDefinedFunction createDB2UserDefinedFunction();
+
+ /**
+ * Returns a new object of class '<em>DB2 Method</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Method</em>'.
+ * @generated
+ */
+ DB2Method createDB2Method();
+
+ /**
+ * Returns a new object of class '<em>DB2 Extended Options</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Extended Options</em>'.
+ * @generated
+ */
+ DB2ExtendedOptions createDB2ExtendedOptions();
+
+ /**
+ * Returns a new object of class '<em>DB2 Alias</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Alias</em>'.
+ * @generated
+ */
+ DB2Alias createDB2Alias();
+
+ /**
+ * Returns a new object of class '<em>DB2 Index</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Index</em>'.
+ * @generated
+ */
+ DB2Index createDB2Index();
+
+ /**
+ * Returns a new object of class '<em>DB2 Multidimensional Index</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Multidimensional Index</em>'.
+ * @generated
+ */
+ DB2MultidimensionalIndex createDB2MultidimensionalIndex();
+
+ /**
+ * Returns a new object of class '<em>DB2 Java Options</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Java Options</em>'.
+ * @generated
+ */
+ DB2JavaOptions createDB2JavaOptions();
+
+ /**
+ * Returns a new object of class '<em>DB2 Procedure Deploy</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Procedure Deploy</em>'.
+ * @generated
+ */
+ DB2ProcedureDeploy createDB2ProcedureDeploy();
+
+ /**
+ * Returns a new object of class '<em>DB2OLAP Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2OLAP Object</em>'.
+ * @generated
+ */
+ DB2OLAPObject createDB2OLAPObject();
+
+ /**
+ * Returns a new object of class '<em>DB2 Identity Specifier</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Identity Specifier</em>'.
+ * @generated
+ */
+ DB2IdentitySpecifier createDB2IdentitySpecifier();
+
+ /**
+ * Returns a new object of class '<em>DB2 Jar</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Jar</em>'.
+ * @generated
+ */
+ DB2Jar createDB2Jar();
+
+ /**
+ * Returns a new object of class '<em>DB2 Column</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Column</em>'.
+ * @generated
+ */
+ DB2Column createDB2Column();
+
+ /**
+ * Returns a new object of class '<em>DB2XSR Object</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2XSR Object</em>'.
+ * @generated
+ */
+ DB2XSRObject createDB2XSRObject();
+
+ /**
+ * Returns a new object of class '<em>DB2XML Schema</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2XML Schema</em>'.
+ * @generated
+ */
+ DB2XMLSchema createDB2XMLSchema();
+
+ /**
+ * Returns a new object of class '<em>DB2XML Schema Document</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2XML Schema Document</em>'.
+ * @generated
+ */
+ DB2XMLSchemaDocument createDB2XMLSchemaDocument();
+
+ /**
+ * Returns a new object of class '<em>DB2XML Schema Doc Properties</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2XML Schema Doc Properties</em>'.
+ * @generated
+ */
+ DB2XMLSchemaDocProperties createDB2XMLSchemaDocProperties();
+
+ /**
+ * Returns a new object of class '<em>DB2 Package Statement</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Package Statement</em>'.
+ * @generated
+ */
+ DB2PackageStatement createDB2PackageStatement();
+
+ /**
+ * Returns a new object of class '<em>DB2 Period</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Period</em>'.
+ * @generated
+ */
+ DB2Period createDB2Period();
+
+ /**
+ * Returns a new object of class '<em>DB2 Cluster</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Cluster</em>'.
+ * @generated
+ */
+ DB2Cluster createDB2Cluster();
+
+ /**
+ * Returns a new object of class '<em>DB2 Member</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Member</em>'.
+ * @generated
+ */
+ DB2Member createDB2Member();
+
+ /**
+ * Returns a new object of class '<em>DB2 Unique Constraint Extension</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Unique Constraint Extension</em>'.
+ * @generated
+ */
+ DB2UniqueConstraintExtension createDB2UniqueConstraintExtension();
+
+ /**
+ * Returns a new object of class '<em>DB2 Mask</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Mask</em>'.
+ * @generated
+ */
+ DB2Mask createDB2Mask();
+
+ /**
+ * Returns a new object of class '<em>DB2 Permission</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>DB2 Permission</em>'.
+ * @generated
+ */
+ DB2Permission createDB2Permission();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ DB2ModelPackage getDB2ModelPackage();
+
+} //DB2ModelFactory
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ModelPackage.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ModelPackage.java
new file mode 100644
index 0000000..3f210ac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ModelPackage.java
@@ -0,0 +1,12601 @@
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * DB2 Model is the OO representation of the concepts defined in the:
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * This book defines the DB2 UDB SQL language elements that are common to the IBM DB2 Universal Database Family of relational database products across the
+ * following environments: Environment IBM Relational Database Product Short Name
+ * - z/OS and OS/390 DB2 Universal Database for z/OS and OS/390 Version 7 DB2 UDB for z/OS and OS/390
+ * - OS/400 DB2 Universal Database for iSeries Version 5 Release 2 DB2 UDB for iSeries UNIX
+ * - AIX
+ * - HP-UX Version 10
+ * - HP-UX Version 11
+ * - Linux
+ * - Solaris
+ * - Windows for 32-bit operating systems
+ * - OS/2
+ * - DB2 Universal Database for the Linux, UNIX and Windows Platforms Version 8
+ * - DB2 UDB for LUW
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DB2ModelPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "db2"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///org.eclipse.datatools.enablement.ibm.db2.model/db2.ecore"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "DB2Model"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ DB2ModelPackage eINSTANCE = org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseImpl <em>DB2 Database</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Database()
+ * @generated
+ */
+ int DB2_DATABASE = 0;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__EANNOTATIONS = SQLSchemaPackage.DATABASE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__NAME = SQLSchemaPackage.DATABASE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__DEPENDENCIES = SQLSchemaPackage.DATABASE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__DESCRIPTION = SQLSchemaPackage.DATABASE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__LABEL = SQLSchemaPackage.DATABASE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__COMMENTS = SQLSchemaPackage.DATABASE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__EXTENSIONS = SQLSchemaPackage.DATABASE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__PRIVILEGES = SQLSchemaPackage.DATABASE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Vendor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__VENDOR = SQLSchemaPackage.DATABASE__VENDOR;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__VERSION = SQLSchemaPackage.DATABASE__VERSION;
+
+ /**
+ * The feature id for the '<em><b>Schemas</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__SCHEMAS = SQLSchemaPackage.DATABASE__SCHEMAS;
+
+ /**
+ * The feature id for the '<em><b>Events</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__EVENTS = SQLSchemaPackage.DATABASE__EVENTS;
+
+ /**
+ * The feature id for the '<em><b>Catalogs</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__CATALOGS = SQLSchemaPackage.DATABASE__CATALOGS;
+
+ /**
+ * The feature id for the '<em><b>Authorization Ids</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__AUTHORIZATION_IDS = SQLSchemaPackage.DATABASE__AUTHORIZATION_IDS;
+
+ /**
+ * The feature id for the '<em><b>Partitioned</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__PARTITIONED = SQLSchemaPackage.DATABASE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Default Organize By Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW = SQLSchemaPackage.DATABASE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>DB2 Database</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_FEATURE_COUNT = SQLSchemaPackage.DATABASE_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan <em>DB2 Access Plan</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2AccessPlan()
+ * @generated
+ */
+ int DB2_ACCESS_PLAN = 13;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The number of structural features of the '<em>DB2 Access Plan</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ACCESS_PLAN_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl <em>DB2 Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Package()
+ * @generated
+ */
+ int DB2_PACKAGE = 1;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__EANNOTATIONS = DB2_ACCESS_PLAN__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__NAME = DB2_ACCESS_PLAN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__DEPENDENCIES = DB2_ACCESS_PLAN__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__DESCRIPTION = DB2_ACCESS_PLAN__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__LABEL = DB2_ACCESS_PLAN__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__COMMENTS = DB2_ACCESS_PLAN__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__EXTENSIONS = DB2_ACCESS_PLAN__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__PRIVILEGES = DB2_ACCESS_PLAN__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Operative</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__OPERATIVE = DB2_ACCESS_PLAN_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Valid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__VALID = DB2_ACCESS_PLAN_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__VERSION = DB2_ACCESS_PLAN_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Default Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__DEFAULT_SCHEMA = DB2_ACCESS_PLAN_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Sql Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__SQL_PATH = DB2_ACCESS_PLAN_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Reopt Var</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__REOPT_VAR = DB2_ACCESS_PLAN_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Isolation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__ISOLATION = DB2_ACCESS_PLAN_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Unique ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__UNIQUE_ID = DB2_ACCESS_PLAN_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Last Bind TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__LAST_BIND_TS = DB2_ACCESS_PLAN_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__SCHEMA = DB2_ACCESS_PLAN_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Statements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE__STATEMENTS = DB2_ACCESS_PLAN_FEATURE_COUNT + 10;
+
+ /**
+ * The number of structural features of the '<em>DB2 Package</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_FEATURE_COUNT = DB2_ACCESS_PLAN_FEATURE_COUNT + 11;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl <em>DB2 Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Table()
+ * @generated
+ */
+ int DB2_TABLE = 2;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__EANNOTATIONS = SQLTablesPackage.PERSISTENT_TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__NAME = SQLTablesPackage.PERSISTENT_TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__DEPENDENCIES = SQLTablesPackage.PERSISTENT_TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__DESCRIPTION = SQLTablesPackage.PERSISTENT_TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__LABEL = SQLTablesPackage.PERSISTENT_TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__COMMENTS = SQLTablesPackage.PERSISTENT_TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__EXTENSIONS = SQLTablesPackage.PERSISTENT_TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__PRIVILEGES = SQLTablesPackage.PERSISTENT_TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__COLUMNS = SQLTablesPackage.PERSISTENT_TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__SUPERTABLE = SQLTablesPackage.PERSISTENT_TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__SUBTABLES = SQLTablesPackage.PERSISTENT_TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__SCHEMA = SQLTablesPackage.PERSISTENT_TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__UDT = SQLTablesPackage.PERSISTENT_TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__TRIGGERS = SQLTablesPackage.PERSISTENT_TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__INDEX = SQLTablesPackage.PERSISTENT_TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__SELF_REF_COLUMN_GENERATION = SQLTablesPackage.PERSISTENT_TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__INSERTABLE = SQLTablesPackage.PERSISTENT_TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__UPDATABLE = SQLTablesPackage.PERSISTENT_TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Constraints</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__CONSTRAINTS = SQLTablesPackage.PERSISTENT_TABLE__CONSTRAINTS;
+
+ /**
+ * The feature id for the '<em><b>Referencing Foreign Keys</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__REFERENCING_FOREIGN_KEYS = SQLTablesPackage.PERSISTENT_TABLE__REFERENCING_FOREIGN_KEYS;
+
+ /**
+ * The feature id for the '<em><b>Data Capture</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__DATA_CAPTURE = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Organize By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__ORGANIZE_BY = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__PACKAGES = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Periods</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__PERIODS = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>History Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__HISTORY_TABLE = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Temporal Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__TEMPORAL_TABLE = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__MASKS = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE__PERMISSIONS = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 9;
+
+ /**
+ * The number of structural features of the '<em>DB2 Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TABLE_FEATURE_COUNT = SQLTablesPackage.PERSISTENT_TABLE_FEATURE_COUNT + 10;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TriggerImpl <em>DB2 Trigger</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TriggerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Trigger()
+ * @generated
+ */
+ int DB2_TRIGGER = 3;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__EANNOTATIONS = SQLTablesPackage.TRIGGER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__NAME = SQLTablesPackage.TRIGGER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__DEPENDENCIES = SQLTablesPackage.TRIGGER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__DESCRIPTION = SQLTablesPackage.TRIGGER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__LABEL = SQLTablesPackage.TRIGGER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__COMMENTS = SQLTablesPackage.TRIGGER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__EXTENSIONS = SQLTablesPackage.TRIGGER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__PRIVILEGES = SQLTablesPackage.TRIGGER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__SCHEMA = SQLTablesPackage.TRIGGER__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Subject Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__SUBJECT_TABLE = SQLTablesPackage.TRIGGER__SUBJECT_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Action Statement</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__ACTION_STATEMENT = SQLTablesPackage.TRIGGER__ACTION_STATEMENT;
+
+ /**
+ * The feature id for the '<em><b>Trigger Column</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__TRIGGER_COLUMN = SQLTablesPackage.TRIGGER__TRIGGER_COLUMN;
+
+ /**
+ * The feature id for the '<em><b>Action Granularity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__ACTION_GRANULARITY = SQLTablesPackage.TRIGGER__ACTION_GRANULARITY;
+
+ /**
+ * The feature id for the '<em><b>When</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__WHEN = SQLTablesPackage.TRIGGER__WHEN;
+
+ /**
+ * The feature id for the '<em><b>Time Stamp</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__TIME_STAMP = SQLTablesPackage.TRIGGER__TIME_STAMP;
+
+ /**
+ * The feature id for the '<em><b>Action Time</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__ACTION_TIME = SQLTablesPackage.TRIGGER__ACTION_TIME;
+
+ /**
+ * The feature id for the '<em><b>Update Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__UPDATE_TYPE = SQLTablesPackage.TRIGGER__UPDATE_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Insert Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__INSERT_TYPE = SQLTablesPackage.TRIGGER__INSERT_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Delete Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__DELETE_TYPE = SQLTablesPackage.TRIGGER__DELETE_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Old Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__OLD_ROW = SQLTablesPackage.TRIGGER__OLD_ROW;
+
+ /**
+ * The feature id for the '<em><b>New Row</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__NEW_ROW = SQLTablesPackage.TRIGGER__NEW_ROW;
+
+ /**
+ * The feature id for the '<em><b>Old Table</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__OLD_TABLE = SQLTablesPackage.TRIGGER__OLD_TABLE;
+
+ /**
+ * The feature id for the '<em><b>New Table</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__NEW_TABLE = SQLTablesPackage.TRIGGER__NEW_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Operative</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__OPERATIVE = SQLTablesPackage.TRIGGER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Secured</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER__SECURED = SQLTablesPackage.TRIGGER_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>DB2 Trigger</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRIGGER_FEATURE_COUNT = SQLTablesPackage.TRIGGER_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl <em>DB2 Procedure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Procedure()
+ * @generated
+ */
+ int DB2_PROCEDURE = 4;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__EANNOTATIONS = SQLRoutinesPackage.PROCEDURE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__NAME = SQLRoutinesPackage.PROCEDURE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__DEPENDENCIES = SQLRoutinesPackage.PROCEDURE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__DESCRIPTION = SQLRoutinesPackage.PROCEDURE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__LABEL = SQLRoutinesPackage.PROCEDURE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__COMMENTS = SQLRoutinesPackage.PROCEDURE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__EXTENSIONS = SQLRoutinesPackage.PROCEDURE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__PRIVILEGES = SQLRoutinesPackage.PROCEDURE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__SPECIFIC_NAME = SQLRoutinesPackage.PROCEDURE__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__LANGUAGE = SQLRoutinesPackage.PROCEDURE__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__PARAMETER_STYLE = SQLRoutinesPackage.PROCEDURE__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__DETERMINISTIC = SQLRoutinesPackage.PROCEDURE__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__SQL_DATA_ACCESS = SQLRoutinesPackage.PROCEDURE__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__CREATION_TS = SQLRoutinesPackage.PROCEDURE__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__LAST_ALTERED_TS = SQLRoutinesPackage.PROCEDURE__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__AUTHORIZATION_ID = SQLRoutinesPackage.PROCEDURE__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__SECURITY = SQLRoutinesPackage.PROCEDURE__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__EXTERNAL_NAME = SQLRoutinesPackage.PROCEDURE__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__PARAMETERS = SQLRoutinesPackage.PROCEDURE__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__SOURCE = SQLRoutinesPackage.PROCEDURE__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__SCHEMA = SQLRoutinesPackage.PROCEDURE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Max Result Sets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__MAX_RESULT_SETS = SQLRoutinesPackage.PROCEDURE__MAX_RESULT_SETS;
+
+ /**
+ * The feature id for the '<em><b>Old Save Point</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__OLD_SAVE_POINT = SQLRoutinesPackage.PROCEDURE__OLD_SAVE_POINT;
+
+ /**
+ * The feature id for the '<em><b>Result Set</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__RESULT_SET = SQLRoutinesPackage.PROCEDURE__RESULT_SET;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__FENCED = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__THREADSAFE = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__DB_INFO = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__IMPLICIT_SCHEMA = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__FEDERATED = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__PARM_CCSID = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__SPECIAL_REGISTER = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__CHANGE_STATE = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__DEBUG_ID = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__PROGRAM_TYPE = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__ORIG_SCHEMA_NAME = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__ORIG_PARM_SIG = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__EXTENDED_OPTIONS = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__ROUTINE_EXTENSIONS = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Model Result Sets</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__MODEL_RESULT_SETS = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Null Input</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__NULL_INPUT = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__VERSION = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__DIALECT = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 17;
+
+ /**
+ * The feature id for the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__EXTERNAL_ACTION = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 18;
+
+ /**
+ * The feature id for the '<em><b>Return</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__RETURN = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 19;
+
+ /**
+ * The feature id for the '<em><b>Java Options</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__JAVA_OPTIONS = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 20;
+
+ /**
+ * The feature id for the '<em><b>Deploy</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE__DEPLOY = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 21;
+
+ /**
+ * The number of structural features of the '<em>DB2 Procedure</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_FEATURE_COUNT = SQLRoutinesPackage.PROCEDURE_FEATURE_COUNT + 22;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl <em>DB2 Schema</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Schema()
+ * @generated
+ */
+ int DB2_SCHEMA = 5;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__EANNOTATIONS = SQLSchemaPackage.SCHEMA__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__NAME = SQLSchemaPackage.SCHEMA__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__DEPENDENCIES = SQLSchemaPackage.SCHEMA__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__DESCRIPTION = SQLSchemaPackage.SCHEMA__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__LABEL = SQLSchemaPackage.SCHEMA__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__COMMENTS = SQLSchemaPackage.SCHEMA__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__EXTENSIONS = SQLSchemaPackage.SCHEMA__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__PRIVILEGES = SQLSchemaPackage.SCHEMA__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__TRIGGERS = SQLSchemaPackage.SCHEMA__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Indices</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__INDICES = SQLSchemaPackage.SCHEMA__INDICES;
+
+ /**
+ * The feature id for the '<em><b>Tables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__TABLES = SQLSchemaPackage.SCHEMA__TABLES;
+
+ /**
+ * The feature id for the '<em><b>Sequences</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__SEQUENCES = SQLSchemaPackage.SCHEMA__SEQUENCES;
+
+ /**
+ * The feature id for the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__DATABASE = SQLSchemaPackage.SCHEMA__DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Catalog</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__CATALOG = SQLSchemaPackage.SCHEMA__CATALOG;
+
+ /**
+ * The feature id for the '<em><b>Assertions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__ASSERTIONS = SQLSchemaPackage.SCHEMA__ASSERTIONS;
+
+ /**
+ * The feature id for the '<em><b>User Defined Types</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__USER_DEFINED_TYPES = SQLSchemaPackage.SCHEMA__USER_DEFINED_TYPES;
+
+ /**
+ * The feature id for the '<em><b>Char Sets</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__CHAR_SETS = SQLSchemaPackage.SCHEMA__CHAR_SETS;
+
+ /**
+ * The feature id for the '<em><b>Routines</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__ROUTINES = SQLSchemaPackage.SCHEMA__ROUTINES;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__OWNER = SQLSchemaPackage.SCHEMA__OWNER;
+
+ /**
+ * The feature id for the '<em><b>Access Plans</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__ACCESS_PLANS = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Olap Objects</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__OLAP_OBJECTS = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Jars</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__JARS = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Xsr Objects</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__XSR_OBJECTS = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__PACKAGES = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__MASKS = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__PERMISSIONS = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Modules</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__MODULES = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Global Variables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA__GLOBAL_VARIABLES = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 8;
+
+ /**
+ * The number of structural features of the '<em>DB2 Schema</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SCHEMA_FEATURE_COUNT = SQLSchemaPackage.SCHEMA_FEATURE_COUNT + 9;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine <em>DB2 Routine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Routine()
+ * @generated
+ */
+ int DB2_ROUTINE = 6;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__EANNOTATIONS = SQLRoutinesPackage.ROUTINE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__NAME = SQLRoutinesPackage.ROUTINE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__DEPENDENCIES = SQLRoutinesPackage.ROUTINE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__DESCRIPTION = SQLRoutinesPackage.ROUTINE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__LABEL = SQLRoutinesPackage.ROUTINE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__COMMENTS = SQLRoutinesPackage.ROUTINE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__EXTENSIONS = SQLRoutinesPackage.ROUTINE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__PRIVILEGES = SQLRoutinesPackage.ROUTINE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__SPECIFIC_NAME = SQLRoutinesPackage.ROUTINE__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__LANGUAGE = SQLRoutinesPackage.ROUTINE__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__PARAMETER_STYLE = SQLRoutinesPackage.ROUTINE__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__DETERMINISTIC = SQLRoutinesPackage.ROUTINE__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__SQL_DATA_ACCESS = SQLRoutinesPackage.ROUTINE__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__CREATION_TS = SQLRoutinesPackage.ROUTINE__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__LAST_ALTERED_TS = SQLRoutinesPackage.ROUTINE__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__AUTHORIZATION_ID = SQLRoutinesPackage.ROUTINE__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__SECURITY = SQLRoutinesPackage.ROUTINE__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__EXTERNAL_NAME = SQLRoutinesPackage.ROUTINE__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__PARAMETERS = SQLRoutinesPackage.ROUTINE__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__SOURCE = SQLRoutinesPackage.ROUTINE__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__SCHEMA = SQLRoutinesPackage.ROUTINE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__FENCED = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__THREADSAFE = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__DB_INFO = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__IMPLICIT_SCHEMA = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__FEDERATED = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__PARM_CCSID = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__SPECIAL_REGISTER = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__CHANGE_STATE = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__DEBUG_ID = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__PROGRAM_TYPE = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__ORIG_SCHEMA_NAME = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__ORIG_PARM_SIG = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__EXTENDED_OPTIONS = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE__ROUTINE_EXTENSIONS = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 13;
+
+ /**
+ * The number of structural features of the '<em>DB2 Routine</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_FEATURE_COUNT = SQLRoutinesPackage.ROUTINE_FEATURE_COUNT + 14;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl <em>DB2 Database Manager</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2DatabaseManager()
+ * @generated
+ */
+ int DB2_DATABASE_MANAGER = 7;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Databases</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__DATABASES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Db2 Process</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__DB2_PROCESS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Server</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__SERVER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Cluster</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER__CLUSTER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>DB2 Database Manager</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DATABASE_MANAGER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ViewImpl <em>DB2 View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ViewImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2View()
+ * @generated
+ */
+ int DB2_VIEW = 8;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__EANNOTATIONS = SQLTablesPackage.VIEW_TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__NAME = SQLTablesPackage.VIEW_TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__DEPENDENCIES = SQLTablesPackage.VIEW_TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__DESCRIPTION = SQLTablesPackage.VIEW_TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__LABEL = SQLTablesPackage.VIEW_TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__COMMENTS = SQLTablesPackage.VIEW_TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__EXTENSIONS = SQLTablesPackage.VIEW_TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__PRIVILEGES = SQLTablesPackage.VIEW_TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__COLUMNS = SQLTablesPackage.VIEW_TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__SUPERTABLE = SQLTablesPackage.VIEW_TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__SUBTABLES = SQLTablesPackage.VIEW_TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__SCHEMA = SQLTablesPackage.VIEW_TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__UDT = SQLTablesPackage.VIEW_TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__TRIGGERS = SQLTablesPackage.VIEW_TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__INDEX = SQLTablesPackage.VIEW_TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__SELF_REF_COLUMN_GENERATION = SQLTablesPackage.VIEW_TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__INSERTABLE = SQLTablesPackage.VIEW_TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__UPDATABLE = SQLTablesPackage.VIEW_TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Query Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__QUERY_EXPRESSION = SQLTablesPackage.VIEW_TABLE__QUERY_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Check Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__CHECK_TYPE = SQLTablesPackage.VIEW_TABLE__CHECK_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Operative</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW__OPERATIVE = SQLTablesPackage.VIEW_TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>DB2 View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_VIEW_FEATURE_COUNT = SQLTablesPackage.VIEW_TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ApplicationProcessImpl <em>DB2 Application Process</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ApplicationProcessImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2ApplicationProcess()
+ * @generated
+ */
+ int DB2_APPLICATION_PROCESS = 9;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Isolation Level</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__ISOLATION_LEVEL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Unit Of Work</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS__UNIT_OF_WORK = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>DB2 Application Process</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_APPLICATION_PROCESS_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TransactionImpl <em>DB2 Transaction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TransactionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Transaction()
+ * @generated
+ */
+ int DB2_TRANSACTION = 10;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The number of structural features of the '<em>DB2 Transaction</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_TRANSACTION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SystemSchemaImpl <em>DB2 System Schema</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SystemSchemaImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2SystemSchema()
+ * @generated
+ */
+ int DB2_SYSTEM_SCHEMA = 11;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__EANNOTATIONS = DB2_SCHEMA__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__NAME = DB2_SCHEMA__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__DEPENDENCIES = DB2_SCHEMA__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__DESCRIPTION = DB2_SCHEMA__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__LABEL = DB2_SCHEMA__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__COMMENTS = DB2_SCHEMA__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__EXTENSIONS = DB2_SCHEMA__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__PRIVILEGES = DB2_SCHEMA__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__TRIGGERS = DB2_SCHEMA__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Indices</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__INDICES = DB2_SCHEMA__INDICES;
+
+ /**
+ * The feature id for the '<em><b>Tables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__TABLES = DB2_SCHEMA__TABLES;
+
+ /**
+ * The feature id for the '<em><b>Sequences</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__SEQUENCES = DB2_SCHEMA__SEQUENCES;
+
+ /**
+ * The feature id for the '<em><b>Database</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__DATABASE = DB2_SCHEMA__DATABASE;
+
+ /**
+ * The feature id for the '<em><b>Catalog</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__CATALOG = DB2_SCHEMA__CATALOG;
+
+ /**
+ * The feature id for the '<em><b>Assertions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__ASSERTIONS = DB2_SCHEMA__ASSERTIONS;
+
+ /**
+ * The feature id for the '<em><b>User Defined Types</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__USER_DEFINED_TYPES = DB2_SCHEMA__USER_DEFINED_TYPES;
+
+ /**
+ * The feature id for the '<em><b>Char Sets</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__CHAR_SETS = DB2_SCHEMA__CHAR_SETS;
+
+ /**
+ * The feature id for the '<em><b>Routines</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__ROUTINES = DB2_SCHEMA__ROUTINES;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__OWNER = DB2_SCHEMA__OWNER;
+
+ /**
+ * The feature id for the '<em><b>Access Plans</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__ACCESS_PLANS = DB2_SCHEMA__ACCESS_PLANS;
+
+ /**
+ * The feature id for the '<em><b>Olap Objects</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__OLAP_OBJECTS = DB2_SCHEMA__OLAP_OBJECTS;
+
+ /**
+ * The feature id for the '<em><b>Jars</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__JARS = DB2_SCHEMA__JARS;
+
+ /**
+ * The feature id for the '<em><b>Xsr Objects</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__XSR_OBJECTS = DB2_SCHEMA__XSR_OBJECTS;
+
+ /**
+ * The feature id for the '<em><b>Packages</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__PACKAGES = DB2_SCHEMA__PACKAGES;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__MASKS = DB2_SCHEMA__MASKS;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__PERMISSIONS = DB2_SCHEMA__PERMISSIONS;
+
+ /**
+ * The feature id for the '<em><b>Modules</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__MODULES = DB2_SCHEMA__MODULES;
+
+ /**
+ * The feature id for the '<em><b>Global Variables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA__GLOBAL_VARIABLES = DB2_SCHEMA__GLOBAL_VARIABLES;
+
+ /**
+ * The number of structural features of the '<em>DB2 System Schema</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SYSTEM_SCHEMA_FEATURE_COUNT = DB2_SCHEMA_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl <em>DB2 Source</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Source()
+ * @generated
+ */
+ int DB2_SOURCE = 12;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__EANNOTATIONS = SQLRoutinesPackage.SOURCE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__NAME = SQLRoutinesPackage.SOURCE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__DEPENDENCIES = SQLRoutinesPackage.SOURCE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__DESCRIPTION = SQLRoutinesPackage.SOURCE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__LABEL = SQLRoutinesPackage.SOURCE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__COMMENTS = SQLRoutinesPackage.SOURCE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__EXTENSIONS = SQLRoutinesPackage.SOURCE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__PRIVILEGES = SQLRoutinesPackage.SOURCE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Body</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__BODY = SQLRoutinesPackage.SOURCE__BODY;
+
+ /**
+ * The feature id for the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__FILE_NAME = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Package Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__PACKAGE_NAME = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Db2 Package Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__DB2_PACKAGE_NAME = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Last Modified</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__LAST_MODIFIED = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Supporting</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__SUPPORTING = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Primary</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE__PRIMARY = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>DB2 Source</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_SOURCE_FEATURE_COUNT = SQLRoutinesPackage.SOURCE_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl <em>DB2 User Defined Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2UserDefinedFunction()
+ * @generated
+ */
+ int DB2_USER_DEFINED_FUNCTION = 14;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__EANNOTATIONS = SQLRoutinesPackage.USER_DEFINED_FUNCTION__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__NAME = SQLRoutinesPackage.USER_DEFINED_FUNCTION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__DEPENDENCIES = SQLRoutinesPackage.USER_DEFINED_FUNCTION__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__DESCRIPTION = SQLRoutinesPackage.USER_DEFINED_FUNCTION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__LABEL = SQLRoutinesPackage.USER_DEFINED_FUNCTION__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__COMMENTS = SQLRoutinesPackage.USER_DEFINED_FUNCTION__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__EXTENSIONS = SQLRoutinesPackage.USER_DEFINED_FUNCTION__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__PRIVILEGES = SQLRoutinesPackage.USER_DEFINED_FUNCTION__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SPECIFIC_NAME = SQLRoutinesPackage.USER_DEFINED_FUNCTION__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__LANGUAGE = SQLRoutinesPackage.USER_DEFINED_FUNCTION__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__PARAMETER_STYLE = SQLRoutinesPackage.USER_DEFINED_FUNCTION__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__DETERMINISTIC = SQLRoutinesPackage.USER_DEFINED_FUNCTION__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SQL_DATA_ACCESS = SQLRoutinesPackage.USER_DEFINED_FUNCTION__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__CREATION_TS = SQLRoutinesPackage.USER_DEFINED_FUNCTION__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__LAST_ALTERED_TS = SQLRoutinesPackage.USER_DEFINED_FUNCTION__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__AUTHORIZATION_ID = SQLRoutinesPackage.USER_DEFINED_FUNCTION__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SECURITY = SQLRoutinesPackage.USER_DEFINED_FUNCTION__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__EXTERNAL_NAME = SQLRoutinesPackage.USER_DEFINED_FUNCTION__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__PARAMETERS = SQLRoutinesPackage.USER_DEFINED_FUNCTION__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SOURCE = SQLRoutinesPackage.USER_DEFINED_FUNCTION__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SCHEMA = SQLRoutinesPackage.USER_DEFINED_FUNCTION__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Null Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__NULL_CALL = SQLRoutinesPackage.USER_DEFINED_FUNCTION__NULL_CALL;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__STATIC = SQLRoutinesPackage.USER_DEFINED_FUNCTION__STATIC;
+
+ /**
+ * The feature id for the '<em><b>Transform Group</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__TRANSFORM_GROUP = SQLRoutinesPackage.USER_DEFINED_FUNCTION__TRANSFORM_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Type Preserving</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__TYPE_PRESERVING = SQLRoutinesPackage.USER_DEFINED_FUNCTION__TYPE_PRESERVING;
+
+ /**
+ * The feature id for the '<em><b>Mutator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__MUTATOR = SQLRoutinesPackage.USER_DEFINED_FUNCTION__MUTATOR;
+
+ /**
+ * The feature id for the '<em><b>Return Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__RETURN_TABLE = SQLRoutinesPackage.USER_DEFINED_FUNCTION__RETURN_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__RETURN_SCALAR = SQLRoutinesPackage.USER_DEFINED_FUNCTION__RETURN_SCALAR;
+
+ /**
+ * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__RETURN_CAST = SQLRoutinesPackage.USER_DEFINED_FUNCTION__RETURN_CAST;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__FENCED = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__THREADSAFE = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__DB_INFO = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__FEDERATED = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__PARM_CCSID = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__CHANGE_STATE = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__DEBUG_ID = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Final Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__FINAL_CALL = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Function Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 17;
+
+ /**
+ * The feature id for the '<em><b>Predicate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__PREDICATE = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 18;
+
+ /**
+ * The feature id for the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 19;
+
+ /**
+ * The feature id for the '<em><b>Cardinality</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__CARDINALITY = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 20;
+
+ /**
+ * The feature id for the '<em><b>Allow Parallel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 21;
+
+ /**
+ * The feature id for the '<em><b>Return Clause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 22;
+
+ /**
+ * The feature id for the '<em><b>Origin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__ORIGIN = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 23;
+
+ /**
+ * The feature id for the '<em><b>Inherit Lock Request</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 24;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__DIALECT = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 25;
+
+ /**
+ * The feature id for the '<em><b>Inline</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__INLINE = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 26;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__VERSION = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 27;
+
+ /**
+ * The feature id for the '<em><b>Secured</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION__SECURED = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 28;
+
+ /**
+ * The number of structural features of the '<em>DB2 User Defined Function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_USER_DEFINED_FUNCTION_FEATURE_COUNT = SQLRoutinesPackage.USER_DEFINED_FUNCTION_FEATURE_COUNT + 29;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl <em>DB2 Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Method()
+ * @generated
+ */
+ int DB2_METHOD = 15;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__EANNOTATIONS = SQLRoutinesPackage.METHOD__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__NAME = SQLRoutinesPackage.METHOD__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__DEPENDENCIES = SQLRoutinesPackage.METHOD__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__DESCRIPTION = SQLRoutinesPackage.METHOD__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__LABEL = SQLRoutinesPackage.METHOD__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__COMMENTS = SQLRoutinesPackage.METHOD__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__EXTENSIONS = SQLRoutinesPackage.METHOD__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__PRIVILEGES = SQLRoutinesPackage.METHOD__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SPECIFIC_NAME = SQLRoutinesPackage.METHOD__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__LANGUAGE = SQLRoutinesPackage.METHOD__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__PARAMETER_STYLE = SQLRoutinesPackage.METHOD__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__DETERMINISTIC = SQLRoutinesPackage.METHOD__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SQL_DATA_ACCESS = SQLRoutinesPackage.METHOD__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__CREATION_TS = SQLRoutinesPackage.METHOD__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__LAST_ALTERED_TS = SQLRoutinesPackage.METHOD__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__AUTHORIZATION_ID = SQLRoutinesPackage.METHOD__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SECURITY = SQLRoutinesPackage.METHOD__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__EXTERNAL_NAME = SQLRoutinesPackage.METHOD__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__PARAMETERS = SQLRoutinesPackage.METHOD__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SOURCE = SQLRoutinesPackage.METHOD__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SCHEMA = SQLRoutinesPackage.METHOD__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Null Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__NULL_CALL = SQLRoutinesPackage.METHOD__NULL_CALL;
+
+ /**
+ * The feature id for the '<em><b>Static</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__STATIC = SQLRoutinesPackage.METHOD__STATIC;
+
+ /**
+ * The feature id for the '<em><b>Transform Group</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__TRANSFORM_GROUP = SQLRoutinesPackage.METHOD__TRANSFORM_GROUP;
+
+ /**
+ * The feature id for the '<em><b>Type Preserving</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__TYPE_PRESERVING = SQLRoutinesPackage.METHOD__TYPE_PRESERVING;
+
+ /**
+ * The feature id for the '<em><b>Mutator</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__MUTATOR = SQLRoutinesPackage.METHOD__MUTATOR;
+
+ /**
+ * The feature id for the '<em><b>Return Table</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__RETURN_TABLE = SQLRoutinesPackage.METHOD__RETURN_TABLE;
+
+ /**
+ * The feature id for the '<em><b>Return Scalar</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__RETURN_SCALAR = SQLRoutinesPackage.METHOD__RETURN_SCALAR;
+
+ /**
+ * The feature id for the '<em><b>Return Cast</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__RETURN_CAST = SQLRoutinesPackage.METHOD__RETURN_CAST;
+
+ /**
+ * The feature id for the '<em><b>Overriding</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__OVERRIDING = SQLRoutinesPackage.METHOD__OVERRIDING;
+
+ /**
+ * The feature id for the '<em><b>Constructor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__CONSTRUCTOR = SQLRoutinesPackage.METHOD__CONSTRUCTOR;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__FENCED = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__THREADSAFE = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__DB_INFO = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__IMPLICIT_SCHEMA = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__FEDERATED = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__PARM_CCSID = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SPECIAL_REGISTER = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__CHANGE_STATE = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__DEBUG_ID = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__PROGRAM_TYPE = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__ORIG_SCHEMA_NAME = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__ORIG_PARM_SIG = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__EXTENDED_OPTIONS = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__ROUTINE_EXTENSIONS = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Final Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__FINAL_CALL = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 14;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SCRATCH_PAD = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 15;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SCRATCH_PAD_LENGTH = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 16;
+
+ /**
+ * The feature id for the '<em><b>Function Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__FUNCTION_TYPE = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 17;
+
+ /**
+ * The feature id for the '<em><b>Predicate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__PREDICATE = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 18;
+
+ /**
+ * The feature id for the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__EXTERNAL_ACTION = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 19;
+
+ /**
+ * The feature id for the '<em><b>Cardinality</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__CARDINALITY = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 20;
+
+ /**
+ * The feature id for the '<em><b>Allow Parallel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__ALLOW_PARALLEL = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 21;
+
+ /**
+ * The feature id for the '<em><b>Return Clause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__RETURN_CLAUSE = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 22;
+
+ /**
+ * The feature id for the '<em><b>Origin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__ORIGIN = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 23;
+
+ /**
+ * The feature id for the '<em><b>Inherit Lock Request</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__INHERIT_LOCK_REQUEST = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 24;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__DIALECT = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 25;
+
+ /**
+ * The feature id for the '<em><b>Inline</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__INLINE = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 26;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__VERSION = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 27;
+
+ /**
+ * The feature id for the '<em><b>Secured</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__SECURED = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 28;
+
+ /**
+ * The feature id for the '<em><b>Returns Self As Result</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__RETURNS_SELF_AS_RESULT = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 29;
+
+ /**
+ * The feature id for the '<em><b>Implemented</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD__IMPLEMENTED = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 30;
+
+ /**
+ * The number of structural features of the '<em>DB2 Method</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_METHOD_FEATURE_COUNT = SQLRoutinesPackage.METHOD_FEATURE_COUNT + 31;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl <em>DB2 Extended Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2ExtendedOptions()
+ * @generated
+ */
+ int DB2_EXTENDED_OPTIONS = 16;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Classpath Compile Jars</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Pre Compile Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>For Debug</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__FOR_DEBUG = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Built</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__BUILT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Compile Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__COMPILE_OPTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Link Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__LINK_OPTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Bind Opts</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__BIND_OPTS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Colid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS__COLID = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>DB2 Extended Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_EXTENDED_OPTIONS_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 8;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2AliasImpl <em>DB2 Alias</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2AliasImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Alias()
+ * @generated
+ */
+ int DB2_ALIAS = 17;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__EANNOTATIONS = SQLTablesPackage.TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__NAME = SQLTablesPackage.TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__DEPENDENCIES = SQLTablesPackage.TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__DESCRIPTION = SQLTablesPackage.TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__LABEL = SQLTablesPackage.TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__COMMENTS = SQLTablesPackage.TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__EXTENSIONS = SQLTablesPackage.TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__PRIVILEGES = SQLTablesPackage.TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__COLUMNS = SQLTablesPackage.TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__SUPERTABLE = SQLTablesPackage.TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__SUBTABLES = SQLTablesPackage.TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__SCHEMA = SQLTablesPackage.TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__UDT = SQLTablesPackage.TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__TRIGGERS = SQLTablesPackage.TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__INDEX = SQLTablesPackage.TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__SELF_REF_COLUMN_GENERATION = SQLTablesPackage.TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__INSERTABLE = SQLTablesPackage.TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__UPDATABLE = SQLTablesPackage.TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Aliased Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS__ALIASED_TABLE = SQLTablesPackage.TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>DB2 Alias</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ALIAS_FEATURE_COUNT = SQLTablesPackage.TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl <em>DB2 Materialized Query Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2MaterializedQueryTable()
+ * @generated
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE = 18;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__EANNOTATIONS = SQLTablesPackage.DERIVED_TABLE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__NAME = SQLTablesPackage.DERIVED_TABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__DEPENDENCIES = SQLTablesPackage.DERIVED_TABLE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__DESCRIPTION = SQLTablesPackage.DERIVED_TABLE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__LABEL = SQLTablesPackage.DERIVED_TABLE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__COMMENTS = SQLTablesPackage.DERIVED_TABLE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__EXTENSIONS = SQLTablesPackage.DERIVED_TABLE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__PRIVILEGES = SQLTablesPackage.DERIVED_TABLE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Columns</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__COLUMNS = SQLTablesPackage.DERIVED_TABLE__COLUMNS;
+
+ /**
+ * The feature id for the '<em><b>Supertable</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__SUPERTABLE = SQLTablesPackage.DERIVED_TABLE__SUPERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Subtables</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__SUBTABLES = SQLTablesPackage.DERIVED_TABLE__SUBTABLES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__SCHEMA = SQLTablesPackage.DERIVED_TABLE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Udt</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__UDT = SQLTablesPackage.DERIVED_TABLE__UDT;
+
+ /**
+ * The feature id for the '<em><b>Triggers</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__TRIGGERS = SQLTablesPackage.DERIVED_TABLE__TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Index</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__INDEX = SQLTablesPackage.DERIVED_TABLE__INDEX;
+
+ /**
+ * The feature id for the '<em><b>Self Ref Column Generation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__SELF_REF_COLUMN_GENERATION = SQLTablesPackage.DERIVED_TABLE__SELF_REF_COLUMN_GENERATION;
+
+ /**
+ * The feature id for the '<em><b>Insertable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__INSERTABLE = SQLTablesPackage.DERIVED_TABLE__INSERTABLE;
+
+ /**
+ * The feature id for the '<em><b>Updatable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__UPDATABLE = SQLTablesPackage.DERIVED_TABLE__UPDATABLE;
+
+ /**
+ * The feature id for the '<em><b>Query Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__QUERY_EXPRESSION = SQLTablesPackage.DERIVED_TABLE__QUERY_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Refresh</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__REFRESH = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Optimize Query</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Maintained By</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__MAINTAINED_BY = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Masks</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__MASKS = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Permissions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>DB2 Materialized Query Table</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MATERIALIZED_QUERY_TABLE_FEATURE_COUNT = SQLTablesPackage.DERIVED_TABLE_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl <em>DB2 Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Index()
+ * @generated
+ */
+ int DB2_INDEX = 19;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__EANNOTATIONS = SQLConstraintsPackage.INDEX__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__NAME = SQLConstraintsPackage.INDEX__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__DEPENDENCIES = SQLConstraintsPackage.INDEX__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__DESCRIPTION = SQLConstraintsPackage.INDEX__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__LABEL = SQLConstraintsPackage.INDEX__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__COMMENTS = SQLConstraintsPackage.INDEX__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__EXTENSIONS = SQLConstraintsPackage.INDEX__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__PRIVILEGES = SQLConstraintsPackage.INDEX__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__SCHEMA = SQLConstraintsPackage.INDEX__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Clustered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__CLUSTERED = SQLConstraintsPackage.INDEX__CLUSTERED;
+
+ /**
+ * The feature id for the '<em><b>Fill Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__FILL_FACTOR = SQLConstraintsPackage.INDEX__FILL_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__UNIQUE = SQLConstraintsPackage.INDEX__UNIQUE;
+
+ /**
+ * The feature id for the '<em><b>System Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__SYSTEM_GENERATED = SQLConstraintsPackage.INDEX__SYSTEM_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__MEMBERS = SQLConstraintsPackage.INDEX__MEMBERS;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__TABLE = SQLConstraintsPackage.INDEX__TABLE;
+
+ /**
+ * The feature id for the '<em><b>Foreign Key</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__FOREIGN_KEY = SQLConstraintsPackage.INDEX__FOREIGN_KEY;
+
+ /**
+ * The feature id for the '<em><b>Included Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__INCLUDED_MEMBERS = SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS;
+
+ /**
+ * The feature id for the '<em><b>Index Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__INDEX_TYPE = SQLConstraintsPackage.INDEX_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Bus Period Without Overlap</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP = SQLConstraintsPackage.INDEX_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Encoded Vector</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__ENCODED_VECTOR = SQLConstraintsPackage.INDEX_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>DB2 Multidimensional Index</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX = SQLConstraintsPackage.INDEX_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>DB2 Index</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_INDEX_FEATURE_COUNT = SQLConstraintsPackage.INDEX_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MultidimensionalIndexImpl <em>DB2 Multidimensional Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MultidimensionalIndexImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2MultidimensionalIndex()
+ * @generated
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX = 20;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__EANNOTATIONS = SQLConstraintsPackage.INDEX__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__NAME = SQLConstraintsPackage.INDEX__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__DEPENDENCIES = SQLConstraintsPackage.INDEX__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__DESCRIPTION = SQLConstraintsPackage.INDEX__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__LABEL = SQLConstraintsPackage.INDEX__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__COMMENTS = SQLConstraintsPackage.INDEX__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__EXTENSIONS = SQLConstraintsPackage.INDEX__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__PRIVILEGES = SQLConstraintsPackage.INDEX__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__SCHEMA = SQLConstraintsPackage.INDEX__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Clustered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__CLUSTERED = SQLConstraintsPackage.INDEX__CLUSTERED;
+
+ /**
+ * The feature id for the '<em><b>Fill Factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__FILL_FACTOR = SQLConstraintsPackage.INDEX__FILL_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__UNIQUE = SQLConstraintsPackage.INDEX__UNIQUE;
+
+ /**
+ * The feature id for the '<em><b>System Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__SYSTEM_GENERATED = SQLConstraintsPackage.INDEX__SYSTEM_GENERATED;
+
+ /**
+ * The feature id for the '<em><b>Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__MEMBERS = SQLConstraintsPackage.INDEX__MEMBERS;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__TABLE = SQLConstraintsPackage.INDEX__TABLE;
+
+ /**
+ * The feature id for the '<em><b>Foreign Key</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__FOREIGN_KEY = SQLConstraintsPackage.INDEX__FOREIGN_KEY;
+
+ /**
+ * The feature id for the '<em><b>Included Members</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__INCLUDED_MEMBERS = SQLConstraintsPackage.INDEX__INCLUDED_MEMBERS;
+
+ /**
+ * The feature id for the '<em><b>Dimension Indexes</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES = SQLConstraintsPackage.INDEX_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>DB2 Multidimensional Index</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MULTIDIMENSIONAL_INDEX_FEATURE_COUNT = SQLConstraintsPackage.INDEX_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function <em>DB2 Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Function()
+ * @generated
+ */
+ int DB2_FUNCTION = 21;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__EANNOTATIONS = DB2_ROUTINE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__NAME = DB2_ROUTINE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__DEPENDENCIES = DB2_ROUTINE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__DESCRIPTION = DB2_ROUTINE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__LABEL = DB2_ROUTINE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__COMMENTS = DB2_ROUTINE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__EXTENSIONS = DB2_ROUTINE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__PRIVILEGES = DB2_ROUTINE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Specific Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SPECIFIC_NAME = DB2_ROUTINE__SPECIFIC_NAME;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__LANGUAGE = DB2_ROUTINE__LANGUAGE;
+
+ /**
+ * The feature id for the '<em><b>Parameter Style</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__PARAMETER_STYLE = DB2_ROUTINE__PARAMETER_STYLE;
+
+ /**
+ * The feature id for the '<em><b>Deterministic</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__DETERMINISTIC = DB2_ROUTINE__DETERMINISTIC;
+
+ /**
+ * The feature id for the '<em><b>Sql Data Access</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SQL_DATA_ACCESS = DB2_ROUTINE__SQL_DATA_ACCESS;
+
+ /**
+ * The feature id for the '<em><b>Creation TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__CREATION_TS = DB2_ROUTINE__CREATION_TS;
+
+ /**
+ * The feature id for the '<em><b>Last Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__LAST_ALTERED_TS = DB2_ROUTINE__LAST_ALTERED_TS;
+
+ /**
+ * The feature id for the '<em><b>Authorization ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__AUTHORIZATION_ID = DB2_ROUTINE__AUTHORIZATION_ID;
+
+ /**
+ * The feature id for the '<em><b>Security</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SECURITY = DB2_ROUTINE__SECURITY;
+
+ /**
+ * The feature id for the '<em><b>External Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__EXTERNAL_NAME = DB2_ROUTINE__EXTERNAL_NAME;
+
+ /**
+ * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__PARAMETERS = DB2_ROUTINE__PARAMETERS;
+
+ /**
+ * The feature id for the '<em><b>Source</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SOURCE = DB2_ROUTINE__SOURCE;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SCHEMA = DB2_ROUTINE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__FENCED = DB2_ROUTINE__FENCED;
+
+ /**
+ * The feature id for the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__THREADSAFE = DB2_ROUTINE__THREADSAFE;
+
+ /**
+ * The feature id for the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__DB_INFO = DB2_ROUTINE__DB_INFO;
+
+ /**
+ * The feature id for the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__IMPLICIT_SCHEMA = DB2_ROUTINE__IMPLICIT_SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__FEDERATED = DB2_ROUTINE__FEDERATED;
+
+ /**
+ * The feature id for the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__PARM_CCSID = DB2_ROUTINE__PARM_CCSID;
+
+ /**
+ * The feature id for the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SPECIAL_REGISTER = DB2_ROUTINE__SPECIAL_REGISTER;
+
+ /**
+ * The feature id for the '<em><b>Change State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__CHANGE_STATE = DB2_ROUTINE__CHANGE_STATE;
+
+ /**
+ * The feature id for the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__DEBUG_ID = DB2_ROUTINE__DEBUG_ID;
+
+ /**
+ * The feature id for the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__PROGRAM_TYPE = DB2_ROUTINE__PROGRAM_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__ORIG_SCHEMA_NAME = DB2_ROUTINE__ORIG_SCHEMA_NAME;
+
+ /**
+ * The feature id for the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__ORIG_PARM_SIG = DB2_ROUTINE__ORIG_PARM_SIG;
+
+ /**
+ * The feature id for the '<em><b>Extended Options</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__EXTENDED_OPTIONS = DB2_ROUTINE__EXTENDED_OPTIONS;
+
+ /**
+ * The feature id for the '<em><b>Routine Extensions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__ROUTINE_EXTENSIONS = DB2_ROUTINE__ROUTINE_EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Final Call</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__FINAL_CALL = DB2_ROUTINE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SCRATCH_PAD = DB2_ROUTINE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Scratch Pad Length</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SCRATCH_PAD_LENGTH = DB2_ROUTINE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Function Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__FUNCTION_TYPE = DB2_ROUTINE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Predicate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__PREDICATE = DB2_ROUTINE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>External Action</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__EXTERNAL_ACTION = DB2_ROUTINE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Cardinality</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__CARDINALITY = DB2_ROUTINE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Allow Parallel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__ALLOW_PARALLEL = DB2_ROUTINE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Return Clause</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__RETURN_CLAUSE = DB2_ROUTINE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Origin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__ORIGIN = DB2_ROUTINE_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Inherit Lock Request</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__INHERIT_LOCK_REQUEST = DB2_ROUTINE_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Dialect</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__DIALECT = DB2_ROUTINE_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Inline</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__INLINE = DB2_ROUTINE_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__VERSION = DB2_ROUTINE_FEATURE_COUNT + 13;
+
+ /**
+ * The feature id for the '<em><b>Secured</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION__SECURED = DB2_ROUTINE_FEATURE_COUNT + 14;
+
+ /**
+ * The number of structural features of the '<em>DB2 Function</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_FUNCTION_FEATURE_COUNT = DB2_ROUTINE_FEATURE_COUNT + 15;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl <em>DB2 Java Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2JavaOptions()
+ * @generated
+ */
+ int DB2_JAVA_OPTIONS = 22;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Class Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__CLASS_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Method Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__METHOD_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Sqlj</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__SQLJ = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Procedure</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__PROCEDURE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Jar</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS__JAR = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>DB2 Java Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAVA_OPTIONS_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureDeployImpl <em>DB2 Procedure Deploy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureDeployImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2ProcedureDeploy()
+ * @generated
+ */
+ int DB2_PROCEDURE_DEPLOY = 23;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY__FILE_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>DB2 Procedure Deploy</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PROCEDURE_DEPLOY_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2OLAPObjectImpl <em>DB2OLAP Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2OLAPObjectImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2OLAPObject()
+ * @generated
+ */
+ int DB2OLAP_OBJECT = 24;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>DB2OLAP Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2OLAP_OBJECT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension <em>DB2 Routine Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2RoutineExtension()
+ * @generated
+ */
+ int DB2_ROUTINE_EXTENSION = 25;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The number of structural features of the '<em>DB2 Routine Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_ROUTINE_EXTENSION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl <em>DB2 Identity Specifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2IdentitySpecifier()
+ * @generated
+ */
+ int DB2_IDENTITY_SPECIFIER = 26;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__EANNOTATIONS = SQLSchemaPackage.IDENTITY_SPECIFIER__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__NAME = SQLSchemaPackage.IDENTITY_SPECIFIER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__DEPENDENCIES = SQLSchemaPackage.IDENTITY_SPECIFIER__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__DESCRIPTION = SQLSchemaPackage.IDENTITY_SPECIFIER__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__LABEL = SQLSchemaPackage.IDENTITY_SPECIFIER__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__COMMENTS = SQLSchemaPackage.IDENTITY_SPECIFIER__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__EXTENSIONS = SQLSchemaPackage.IDENTITY_SPECIFIER__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__PRIVILEGES = SQLSchemaPackage.IDENTITY_SPECIFIER__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Generation Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__GENERATION_TYPE = SQLSchemaPackage.IDENTITY_SPECIFIER__GENERATION_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Start Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__START_VALUE = SQLSchemaPackage.IDENTITY_SPECIFIER__START_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Increment</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__INCREMENT = SQLSchemaPackage.IDENTITY_SPECIFIER__INCREMENT;
+
+ /**
+ * The feature id for the '<em><b>Minimum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__MINIMUM = SQLSchemaPackage.IDENTITY_SPECIFIER__MINIMUM;
+
+ /**
+ * The feature id for the '<em><b>Maximum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__MAXIMUM = SQLSchemaPackage.IDENTITY_SPECIFIER__MAXIMUM;
+
+ /**
+ * The feature id for the '<em><b>Cycle Option</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__CYCLE_OPTION = SQLSchemaPackage.IDENTITY_SPECIFIER__CYCLE_OPTION;
+
+ /**
+ * The feature id for the '<em><b>Cache</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__CACHE = SQLSchemaPackage.IDENTITY_SPECIFIER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Order</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__ORDER = SQLSchemaPackage.IDENTITY_SPECIFIER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>System Generated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED = SQLSchemaPackage.IDENTITY_SPECIFIER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Restart Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER__RESTART_VALUE = SQLSchemaPackage.IDENTITY_SPECIFIER_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>DB2 Identity Specifier</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_IDENTITY_SPECIFIER_FEATURE_COUNT = SQLSchemaPackage.IDENTITY_SPECIFIER_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl <em>DB2 Jar</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Jar()
+ * @generated
+ */
+ int DB2_JAR = 27;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__FILE_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__PATH = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Owner</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__OWNER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Created TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__CREATED_TS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Altered TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__ALTERED_TS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Procedures</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__PROCEDURES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>DB2 Jar</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_JAR_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl <em>DB2 Column</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Column()
+ * @generated
+ */
+ int DB2_COLUMN = 28;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__EANNOTATIONS = SQLTablesPackage.COLUMN__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__NAME = SQLTablesPackage.COLUMN__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__DEPENDENCIES = SQLTablesPackage.COLUMN__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__DESCRIPTION = SQLTablesPackage.COLUMN__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__LABEL = SQLTablesPackage.COLUMN__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__COMMENTS = SQLTablesPackage.COLUMN__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__EXTENSIONS = SQLTablesPackage.COLUMN__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__PRIVILEGES = SQLTablesPackage.COLUMN__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Contained Type</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__CONTAINED_TYPE = SQLTablesPackage.COLUMN__CONTAINED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Referenced Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__REFERENCED_TYPE = SQLTablesPackage.COLUMN__REFERENCED_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__TABLE = SQLTablesPackage.COLUMN__TABLE;
+
+ /**
+ * The feature id for the '<em><b>Identity Specifier</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__IDENTITY_SPECIFIER = SQLTablesPackage.COLUMN__IDENTITY_SPECIFIER;
+
+ /**
+ * The feature id for the '<em><b>Generate Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__GENERATE_EXPRESSION = SQLTablesPackage.COLUMN__GENERATE_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Implementation Dependent</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__IMPLEMENTATION_DEPENDENT = SQLTablesPackage.COLUMN__IMPLEMENTATION_DEPENDENT;
+
+ /**
+ * The feature id for the '<em><b>Nullable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__NULLABLE = SQLTablesPackage.COLUMN__NULLABLE;
+
+ /**
+ * The feature id for the '<em><b>Default Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__DEFAULT_VALUE = SQLTablesPackage.COLUMN__DEFAULT_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Scope Check</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__SCOPE_CHECK = SQLTablesPackage.COLUMN__SCOPE_CHECK;
+
+ /**
+ * The feature id for the '<em><b>Scope Checked</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__SCOPE_CHECKED = SQLTablesPackage.COLUMN__SCOPE_CHECKED;
+
+ /**
+ * The feature id for the '<em><b>Generation Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__GENERATION_TYPE = SQLTablesPackage.COLUMN_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Row Change Timestamp</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__ROW_CHANGE_TIMESTAMP = SQLTablesPackage.COLUMN_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Row Begin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__ROW_BEGIN = SQLTablesPackage.COLUMN_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Row End</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__ROW_END = SQLTablesPackage.COLUMN_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Trans Start ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__TRANS_START_ID = SQLTablesPackage.COLUMN_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Begin Period</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__BEGIN_PERIOD = SQLTablesPackage.COLUMN_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>End Period</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN__END_PERIOD = SQLTablesPackage.COLUMN_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>DB2 Column</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_COLUMN_FEATURE_COUNT = SQLTablesPackage.COLUMN_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XSRObjectImpl <em>DB2XSR Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XSRObjectImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XSRObject()
+ * @generated
+ */
+ int DB2XSR_OBJECT = 29;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>DB2XSR Object</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XSR_OBJECT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl <em>DB2XML Schema</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchema()
+ * @generated
+ */
+ int DB2XML_SCHEMA = 30;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__EANNOTATIONS = DB2XSR_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__NAME = DB2XSR_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__DEPENDENCIES = DB2XSR_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__DESCRIPTION = DB2XSR_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__LABEL = DB2XSR_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__COMMENTS = DB2XSR_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__EXTENSIONS = DB2XSR_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__PRIVILEGES = DB2XSR_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__SCHEMA = DB2XSR_OBJECT__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Decomposition</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__DECOMPOSITION = DB2XSR_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Status</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__STATUS = DB2XSR_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Xml Schema Docs</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA__XML_SCHEMA_DOCS = DB2XSR_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>DB2XML Schema</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_FEATURE_COUNT = DB2XSR_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl <em>DB2XML Schema Document</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaDocument()
+ * @generated
+ */
+ int DB2XML_SCHEMA_DOCUMENT = 31;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__FILE_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Schema Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Target Namespace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Primary</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__PRIMARY = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Xml Schema</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Xml Schema Doc Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>DB2XML Schema Document</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOCUMENT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocPropertiesImpl <em>DB2XML Schema Doc Properties</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocPropertiesImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaDocProperties()
+ * @generated
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES = 32;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__VALUE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Xml Schema Doc</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>DB2XML Schema Doc Properties</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2XML_SCHEMA_DOC_PROPERTIES_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl <em>DB2 Package Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2PackageStatement()
+ * @generated
+ */
+ int DB2_PACKAGE_STATEMENT = 33;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Statement Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Section Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__SECTION_NUMBER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Package</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__PACKAGE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Sql Statement</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT__SQL_STATEMENT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>DB2 Package Statement</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PACKAGE_STATEMENT_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DistinctUserDefinedTypeImpl <em>DB2 Distinct User Defined Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DistinctUserDefinedTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2DistinctUserDefinedType()
+ * @generated
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE = 34;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__EANNOTATIONS = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__NAME = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__DEPENDENCIES = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__DESCRIPTION = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__LABEL = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__COMMENTS = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__EXTENSIONS = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__PRIVILEGES = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__SCHEMA = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__SCHEMA;
+
+ /**
+ * The feature id for the '<em><b>Ordering</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__ORDERING = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__ORDERING;
+
+ /**
+ * The feature id for the '<em><b>Predefined Representation</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE__PREDEFINED_REPRESENTATION;
+
+ /**
+ * The number of structural features of the '<em>DB2 Distinct User Defined Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT = SQLDataTypesPackage.DISTINCT_USER_DEFINED_TYPE_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl <em>DB2 Period</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Period()
+ * @generated
+ */
+ int DB2_PERIOD = 35;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERIOD__TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Begin Column</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERIOD__BEGIN_COLUMN = 1;
+
+ /**
+ * The feature id for the '<em><b>End Column</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERIOD__END_COLUMN = 2;
+
+ /**
+ * The feature id for the '<em><b>Table</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERIOD__TABLE = 3;
+
+ /**
+ * The number of structural features of the '<em>DB2 Period</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERIOD_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ClusterImpl <em>DB2 Cluster</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ClusterImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Cluster()
+ * @generated
+ */
+ int DB2_CLUSTER = 36;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Level</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__LEVEL = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Instance</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__INSTANCE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Members</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER__MEMBERS = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>DB2 Cluster</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_CLUSTER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl <em>DB2 Member</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Member()
+ * @generated
+ */
+ int DB2_MEMBER = 37;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__ID = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Home Host</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__HOME_HOST = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Current Host</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__CURRENT_HOST = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__STATE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Cluster</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER__CLUSTER = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>DB2 Member</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MEMBER_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UniqueConstraintExtensionImpl <em>DB2 Unique Constraint Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UniqueConstraintExtensionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2UniqueConstraintExtension()
+ * @generated
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION = 38;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>SQL Object</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Bus Period Without Overlap</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>DB2 Unique Constraint Extension</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_UNIQUE_CONSTRAINT_EXTENSION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl <em>DB2 Mask</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Mask()
+ * @generated
+ */
+ int DB2_MASK = 39;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Correlation Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__CORRELATION_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Case Expression</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__CASE_EXPRESSION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Enable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__ENABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Subject Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__SUBJECT_TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Subject MQT</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__SUBJECT_MQT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Subject Column</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK__SUBJECT_COLUMN = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>DB2 Mask</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_MASK_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 7;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl <em>DB2 Permission</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Permission()
+ * @generated
+ */
+ int DB2_PERMISSION = 40;
+
+ /**
+ * The feature id for the '<em><b>EAnnotations</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__EANNOTATIONS = SQLSchemaPackage.SQL_OBJECT__EANNOTATIONS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__NAME = SQLSchemaPackage.SQL_OBJECT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Dependencies</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__DEPENDENCIES = SQLSchemaPackage.SQL_OBJECT__DEPENDENCIES;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__DESCRIPTION = SQLSchemaPackage.SQL_OBJECT__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__LABEL = SQLSchemaPackage.SQL_OBJECT__LABEL;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__COMMENTS = SQLSchemaPackage.SQL_OBJECT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Extensions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__EXTENSIONS = SQLSchemaPackage.SQL_OBJECT__EXTENSIONS;
+
+ /**
+ * The feature id for the '<em><b>Privileges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__PRIVILEGES = SQLSchemaPackage.SQL_OBJECT__PRIVILEGES;
+
+ /**
+ * The feature id for the '<em><b>Correlation Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__CORRELATION_NAME = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Search Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__SEARCH_CONDITION = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Enable</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__ENABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Schema</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__SCHEMA = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Subject Table</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__SUBJECT_TABLE = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Subject MQT</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION__SUBJECT_MQT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>DB2 Permission</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DB2_PERMISSION_FEATURE_COUNT = SQLSchemaPackage.SQL_OBJECT_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType <em>Isolation Level Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getIsolationLevelType()
+ * @generated
+ */
+ int ISOLATION_LEVEL_TYPE = 41;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType <em>DB2 Index Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2IndexType()
+ * @generated
+ */
+ int DB2_INDEX_TYPE = 42;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType <em>Data Capture Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDataCaptureType()
+ * @generated
+ */
+ int DATA_CAPTURE_TYPE = 43;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.UnitType <em>Unit Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getUnitType()
+ * @generated
+ */
+ int UNIT_TYPE = 44;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.GenerateType <em>Generate Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.GenerateType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getGenerateType()
+ * @generated
+ */
+ int GENERATE_TYPE = 45;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition <em>DB2XML Schema Decomposition</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaDecomposition()
+ * @generated
+ */
+ int DB2XML_SCHEMA_DECOMPOSITION = 46;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus <em>DB2XML Schema Status</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaStatus()
+ * @generated
+ */
+ int DB2XML_SCHEMA_STATUS = 47;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.OriginType <em>Origin Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.OriginType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getOriginType()
+ * @generated
+ */
+ int ORIGIN_TYPE = 48;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.ReoptType <em>Reopt Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.ReoptType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getReoptType()
+ * @generated
+ */
+ int REOPT_TYPE = 49;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect <em>Source Dialect</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getSourceDialect()
+ * @generated
+ */
+ int SOURCE_DIALECT = 50;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType <em>DB2 Period Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2PeriodType()
+ * @generated
+ */
+ int DB2_PERIOD_TYPE = 51;
+
+
+ /**
+ * The meta object id for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization <em>DB2 Table Organization</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2TableOrganization()
+ * @generated
+ */
+ int DB2_TABLE_ORGANIZATION = 52;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database <em>DB2 Database</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Database</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Database
+ * @generated
+ */
+ EClass getDB2Database();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isPartitioned <em>Partitioned</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Partitioned</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isPartitioned()
+ * @see #getDB2Database()
+ * @generated
+ */
+ EAttribute getDB2Database_Partitioned();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isDefaultOrganizeByRow <em>Default Organize By Row</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default Organize By Row</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Database#isDefaultOrganizeByRow()
+ * @see #getDB2Database()
+ * @generated
+ */
+ EAttribute getDB2Database_DefaultOrganizeByRow();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package <em>DB2 Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Package</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package
+ * @generated
+ */
+ EClass getDB2Package();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#isOperative <em>Operative</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Operative</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#isOperative()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_Operative();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getValid <em>Valid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Valid</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getValid()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_Valid();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getVersion <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getVersion()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_Version();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getDefaultSchema <em>Default Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getDefaultSchema()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_DefaultSchema();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSqlPath <em>Sql Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sql Path</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSqlPath()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_SqlPath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getReoptVar <em>Reopt Var</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Reopt Var</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getReoptVar()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_ReoptVar();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getIsolation <em>Isolation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Isolation</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getIsolation()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_Isolation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getUniqueID <em>Unique ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Unique ID</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getUniqueID()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_UniqueID();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getLastBindTS <em>Last Bind TS</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Last Bind TS</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getLastBindTS()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EAttribute getDB2Package_LastBindTS();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSchema()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EReference getDB2Package_Schema();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getStatements <em>Statements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Statements</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getStatements()
+ * @see #getDB2Package()
+ * @generated
+ */
+ EReference getDB2Package_Statements();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table <em>DB2 Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table
+ * @generated
+ */
+ EClass getDB2Table();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getDataCapture <em>Data Capture</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data Capture</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getDataCapture()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EAttribute getDB2Table_DataCapture();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateRowAccessControl <em>Activate Row Access Control</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activate Row Access Control</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateRowAccessControl()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EAttribute getDB2Table_ActivateRowAccessControl();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateColumnAccessControl <em>Activate Column Access Control</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activate Column Access Control</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateColumnAccessControl()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EAttribute getDB2Table_ActivateColumnAccessControl();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getOrganizeBy <em>Organize By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Organize By</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getOrganizeBy()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EAttribute getDB2Table_OrganizeBy();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPackages <em>Packages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Packages</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPackages()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EReference getDB2Table_Packages();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPeriods <em>Periods</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Periods</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPeriods()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EReference getDB2Table_Periods();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getHistoryTable <em>History Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>History Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getHistoryTable()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EReference getDB2Table_HistoryTable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getTemporalTable <em>Temporal Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Temporal Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getTemporalTable()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EReference getDB2Table_TemporalTable();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getMasks <em>Masks</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Masks</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getMasks()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EReference getDB2Table_Masks();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPermissions <em>Permissions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Permissions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPermissions()
+ * @see #getDB2Table()
+ * @generated
+ */
+ EReference getDB2Table_Permissions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger <em>DB2 Trigger</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Trigger</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger
+ * @generated
+ */
+ EClass getDB2Trigger();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isOperative <em>Operative</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Operative</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isOperative()
+ * @see #getDB2Trigger()
+ * @generated
+ */
+ EAttribute getDB2Trigger_Operative();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isSecured <em>Secured</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Secured</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isSecured()
+ * @see #getDB2Trigger()
+ * @generated
+ */
+ EAttribute getDB2Trigger_Secured();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure <em>DB2 Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Procedure</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure
+ * @generated
+ */
+ EClass getDB2Procedure();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isModelResultSets <em>Model Result Sets</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Model Result Sets</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isModelResultSets()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EAttribute getDB2Procedure_ModelResultSets();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isNullInput <em>Null Input</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Null Input</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isNullInput()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EAttribute getDB2Procedure_NullInput();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getVersion <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getVersion()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EAttribute getDB2Procedure_Version();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDialect <em>Dialect</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dialect</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDialect()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EAttribute getDB2Procedure_Dialect();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isExternalAction <em>External Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>External Action</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isExternalAction()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EAttribute getDB2Procedure_ExternalAction();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getReturn <em>Return</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Return</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getReturn()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EReference getDB2Procedure_Return();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getJavaOptions <em>Java Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Java Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getJavaOptions()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EReference getDB2Procedure_JavaOptions();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDeploy <em>Deploy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Deploy</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDeploy()
+ * @see #getDB2Procedure()
+ * @generated
+ */
+ EReference getDB2Procedure_Deploy();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema <em>DB2 Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema
+ * @generated
+ */
+ EClass getDB2Schema();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getAccessPlans <em>Access Plans</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Access Plans</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getAccessPlans()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_AccessPlans();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getOlapObjects <em>Olap Objects</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Olap Objects</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getOlapObjects()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_OlapObjects();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getJars <em>Jars</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Jars</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getJars()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_Jars();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getXsrObjects <em>Xsr Objects</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Xsr Objects</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getXsrObjects()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_XsrObjects();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPackages <em>Packages</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Packages</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPackages()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_Packages();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getMasks <em>Masks</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Masks</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getMasks()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_Masks();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPermissions <em>Permissions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Permissions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPermissions()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_Permissions();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getModules <em>Modules</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Modules</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getModules()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_Modules();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getGlobalVariables <em>Global Variables</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Global Variables</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getGlobalVariables()
+ * @see #getDB2Schema()
+ * @generated
+ */
+ EReference getDB2Schema_GlobalVariables();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine <em>DB2 Routine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Routine</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine
+ * @generated
+ */
+ EClass getDB2Routine();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getFenced <em>Fenced</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Fenced</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getFenced()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_Fenced();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getThreadsafe <em>Threadsafe</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Threadsafe</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getThreadsafe()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_Threadsafe();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isDbInfo <em>Db Info</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Db Info</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isDbInfo()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_DbInfo();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isImplicitSchema <em>Implicit Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Implicit Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isImplicitSchema()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_ImplicitSchema();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isFederated <em>Federated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Federated</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isFederated()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_Federated();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getParmCcsid <em>Parm Ccsid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Parm Ccsid</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getParmCcsid()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_ParmCcsid();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getSpecialRegister <em>Special Register</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Special Register</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getSpecialRegister()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_SpecialRegister();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getChangeState <em>Change State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Change State</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getChangeState()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_ChangeState();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getDebugId <em>Debug Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Debug Id</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getDebugId()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_DebugId();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getProgramType <em>Program Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Program Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getProgramType()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_ProgramType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigSchemaName <em>Orig Schema Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Orig Schema Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigSchemaName()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_OrigSchemaName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigParmSig <em>Orig Parm Sig</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Orig Parm Sig</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigParmSig()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EAttribute getDB2Routine_OrigParmSig();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getExtendedOptions <em>Extended Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Extended Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getExtendedOptions()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EReference getDB2Routine_ExtendedOptions();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getRoutineExtensions <em>Routine Extensions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Routine Extensions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getRoutineExtensions()
+ * @see #getDB2Routine()
+ * @generated
+ */
+ EReference getDB2Routine_RoutineExtensions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager <em>DB2 Database Manager</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Database Manager</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager
+ * @generated
+ */
+ EClass getDB2DatabaseManager();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getDatabases <em>Databases</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Databases</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getDatabases()
+ * @see #getDB2DatabaseManager()
+ * @generated
+ */
+ EReference getDB2DatabaseManager_Databases();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getDb2Process <em>Db2 Process</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Db2 Process</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getDb2Process()
+ * @see #getDB2DatabaseManager()
+ * @generated
+ */
+ EReference getDB2DatabaseManager_Db2Process();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getServer <em>Server</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Server</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getServer()
+ * @see #getDB2DatabaseManager()
+ * @generated
+ */
+ EReference getDB2DatabaseManager_Server();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getCluster <em>Cluster</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Cluster</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager#getCluster()
+ * @see #getDB2DatabaseManager()
+ * @generated
+ */
+ EReference getDB2DatabaseManager_Cluster();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2View <em>DB2 View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 View</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2View
+ * @generated
+ */
+ EClass getDB2View();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2View#isOperative <em>Operative</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Operative</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2View#isOperative()
+ * @see #getDB2View()
+ * @generated
+ */
+ EAttribute getDB2View_Operative();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess <em>DB2 Application Process</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Application Process</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess
+ * @generated
+ */
+ EClass getDB2ApplicationProcess();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getIsolationLevel <em>Isolation Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Isolation Level</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getIsolationLevel()
+ * @see #getDB2ApplicationProcess()
+ * @generated
+ */
+ EAttribute getDB2ApplicationProcess_IsolationLevel();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getUnitOfWork <em>Unit Of Work</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Unit Of Work</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess#getUnitOfWork()
+ * @see #getDB2ApplicationProcess()
+ * @generated
+ */
+ EReference getDB2ApplicationProcess_UnitOfWork();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Transaction <em>DB2 Transaction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Transaction</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Transaction
+ * @generated
+ */
+ EClass getDB2Transaction();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2SystemSchema <em>DB2 System Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 System Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2SystemSchema
+ * @generated
+ */
+ EClass getDB2SystemSchema();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source <em>DB2 Source</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Source</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source
+ * @generated
+ */
+ EClass getDB2Source();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getFileName <em>File Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getFileName()
+ * @see #getDB2Source()
+ * @generated
+ */
+ EAttribute getDB2Source_FileName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPackageName <em>Package Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Package Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPackageName()
+ * @see #getDB2Source()
+ * @generated
+ */
+ EAttribute getDB2Source_PackageName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getDb2PackageName <em>Db2 Package Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Db2 Package Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getDb2PackageName()
+ * @see #getDB2Source()
+ * @generated
+ */
+ EAttribute getDB2Source_Db2PackageName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getLastModified <em>Last Modified</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Last Modified</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getLastModified()
+ * @see #getDB2Source()
+ * @generated
+ */
+ EAttribute getDB2Source_LastModified();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getSupporting <em>Supporting</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Supporting</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getSupporting()
+ * @see #getDB2Source()
+ * @generated
+ */
+ EReference getDB2Source_Supporting();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPrimary <em>Primary</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Primary</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPrimary()
+ * @see #getDB2Source()
+ * @generated
+ */
+ EReference getDB2Source_Primary();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan <em>DB2 Access Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Access Plan</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan
+ * @generated
+ */
+ EClass getDB2AccessPlan();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction <em>DB2 User Defined Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 User Defined Function</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction
+ * @generated
+ */
+ EClass getDB2UserDefinedFunction();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Method <em>DB2 Method</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Method</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Method
+ * @generated
+ */
+ EClass getDB2Method();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isReturnsSelfAsResult <em>Returns Self As Result</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Returns Self As Result</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isReturnsSelfAsResult()
+ * @see #getDB2Method()
+ * @generated
+ */
+ EAttribute getDB2Method_ReturnsSelfAsResult();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isImplemented <em>Implemented</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Implemented</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Method#isImplemented()
+ * @see #getDB2Method()
+ * @generated
+ */
+ EAttribute getDB2Method_Implemented();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions <em>DB2 Extended Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Extended Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions
+ * @generated
+ */
+ EClass getDB2ExtendedOptions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getClasspathCompileJars <em>Classpath Compile Jars</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Classpath Compile Jars</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getClasspathCompileJars()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_ClasspathCompileJars();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getPreCompileOpts <em>Pre Compile Opts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pre Compile Opts</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getPreCompileOpts()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_PreCompileOpts();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isForDebug <em>For Debug</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>For Debug</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isForDebug()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_ForDebug();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isBuilt <em>Built</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Built</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#isBuilt()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_Built();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getCompileOpts <em>Compile Opts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Compile Opts</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getCompileOpts()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_CompileOpts();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getLinkOpts <em>Link Opts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Link Opts</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getLinkOpts()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_LinkOpts();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getBindOpts <em>Bind Opts</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bind Opts</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getBindOpts()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_BindOpts();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getColid <em>Colid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Colid</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions#getColid()
+ * @see #getDB2ExtendedOptions()
+ * @generated
+ */
+ EAttribute getDB2ExtendedOptions_Colid();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias <em>DB2 Alias</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Alias</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias
+ * @generated
+ */
+ EClass getDB2Alias();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias#getAliasedTable <em>Aliased Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Aliased Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias#getAliasedTable()
+ * @see #getDB2Alias()
+ * @generated
+ */
+ EReference getDB2Alias_AliasedTable();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable <em>DB2 Materialized Query Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Materialized Query Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable
+ * @generated
+ */
+ EClass getDB2MaterializedQueryTable();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getRefresh <em>Refresh</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Refresh</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getRefresh()
+ * @see #getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EAttribute getDB2MaterializedQueryTable_Refresh();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isOptimizeQuery <em>Optimize Query</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Optimize Query</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isOptimizeQuery()
+ * @see #getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EAttribute getDB2MaterializedQueryTable_OptimizeQuery();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMaintainedBy <em>Maintained By</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Maintained By</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMaintainedBy()
+ * @see #getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EAttribute getDB2MaterializedQueryTable_MaintainedBy();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateRowAccessControl <em>Activate Row Access Control</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activate Row Access Control</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateRowAccessControl()
+ * @see #getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EAttribute getDB2MaterializedQueryTable_ActivateRowAccessControl();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateColumnAccessControl <em>Activate Column Access Control</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activate Column Access Control</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#isActivateColumnAccessControl()
+ * @see #getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EAttribute getDB2MaterializedQueryTable_ActivateColumnAccessControl();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMasks <em>Masks</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Masks</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getMasks()
+ * @see #getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EReference getDB2MaterializedQueryTable_Masks();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getPermissions <em>Permissions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Permissions</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getPermissions()
+ * @see #getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EReference getDB2MaterializedQueryTable_Permissions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index <em>DB2 Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Index</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Index
+ * @generated
+ */
+ EClass getDB2Index();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getIndexType <em>Index Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Index Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getIndexType()
+ * @see #getDB2Index()
+ * @generated
+ */
+ EAttribute getDB2Index_IndexType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bus Period Without Overlap</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isBusPeriodWithoutOverlap()
+ * @see #getDB2Index()
+ * @generated
+ */
+ EAttribute getDB2Index_BusPeriodWithoutOverlap();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isEncodedVector <em>Encoded Vector</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Encoded Vector</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#isEncodedVector()
+ * @see #getDB2Index()
+ * @generated
+ */
+ EAttribute getDB2Index_EncodedVector();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getDB2MultidimensionalIndex <em>DB2 Multidimensional Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>DB2 Multidimensional Index</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getDB2MultidimensionalIndex()
+ * @see #getDB2Index()
+ * @generated
+ */
+ EReference getDB2Index_DB2MultidimensionalIndex();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex <em>DB2 Multidimensional Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Multidimensional Index</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex
+ * @generated
+ */
+ EClass getDB2MultidimensionalIndex();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex#getDimensionIndexes <em>Dimension Indexes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Dimension Indexes</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex#getDimensionIndexes()
+ * @see #getDB2MultidimensionalIndex()
+ * @generated
+ */
+ EReference getDB2MultidimensionalIndex_DimensionIndexes();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function <em>DB2 Function</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Function</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function
+ * @generated
+ */
+ EClass getDB2Function();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isFinalCall <em>Final Call</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Final Call</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isFinalCall()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_FinalCall();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isScratchPad <em>Scratch Pad</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Scratch Pad</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isScratchPad()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_ScratchPad();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getScratchPadLength <em>Scratch Pad Length</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Scratch Pad Length</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getScratchPadLength()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_ScratchPadLength();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getFunctionType <em>Function Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Function Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getFunctionType()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_FunctionType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getPredicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Predicate</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getPredicate()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_Predicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isExternalAction <em>External Action</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>External Action</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isExternalAction()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_ExternalAction();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getCardinality <em>Cardinality</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cardinality</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getCardinality()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_Cardinality();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isAllowParallel <em>Allow Parallel</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Allow Parallel</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isAllowParallel()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_AllowParallel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getReturnClause <em>Return Clause</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Return Clause</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getReturnClause()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_ReturnClause();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getOrigin <em>Origin</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Origin</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getOrigin()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_Origin();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInheritLockRequest <em>Inherit Lock Request</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inherit Lock Request</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInheritLockRequest()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_InheritLockRequest();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getDialect <em>Dialect</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dialect</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getDialect()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_Dialect();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInline <em>Inline</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inline</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isInline()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_Inline();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getVersion <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#getVersion()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_Version();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isSecured <em>Secured</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Secured</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function#isSecured()
+ * @see #getDB2Function()
+ * @generated
+ */
+ EAttribute getDB2Function_Secured();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions <em>DB2 Java Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Java Options</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions
+ * @generated
+ */
+ EClass getDB2JavaOptions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getClassName <em>Class Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Class Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getClassName()
+ * @see #getDB2JavaOptions()
+ * @generated
+ */
+ EAttribute getDB2JavaOptions_ClassName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getMethodName <em>Method Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Method Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getMethodName()
+ * @see #getDB2JavaOptions()
+ * @generated
+ */
+ EAttribute getDB2JavaOptions_MethodName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#isSqlj <em>Sqlj</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sqlj</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#isSqlj()
+ * @see #getDB2JavaOptions()
+ * @generated
+ */
+ EAttribute getDB2JavaOptions_Sqlj();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getProcedure <em>Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Procedure</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getProcedure()
+ * @see #getDB2JavaOptions()
+ * @generated
+ */
+ EReference getDB2JavaOptions_Procedure();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getJar <em>Jar</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Jar</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getJar()
+ * @see #getDB2JavaOptions()
+ * @generated
+ */
+ EReference getDB2JavaOptions_Jar();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy <em>DB2 Procedure Deploy</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Procedure Deploy</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy
+ * @generated
+ */
+ EClass getDB2ProcedureDeploy();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy#getFileName <em>File Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy#getFileName()
+ * @see #getDB2ProcedureDeploy()
+ * @generated
+ */
+ EAttribute getDB2ProcedureDeploy_FileName();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject <em>DB2OLAP Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2OLAP Object</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject
+ * @generated
+ */
+ EClass getDB2OLAPObject();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject#getSchema()
+ * @see #getDB2OLAPObject()
+ * @generated
+ */
+ EReference getDB2OLAPObject_Schema();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension <em>DB2 Routine Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Routine Extension</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension
+ * @generated
+ */
+ EClass getDB2RoutineExtension();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier <em>DB2 Identity Specifier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Identity Specifier</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier
+ * @generated
+ */
+ EClass getDB2IdentitySpecifier();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getCache <em>Cache</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Cache</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getCache()
+ * @see #getDB2IdentitySpecifier()
+ * @generated
+ */
+ EAttribute getDB2IdentitySpecifier_Cache();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isOrder <em>Order</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Order</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isOrder()
+ * @see #getDB2IdentitySpecifier()
+ * @generated
+ */
+ EAttribute getDB2IdentitySpecifier_Order();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isSystemGenerated <em>System Generated</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>System Generated</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#isSystemGenerated()
+ * @see #getDB2IdentitySpecifier()
+ * @generated
+ */
+ EAttribute getDB2IdentitySpecifier_SystemGenerated();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getRestartValue <em>Restart Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Restart Value</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier#getRestartValue()
+ * @see #getDB2IdentitySpecifier()
+ * @generated
+ */
+ EAttribute getDB2IdentitySpecifier_RestartValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar <em>DB2 Jar</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Jar</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar
+ * @generated
+ */
+ EClass getDB2Jar();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getFileName <em>File Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getFileName()
+ * @see #getDB2Jar()
+ * @generated
+ */
+ EAttribute getDB2Jar_FileName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Path</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getPath()
+ * @see #getDB2Jar()
+ * @generated
+ */
+ EAttribute getDB2Jar_Path();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getOwner <em>Owner</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Owner</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getOwner()
+ * @see #getDB2Jar()
+ * @generated
+ */
+ EAttribute getDB2Jar_Owner();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getCreatedTS <em>Created TS</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Created TS</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getCreatedTS()
+ * @see #getDB2Jar()
+ * @generated
+ */
+ EAttribute getDB2Jar_CreatedTS();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getAlteredTS <em>Altered TS</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Altered TS</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getAlteredTS()
+ * @see #getDB2Jar()
+ * @generated
+ */
+ EAttribute getDB2Jar_AlteredTS();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getProcedures <em>Procedures</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Procedures</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getProcedures()
+ * @see #getDB2Jar()
+ * @generated
+ */
+ EReference getDB2Jar_Procedures();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getSchema()
+ * @see #getDB2Jar()
+ * @generated
+ */
+ EReference getDB2Jar_Schema();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column <em>DB2 Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Column</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column
+ * @generated
+ */
+ EClass getDB2Column();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getGenerationType <em>Generation Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Generation Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getGenerationType()
+ * @see #getDB2Column()
+ * @generated
+ */
+ EAttribute getDB2Column_GenerationType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowChangeTimestamp <em>Row Change Timestamp</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Row Change Timestamp</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowChangeTimestamp()
+ * @see #getDB2Column()
+ * @generated
+ */
+ EAttribute getDB2Column_RowChangeTimestamp();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowBegin <em>Row Begin</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Row Begin</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowBegin()
+ * @see #getDB2Column()
+ * @generated
+ */
+ EAttribute getDB2Column_RowBegin();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowEnd <em>Row End</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Row End</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isRowEnd()
+ * @see #getDB2Column()
+ * @generated
+ */
+ EAttribute getDB2Column_RowEnd();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isTransStartID <em>Trans Start ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Trans Start ID</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#isTransStartID()
+ * @see #getDB2Column()
+ * @generated
+ */
+ EAttribute getDB2Column_TransStartID();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getBeginPeriod <em>Begin Period</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Begin Period</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getBeginPeriod()
+ * @see #getDB2Column()
+ * @generated
+ */
+ EReference getDB2Column_BeginPeriod();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getEndPeriod <em>End Period</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>End Period</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getEndPeriod()
+ * @see #getDB2Column()
+ * @generated
+ */
+ EReference getDB2Column_EndPeriod();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject <em>DB2XSR Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2XSR Object</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject
+ * @generated
+ */
+ EClass getDB2XSRObject();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject#getSchema()
+ * @see #getDB2XSRObject()
+ * @generated
+ */
+ EReference getDB2XSRObject_Schema();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema <em>DB2XML Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2XML Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema
+ * @generated
+ */
+ EClass getDB2XMLSchema();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getDecomposition <em>Decomposition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Decomposition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getDecomposition()
+ * @see #getDB2XMLSchema()
+ * @generated
+ */
+ EAttribute getDB2XMLSchema_Decomposition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getStatus <em>Status</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Status</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getStatus()
+ * @see #getDB2XMLSchema()
+ * @generated
+ */
+ EAttribute getDB2XMLSchema_Status();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getXmlSchemaDocs <em>Xml Schema Docs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Xml Schema Docs</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getXmlSchemaDocs()
+ * @see #getDB2XMLSchema()
+ * @generated
+ */
+ EReference getDB2XMLSchema_XmlSchemaDocs();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument <em>DB2XML Schema Document</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2XML Schema Document</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument
+ * @generated
+ */
+ EClass getDB2XMLSchemaDocument();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getFileName <em>File Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getFileName()
+ * @see #getDB2XMLSchemaDocument()
+ * @generated
+ */
+ EAttribute getDB2XMLSchemaDocument_FileName();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getSchemaLocation <em>Schema Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Schema Location</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getSchemaLocation()
+ * @see #getDB2XMLSchemaDocument()
+ * @generated
+ */
+ EAttribute getDB2XMLSchemaDocument_SchemaLocation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getTargetNamespace <em>Target Namespace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target Namespace</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getTargetNamespace()
+ * @see #getDB2XMLSchemaDocument()
+ * @generated
+ */
+ EAttribute getDB2XMLSchemaDocument_TargetNamespace();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#isPrimary <em>Primary</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Primary</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#isPrimary()
+ * @see #getDB2XMLSchemaDocument()
+ * @generated
+ */
+ EAttribute getDB2XMLSchemaDocument_Primary();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchema <em>Xml Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Xml Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchema()
+ * @see #getDB2XMLSchemaDocument()
+ * @generated
+ */
+ EReference getDB2XMLSchemaDocument_XmlSchema();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchemaDocProperties <em>Xml Schema Doc Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Xml Schema Doc Properties</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchemaDocProperties()
+ * @see #getDB2XMLSchemaDocument()
+ * @generated
+ */
+ EReference getDB2XMLSchemaDocument_XmlSchemaDocProperties();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties <em>DB2XML Schema Doc Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2XML Schema Doc Properties</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties
+ * @generated
+ */
+ EClass getDB2XMLSchemaDocProperties();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getValue()
+ * @see #getDB2XMLSchemaDocProperties()
+ * @generated
+ */
+ EAttribute getDB2XMLSchemaDocProperties_Value();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getXmlSchemaDoc <em>Xml Schema Doc</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Xml Schema Doc</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getXmlSchemaDoc()
+ * @see #getDB2XMLSchemaDocProperties()
+ * @generated
+ */
+ EReference getDB2XMLSchemaDocProperties_XmlSchemaDoc();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement <em>DB2 Package Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Package Statement</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement
+ * @generated
+ */
+ EClass getDB2PackageStatement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getStatementNumber <em>Statement Number</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Statement Number</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getStatementNumber()
+ * @see #getDB2PackageStatement()
+ * @generated
+ */
+ EAttribute getDB2PackageStatement_StatementNumber();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSectionNumber <em>Section Number</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Section Number</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSectionNumber()
+ * @see #getDB2PackageStatement()
+ * @generated
+ */
+ EAttribute getDB2PackageStatement_SectionNumber();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getPackage <em>Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Package</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getPackage()
+ * @see #getDB2PackageStatement()
+ * @generated
+ */
+ EReference getDB2PackageStatement_Package();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSqlStatement <em>Sql Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Sql Statement</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSqlStatement()
+ * @see #getDB2PackageStatement()
+ * @generated
+ */
+ EReference getDB2PackageStatement_SqlStatement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2DistinctUserDefinedType <em>DB2 Distinct User Defined Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Distinct User Defined Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2DistinctUserDefinedType
+ * @generated
+ */
+ EClass getDB2DistinctUserDefinedType();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period <em>DB2 Period</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Period</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period
+ * @generated
+ */
+ EClass getDB2Period();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getType()
+ * @see #getDB2Period()
+ * @generated
+ */
+ EAttribute getDB2Period_Type();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getBeginColumn <em>Begin Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Begin Column</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getBeginColumn()
+ * @see #getDB2Period()
+ * @generated
+ */
+ EReference getDB2Period_BeginColumn();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getEndColumn <em>End Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>End Column</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getEndColumn()
+ * @see #getDB2Period()
+ * @generated
+ */
+ EReference getDB2Period_EndColumn();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getTable()
+ * @see #getDB2Period()
+ * @generated
+ */
+ EReference getDB2Period_Table();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster <em>DB2 Cluster</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Cluster</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster
+ * @generated
+ */
+ EClass getDB2Cluster();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getLevel <em>Level</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Level</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getLevel()
+ * @see #getDB2Cluster()
+ * @generated
+ */
+ EAttribute getDB2Cluster_Level();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getInstance <em>Instance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Instance</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getInstance()
+ * @see #getDB2Cluster()
+ * @generated
+ */
+ EReference getDB2Cluster_Instance();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getMembers <em>Members</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Members</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster#getMembers()
+ * @see #getDB2Cluster()
+ * @generated
+ */
+ EReference getDB2Cluster_Members();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member <em>DB2 Member</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Member</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Member
+ * @generated
+ */
+ EClass getDB2Member();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getId()
+ * @see #getDB2Member()
+ * @generated
+ */
+ EAttribute getDB2Member_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getHomeHost <em>Home Host</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Home Host</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getHomeHost()
+ * @see #getDB2Member()
+ * @generated
+ */
+ EAttribute getDB2Member_HomeHost();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCurrentHost <em>Current Host</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Current Host</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCurrentHost()
+ * @see #getDB2Member()
+ * @generated
+ */
+ EAttribute getDB2Member_CurrentHost();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getState <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>State</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getState()
+ * @see #getDB2Member()
+ * @generated
+ */
+ EAttribute getDB2Member_State();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCluster <em>Cluster</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Cluster</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Member#getCluster()
+ * @see #getDB2Member()
+ * @generated
+ */
+ EReference getDB2Member_Cluster();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension <em>DB2 Unique Constraint Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Unique Constraint Extension</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension
+ * @generated
+ */
+ EClass getDB2UniqueConstraintExtension();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bus Period Without Overlap</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension#isBusPeriodWithoutOverlap()
+ * @see #getDB2UniqueConstraintExtension()
+ * @generated
+ */
+ EAttribute getDB2UniqueConstraintExtension_BusPeriodWithoutOverlap();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask <em>DB2 Mask</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Mask</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask
+ * @generated
+ */
+ EClass getDB2Mask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCorrelationName <em>Correlation Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Correlation Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCorrelationName()
+ * @see #getDB2Mask()
+ * @generated
+ */
+ EAttribute getDB2Mask_CorrelationName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCaseExpression <em>Case Expression</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Case Expression</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getCaseExpression()
+ * @see #getDB2Mask()
+ * @generated
+ */
+ EReference getDB2Mask_CaseExpression();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#isEnable <em>Enable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Enable</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#isEnable()
+ * @see #getDB2Mask()
+ * @generated
+ */
+ EAttribute getDB2Mask_Enable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSchema()
+ * @see #getDB2Mask()
+ * @generated
+ */
+ EReference getDB2Mask_Schema();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectTable <em>Subject Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Subject Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectTable()
+ * @see #getDB2Mask()
+ * @generated
+ */
+ EReference getDB2Mask_SubjectTable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectMQT <em>Subject MQT</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Subject MQT</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectMQT()
+ * @see #getDB2Mask()
+ * @generated
+ */
+ EReference getDB2Mask_SubjectMQT();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectColumn <em>Subject Column</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Subject Column</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectColumn()
+ * @see #getDB2Mask()
+ * @generated
+ */
+ EReference getDB2Mask_SubjectColumn();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission <em>DB2 Permission</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>DB2 Permission</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission
+ * @generated
+ */
+ EClass getDB2Permission();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getCorrelationName <em>Correlation Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Correlation Name</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getCorrelationName()
+ * @see #getDB2Permission()
+ * @generated
+ */
+ EAttribute getDB2Permission_CorrelationName();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSearchCondition <em>Search Condition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Search Condition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSearchCondition()
+ * @see #getDB2Permission()
+ * @generated
+ */
+ EReference getDB2Permission_SearchCondition();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#isEnable <em>Enable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Enable</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#isEnable()
+ * @see #getDB2Permission()
+ * @generated
+ */
+ EAttribute getDB2Permission_Enable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Schema</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSchema()
+ * @see #getDB2Permission()
+ * @generated
+ */
+ EReference getDB2Permission_Schema();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectTable <em>Subject Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Subject Table</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectTable()
+ * @see #getDB2Permission()
+ * @generated
+ */
+ EReference getDB2Permission_SubjectTable();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectMQT <em>Subject MQT</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Subject MQT</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectMQT()
+ * @see #getDB2Permission()
+ * @generated
+ */
+ EReference getDB2Permission_SubjectMQT();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType <em>Isolation Level Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Isolation Level Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType
+ * @generated
+ */
+ EEnum getIsolationLevelType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType <em>DB2 Index Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>DB2 Index Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType
+ * @generated
+ */
+ EEnum getDB2IndexType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType <em>Data Capture Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Data Capture Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType
+ * @generated
+ */
+ EEnum getDataCaptureType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.UnitType <em>Unit Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Unit Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @generated
+ */
+ EEnum getUnitType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.GenerateType <em>Generate Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Generate Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.GenerateType
+ * @generated
+ */
+ EEnum getGenerateType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition <em>DB2XML Schema Decomposition</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>DB2XML Schema Decomposition</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition
+ * @generated
+ */
+ EEnum getDB2XMLSchemaDecomposition();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus <em>DB2XML Schema Status</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>DB2XML Schema Status</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus
+ * @generated
+ */
+ EEnum getDB2XMLSchemaStatus();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.OriginType <em>Origin Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Origin Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.OriginType
+ * @generated
+ */
+ EEnum getOriginType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.ReoptType <em>Reopt Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Reopt Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.ReoptType
+ * @generated
+ */
+ EEnum getReoptType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect <em>Source Dialect</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>Source Dialect</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @generated
+ */
+ EEnum getSourceDialect();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType <em>DB2 Period Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>DB2 Period Type</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType
+ * @generated
+ */
+ EEnum getDB2PeriodType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization <em>DB2 Table Organization</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>DB2 Table Organization</em>'.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization
+ * @generated
+ */
+ EEnum getDB2TableOrganization();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ DB2ModelFactory getDB2ModelFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseImpl <em>DB2 Database</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Database()
+ * @generated
+ */
+ EClass DB2_DATABASE = eINSTANCE.getDB2Database();
+
+ /**
+ * The meta object literal for the '<em><b>Partitioned</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_DATABASE__PARTITIONED = eINSTANCE.getDB2Database_Partitioned();
+
+ /**
+ * The meta object literal for the '<em><b>Default Organize By Row</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW = eINSTANCE.getDB2Database_DefaultOrganizeByRow();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl <em>DB2 Package</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Package()
+ * @generated
+ */
+ EClass DB2_PACKAGE = eINSTANCE.getDB2Package();
+
+ /**
+ * The meta object literal for the '<em><b>Operative</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__OPERATIVE = eINSTANCE.getDB2Package_Operative();
+
+ /**
+ * The meta object literal for the '<em><b>Valid</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__VALID = eINSTANCE.getDB2Package_Valid();
+
+ /**
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__VERSION = eINSTANCE.getDB2Package_Version();
+
+ /**
+ * The meta object literal for the '<em><b>Default Schema</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__DEFAULT_SCHEMA = eINSTANCE.getDB2Package_DefaultSchema();
+
+ /**
+ * The meta object literal for the '<em><b>Sql Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__SQL_PATH = eINSTANCE.getDB2Package_SqlPath();
+
+ /**
+ * The meta object literal for the '<em><b>Reopt Var</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__REOPT_VAR = eINSTANCE.getDB2Package_ReoptVar();
+
+ /**
+ * The meta object literal for the '<em><b>Isolation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__ISOLATION = eINSTANCE.getDB2Package_Isolation();
+
+ /**
+ * The meta object literal for the '<em><b>Unique ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__UNIQUE_ID = eINSTANCE.getDB2Package_UniqueID();
+
+ /**
+ * The meta object literal for the '<em><b>Last Bind TS</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE__LAST_BIND_TS = eINSTANCE.getDB2Package_LastBindTS();
+
+ /**
+ * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PACKAGE__SCHEMA = eINSTANCE.getDB2Package_Schema();
+
+ /**
+ * The meta object literal for the '<em><b>Statements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PACKAGE__STATEMENTS = eINSTANCE.getDB2Package_Statements();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl <em>DB2 Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Table()
+ * @generated
+ */
+ EClass DB2_TABLE = eINSTANCE.getDB2Table();
+
+ /**
+ * The meta object literal for the '<em><b>Data Capture</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_TABLE__DATA_CAPTURE = eINSTANCE.getDB2Table_DataCapture();
+
+ /**
+ * The meta object literal for the '<em><b>Activate Row Access Control</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL = eINSTANCE.getDB2Table_ActivateRowAccessControl();
+
+ /**
+ * The meta object literal for the '<em><b>Activate Column Access Control</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL = eINSTANCE.getDB2Table_ActivateColumnAccessControl();
+
+ /**
+ * The meta object literal for the '<em><b>Organize By</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_TABLE__ORGANIZE_BY = eINSTANCE.getDB2Table_OrganizeBy();
+
+ /**
+ * The meta object literal for the '<em><b>Packages</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_TABLE__PACKAGES = eINSTANCE.getDB2Table_Packages();
+
+ /**
+ * The meta object literal for the '<em><b>Periods</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_TABLE__PERIODS = eINSTANCE.getDB2Table_Periods();
+
+ /**
+ * The meta object literal for the '<em><b>History Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_TABLE__HISTORY_TABLE = eINSTANCE.getDB2Table_HistoryTable();
+
+ /**
+ * The meta object literal for the '<em><b>Temporal Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_TABLE__TEMPORAL_TABLE = eINSTANCE.getDB2Table_TemporalTable();
+
+ /**
+ * The meta object literal for the '<em><b>Masks</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_TABLE__MASKS = eINSTANCE.getDB2Table_Masks();
+
+ /**
+ * The meta object literal for the '<em><b>Permissions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_TABLE__PERMISSIONS = eINSTANCE.getDB2Table_Permissions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TriggerImpl <em>DB2 Trigger</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TriggerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Trigger()
+ * @generated
+ */
+ EClass DB2_TRIGGER = eINSTANCE.getDB2Trigger();
+
+ /**
+ * The meta object literal for the '<em><b>Operative</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_TRIGGER__OPERATIVE = eINSTANCE.getDB2Trigger_Operative();
+
+ /**
+ * The meta object literal for the '<em><b>Secured</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_TRIGGER__SECURED = eINSTANCE.getDB2Trigger_Secured();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl <em>DB2 Procedure</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Procedure()
+ * @generated
+ */
+ EClass DB2_PROCEDURE = eINSTANCE.getDB2Procedure();
+
+ /**
+ * The meta object literal for the '<em><b>Model Result Sets</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PROCEDURE__MODEL_RESULT_SETS = eINSTANCE.getDB2Procedure_ModelResultSets();
+
+ /**
+ * The meta object literal for the '<em><b>Null Input</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PROCEDURE__NULL_INPUT = eINSTANCE.getDB2Procedure_NullInput();
+
+ /**
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PROCEDURE__VERSION = eINSTANCE.getDB2Procedure_Version();
+
+ /**
+ * The meta object literal for the '<em><b>Dialect</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PROCEDURE__DIALECT = eINSTANCE.getDB2Procedure_Dialect();
+
+ /**
+ * The meta object literal for the '<em><b>External Action</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PROCEDURE__EXTERNAL_ACTION = eINSTANCE.getDB2Procedure_ExternalAction();
+
+ /**
+ * The meta object literal for the '<em><b>Return</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PROCEDURE__RETURN = eINSTANCE.getDB2Procedure_Return();
+
+ /**
+ * The meta object literal for the '<em><b>Java Options</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PROCEDURE__JAVA_OPTIONS = eINSTANCE.getDB2Procedure_JavaOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Deploy</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PROCEDURE__DEPLOY = eINSTANCE.getDB2Procedure_Deploy();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl <em>DB2 Schema</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Schema()
+ * @generated
+ */
+ EClass DB2_SCHEMA = eINSTANCE.getDB2Schema();
+
+ /**
+ * The meta object literal for the '<em><b>Access Plans</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__ACCESS_PLANS = eINSTANCE.getDB2Schema_AccessPlans();
+
+ /**
+ * The meta object literal for the '<em><b>Olap Objects</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__OLAP_OBJECTS = eINSTANCE.getDB2Schema_OlapObjects();
+
+ /**
+ * The meta object literal for the '<em><b>Jars</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__JARS = eINSTANCE.getDB2Schema_Jars();
+
+ /**
+ * The meta object literal for the '<em><b>Xsr Objects</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__XSR_OBJECTS = eINSTANCE.getDB2Schema_XsrObjects();
+
+ /**
+ * The meta object literal for the '<em><b>Packages</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__PACKAGES = eINSTANCE.getDB2Schema_Packages();
+
+ /**
+ * The meta object literal for the '<em><b>Masks</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__MASKS = eINSTANCE.getDB2Schema_Masks();
+
+ /**
+ * The meta object literal for the '<em><b>Permissions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__PERMISSIONS = eINSTANCE.getDB2Schema_Permissions();
+
+ /**
+ * The meta object literal for the '<em><b>Modules</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__MODULES = eINSTANCE.getDB2Schema_Modules();
+
+ /**
+ * The meta object literal for the '<em><b>Global Variables</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SCHEMA__GLOBAL_VARIABLES = eINSTANCE.getDB2Schema_GlobalVariables();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine <em>DB2 Routine</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Routine()
+ * @generated
+ */
+ EClass DB2_ROUTINE = eINSTANCE.getDB2Routine();
+
+ /**
+ * The meta object literal for the '<em><b>Fenced</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__FENCED = eINSTANCE.getDB2Routine_Fenced();
+
+ /**
+ * The meta object literal for the '<em><b>Threadsafe</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__THREADSAFE = eINSTANCE.getDB2Routine_Threadsafe();
+
+ /**
+ * The meta object literal for the '<em><b>Db Info</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__DB_INFO = eINSTANCE.getDB2Routine_DbInfo();
+
+ /**
+ * The meta object literal for the '<em><b>Implicit Schema</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__IMPLICIT_SCHEMA = eINSTANCE.getDB2Routine_ImplicitSchema();
+
+ /**
+ * The meta object literal for the '<em><b>Federated</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__FEDERATED = eINSTANCE.getDB2Routine_Federated();
+
+ /**
+ * The meta object literal for the '<em><b>Parm Ccsid</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__PARM_CCSID = eINSTANCE.getDB2Routine_ParmCcsid();
+
+ /**
+ * The meta object literal for the '<em><b>Special Register</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__SPECIAL_REGISTER = eINSTANCE.getDB2Routine_SpecialRegister();
+
+ /**
+ * The meta object literal for the '<em><b>Change State</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__CHANGE_STATE = eINSTANCE.getDB2Routine_ChangeState();
+
+ /**
+ * The meta object literal for the '<em><b>Debug Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__DEBUG_ID = eINSTANCE.getDB2Routine_DebugId();
+
+ /**
+ * The meta object literal for the '<em><b>Program Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__PROGRAM_TYPE = eINSTANCE.getDB2Routine_ProgramType();
+
+ /**
+ * The meta object literal for the '<em><b>Orig Schema Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__ORIG_SCHEMA_NAME = eINSTANCE.getDB2Routine_OrigSchemaName();
+
+ /**
+ * The meta object literal for the '<em><b>Orig Parm Sig</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_ROUTINE__ORIG_PARM_SIG = eINSTANCE.getDB2Routine_OrigParmSig();
+
+ /**
+ * The meta object literal for the '<em><b>Extended Options</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_ROUTINE__EXTENDED_OPTIONS = eINSTANCE.getDB2Routine_ExtendedOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Routine Extensions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_ROUTINE__ROUTINE_EXTENSIONS = eINSTANCE.getDB2Routine_RoutineExtensions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl <em>DB2 Database Manager</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2DatabaseManager()
+ * @generated
+ */
+ EClass DB2_DATABASE_MANAGER = eINSTANCE.getDB2DatabaseManager();
+
+ /**
+ * The meta object literal for the '<em><b>Databases</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_DATABASE_MANAGER__DATABASES = eINSTANCE.getDB2DatabaseManager_Databases();
+
+ /**
+ * The meta object literal for the '<em><b>Db2 Process</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_DATABASE_MANAGER__DB2_PROCESS = eINSTANCE.getDB2DatabaseManager_Db2Process();
+
+ /**
+ * The meta object literal for the '<em><b>Server</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_DATABASE_MANAGER__SERVER = eINSTANCE.getDB2DatabaseManager_Server();
+
+ /**
+ * The meta object literal for the '<em><b>Cluster</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_DATABASE_MANAGER__CLUSTER = eINSTANCE.getDB2DatabaseManager_Cluster();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ViewImpl <em>DB2 View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ViewImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2View()
+ * @generated
+ */
+ EClass DB2_VIEW = eINSTANCE.getDB2View();
+
+ /**
+ * The meta object literal for the '<em><b>Operative</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_VIEW__OPERATIVE = eINSTANCE.getDB2View_Operative();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ApplicationProcessImpl <em>DB2 Application Process</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ApplicationProcessImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2ApplicationProcess()
+ * @generated
+ */
+ EClass DB2_APPLICATION_PROCESS = eINSTANCE.getDB2ApplicationProcess();
+
+ /**
+ * The meta object literal for the '<em><b>Isolation Level</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_APPLICATION_PROCESS__ISOLATION_LEVEL = eINSTANCE.getDB2ApplicationProcess_IsolationLevel();
+
+ /**
+ * The meta object literal for the '<em><b>Unit Of Work</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_APPLICATION_PROCESS__UNIT_OF_WORK = eINSTANCE.getDB2ApplicationProcess_UnitOfWork();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TransactionImpl <em>DB2 Transaction</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TransactionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Transaction()
+ * @generated
+ */
+ EClass DB2_TRANSACTION = eINSTANCE.getDB2Transaction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SystemSchemaImpl <em>DB2 System Schema</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SystemSchemaImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2SystemSchema()
+ * @generated
+ */
+ EClass DB2_SYSTEM_SCHEMA = eINSTANCE.getDB2SystemSchema();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl <em>DB2 Source</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Source()
+ * @generated
+ */
+ EClass DB2_SOURCE = eINSTANCE.getDB2Source();
+
+ /**
+ * The meta object literal for the '<em><b>File Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_SOURCE__FILE_NAME = eINSTANCE.getDB2Source_FileName();
+
+ /**
+ * The meta object literal for the '<em><b>Package Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_SOURCE__PACKAGE_NAME = eINSTANCE.getDB2Source_PackageName();
+
+ /**
+ * The meta object literal for the '<em><b>Db2 Package Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_SOURCE__DB2_PACKAGE_NAME = eINSTANCE.getDB2Source_Db2PackageName();
+
+ /**
+ * The meta object literal for the '<em><b>Last Modified</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_SOURCE__LAST_MODIFIED = eINSTANCE.getDB2Source_LastModified();
+
+ /**
+ * The meta object literal for the '<em><b>Supporting</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SOURCE__SUPPORTING = eINSTANCE.getDB2Source_Supporting();
+
+ /**
+ * The meta object literal for the '<em><b>Primary</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_SOURCE__PRIMARY = eINSTANCE.getDB2Source_Primary();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan <em>DB2 Access Plan</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2AccessPlan()
+ * @generated
+ */
+ EClass DB2_ACCESS_PLAN = eINSTANCE.getDB2AccessPlan();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl <em>DB2 User Defined Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2UserDefinedFunction()
+ * @generated
+ */
+ EClass DB2_USER_DEFINED_FUNCTION = eINSTANCE.getDB2UserDefinedFunction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl <em>DB2 Method</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Method()
+ * @generated
+ */
+ EClass DB2_METHOD = eINSTANCE.getDB2Method();
+
+ /**
+ * The meta object literal for the '<em><b>Returns Self As Result</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_METHOD__RETURNS_SELF_AS_RESULT = eINSTANCE.getDB2Method_ReturnsSelfAsResult();
+
+ /**
+ * The meta object literal for the '<em><b>Implemented</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_METHOD__IMPLEMENTED = eINSTANCE.getDB2Method_Implemented();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl <em>DB2 Extended Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2ExtendedOptions()
+ * @generated
+ */
+ EClass DB2_EXTENDED_OPTIONS = eINSTANCE.getDB2ExtendedOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Classpath Compile Jars</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS = eINSTANCE.getDB2ExtendedOptions_ClasspathCompileJars();
+
+ /**
+ * The meta object literal for the '<em><b>Pre Compile Opts</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS = eINSTANCE.getDB2ExtendedOptions_PreCompileOpts();
+
+ /**
+ * The meta object literal for the '<em><b>For Debug</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__FOR_DEBUG = eINSTANCE.getDB2ExtendedOptions_ForDebug();
+
+ /**
+ * The meta object literal for the '<em><b>Built</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__BUILT = eINSTANCE.getDB2ExtendedOptions_Built();
+
+ /**
+ * The meta object literal for the '<em><b>Compile Opts</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__COMPILE_OPTS = eINSTANCE.getDB2ExtendedOptions_CompileOpts();
+
+ /**
+ * The meta object literal for the '<em><b>Link Opts</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__LINK_OPTS = eINSTANCE.getDB2ExtendedOptions_LinkOpts();
+
+ /**
+ * The meta object literal for the '<em><b>Bind Opts</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__BIND_OPTS = eINSTANCE.getDB2ExtendedOptions_BindOpts();
+
+ /**
+ * The meta object literal for the '<em><b>Colid</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_EXTENDED_OPTIONS__COLID = eINSTANCE.getDB2ExtendedOptions_Colid();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2AliasImpl <em>DB2 Alias</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2AliasImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Alias()
+ * @generated
+ */
+ EClass DB2_ALIAS = eINSTANCE.getDB2Alias();
+
+ /**
+ * The meta object literal for the '<em><b>Aliased Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_ALIAS__ALIASED_TABLE = eINSTANCE.getDB2Alias_AliasedTable();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl <em>DB2 Materialized Query Table</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2MaterializedQueryTable()
+ * @generated
+ */
+ EClass DB2_MATERIALIZED_QUERY_TABLE = eINSTANCE.getDB2MaterializedQueryTable();
+
+ /**
+ * The meta object literal for the '<em><b>Refresh</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MATERIALIZED_QUERY_TABLE__REFRESH = eINSTANCE.getDB2MaterializedQueryTable_Refresh();
+
+ /**
+ * The meta object literal for the '<em><b>Optimize Query</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY = eINSTANCE.getDB2MaterializedQueryTable_OptimizeQuery();
+
+ /**
+ * The meta object literal for the '<em><b>Maintained By</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MATERIALIZED_QUERY_TABLE__MAINTAINED_BY = eINSTANCE.getDB2MaterializedQueryTable_MaintainedBy();
+
+ /**
+ * The meta object literal for the '<em><b>Activate Row Access Control</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL = eINSTANCE.getDB2MaterializedQueryTable_ActivateRowAccessControl();
+
+ /**
+ * The meta object literal for the '<em><b>Activate Column Access Control</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL = eINSTANCE.getDB2MaterializedQueryTable_ActivateColumnAccessControl();
+
+ /**
+ * The meta object literal for the '<em><b>Masks</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MATERIALIZED_QUERY_TABLE__MASKS = eINSTANCE.getDB2MaterializedQueryTable_Masks();
+
+ /**
+ * The meta object literal for the '<em><b>Permissions</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS = eINSTANCE.getDB2MaterializedQueryTable_Permissions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl <em>DB2 Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Index()
+ * @generated
+ */
+ EClass DB2_INDEX = eINSTANCE.getDB2Index();
+
+ /**
+ * The meta object literal for the '<em><b>Index Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_INDEX__INDEX_TYPE = eINSTANCE.getDB2Index_IndexType();
+
+ /**
+ * The meta object literal for the '<em><b>Bus Period Without Overlap</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP = eINSTANCE.getDB2Index_BusPeriodWithoutOverlap();
+
+ /**
+ * The meta object literal for the '<em><b>Encoded Vector</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_INDEX__ENCODED_VECTOR = eINSTANCE.getDB2Index_EncodedVector();
+
+ /**
+ * The meta object literal for the '<em><b>DB2 Multidimensional Index</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX = eINSTANCE.getDB2Index_DB2MultidimensionalIndex();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MultidimensionalIndexImpl <em>DB2 Multidimensional Index</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MultidimensionalIndexImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2MultidimensionalIndex()
+ * @generated
+ */
+ EClass DB2_MULTIDIMENSIONAL_INDEX = eINSTANCE.getDB2MultidimensionalIndex();
+
+ /**
+ * The meta object literal for the '<em><b>Dimension Indexes</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES = eINSTANCE.getDB2MultidimensionalIndex_DimensionIndexes();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Function <em>DB2 Function</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Function
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Function()
+ * @generated
+ */
+ EClass DB2_FUNCTION = eINSTANCE.getDB2Function();
+
+ /**
+ * The meta object literal for the '<em><b>Final Call</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__FINAL_CALL = eINSTANCE.getDB2Function_FinalCall();
+
+ /**
+ * The meta object literal for the '<em><b>Scratch Pad</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__SCRATCH_PAD = eINSTANCE.getDB2Function_ScratchPad();
+
+ /**
+ * The meta object literal for the '<em><b>Scratch Pad Length</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__SCRATCH_PAD_LENGTH = eINSTANCE.getDB2Function_ScratchPadLength();
+
+ /**
+ * The meta object literal for the '<em><b>Function Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__FUNCTION_TYPE = eINSTANCE.getDB2Function_FunctionType();
+
+ /**
+ * The meta object literal for the '<em><b>Predicate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__PREDICATE = eINSTANCE.getDB2Function_Predicate();
+
+ /**
+ * The meta object literal for the '<em><b>External Action</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__EXTERNAL_ACTION = eINSTANCE.getDB2Function_ExternalAction();
+
+ /**
+ * The meta object literal for the '<em><b>Cardinality</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__CARDINALITY = eINSTANCE.getDB2Function_Cardinality();
+
+ /**
+ * The meta object literal for the '<em><b>Allow Parallel</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__ALLOW_PARALLEL = eINSTANCE.getDB2Function_AllowParallel();
+
+ /**
+ * The meta object literal for the '<em><b>Return Clause</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__RETURN_CLAUSE = eINSTANCE.getDB2Function_ReturnClause();
+
+ /**
+ * The meta object literal for the '<em><b>Origin</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__ORIGIN = eINSTANCE.getDB2Function_Origin();
+
+ /**
+ * The meta object literal for the '<em><b>Inherit Lock Request</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__INHERIT_LOCK_REQUEST = eINSTANCE.getDB2Function_InheritLockRequest();
+
+ /**
+ * The meta object literal for the '<em><b>Dialect</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__DIALECT = eINSTANCE.getDB2Function_Dialect();
+
+ /**
+ * The meta object literal for the '<em><b>Inline</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__INLINE = eINSTANCE.getDB2Function_Inline();
+
+ /**
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__VERSION = eINSTANCE.getDB2Function_Version();
+
+ /**
+ * The meta object literal for the '<em><b>Secured</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_FUNCTION__SECURED = eINSTANCE.getDB2Function_Secured();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl <em>DB2 Java Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2JavaOptions()
+ * @generated
+ */
+ EClass DB2_JAVA_OPTIONS = eINSTANCE.getDB2JavaOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Class Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAVA_OPTIONS__CLASS_NAME = eINSTANCE.getDB2JavaOptions_ClassName();
+
+ /**
+ * The meta object literal for the '<em><b>Method Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAVA_OPTIONS__METHOD_NAME = eINSTANCE.getDB2JavaOptions_MethodName();
+
+ /**
+ * The meta object literal for the '<em><b>Sqlj</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAVA_OPTIONS__SQLJ = eINSTANCE.getDB2JavaOptions_Sqlj();
+
+ /**
+ * The meta object literal for the '<em><b>Procedure</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_JAVA_OPTIONS__PROCEDURE = eINSTANCE.getDB2JavaOptions_Procedure();
+
+ /**
+ * The meta object literal for the '<em><b>Jar</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_JAVA_OPTIONS__JAR = eINSTANCE.getDB2JavaOptions_Jar();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureDeployImpl <em>DB2 Procedure Deploy</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureDeployImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2ProcedureDeploy()
+ * @generated
+ */
+ EClass DB2_PROCEDURE_DEPLOY = eINSTANCE.getDB2ProcedureDeploy();
+
+ /**
+ * The meta object literal for the '<em><b>File Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PROCEDURE_DEPLOY__FILE_NAME = eINSTANCE.getDB2ProcedureDeploy_FileName();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2OLAPObjectImpl <em>DB2OLAP Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2OLAPObjectImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2OLAPObject()
+ * @generated
+ */
+ EClass DB2OLAP_OBJECT = eINSTANCE.getDB2OLAPObject();
+
+ /**
+ * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2OLAP_OBJECT__SCHEMA = eINSTANCE.getDB2OLAPObject_Schema();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension <em>DB2 Routine Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2RoutineExtension()
+ * @generated
+ */
+ EClass DB2_ROUTINE_EXTENSION = eINSTANCE.getDB2RoutineExtension();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl <em>DB2 Identity Specifier</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2IdentitySpecifier()
+ * @generated
+ */
+ EClass DB2_IDENTITY_SPECIFIER = eINSTANCE.getDB2IdentitySpecifier();
+
+ /**
+ * The meta object literal for the '<em><b>Cache</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_IDENTITY_SPECIFIER__CACHE = eINSTANCE.getDB2IdentitySpecifier_Cache();
+
+ /**
+ * The meta object literal for the '<em><b>Order</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_IDENTITY_SPECIFIER__ORDER = eINSTANCE.getDB2IdentitySpecifier_Order();
+
+ /**
+ * The meta object literal for the '<em><b>System Generated</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED = eINSTANCE.getDB2IdentitySpecifier_SystemGenerated();
+
+ /**
+ * The meta object literal for the '<em><b>Restart Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_IDENTITY_SPECIFIER__RESTART_VALUE = eINSTANCE.getDB2IdentitySpecifier_RestartValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl <em>DB2 Jar</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Jar()
+ * @generated
+ */
+ EClass DB2_JAR = eINSTANCE.getDB2Jar();
+
+ /**
+ * The meta object literal for the '<em><b>File Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAR__FILE_NAME = eINSTANCE.getDB2Jar_FileName();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAR__PATH = eINSTANCE.getDB2Jar_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Owner</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAR__OWNER = eINSTANCE.getDB2Jar_Owner();
+
+ /**
+ * The meta object literal for the '<em><b>Created TS</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAR__CREATED_TS = eINSTANCE.getDB2Jar_CreatedTS();
+
+ /**
+ * The meta object literal for the '<em><b>Altered TS</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_JAR__ALTERED_TS = eINSTANCE.getDB2Jar_AlteredTS();
+
+ /**
+ * The meta object literal for the '<em><b>Procedures</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_JAR__PROCEDURES = eINSTANCE.getDB2Jar_Procedures();
+
+ /**
+ * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_JAR__SCHEMA = eINSTANCE.getDB2Jar_Schema();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl <em>DB2 Column</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Column()
+ * @generated
+ */
+ EClass DB2_COLUMN = eINSTANCE.getDB2Column();
+
+ /**
+ * The meta object literal for the '<em><b>Generation Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_COLUMN__GENERATION_TYPE = eINSTANCE.getDB2Column_GenerationType();
+
+ /**
+ * The meta object literal for the '<em><b>Row Change Timestamp</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_COLUMN__ROW_CHANGE_TIMESTAMP = eINSTANCE.getDB2Column_RowChangeTimestamp();
+
+ /**
+ * The meta object literal for the '<em><b>Row Begin</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_COLUMN__ROW_BEGIN = eINSTANCE.getDB2Column_RowBegin();
+
+ /**
+ * The meta object literal for the '<em><b>Row End</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_COLUMN__ROW_END = eINSTANCE.getDB2Column_RowEnd();
+
+ /**
+ * The meta object literal for the '<em><b>Trans Start ID</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_COLUMN__TRANS_START_ID = eINSTANCE.getDB2Column_TransStartID();
+
+ /**
+ * The meta object literal for the '<em><b>Begin Period</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_COLUMN__BEGIN_PERIOD = eINSTANCE.getDB2Column_BeginPeriod();
+
+ /**
+ * The meta object literal for the '<em><b>End Period</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_COLUMN__END_PERIOD = eINSTANCE.getDB2Column_EndPeriod();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XSRObjectImpl <em>DB2XSR Object</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XSRObjectImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XSRObject()
+ * @generated
+ */
+ EClass DB2XSR_OBJECT = eINSTANCE.getDB2XSRObject();
+
+ /**
+ * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2XSR_OBJECT__SCHEMA = eINSTANCE.getDB2XSRObject_Schema();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl <em>DB2XML Schema</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchema()
+ * @generated
+ */
+ EClass DB2XML_SCHEMA = eINSTANCE.getDB2XMLSchema();
+
+ /**
+ * The meta object literal for the '<em><b>Decomposition</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2XML_SCHEMA__DECOMPOSITION = eINSTANCE.getDB2XMLSchema_Decomposition();
+
+ /**
+ * The meta object literal for the '<em><b>Status</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2XML_SCHEMA__STATUS = eINSTANCE.getDB2XMLSchema_Status();
+
+ /**
+ * The meta object literal for the '<em><b>Xml Schema Docs</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2XML_SCHEMA__XML_SCHEMA_DOCS = eINSTANCE.getDB2XMLSchema_XmlSchemaDocs();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl <em>DB2XML Schema Document</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaDocument()
+ * @generated
+ */
+ EClass DB2XML_SCHEMA_DOCUMENT = eINSTANCE.getDB2XMLSchemaDocument();
+
+ /**
+ * The meta object literal for the '<em><b>File Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2XML_SCHEMA_DOCUMENT__FILE_NAME = eINSTANCE.getDB2XMLSchemaDocument_FileName();
+
+ /**
+ * The meta object literal for the '<em><b>Schema Location</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION = eINSTANCE.getDB2XMLSchemaDocument_SchemaLocation();
+
+ /**
+ * The meta object literal for the '<em><b>Target Namespace</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE = eINSTANCE.getDB2XMLSchemaDocument_TargetNamespace();
+
+ /**
+ * The meta object literal for the '<em><b>Primary</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2XML_SCHEMA_DOCUMENT__PRIMARY = eINSTANCE.getDB2XMLSchemaDocument_Primary();
+
+ /**
+ * The meta object literal for the '<em><b>Xml Schema</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA = eINSTANCE.getDB2XMLSchemaDocument_XmlSchema();
+
+ /**
+ * The meta object literal for the '<em><b>Xml Schema Doc Properties</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES = eINSTANCE.getDB2XMLSchemaDocument_XmlSchemaDocProperties();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocPropertiesImpl <em>DB2XML Schema Doc Properties</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocPropertiesImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaDocProperties()
+ * @generated
+ */
+ EClass DB2XML_SCHEMA_DOC_PROPERTIES = eINSTANCE.getDB2XMLSchemaDocProperties();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2XML_SCHEMA_DOC_PROPERTIES__VALUE = eINSTANCE.getDB2XMLSchemaDocProperties_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Xml Schema Doc</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC = eINSTANCE.getDB2XMLSchemaDocProperties_XmlSchemaDoc();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl <em>DB2 Package Statement</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2PackageStatement()
+ * @generated
+ */
+ EClass DB2_PACKAGE_STATEMENT = eINSTANCE.getDB2PackageStatement();
+
+ /**
+ * The meta object literal for the '<em><b>Statement Number</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER = eINSTANCE.getDB2PackageStatement_StatementNumber();
+
+ /**
+ * The meta object literal for the '<em><b>Section Number</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PACKAGE_STATEMENT__SECTION_NUMBER = eINSTANCE.getDB2PackageStatement_SectionNumber();
+
+ /**
+ * The meta object literal for the '<em><b>Package</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PACKAGE_STATEMENT__PACKAGE = eINSTANCE.getDB2PackageStatement_Package();
+
+ /**
+ * The meta object literal for the '<em><b>Sql Statement</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PACKAGE_STATEMENT__SQL_STATEMENT = eINSTANCE.getDB2PackageStatement_SqlStatement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DistinctUserDefinedTypeImpl <em>DB2 Distinct User Defined Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DistinctUserDefinedTypeImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2DistinctUserDefinedType()
+ * @generated
+ */
+ EClass DB2_DISTINCT_USER_DEFINED_TYPE = eINSTANCE.getDB2DistinctUserDefinedType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl <em>DB2 Period</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Period()
+ * @generated
+ */
+ EClass DB2_PERIOD = eINSTANCE.getDB2Period();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PERIOD__TYPE = eINSTANCE.getDB2Period_Type();
+
+ /**
+ * The meta object literal for the '<em><b>Begin Column</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PERIOD__BEGIN_COLUMN = eINSTANCE.getDB2Period_BeginColumn();
+
+ /**
+ * The meta object literal for the '<em><b>End Column</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PERIOD__END_COLUMN = eINSTANCE.getDB2Period_EndColumn();
+
+ /**
+ * The meta object literal for the '<em><b>Table</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PERIOD__TABLE = eINSTANCE.getDB2Period_Table();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ClusterImpl <em>DB2 Cluster</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ClusterImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Cluster()
+ * @generated
+ */
+ EClass DB2_CLUSTER = eINSTANCE.getDB2Cluster();
+
+ /**
+ * The meta object literal for the '<em><b>Level</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_CLUSTER__LEVEL = eINSTANCE.getDB2Cluster_Level();
+
+ /**
+ * The meta object literal for the '<em><b>Instance</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_CLUSTER__INSTANCE = eINSTANCE.getDB2Cluster_Instance();
+
+ /**
+ * The meta object literal for the '<em><b>Members</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_CLUSTER__MEMBERS = eINSTANCE.getDB2Cluster_Members();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl <em>DB2 Member</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Member()
+ * @generated
+ */
+ EClass DB2_MEMBER = eINSTANCE.getDB2Member();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MEMBER__ID = eINSTANCE.getDB2Member_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Home Host</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MEMBER__HOME_HOST = eINSTANCE.getDB2Member_HomeHost();
+
+ /**
+ * The meta object literal for the '<em><b>Current Host</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MEMBER__CURRENT_HOST = eINSTANCE.getDB2Member_CurrentHost();
+
+ /**
+ * The meta object literal for the '<em><b>State</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MEMBER__STATE = eINSTANCE.getDB2Member_State();
+
+ /**
+ * The meta object literal for the '<em><b>Cluster</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MEMBER__CLUSTER = eINSTANCE.getDB2Member_Cluster();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UniqueConstraintExtensionImpl <em>DB2 Unique Constraint Extension</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UniqueConstraintExtensionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2UniqueConstraintExtension()
+ * @generated
+ */
+ EClass DB2_UNIQUE_CONSTRAINT_EXTENSION = eINSTANCE.getDB2UniqueConstraintExtension();
+
+ /**
+ * The meta object literal for the '<em><b>Bus Period Without Overlap</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP = eINSTANCE.getDB2UniqueConstraintExtension_BusPeriodWithoutOverlap();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl <em>DB2 Mask</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Mask()
+ * @generated
+ */
+ EClass DB2_MASK = eINSTANCE.getDB2Mask();
+
+ /**
+ * The meta object literal for the '<em><b>Correlation Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MASK__CORRELATION_NAME = eINSTANCE.getDB2Mask_CorrelationName();
+
+ /**
+ * The meta object literal for the '<em><b>Case Expression</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MASK__CASE_EXPRESSION = eINSTANCE.getDB2Mask_CaseExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Enable</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_MASK__ENABLE = eINSTANCE.getDB2Mask_Enable();
+
+ /**
+ * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MASK__SCHEMA = eINSTANCE.getDB2Mask_Schema();
+
+ /**
+ * The meta object literal for the '<em><b>Subject Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MASK__SUBJECT_TABLE = eINSTANCE.getDB2Mask_SubjectTable();
+
+ /**
+ * The meta object literal for the '<em><b>Subject MQT</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MASK__SUBJECT_MQT = eINSTANCE.getDB2Mask_SubjectMQT();
+
+ /**
+ * The meta object literal for the '<em><b>Subject Column</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_MASK__SUBJECT_COLUMN = eINSTANCE.getDB2Mask_SubjectColumn();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl <em>DB2 Permission</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2Permission()
+ * @generated
+ */
+ EClass DB2_PERMISSION = eINSTANCE.getDB2Permission();
+
+ /**
+ * The meta object literal for the '<em><b>Correlation Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PERMISSION__CORRELATION_NAME = eINSTANCE.getDB2Permission_CorrelationName();
+
+ /**
+ * The meta object literal for the '<em><b>Search Condition</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PERMISSION__SEARCH_CONDITION = eINSTANCE.getDB2Permission_SearchCondition();
+
+ /**
+ * The meta object literal for the '<em><b>Enable</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DB2_PERMISSION__ENABLE = eINSTANCE.getDB2Permission_Enable();
+
+ /**
+ * The meta object literal for the '<em><b>Schema</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PERMISSION__SCHEMA = eINSTANCE.getDB2Permission_Schema();
+
+ /**
+ * The meta object literal for the '<em><b>Subject Table</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PERMISSION__SUBJECT_TABLE = eINSTANCE.getDB2Permission_SubjectTable();
+
+ /**
+ * The meta object literal for the '<em><b>Subject MQT</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DB2_PERMISSION__SUBJECT_MQT = eINSTANCE.getDB2Permission_SubjectMQT();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType <em>Isolation Level Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getIsolationLevelType()
+ * @generated
+ */
+ EEnum ISOLATION_LEVEL_TYPE = eINSTANCE.getIsolationLevelType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType <em>DB2 Index Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2IndexType()
+ * @generated
+ */
+ EEnum DB2_INDEX_TYPE = eINSTANCE.getDB2IndexType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType <em>Data Capture Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDataCaptureType()
+ * @generated
+ */
+ EEnum DATA_CAPTURE_TYPE = eINSTANCE.getDataCaptureType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.UnitType <em>Unit Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.UnitType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getUnitType()
+ * @generated
+ */
+ EEnum UNIT_TYPE = eINSTANCE.getUnitType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.GenerateType <em>Generate Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.GenerateType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getGenerateType()
+ * @generated
+ */
+ EEnum GENERATE_TYPE = eINSTANCE.getGenerateType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition <em>DB2XML Schema Decomposition</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaDecomposition()
+ * @generated
+ */
+ EEnum DB2XML_SCHEMA_DECOMPOSITION = eINSTANCE.getDB2XMLSchemaDecomposition();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus <em>DB2XML Schema Status</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2XMLSchemaStatus()
+ * @generated
+ */
+ EEnum DB2XML_SCHEMA_STATUS = eINSTANCE.getDB2XMLSchemaStatus();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.OriginType <em>Origin Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.OriginType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getOriginType()
+ * @generated
+ */
+ EEnum ORIGIN_TYPE = eINSTANCE.getOriginType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.ReoptType <em>Reopt Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.ReoptType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getReoptType()
+ * @generated
+ */
+ EEnum REOPT_TYPE = eINSTANCE.getReoptType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect <em>Source Dialect</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getSourceDialect()
+ * @generated
+ */
+ EEnum SOURCE_DIALECT = eINSTANCE.getSourceDialect();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType <em>DB2 Period Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2PeriodType()
+ * @generated
+ */
+ EEnum DB2_PERIOD_TYPE = eINSTANCE.getDB2PeriodType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization <em>DB2 Table Organization</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ModelPackageImpl#getDB2TableOrganization()
+ * @generated
+ */
+ EEnum DB2_TABLE_ORGANIZATION = eINSTANCE.getDB2TableOrganization();
+
+ }
+
+} //DB2ModelPackage
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2MultidimensionalIndex.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2MultidimensionalIndex.java
new file mode 100644
index 0000000..22578f4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2MultidimensionalIndex.java
@@ -0,0 +1,48 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Multidimensional Index</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex#getDimensionIndexes <em>Dimension Indexes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MultidimensionalIndex()
+ * @model
+ * @generated
+ */
+public interface DB2MultidimensionalIndex extends Index {
+ /**
+ * Returns the value of the '<em><b>Dimension Indexes</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getDB2MultidimensionalIndex <em>DB2 Multidimensional Index</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dimension Indexes</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dimension Indexes</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2MultidimensionalIndex_DimensionIndexes()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Index#getDB2MultidimensionalIndex
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Index" opposite="DB2MultidimensionalIndex" required="true"
+ * @generated
+ */
+ EList getDimensionIndexes();
+
+} // DB2MultidimensionalIndex
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2OLAPObject.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2OLAPObject.java
new file mode 100644
index 0000000..f91e090
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2OLAPObject.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2OLAPObject.java,v 1.8 2007/10/12 23:05:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2OLAP Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2OLAPObject()
+ * @model
+ * @generated
+ */
+public interface DB2OLAPObject extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getOlapObjects <em>Olap Objects</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' reference.
+ * @see #setSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2OLAPObject_Schema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getOlapObjects
+ * @model opposite="olapObjects" required="true"
+ * @generated
+ */
+ DB2Schema getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject#getSchema <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' reference.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(DB2Schema value);
+
+} // DB2OLAPObject
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Package.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Package.java
new file mode 100644
index 0000000..3c01206
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Package.java
@@ -0,0 +1,342 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Package</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * DB2 Packages (Chapter 1. Concepts 9)
+ *
+ * A package is an object produced during program preparation that contains all of the sections in a single source file. A section is the compiled form of an SQL statement. Although every section corresponds to one statement, not every statement has a section. The sections created for static SQL are comparable to the bound, or operational, form of SQL statements. The sections created for dynamic SQL are comparable to placeholder control structures used at run time.
+ *
+ *
+ * Packages and access plans
+ *
+ * A package is an object that contains control structures used to execute SQL statements. Packages are produced during program preparation. The control structures can be thought of as the bound or operational form of SQL statements. All control structures in a package are derived from the SQL statements embedded in a single source program.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#isOperative <em>Operative</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getValid <em>Valid</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getDefaultSchema <em>Default Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSqlPath <em>Sql Path</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getReoptVar <em>Reopt Var</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getIsolation <em>Isolation</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getUniqueID <em>Unique ID</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getLastBindTS <em>Last Bind TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getStatements <em>Statements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package()
+ * @model
+ * @generated
+ */
+public interface DB2Package extends DB2AccessPlan {
+ /**
+ * Returns the value of the '<em><b>Operative</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operative</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operative</em>' attribute.
+ * @see #setOperative(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_Operative()
+ * @model default="true"
+ * @generated
+ */
+ boolean isOperative();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#isOperative <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operative</em>' attribute.
+ * @see #isOperative()
+ * @generated
+ */
+ void setOperative(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Valid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Valid</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Valid</em>' attribute.
+ * @see #setValid(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_Valid()
+ * @model
+ * @generated
+ */
+ String getValid();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getValid <em>Valid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Valid</em>' attribute.
+ * @see #getValid()
+ * @generated
+ */
+ void setValid(String value);
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_Version()
+ * @model
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Default Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Schema</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Schema</em>' attribute.
+ * @see #setDefaultSchema(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_DefaultSchema()
+ * @model
+ * @generated
+ */
+ String getDefaultSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getDefaultSchema <em>Default Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Schema</em>' attribute.
+ * @see #getDefaultSchema()
+ * @generated
+ */
+ void setDefaultSchema(String value);
+
+ /**
+ * Returns the value of the '<em><b>Sql Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sql Path</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sql Path</em>' attribute.
+ * @see #setSqlPath(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_SqlPath()
+ * @model
+ * @generated
+ */
+ String getSqlPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSqlPath <em>Sql Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sql Path</em>' attribute.
+ * @see #getSqlPath()
+ * @generated
+ */
+ void setSqlPath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Reopt Var</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.ReoptType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reopt Var</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reopt Var</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.ReoptType
+ * @see #setReoptVar(ReoptType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_ReoptVar()
+ * @model
+ * @generated
+ */
+ ReoptType getReoptVar();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getReoptVar <em>Reopt Var</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reopt Var</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.ReoptType
+ * @see #getReoptVar()
+ * @generated
+ */
+ void setReoptVar(ReoptType value);
+
+ /**
+ * Returns the value of the '<em><b>Isolation</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Isolation</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Isolation</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType
+ * @see #setIsolation(IsolationLevelType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_Isolation()
+ * @model
+ * @generated
+ */
+ IsolationLevelType getIsolation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getIsolation <em>Isolation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Isolation</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType
+ * @see #getIsolation()
+ * @generated
+ */
+ void setIsolation(IsolationLevelType value);
+
+ /**
+ * Returns the value of the '<em><b>Unique ID</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unique ID</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unique ID</em>' attribute.
+ * @see #setUniqueID(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_UniqueID()
+ * @model
+ * @generated
+ */
+ String getUniqueID();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getUniqueID <em>Unique ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Unique ID</em>' attribute.
+ * @see #getUniqueID()
+ * @generated
+ */
+ void setUniqueID(String value);
+
+ /**
+ * Returns the value of the '<em><b>Last Bind TS</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Last Bind TS</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Last Bind TS</em>' attribute.
+ * @see #setLastBindTS(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_LastBindTS()
+ * @model
+ * @generated
+ */
+ String getLastBindTS();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getLastBindTS <em>Last Bind TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Last Bind TS</em>' attribute.
+ * @see #getLastBindTS()
+ * @generated
+ */
+ void setLastBindTS(String value);
+
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPackages <em>Packages</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' reference.
+ * @see #setSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_Schema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPackages
+ * @model opposite="packages" required="true"
+ * @generated
+ */
+ DB2Schema getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSchema <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' reference.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(DB2Schema value);
+
+ /**
+ * Returns the value of the '<em><b>Statements</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getPackage <em>Package</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statements</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statements</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Package_Statements()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getPackage
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement" opposite="package" containment="true"
+ * @generated
+ */
+ EList getStatements();
+
+} // DB2Package
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2PackageStatement.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2PackageStatement.java
new file mode 100644
index 0000000..636a92b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2PackageStatement.java
@@ -0,0 +1,139 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2PackageStatement.java,v 1.1 2008/06/10 20:19:40 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Package Statement</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getStatementNumber <em>Statement Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSectionNumber <em>Section Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getPackage <em>Package</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSqlStatement <em>Sql Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2PackageStatement()
+ * @model
+ * @generated
+ */
+public interface DB2PackageStatement extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Statement Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Statement Number</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Statement Number</em>' attribute.
+ * @see #setStatementNumber(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2PackageStatement_StatementNumber()
+ * @model
+ * @generated
+ */
+ int getStatementNumber();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getStatementNumber <em>Statement Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Statement Number</em>' attribute.
+ * @see #getStatementNumber()
+ * @generated
+ */
+ void setStatementNumber(int value);
+
+ /**
+ * Returns the value of the '<em><b>Section Number</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Section Number</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Section Number</em>' attribute.
+ * @see #setSectionNumber(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2PackageStatement_SectionNumber()
+ * @model
+ * @generated
+ */
+ int getSectionNumber();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSectionNumber <em>Section Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Section Number</em>' attribute.
+ * @see #getSectionNumber()
+ * @generated
+ */
+ void setSectionNumber(int value);
+
+ /**
+ * Returns the value of the '<em><b>Package</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getStatements <em>Statements</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Package</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Package</em>' container reference.
+ * @see #setPackage(DB2Package)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2PackageStatement_Package()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getStatements
+ * @model opposite="statements" required="true"
+ * @generated
+ */
+ DB2Package getPackage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getPackage <em>Package</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Package</em>' container reference.
+ * @see #getPackage()
+ * @generated
+ */
+ void setPackage(DB2Package value);
+
+ /**
+ * Returns the value of the '<em><b>Sql Statement</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sql Statement</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sql Statement</em>' containment reference.
+ * @see #setSqlStatement(SQLStatement)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2PackageStatement_SqlStatement()
+ * @model containment="true"
+ * @generated
+ */
+ SQLStatement getSqlStatement();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement#getSqlStatement <em>Sql Statement</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sql Statement</em>' containment reference.
+ * @see #getSqlStatement()
+ * @generated
+ */
+ void setSqlStatement(SQLStatement value);
+
+} // DB2PackageStatement
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Period.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Period.java
new file mode 100644
index 0000000..9f70b22
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Period.java
@@ -0,0 +1,144 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Period</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getBeginColumn <em>Begin Column</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getEndColumn <em>End Column</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Period()
+ * @model
+ * @generated
+ */
+public interface DB2Period extends EObject {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType
+ * @see #setType(DB2PeriodType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Period_Type()
+ * @model
+ * @generated
+ */
+ DB2PeriodType getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType
+ * @see #getType()
+ * @generated
+ */
+ void setType(DB2PeriodType value);
+
+ /**
+ * Returns the value of the '<em><b>Begin Column</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getBeginPeriod <em>Begin Period</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Begin Column</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Begin Column</em>' reference.
+ * @see #setBeginColumn(DB2Column)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Period_BeginColumn()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getBeginPeriod
+ * @model opposite="beginPeriod" required="true"
+ * @generated
+ */
+ DB2Column getBeginColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getBeginColumn <em>Begin Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Begin Column</em>' reference.
+ * @see #getBeginColumn()
+ * @generated
+ */
+ void setBeginColumn(DB2Column value);
+
+ /**
+ * Returns the value of the '<em><b>End Column</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getEndPeriod <em>End Period</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>End Column</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>End Column</em>' reference.
+ * @see #setEndColumn(DB2Column)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Period_EndColumn()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Column#getEndPeriod
+ * @model opposite="endPeriod" required="true"
+ * @generated
+ */
+ DB2Column getEndColumn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getEndColumn <em>End Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>End Column</em>' reference.
+ * @see #getEndColumn()
+ * @generated
+ */
+ void setEndColumn(DB2Column value);
+
+ /**
+ * Returns the value of the '<em><b>Table</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPeriods <em>Periods</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Table</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Table</em>' container reference.
+ * @see #setTable(DB2Table)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Period_Table()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPeriods
+ * @model opposite="periods" required="true"
+ * @generated
+ */
+ DB2Table getTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getTable <em>Table</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Table</em>' container reference.
+ * @see #getTable()
+ * @generated
+ */
+ void setTable(DB2Table value);
+
+} // DB2Period
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2PeriodType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2PeriodType.java
new file mode 100644
index 0000000..aef8617
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2PeriodType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>DB2 Period Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2PeriodType()
+ * @model
+ * @generated
+ */
+public final class DB2PeriodType extends AbstractEnumerator {
+ /**
+ * The '<em><b>SYSTEM TIME</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SYSTEM TIME</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SYSTEM_TIME_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SYSTEM_TIME = 0;
+
+ /**
+ * The '<em><b>BUSINESS TIME</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BUSINESS TIME</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BUSINESS_TIME_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BUSINESS_TIME = 1;
+
+ /**
+ * The '<em><b>SYSTEM TIME</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SYSTEM_TIME
+ * @generated
+ * @ordered
+ */
+ public static final DB2PeriodType SYSTEM_TIME_LITERAL = new DB2PeriodType(SYSTEM_TIME, "SYSTEM_TIME", "SYSTEM_TIME"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>BUSINESS TIME</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BUSINESS_TIME
+ * @generated
+ * @ordered
+ */
+ public static final DB2PeriodType BUSINESS_TIME_LITERAL = new DB2PeriodType(BUSINESS_TIME, "BUSINESS_TIME", "BUSINESS_TIME"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>DB2 Period Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DB2PeriodType[] VALUES_ARRAY =
+ new DB2PeriodType[] {
+ SYSTEM_TIME_LITERAL,
+ BUSINESS_TIME_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>DB2 Period Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>DB2 Period Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2PeriodType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2PeriodType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2 Period Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2PeriodType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2PeriodType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2 Period Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2PeriodType get(int value) {
+ switch (value) {
+ case SYSTEM_TIME: return SYSTEM_TIME_LITERAL;
+ case BUSINESS_TIME: return BUSINESS_TIME_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DB2PeriodType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //DB2PeriodType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Permission.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Permission.java
new file mode 100644
index 0000000..5fe8bae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Permission.java
@@ -0,0 +1,198 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Permission</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getCorrelationName <em>Correlation Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSearchCondition <em>Search Condition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#isEnable <em>Enable</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectTable <em>Subject Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectMQT <em>Subject MQT</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Permission()
+ * @model
+ * @generated
+ */
+public interface DB2Permission extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Correlation Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Correlation Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Correlation Name</em>' attribute.
+ * @see #setCorrelationName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Permission_CorrelationName()
+ * @model
+ * @generated
+ */
+ String getCorrelationName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getCorrelationName <em>Correlation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Correlation Name</em>' attribute.
+ * @see #getCorrelationName()
+ * @generated
+ */
+ void setCorrelationName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Search Condition</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Search Condition</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Search Condition</em>' containment reference.
+ * @see #setSearchCondition(QueryExpression)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Permission_SearchCondition()
+ * @model containment="true"
+ * @generated
+ */
+ QueryExpression getSearchCondition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSearchCondition <em>Search Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Search Condition</em>' containment reference.
+ * @see #getSearchCondition()
+ * @generated
+ */
+ void setSearchCondition(QueryExpression value);
+
+ /**
+ * Returns the value of the '<em><b>Enable</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Enable</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Enable</em>' attribute.
+ * @see #setEnable(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Permission_Enable()
+ * @model default="true"
+ * @generated
+ */
+ boolean isEnable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#isEnable <em>Enable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Enable</em>' attribute.
+ * @see #isEnable()
+ * @generated
+ */
+ void setEnable(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPermissions <em>Permissions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' reference.
+ * @see #setSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Permission_Schema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPermissions
+ * @model opposite="permissions" required="true"
+ * @generated
+ */
+ DB2Schema getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSchema <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' reference.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(DB2Schema value);
+
+ /**
+ * Returns the value of the '<em><b>Subject Table</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPermissions <em>Permissions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Subject Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Subject Table</em>' reference.
+ * @see #setSubjectTable(DB2Table)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Permission_SubjectTable()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPermissions
+ * @model opposite="permissions" required="true"
+ * @generated
+ */
+ DB2Table getSubjectTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectTable <em>Subject Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Subject Table</em>' reference.
+ * @see #getSubjectTable()
+ * @generated
+ */
+ void setSubjectTable(DB2Table value);
+
+ /**
+ * Returns the value of the '<em><b>Subject MQT</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getPermissions <em>Permissions</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Subject MQT</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Subject MQT</em>' reference.
+ * @see #setSubjectMQT(DB2MaterializedQueryTable)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Permission_SubjectMQT()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable#getPermissions
+ * @model opposite="permissions" required="true"
+ * @generated
+ */
+ DB2MaterializedQueryTable getSubjectMQT();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectMQT <em>Subject MQT</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Subject MQT</em>' reference.
+ * @see #getSubjectMQT()
+ * @generated
+ */
+ void setSubjectMQT(DB2MaterializedQueryTable value);
+
+} // DB2Permission
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Procedure.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Procedure.java
new file mode 100644
index 0000000..9cb91ca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Procedure.java
@@ -0,0 +1,283 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Procedures (Chapter 1. Concepts 9)
+ *
+ * A procedure (sometimes called a stored procedure) is a routine that can be called to perform operations that can include both host language statements and SQL statements.
+ *
+ * Procedures are classified as either SQL procedures or external procedures. SQL procedures contain only SQL statements. External procedures reference a host language program which may or may not contain SQL statements. A procedure is created with the CREATE PROCEDURE statement. For more information about creating procedures, see "CREATE PROCEDURE" on page 366.
+ *
+ * Procedures in SQL provide the same benefits as procedures in a host language. That is, a common piece of code need only be written and maintained once and can be called from several programs. Host languages can easily call procedures that exist on the local system. SQL can also easily call a procedure that exists on a remote system. In fact, the major benefit of procedures in SQL is that they can be used to enhance the performance characteristics of distributed applications.
+ *
+ * Assume several SQL statements must be executed at a remote system. There are two ways this can be done. Without procedures, when the first SQL statement is executed, the application requester will send a request to an application server to perform the operation. It then waits for a reply that indicates whether the statement executed successfully or not and optionally returns results. When the second and each subsequent SQL statement is executed, the application requester will send another request and wait for another reply. If the same SQL statements are stored in a procedure at an application server, a CALL statement can be executed that references the remote procedure. When the CALL statement is executed, the application requester will send a single request to the current server to call the procedure. It then waits for a single reply that indicates whether the CALL statement executed successfully or not and optionally returns results.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isModelResultSets <em>Model Result Sets</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isNullInput <em>Null Input</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDialect <em>Dialect</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isExternalAction <em>External Action</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getReturn <em>Return</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getJavaOptions <em>Java Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDeploy <em>Deploy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure()
+ * @model
+ * @generated
+ */
+public interface DB2Procedure extends Procedure, DB2Routine {
+ /**
+ * Returns the value of the '<em><b>Model Result Sets</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * <code>True</code> means that the stored procedure should have its result sets modeled.
+ * <code>False</code> means that even if the stored procedure returned result sets, they are not modeled.
+ * Most users will not be wanting to model the stored procedure return result sets metadata as this takes
+ * considerable time, and the developer may not want to even run the stored procedure (yes, even though
+ * no data is returned, it needs to be done to learn the metadata) at the time of the build.
+ *
+ * This was added so that the stored procedure could be completely described in a DADX document.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Model Result Sets</em>' attribute.
+ * @see #setModelResultSets(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_ModelResultSets()
+ * @model default="false"
+ * @generated
+ */
+ boolean isModelResultSets();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isModelResultSets <em>Model Result Sets</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Model Result Sets</em>' attribute.
+ * @see #isModelResultSets()
+ * @generated
+ */
+ void setModelResultSets(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Null Input</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * CALLED ON NULL INPUT
+ * <p>
+ * CALLED ON NULL INPUT always applies to stored procedures. This
+ * means that regardless if any arguments are null, the stored procedure is
+ * called. It can return a null value or a normal (non-null) value. Responsibility
+ * for testing for null argument values lies with the stored procedure.
+ * <p>
+ * The value NULL CALL may be used as a synonym for CALLED ON
+ * NULL INPUT for backwards and family compatibility.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Null Input</em>' attribute.
+ * @see #setNullInput(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_NullInput()
+ * @model
+ * @generated
+ */
+ boolean isNullInput();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isNullInput <em>Null Input</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Null Input</em>' attribute.
+ * @see #isNullInput()
+ * @generated
+ */
+ void setNullInput(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Initially for DB2 os390 v9 where SQL stored procedures can be versioned (New
+ * Function mode). LUW could follow suit, though it is not in plan for v9.1
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_Version()
+ * @model
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Dialect</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dialect</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dialect</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see #setDialect(SourceDialect)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_Dialect()
+ * @model
+ * @generated
+ */
+ SourceDialect getDialect();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDialect <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dialect</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect
+ * @see #getDialect()
+ * @generated
+ */
+ void setDialect(SourceDialect value);
+
+ /**
+ * Returns the value of the '<em><b>External Action</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>External Action</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>External Action</em>' attribute.
+ * @see #setExternalAction(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_ExternalAction()
+ * @model default="true"
+ * @generated
+ */
+ boolean isExternalAction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#isExternalAction <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>External Action</em>' attribute.
+ * @see #isExternalAction()
+ * @generated
+ */
+ void setExternalAction(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Return</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * The stored procedure can only return an integer data type, if a return type is specified.
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Return</em>' containment reference.
+ * @see #setReturn(IntegerDataType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_Return()
+ * @model containment="true"
+ * @generated
+ */
+ IntegerDataType getReturn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getReturn <em>Return</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * The stored procedure can only return an integer data type, if a return type is specified.
+ * </p>
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return</em>' containment reference.
+ * @see #getReturn()
+ * @generated
+ */
+ void setReturn(IntegerDataType value);
+
+ /**
+ * Returns the value of the '<em><b>Java Options</b></em>' containment reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getProcedure <em>Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Java Options</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Java Options</em>' containment reference.
+ * @see #setJavaOptions(DB2JavaOptions)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_JavaOptions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions#getProcedure
+ * @model opposite="procedure" containment="true"
+ * @generated
+ */
+ DB2JavaOptions getJavaOptions();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getJavaOptions <em>Java Options</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Java Options</em>' containment reference.
+ * @see #getJavaOptions()
+ * @generated
+ */
+ void setJavaOptions(DB2JavaOptions value);
+
+ /**
+ * Returns the value of the '<em><b>Deploy</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Deploy</em>' containment reference.
+ * @see #setDeploy(DB2ProcedureDeploy)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Procedure_Deploy()
+ * @model containment="true"
+ * @generated
+ */
+ DB2ProcedureDeploy getDeploy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure#getDeploy <em>Deploy</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Deploy</em>' containment reference.
+ * @see #getDeploy()
+ * @generated
+ */
+ void setDeploy(DB2ProcedureDeploy value);
+
+} // DB2Procedure
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ProcedureDeploy.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ProcedureDeploy.java
new file mode 100644
index 0000000..773f992
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2ProcedureDeploy.java
@@ -0,0 +1,59 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2ProcedureDeploy.java,v 1.8 2007/10/12 23:05:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Procedure Deploy</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Contains the filename of the deployed script.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy#getFileName <em>File Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ProcedureDeploy()
+ * @model
+ * @generated
+ */
+public interface DB2ProcedureDeploy extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Filename of the deployed script.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>File Name</em>' attribute.
+ * @see #setFileName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2ProcedureDeploy_FileName()
+ * @model
+ * @generated
+ */
+ String getFileName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy#getFileName <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Name</em>' attribute.
+ * @see #getFileName()
+ * @generated
+ */
+ void setFileName(String value);
+
+} // DB2ProcedureDeploy
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Routine.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Routine.java
new file mode 100644
index 0000000..7479b34
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Routine.java
@@ -0,0 +1,640 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Routine</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Routines (Chapter 1. Concepts 9):
+ * A routine is an executable SQL object. There are two types of routines.
+ *
+ * Functions:
+ * A function is a routine that can be invoked from within other SQL statements and returns a value, or a table. A function is created with the CREATE FUNCTION statement.
+ *
+ * Procedures:
+ * A procedure (sometimes called a stored procedure) is a routine that can be called to perform operations that can include both host language statements and SQL statements.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getFenced <em>Fenced</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getThreadsafe <em>Threadsafe</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isDbInfo <em>Db Info</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isImplicitSchema <em>Implicit Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getParmCcsid <em>Parm Ccsid</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getSpecialRegister <em>Special Register</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getChangeState <em>Change State</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getDebugId <em>Debug Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getProgramType <em>Program Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigSchemaName <em>Orig Schema Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigParmSig <em>Orig Parm Sig</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getExtendedOptions <em>Extended Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getRoutineExtensions <em>Routine Extensions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface DB2Routine extends Routine, DB2AccessPlan {
+
+ /**
+ * Returns the value of the '<em><b>Fenced</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From the DB2 SQL Reference for Cross-Platform Development v1.1
+ *
+ * Specifies that the external function or procedure runs in an environment that is isolated from
+ * the database manager environment.
+ *
+ *
+ * From the v8.1 UDB documentation for external UDFs and stored procedures:
+ *
+ * This clause specifies whether the stored procedure is considered "safe" to
+ * run in the database manager operating environment's process or address
+ * space (NOT FENCED), or not (FENCED).
+ * If a stored procedure is registered as FENCED, the database manager
+ * protects its internal resources (for example, data buffers) from access by
+ * the procedure. All procedures have the option of running as FENCED or
+ * NOT FENCED. In general, a procedure running as FENCED will not
+ * perform as well as a similar one running as NOT FENCED.
+ *
+ * CAUTION:
+ * Use of NOT FENCED for procedures that have not been adequately
+ * checked out can compromise the integrity of DB2. DB2 takes some
+ * precautions against many of the common types of inadvertent failures
+ * that could occur, but cannot guarantee complete integrity when NOT
+ * FENCED stored procedures are used.
+ *
+ * Either SYSADM authority, DBADM authority, or a special authority
+ * (CREATE_NOT_FENCED) is required to register a stored procedure as
+ * NOT FENCED. Only FENCED can be specified for a stored procedure
+ * with LANGUAGE OLE or NOT THREADSAFE.
+ *
+ * To create a not-fenced stored procedure, the privileges held by the
+ * authorization ID of the statement must also include at least one of the
+ * following:
+ * - CREATE_NOT_FENCED_ROUTINE authority on the database
+ * - SYSADM or DBADM authority.
+ *
+ * To create a fenced stored procedure, no additional authorities or privileges are
+ * required. If the authorization ID has insufficient authority to perform the operation, an
+ * error (SQLSTATE 42502) is raised.
+ *
+ * As of Sept 2003, there isn't a Fenced attribute for 390. There is one
+ * supported for as400 is done so for compatibility purposes.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Fenced</em>' attribute.
+ * @see #setFenced(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_Fenced()
+ * @model
+ * @generated
+ */
+ String getFenced();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getFenced <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Fenced</em>' attribute.
+ * @see #getFenced()
+ * @generated
+ */
+ void setFenced(String value);
+
+ /**
+ * Returns the value of the '<em><b>Threadsafe</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From the v8.1 UDB documentation for external UDFs and stored procedures:
+ *
+ * Specifies whether the procedure is considered safe to run in the same
+ * process as other routines (THREADSAFE), or not (NOT THREADSAFE).
+ *
+ * If the procedure is defined with LANGUAGE other than OLE:
+ * - If the procedure is defined as THREADSAFE, the database manager can
+ * invoke the procedure in the same process as other routines. In general,
+ * to be threadsafe, a procedure should not use any global or static data
+ * areas. Most programming references include a discussion of writing
+ * threadsafe routines. Both FENCED and NOT FENCED procedures can
+ * be THREADSAFE.
+ * - If the procedure is defined as NOT THREADSAFE, the database
+ * manager will never invoke the procedure in the same process as
+ * another routine.
+ *
+ * For FENCED procedures, THREADSAFE is the default if the LANGUAGE
+ * is JAVA. For all other languages, NOT THREADSAFE is the default. If the
+ * procedure is defined with LANGUAGE OLE, THREADSAFE may not be
+ * specified (SQLSTATE 42613).
+ *
+ * For NOT FENCED procedures, THREADSAFE is the default. NOT
+ * THREADSAFE cannot be specified (SQLSTATE 42613).
+ *
+ * As of Sept 2003, only for LUW
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Threadsafe</em>' attribute.
+ * @see #setThreadsafe(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_Threadsafe()
+ * @model
+ * @generated
+ */
+ String getThreadsafe();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getThreadsafe <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Threadsafe</em>' attribute.
+ * @see #getThreadsafe()
+ * @generated
+ */
+ void setThreadsafe(String value);
+
+ /**
+ * Pseudo-enumerated value for changeState. CLEAN means
+ * the routine hasn't changed since it was deployed to the
+ * server.
+ * @see DB2Routine#setChangeState(int);
+ */
+ int CLEAN = 0;
+
+ /**
+ * Pseudo-enumerated value for changeState. DIRTY_DDL means
+ * the routine's DDL has changed since the last time it was
+ * deployed to the server.
+ * @see DB2Routine#setChangeState(int);
+ */
+ int DIRTY_DDL = 1;
+
+ /**
+ * Pseudo-enumerated value for changeState. DIRTY means
+ * the routine's source has changed since the last time it was
+ * deployed to the server.
+ * @see DB2Routine#setChangeState(int);
+ */
+ int DIRTY = 2;
+
+ /**
+ * Returns the value of the '<em><b>Db Info</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From the DB2 SQL Reference for Cross-Platform Development v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * CREATE PROCEDURE (External):
+ * NO DBINFO or DBINFO
+ * Specifies whether additional status information is passed to the procedure
+ * when it is invoked. The default is NO DBINFO.
+ * NO DBINFO
+ * Additional information is not passed.
+ * DBINFO
+ * An additional argument is passed when the procedure is invoked.
+ * The argument is a structure that contains information such as the name of
+ * the current server, the application run-time authorization ID and
+ * identification of the version and release of the database manager that
+ * invoked the procedure. See "Database information in external routines
+ * (DBINFO)" on page 708 for further details.
+ * DBINFO can be specified only if PARAMETER STYLE DB2SQL is
+ * specified.
+ *
+ * Parameter passing for external functions or procedures written in C or COBOL
+ * This input argument is set by the database manager before invoking the
+ * program. It is only present if the CREATE FUNCTION statement for the
+ * routine specifies the DBINFO keyword. The argument is a structure whose
+ * definition is described in "Database information in external routines
+ * (DBINFO)" on page 708. The dbinfo argument is input only and any changes to
+ * the argument value made by the program are ignored by the database
+ * manager upon return from the program.
+ *
+ *
+ * From the v8.1 UDB documentation for external UDFs and stored procedures:
+ *
+ * Specifies whether specific information known by DB2 is passed to the
+ * stored procedure when it is invoked as an additional invocation-time
+ * argument (DBINFO) or not (NO DBINFO). NO DBINFO is the default.
+ *
+ * DBINFO is not supported for LANGUAGE OLE (SQLSTATE 42613). It is
+ * also not supported for PARAMETER STYLE JAVA or DB2GENERAL.
+ * If DBINFO is specified, a structure containing the following information is
+ * passed to the stored procedure:
+ * - Data base name - the name of the currently connected database.
+ * - Application ID - unique application ID which is established for each
+ * connection to the database.
+ * - Application Authorization ID - the application run-time authorization ID.
+ * - Code page - identifies the database code page.
+ * - Database version/release - identifies the version, release and
+ * modification level of the database server invoking the stored procedure.
+ * - Platform - contains the server's platform type.
+ *
+ * The DBINFO structure is common for all external routines and contains
+ * additional fields that are not relevant to procedures.
+ * CREATE PROCEDURE (External)
+ *
+ *
+ * From the os390 v7 SQL reference:
+ * Specifies whether specific information known by DB2 is passed to the stored
+ * procedure when it is invoked.
+ * NO DBINFO
+ * Additional information is not passed. NO DBINFO is the default.
+ * DBINFO
+ * An additional argument is passed when the stored procedure is invoked.
+ * The argument is a structure that contains information such as the
+ * application run-time authorization ID, the schema name, the name of a
+ * table or column that the procedure might be inserting into or updating, and
+ * identification of the database server that invoked the procedure. For details
+ * about the argument and its structure, see DB2 Application Programming
+ * and SQL Guide.
+ *
+ * DBINFO can be specified only if PARAMETER STYLE DB2SQL is
+ * specified.
+ *
+ *
+ * From the as400 SQL v5r1 SQL reference:
+ * DBINFO Indicates that the database manager should pass a structure containing
+ * status information to the function. Table 24 in the SQL reference
+ * contains a description of the DBINFO structure. Detailed information
+ * about the DBINFO structure can be found in include file SQLUDF in QSYSINC.H.
+ * DBINFO is only allowed with PARAMETER STYLE DB2SQL.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Db Info</em>' attribute.
+ * @see #setDbInfo(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_DbInfo()
+ * @model
+ * @generated
+ */
+ boolean isDbInfo();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isDbInfo <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Db Info</em>' attribute.
+ * @see #isDbInfo()
+ * @generated
+ */
+ void setDbInfo(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Implicit Schema</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From the DB2 SQL Reference for Cross-Platform Development v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * The routine name is implicitly or explicitly qualified with a schema name. If the routine
+ * is created without a schema, then it is created with an implicit schema.
+ *
+ * The implicit schema name is determined as follows:
+ * - For distinct type names, the database manager searches the SQL path and
+ * selects the first schema in the SQL path such that the data type exists in the
+ * schema.
+ * - For procedure names, the database manager searches the SQL path and
+ * selects the first schema in the SQL path such that the schema contains a
+ * procedure with the same name and the same number of parameters.
+ * - For function names, the database manager uses the SQL path in conjunction
+ * with function resolution, as described under "Function resolution" on page 94.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Implicit Schema</em>' attribute.
+ * @see #setImplicitSchema(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_ImplicitSchema()
+ * @model
+ * @generated
+ */
+ boolean isImplicitSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isImplicitSchema <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Implicit Schema</em>' attribute.
+ * @see #isImplicitSchema()
+ * @generated
+ */
+ void setImplicitSchema(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Federated</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From UDB v8.1 SQL Reference Volume 2
+ *
+ * FEDERATED or NOT FEDERATED
+ * This optional clause specifies whether or not federated objects can be
+ * used.
+ * If NOT FEDERATED is specified, federated objects cannot be used in any
+ * SQL statement in the function or procedure . Using a federated object will result in an
+ * error (SQLSTATE 55047).
+ *
+ *
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Federated</em>' attribute.
+ * @see #setFederated(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_Federated()
+ * @model
+ * @generated
+ */
+ boolean isFederated();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#isFederated <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Federated</em>' attribute.
+ * @see #isFederated()
+ * @generated
+ */
+ void setFederated(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Parm Ccsid</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From the DB2 SQL Reference for Cross-Platform Development v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * The meaning of the environment Coded Character Set Identifier (CCSID) depends on
+ * the application server where the routine is executed.
+ * - On DB2 UDB for z/OS and OS/390, the environment CCSIDs are the CCSIDs
+ * for the table accessed in the containing SQL statement.
+ * - On DB2 UDB for iSeries, the environment CCSIDs are the CCSIDs associated
+ * with the job.
+ * - On DB2 UDB for LUW, the environment CCSIDs are the CCSIDs for the
+ * relational database.
+ *
+ *
+ * DB2 Universal Database for OS/390 and z/OS v7 SQL Ref:
+ * Every string used in an SQL operation has a CCSID. The CCSID identifies the
+ * manner in which the characters in the string are encoded. Strings can be encoded
+ * in ASCII, EBCDIC, or Unicode. Many of the times, the default CCSID is used
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Parm Ccsid</em>' attribute.
+ * @see #setParmCcsid(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_ParmCcsid()
+ * @model
+ * @generated
+ */
+ String getParmCcsid();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getParmCcsid <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parm Ccsid</em>' attribute.
+ * @see #getParmCcsid()
+ * @generated
+ */
+ void setParmCcsid(String value);
+
+ /**
+ * Returns the value of the '<em><b>Special Register</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * For UDB, in BNF diagrams above the line, INHERIT SPECIAL REGISTERS is the default.
+ * For zSeries, v7+ there is both
+ * INHERIT SPECIAL REGISTERS
+ * Indicates that the values of special registers are inherited according to the rules
+ * listed in the table for characteristics of special registers in a user-defined
+ * function or stored procedure in Table 19 on page 92.
+ * DEFAULT SPECIAL REGISTERS
+ * Indicates that special registers are initialized to the default values, as indicated
+ * by the rules in the table for characteristics of special registers in a user-defined
+ * function or stored procedure in Table 19 on page 92.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Special Register</em>' attribute.
+ * @see #setSpecialRegister(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_SpecialRegister()
+ * @model
+ * @generated
+ */
+ String getSpecialRegister();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getSpecialRegister <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Special Register</em>' attribute.
+ * @see #getSpecialRegister()
+ * @generated
+ */
+ void setSpecialRegister(String value);
+
+ /**
+ * Returns the value of the '<em><b>Change State</b></em>' attribute.
+ * The default value is <code>"0"</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * This replaces the "dirty" and "dirtyDDL" attributes in the WSAD v6 and previous SQL models.
+ * changeState is integer for to indicate DIRTY source, or just dirty DDL (where an external routine doesn't
+ * need to be recompiled, just dropped and registered).
+ *
+ * Rather than use an enumerated type which is not extendable in EMF, this will have a
+ * pseudo-enumerated type so that the db2 routines can be extended to hold more state
+ * information than just DIRTY (2) and DIRTY_DDL (1), and CLEAN (0). CLEAN will be the default
+ * as the initial value is set to 0.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Change State</em>' attribute.
+ * @see #setChangeState(int)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_ChangeState()
+ * @model default="0"
+ * @generated
+ */
+ int getChangeState();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getChangeState <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Change State</em>' attribute.
+ * @see #getChangeState()
+ * @generated
+ */
+ void setChangeState(int value);
+
+ /**
+ * Returns the value of the '<em><b>Debug Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Special ID to uniquely define the registered, built-for-debug routine at the server.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Debug Id</em>' attribute.
+ * @see #setDebugId(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_DebugId()
+ * @model
+ * @generated
+ */
+ String getDebugId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getDebugId <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Debug Id</em>' attribute.
+ * @see #getDebugId()
+ * @generated
+ */
+ void setDebugId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Program Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * For OS/390 v6 and v7, both UDFs and SPs
+ * <p>
+ * From DB2 OS390 v7 SQL Reference:
+ * <DL>
+ * <DT>SUB
+ * <DD>The stored procedure runs as a subroutine.
+ * <DT>MAIN
+ * <DD>The stored procedure runs as a main routine.
+ * </DL>
+ * <p>
+ * The stored procedure runs as a main routine.
+ * The default for PROGRAM TYPE depends on the value of special register
+ * CURRENT RULES. The default is:
+ * <ul>
+ * <li>MAIN when the value is DB2
+ * <li>SUB when the value is STD
+ * </ul>
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Program Type</em>' attribute.
+ * @see #setProgramType(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_ProgramType()
+ * @model
+ * @generated
+ */
+ String getProgramType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getProgramType <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Program Type</em>' attribute.
+ * @see #getProgramType()
+ * @generated
+ */
+ void setProgramType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Orig Schema Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * For rollback purposes, we need to track the original Schema name used to create
+ * this routine.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Orig Schema Name</em>' attribute.
+ * @see #setOrigSchemaName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_OrigSchemaName()
+ * @model
+ * @generated
+ */
+ String getOrigSchemaName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigSchemaName <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Orig Schema Name</em>' attribute.
+ * @see #getOrigSchemaName()
+ * @generated
+ */
+ void setOrigSchemaName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Orig Parm Sig</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * For rollback purposes, we need to track the original parameter signature of this
+ * routine.
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Orig Parm Sig</em>' attribute.
+ * @see #setOrigParmSig(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_OrigParmSig()
+ * @model
+ * @generated
+ */
+ String getOrigParmSig();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine#getOrigParmSig <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Orig Parm Sig</em>' attribute.
+ * @see #getOrigParmSig()
+ * @generated
+ */
+ void setOrigParmSig(String value);
+
+ /**
+ * Returns the value of the '<em><b>Extended Options</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Extended Options</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_ExtendedOptions()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions" containment="true" required="true"
+ * @generated
+ */
+ EList getExtendedOptions();
+
+ /**
+ * Returns the value of the '<em><b>Routine Extensions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * Extensions for application specific needs. The DB2Model has no dependencies
+ * on whoever implements DB2RoutineExtension
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Routine Extensions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Routine_RoutineExtensions()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension"
+ * @generated
+ */
+ EList getRoutineExtensions();
+
+} // DB2Routine
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2RoutineExtension.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2RoutineExtension.java
new file mode 100644
index 0000000..40a4956
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2RoutineExtension.java
@@ -0,0 +1,32 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2RoutineExtension.java,v 1.5 2007/10/12 23:05:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Routine Extension</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * General purpose extension mechanism for adding complext attributes to
+ * DB2Routines for application specific purposes without adding unnecessary
+ * classes some might not need.
+ *
+ * For instance, run time information can be saved about each routine; deploy
+ * information can be saved about each routine; extra dependency information
+ * can be stored for each routine, and so on.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2RoutineExtension()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface DB2RoutineExtension extends SQLObject {
+} // DB2RoutineExtension
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Schema.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Schema.java
new file mode 100644
index 0000000..0d2a0a8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Schema.java
@@ -0,0 +1,213 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Schema</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * DB2 Schemas (Chapter 1. Concepts 3)
+ *
+ * A schema is a collection of named objects. Schemas provide a logical classification of objects in the database. A schema can contain tables, views, nicknames, triggers, functions, packages, and other objects.
+ *
+ * A schema is also an object in the database. It is explicitly created using the CREATE SCHEMA statement with the current user recorded as the schema owner. It can also be implicitly created when another object is created, provided that the user has IMPLICIT_SCHEMA authority.
+ *
+ * A schema name is used as the high order part of a two-part object name. If the object is specifically qualified with a schema name when created, the object is assigned to that schema. If no schema name is specified when the object is created, the default schema name is used.
+ *
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getAccessPlans <em>Access Plans</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getOlapObjects <em>Olap Objects</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getJars <em>Jars</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getXsrObjects <em>Xsr Objects</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPackages <em>Packages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getMasks <em>Masks</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getPermissions <em>Permissions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getModules <em>Modules</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getGlobalVariables <em>Global Variables</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema()
+ * @model
+ * @generated
+ */
+public interface DB2Schema extends Schema {
+ /**
+ * Returns the value of the '<em><b>Access Plans</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Access Plans</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Access Plans</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_AccessPlans()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan"
+ * @generated
+ */
+ EList getAccessPlans();
+
+ /**
+ * Returns the value of the '<em><b>Olap Objects</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Olap Objects</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Olap Objects</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_OlapObjects()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject#getSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject" opposite="schema"
+ * @generated
+ */
+ EList getOlapObjects();
+
+ /**
+ * Returns the value of the '<em><b>Jars</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Jars</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Jars</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_Jars()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar#getSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar" opposite="schema"
+ * @generated
+ */
+ EList getJars();
+
+ /**
+ * Returns the value of the '<em><b>Xsr Objects</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xsr Objects</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xsr Objects</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_XsrObjects()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject#getSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject" opposite="schema"
+ * @generated
+ */
+ EList getXsrObjects();
+
+ /**
+ * Returns the value of the '<em><b>Packages</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Packages</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Packages</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_Packages()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Package#getSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Package" opposite="schema"
+ * @generated
+ */
+ EList getPackages();
+
+ /**
+ * Returns the value of the '<em><b>Masks</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Masks</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Masks</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_Masks()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask" opposite="schema"
+ * @generated
+ */
+ EList getMasks();
+
+ /**
+ * Returns the value of the '<em><b>Permissions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Permissions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Permissions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_Permissions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission" opposite="schema"
+ * @generated
+ */
+ EList getPermissions();
+
+ /**
+ * Returns the value of the '<em><b>Modules</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWModule}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWModule#getOwningSchema <em>Owning Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Modules</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Modules</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_Modules()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWModule#getOwningSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWModule" opposite="owningSchema"
+ * @generated
+ */
+ EList getModules();
+
+ /**
+ * Returns the value of the '<em><b>Global Variables</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWGlobalVariable}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWGlobalVariable#getSchema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Global Variables</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Global Variables</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Schema_GlobalVariables()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWGlobalVariable#getSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.luw.LUWGlobalVariable" opposite="schema"
+ * @generated
+ */
+ EList getGlobalVariables();
+
+} // DB2Schema
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Source.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Source.java
new file mode 100644
index 0000000..bb2c235
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Source.java
@@ -0,0 +1,195 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Source</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getFileName <em>File Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPackageName <em>Package Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getDb2PackageName <em>Db2 Package Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getLastModified <em>Last Modified</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getSupporting <em>Supporting</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPrimary <em>Primary</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Source()
+ * @model
+ * @generated
+ */
+public interface DB2Source extends Source {
+ /**
+ * Returns the value of the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Fully qualified file name where the file is stored on the local file system.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>File Name</em>' attribute.
+ * @see #setFileName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Source_FileName()
+ * @model
+ * @generated
+ */
+ String getFileName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getFileName <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Name</em>' attribute.
+ * @see #getFileName()
+ * @generated
+ */
+ void setFileName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Package Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Java package name
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Package Name</em>' attribute.
+ * @see #setPackageName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Source_PackageName()
+ * @model
+ * @generated
+ */
+ String getPackageName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPackageName <em>Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Package Name</em>' attribute.
+ * @see #getPackageName()
+ * @generated
+ */
+ void setPackageName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Db2 Package Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * A package is an object that contains all the sections from a single source file.
+ * A section is the compiled form of an SQL statement. The name of the DB2 package name.
+ *
+ * In the case of SQLJ stored procedures for LUW and 390, this field contains the
+ * location of the serialized file stored on the sever (aka root package name)
+ *
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Db2 Package Name</em>' attribute.
+ * @see #setDb2PackageName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Source_Db2PackageName()
+ * @model
+ * @generated
+ */
+ String getDb2PackageName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getDb2PackageName <em>Db2 Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Db2 Package Name</em>' attribute.
+ * @see #getDb2PackageName()
+ * @generated
+ */
+ void setDb2PackageName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Last Modified</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * </p>
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * When this source was last modified. The string timestamp should be in the JDBC timestamp
+ * escape format. yyyy-mm-dd hh:mm:ss.fffffffff, where ffffffffff indicates nanoseconds.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Last Modified</em>' attribute.
+ * @see #setLastModified(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Source_LastModified()
+ * @model
+ * @generated
+ */
+ String getLastModified();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getLastModified <em>Last Modified</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Last Modified</em>' attribute.
+ * @see #getLastModified()
+ * @generated
+ */
+ void setLastModified(String value);
+
+ /**
+ * Returns the value of the '<em><b>Supporting</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPrimary <em>Primary</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Supporting</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Supporting</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Source_Supporting()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPrimary
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Source" opposite="primary" containment="true"
+ * @generated
+ */
+ EList getSupporting();
+
+ /**
+ * Returns the value of the '<em><b>Primary</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getSupporting <em>Supporting</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Primary</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Primary</em>' container reference.
+ * @see #setPrimary(DB2Source)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Source_Primary()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getSupporting
+ * @model opposite="supporting" required="true"
+ * @generated
+ */
+ DB2Source getPrimary();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Source#getPrimary <em>Primary</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Primary</em>' container reference.
+ * @see #getPrimary()
+ * @generated
+ */
+ void setPrimary(DB2Source value);
+
+} // DB2Source
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2SystemSchema.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2SystemSchema.java
new file mode 100644
index 0000000..1a1445f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2SystemSchema.java
@@ -0,0 +1,33 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 System Schema</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Schemas
+ *
+ * The objects in a relational database are organized into sets called schemas. A schema provides a logical classification of objects in the database. The schema-name is used as the qualifier of SQL object names such as tables, views, indexes, and triggers. Each database manager supports a set of schemas that are reserved for use by the database manager. Such schemas are called system schemas. User objects must not be created in system schemas.
+ *
+ * The schema SESSION and all schemas that start with 'SYS' and 'Q' are system schemas. SESSION is always used as the schema name for declared temporary tables.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2SystemSchema()
+ * @model
+ * @generated
+ */
+public interface DB2SystemSchema extends DB2Schema {
+} // DB2SystemSchema
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Table.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Table.java
new file mode 100644
index 0000000..c29f4b4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Table.java
@@ -0,0 +1,290 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Table</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Tables (Chapter 1. Concepts 3)
+ *
+ * Tables are logical structures maintained by the database manager. Tables are made up of columns and rows. There is no inherent order of the rows within a table. At the intersection of every column and row is a specific data item called a value. A column is a set of values of the same type. A row is a sequence of values such that the nth value is a value of the nth column of the table.
+ *
+ * A base table is created with the CREATE TABLE statement and is used to hold persistent user data. A result table is a set of rows that the database manager selects or selects or generates, directly or indirectly, from one or more base tables. For more information about creating tables, see CREATE TABLE on page 379.
+ *
+ * A declared temporary table is created with a DECLARE GLOBAL TEMPORARY TABLE statement and is used to hold temporary data on behalf of a single application. This table is dropped implicitly when the application disconnects from the database.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getDataCapture <em>Data Capture</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateRowAccessControl <em>Activate Row Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateColumnAccessControl <em>Activate Column Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getOrganizeBy <em>Organize By</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPackages <em>Packages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPeriods <em>Periods</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getHistoryTable <em>History Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getTemporalTable <em>Temporal Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getMasks <em>Masks</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getPermissions <em>Permissions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table()
+ * @model
+ * @generated
+ */
+public interface DB2Table extends PersistentTable {
+ /**
+ * Returns the value of the '<em><b>Data Capture</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data Capture</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data Capture</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType
+ * @see #setDataCapture(DataCaptureType)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_DataCapture()
+ * @model
+ * @generated
+ */
+ DataCaptureType getDataCapture();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getDataCapture <em>Data Capture</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data Capture</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType
+ * @see #getDataCapture()
+ * @generated
+ */
+ void setDataCapture(DataCaptureType value);
+
+ /**
+ * Returns the value of the '<em><b>Activate Row Access Control</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activate Row Access Control</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activate Row Access Control</em>' attribute.
+ * @see #setActivateRowAccessControl(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_ActivateRowAccessControl()
+ * @model default="False"
+ * @generated
+ */
+ boolean isActivateRowAccessControl();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateRowAccessControl <em>Activate Row Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activate Row Access Control</em>' attribute.
+ * @see #isActivateRowAccessControl()
+ * @generated
+ */
+ void setActivateRowAccessControl(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Activate Column Access Control</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activate Column Access Control</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activate Column Access Control</em>' attribute.
+ * @see #setActivateColumnAccessControl(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_ActivateColumnAccessControl()
+ * @model default="False"
+ * @generated
+ */
+ boolean isActivateColumnAccessControl();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#isActivateColumnAccessControl <em>Activate Column Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activate Column Access Control</em>' attribute.
+ * @see #isActivateColumnAccessControl()
+ * @generated
+ */
+ void setActivateColumnAccessControl(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Organize By</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Organize By</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Organize By</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization
+ * @see #setOrganizeBy(DB2TableOrganization)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_OrganizeBy()
+ * @model
+ * @generated
+ */
+ DB2TableOrganization getOrganizeBy();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getOrganizeBy <em>Organize By</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Organize By</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization
+ * @see #getOrganizeBy()
+ * @generated
+ */
+ void setOrganizeBy(DB2TableOrganization value);
+
+ /**
+ * Returns the value of the '<em><b>Packages</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Package}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Packages</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Packages</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_Packages()
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Package"
+ * @generated
+ */
+ EList getPackages();
+
+ /**
+ * Returns the value of the '<em><b>Periods</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getTable <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Periods</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Periods</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_Periods()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Period#getTable
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Period" opposite="table" containment="true"
+ * @generated
+ */
+ EList getPeriods();
+
+ /**
+ * Returns the value of the '<em><b>History Table</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getTemporalTable <em>Temporal Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>History Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>History Table</em>' reference.
+ * @see #setHistoryTable(DB2Table)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_HistoryTable()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getTemporalTable
+ * @model opposite="temporalTable"
+ * @generated
+ */
+ DB2Table getHistoryTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getHistoryTable <em>History Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>History Table</em>' reference.
+ * @see #getHistoryTable()
+ * @generated
+ */
+ void setHistoryTable(DB2Table value);
+
+ /**
+ * Returns the value of the '<em><b>Temporal Table</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getHistoryTable <em>History Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Temporal Table</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Temporal Table</em>' reference.
+ * @see #setTemporalTable(DB2Table)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_TemporalTable()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getHistoryTable
+ * @model opposite="historyTable"
+ * @generated
+ */
+ DB2Table getTemporalTable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Table#getTemporalTable <em>Temporal Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Temporal Table</em>' reference.
+ * @see #getTemporalTable()
+ * @generated
+ */
+ void setTemporalTable(DB2Table value);
+
+ /**
+ * Returns the value of the '<em><b>Masks</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectTable <em>Subject Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Masks</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Masks</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_Masks()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask#getSubjectTable
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask" opposite="subjectTable"
+ * @generated
+ */
+ EList getMasks();
+
+ /**
+ * Returns the value of the '<em><b>Permissions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectTable <em>Subject Table</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Permissions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Permissions</em>' reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Table_Permissions()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission#getSubjectTable
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission" opposite="subjectTable"
+ * @generated
+ */
+ EList getPermissions();
+
+} // DB2Table
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2TableOrganization.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2TableOrganization.java
new file mode 100644
index 0000000..2974089
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2TableOrganization.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>DB2 Table Organization</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2TableOrganization()
+ * @model
+ * @generated
+ */
+public final class DB2TableOrganization extends AbstractEnumerator {
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNSPECIFIED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNSPECIFIED = 0;
+
+ /**
+ * The '<em><b>ROW</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ROW</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ROW_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ROW = 1;
+
+ /**
+ * The '<em><b>COLUMN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>COLUMN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COLUMN_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int COLUMN = 2;
+
+ /**
+ * The '<em><b>UNSPECIFIED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNSPECIFIED
+ * @generated
+ * @ordered
+ */
+ public static final DB2TableOrganization UNSPECIFIED_LITERAL = new DB2TableOrganization(UNSPECIFIED, "UNSPECIFIED", "UNSPECIFIED"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ROW</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ROW
+ * @generated
+ * @ordered
+ */
+ public static final DB2TableOrganization ROW_LITERAL = new DB2TableOrganization(ROW, "ROW", "ROW"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>COLUMN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COLUMN
+ * @generated
+ * @ordered
+ */
+ public static final DB2TableOrganization COLUMN_LITERAL = new DB2TableOrganization(COLUMN, "COLUMN", "COLUMN"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>DB2 Table Organization</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DB2TableOrganization[] VALUES_ARRAY =
+ new DB2TableOrganization[] {
+ UNSPECIFIED_LITERAL,
+ ROW_LITERAL,
+ COLUMN_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>DB2 Table Organization</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>DB2 Table Organization</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2TableOrganization get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2TableOrganization result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2 Table Organization</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2TableOrganization getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2TableOrganization result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2 Table Organization</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2TableOrganization get(int value) {
+ switch (value) {
+ case UNSPECIFIED: return UNSPECIFIED_LITERAL;
+ case ROW: return ROW_LITERAL;
+ case COLUMN: return COLUMN_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DB2TableOrganization(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //DB2TableOrganization
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Transaction.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Transaction.java
new file mode 100644
index 0000000..8f6c52e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Transaction.java
@@ -0,0 +1,40 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Transaction</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Unit of work
+ *
+ * Like the locking facilities, the recovery facilities of the database managers are similar but not identical. One common property is that each of the database managers provides a means of backing out uncommitted changes made by an application process. This might be necessary in the event of a failure on the part of an application process, or in a deadlock situation. An application process itself, however, can explicitly request that its database changes be backed out. This operation is called rollback.
+ *
+ * A unit of work (also called a transaction, logical unit of work, or unit of recovery) is a recoverable sequence of operations within an application process. At any time, an application process has at most a single unit of work, but the life of an application process may involve many units of work as a result of commit or rollback operations.
+ *
+ * Note: In addition to relational databases, the environment in which an SQL program executes may also include other types of recoverable resources. If this is the case, the scope and acceptability of the SQL COMMIT and ROLLBACK statements depend on the environment.
+ *
+ * A unit of work is started when the first SQL statement in the an application process or the first SQL statement after a commit or rollback is executed. A unit of work is ended by a commit operation, a rollback operation, or the end of an application process. A commit or rollback operation affects only the database changes made within the unit of work it ends. While these changes remain uncommitted, other application processes are unable to perceive them and they can be backed out. 4 Once committed, these database changes are accessible by other application processes and can no longer be backed out by a rollback.
+ *
+ * The start and end of a unit of work define points of consistency within an application process. For example, a banking transaction might involve the transfer of funds from one account to another. Such a transaction would require that these funds be subtracted from the first account, and added to the second. Following the subtraction step, the data is inconsistent. Only after the funds have been added to the second account is consistency reestablished. When both steps are complete, the commit operation can be used to end the unit of work, thereby making the changes available to other application processes.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Transaction()
+ * @model
+ * @generated
+ */
+public interface DB2Transaction extends SQLObject {
+} // DB2Transaction
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Trigger.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Trigger.java
new file mode 100644
index 0000000..c3dc649
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2Trigger.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Triggers (Chapter 1. Concepts 7)
+ *
+ * A trigger defines a set of actions that are executed automatically whenever a delete, insert, or update operation occurs on a specified base table. When such an SQL operation is executed, the trigger is said to be activated. Triggers can be used along with referential constraints and check constraints to enforce data integrity rules. Triggers are more powerful than constraints because they can also be used to cause updates to other tables, automatically generate or transform values for inserted or updated rows, or invoke functions that perform operations both inside and outside of DB2. For example, instead of preventing an update to a column if the new value exceeds a certain amount, a trigger can substitute a valid value and send a notice to an administrator about the invalid update.
+ *
+ * Triggers are a useful mechanism to define and enforce transitional business rules that involve different states of the data (for example, salary cannot be increased by more than 10 percent). Such a limit requires comparing the value of a salary before and after an increase. For rules that do not involve more than one state of the data, consider using referential and check constraints. Triggers also move the application logic that is required to enforce business rules into the database, which can result in faster application development and easier maintenance because the business rule is no longer repeated in several applications, but one version is centralized to the trigger. With the logic in the database, for example, the previously mentioned limit on increases to the salary column of a table, DB2 checks the validity of the changes that any application makes to the salary column. In addition, the application programs do not need to be changed when the logic changes.
+ *
+ * There are a number of criteria that are defined when creating a trigger which are used to determine when a trigger should be activated.
+ * - The subject table defines the base table for which the trigger is defined.
+ * - The trigger event defines a specific SQL operation that modifies the subject table. The operation could be delete, insert, or update.
+ * - The trigger activation time defines whether the trigger should be activated before or after the trigger event is performed on the subject table. The statement that causes a trigger to be activated will include a set of affected rows. These are the rows of the subject table that are being deleted, inserted or updated. The trigger granularity defines whether the actions of the trigger will be performed once for the statement or once for each of the rows in the set of affected rows. The trigger action consists of an optional search condition and a set of SQL statements that are executed whenever the trigger is activated. The SQL statements are only executed if no search condition is specified or the specified search condition evaluates to true.
+ *
+ * The triggered action may refer to the values in the set of affected rows. This is supported through the use of transition variables. Transition variables use the names of the columns in the subject table qualified by a specified name that identifies whether the reference is to the old value (prior to the update) or the new value (after the update). The new value can also be changed using the SET transition-variable statement in before update or insert triggers. Another means of referring to the values in the set of affected rows is using transition tables.
+ *
+ * Transition tables also use the names of the columns of the subject table but have a name specified that allows the complete set of affected rows to be treated as a table. Transition tables can only be used in after triggers. Separate transition tables can be defined for old and new values. Multiple triggers can be specified for a combination of table, event, or activation time. The order in which the triggers are activated is the same as the order in which they were created. Thus, the most recently created trigger will be the last trigger activated. The activation of a trigger may cause trigger cascading. This is the result of the activation of one trigger that executes SQL statements that cause the activation of other triggers or even the same trigger again. The triggered actions may also cause updates as a result of the original modification, which may result in the activation of additional triggers. With trigger cascading, a significant chain of triggers may be activated causing significant change to the database as a result of a single delete, insert or update statement.
+ *
+ * The actions performed in the trigger are considered to be part of the operation that caused the trigger to be executed.
+ * - The database manager ensures that the operation and the triggers executed as a result of that operation either all complete or are backed out. Operations that occurred prior to the triggering operation are not affected.
+ * - The database manager effectively checks all constraints (except for a constraint with a RESTRICT delete rule) after the operation and the associated triggers have been executed.
+ *
+ * Triggers (Appendix E. SQLSTATE values -- common return codes)
+ *
+ * SQLSTATE 51037 - The operation is not allowed because a trigger has been marked inoperative.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isOperative <em>Operative</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isSecured <em>Secured</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Trigger()
+ * @model
+ * @generated
+ */
+public interface DB2Trigger extends Trigger, DB2AccessPlan {
+ /**
+ * Returns the value of the '<em><b>Operative</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operative</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operative</em>' attribute.
+ * @see #setOperative(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Trigger_Operative()
+ * @model default="true"
+ * @generated
+ */
+ boolean isOperative();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isOperative <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operative</em>' attribute.
+ * @see #isOperative()
+ * @generated
+ */
+ void setOperative(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Secured</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Secured</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Secured</em>' attribute.
+ * @see #setSecured(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2Trigger_Secured()
+ * @model default="False"
+ * @generated
+ */
+ boolean isSecured();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger#isSecured <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Secured</em>' attribute.
+ * @see #isSecured()
+ * @generated
+ */
+ void setSecured(boolean value);
+
+} // DB2Trigger
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2UniqueConstraintExtension.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2UniqueConstraintExtension.java
new file mode 100644
index 0000000..f47b845
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2UniqueConstraintExtension.java
@@ -0,0 +1,56 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.ObjectExtension;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 Unique Constraint Extension</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2UniqueConstraintExtension()
+ * @model
+ * @generated
+ */
+public interface DB2UniqueConstraintExtension extends SQLObject, ObjectExtension {
+ /**
+ * Returns the value of the '<em><b>Bus Period Without Overlap</b></em>' attribute.
+ * The default value is <code>"False"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bus Period Without Overlap</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bus Period Without Overlap</em>' attribute.
+ * @see #setBusPeriodWithoutOverlap(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2UniqueConstraintExtension_BusPeriodWithoutOverlap()
+ * @model default="False"
+ * @generated
+ */
+ boolean isBusPeriodWithoutOverlap();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bus Period Without Overlap</em>' attribute.
+ * @see #isBusPeriodWithoutOverlap()
+ * @generated
+ */
+ void setBusPeriodWithoutOverlap(boolean value);
+
+} // DB2UniqueConstraintExtension
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2UserDefinedFunction.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2UserDefinedFunction.java
new file mode 100644
index 0000000..33c3122
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2UserDefinedFunction.java
@@ -0,0 +1,29 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 User Defined Function</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Inherits both DB2Model::DB2Function (EMF provides a pseudo inherit of the DB2Function even
+ * though it is defined as an interface) and SQLModel::Method.
+ * <!-- end-model-doc -->
+ *
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2UserDefinedFunction()
+ * @model
+ * @generated
+ */
+public interface DB2UserDefinedFunction extends UserDefinedFunction, DB2Function {
+} // DB2UserDefinedFunction
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2View.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2View.java
new file mode 100644
index 0000000..a420772
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2View.java
@@ -0,0 +1,70 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2 View</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Views
+ *
+ * A view provides an alternative way of looking at the data in one or more tables. A view is a named specification of a result table. The specification is a SELECT statement that is effectively executed whenever the view is referenced in an SQL statement. Thus, a view can be thought of as having columns and rows just like a base table. For retrieval, all views can be used just like base tables. Whether a view can be used in an insert, update, or delete operation depends on its definition.
+ *
+ * An index cannot be created for a view. However, an index created for a table on which a view is based may improve the performance of operations on the view. When the column of a view is directly derived from a column of a base table, that column inherits any constraints that apply to the column of the base table. For example, if a view includes a foreign key of its base table, INSERT and UPDATE operations using that view are subject to the same referential constraint as the base table. Likewise, if the base table of a view is a parent table, DELETE operations using that view are subject to the same rules as DELETE operations on the base table.
+ *
+ * Views (Appendix E. SQLSTATE values -- common return codes)
+ *
+ * SQLSTATE:51024 A view cannot be used, because it has been marked inoperative.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2View#isOperative <em>Operative</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2View()
+ * @model
+ * @generated
+ */
+public interface DB2View extends ViewTable {
+ /**
+ * Returns the value of the '<em><b>Operative</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operative</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operative</em>' attribute.
+ * @see #setOperative(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2View_Operative()
+ * @model
+ * @generated
+ */
+ boolean isOperative();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2View#isOperative <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operative</em>' attribute.
+ * @see #isOperative()
+ * @generated
+ */
+ void setOperative(boolean value);
+
+} // DB2View
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchema.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchema.java
new file mode 100644
index 0000000..cc6eb2b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchema.java
@@ -0,0 +1,114 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchema.java,v 1.5 2007/01/15 18:40:06 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2XML Schema</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * XML Schema comprises of one or more XMLSchema documents. Users register XML schemas and not just schema documents (from LI2934)
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getDecomposition <em>Decomposition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getStatus <em>Status</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getXmlSchemaDocs <em>Xml Schema Docs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchema()
+ * @model
+ * @generated
+ */
+public interface DB2XMLSchema extends DB2XSRObject {
+ /**
+ * Returns the value of the '<em><b>Decomposition</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The states can either be Yes, No or Inoperative and thus need to be represented by an Enumeration instead of a boolean. Represented in the database:
+ * Y=enabled
+ * N=not enabled
+ * X=inoperative
+ *
+ * Use enumerated types for the three states.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Decomposition</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition
+ * @see #setDecomposition(DB2XMLSchemaDecomposition)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchema_Decomposition()
+ * @model
+ * @generated
+ */
+ DB2XMLSchemaDecomposition getDecomposition();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getDecomposition <em>Decomposition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Decomposition</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition
+ * @see #getDecomposition()
+ * @generated
+ */
+ void setDecomposition(DB2XMLSchemaDecomposition value);
+
+ /**
+ * Returns the value of the '<em><b>Status</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Status</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Status</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus
+ * @see #setStatus(DB2XMLSchemaStatus)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchema_Status()
+ * @model
+ * @generated
+ */
+ DB2XMLSchemaStatus getStatus();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getStatus <em>Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Status</em>' attribute.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus
+ * @see #getStatus()
+ * @generated
+ */
+ void setStatus(DB2XMLSchemaStatus value);
+
+ /**
+ * Returns the value of the '<em><b>Xml Schema Docs</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchema <em>Xml Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xml Schema Docs</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xml Schema Docs</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchema_XmlSchemaDocs()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchema
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument" opposite="xmlSchema" containment="true" required="true"
+ * @generated
+ */
+ EList getXmlSchemaDocs();
+
+} // DB2XMLSchema
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDecomposition.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDecomposition.java
new file mode 100644
index 0000000..fc2b80e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDecomposition.java
@@ -0,0 +1,184 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchemaDecomposition.java,v 1.4 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>DB2XML Schema Decomposition</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The states can either be Yes, No or Inoperative and thus need to be represented by an Enumeration instead of a boolean. Represented in the database:
+ * Y=enabled
+ * N=not enabled
+ * X=inoperative
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDecomposition()
+ * @model
+ * @generated
+ */
+public final class DB2XMLSchemaDecomposition extends AbstractEnumerator {
+ /**
+ * The '<em><b>ENABLED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ENABLED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ENABLED = 0;
+
+ /**
+ * The '<em><b>NOT ENABLED</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NOT_ENABLED_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NOT_ENABLED = 1;
+
+ /**
+ * The '<em><b>INOPERATIVE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INOPERATIVE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INOPERATIVE = 2;
+
+ /**
+ * The '<em><b>ENABLED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ENABLED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ENABLED
+ * @generated
+ * @ordered
+ */
+ public static final DB2XMLSchemaDecomposition ENABLED_LITERAL = new DB2XMLSchemaDecomposition(ENABLED, "ENABLED", "ENABLED"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>NOT ENABLED</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NOT ENABLED</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NOT_ENABLED
+ * @generated
+ * @ordered
+ */
+ public static final DB2XMLSchemaDecomposition NOT_ENABLED_LITERAL = new DB2XMLSchemaDecomposition(NOT_ENABLED, "NOT_ENABLED", "NOT_ENABLED"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>INOPERATIVE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INOPERATIVE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INOPERATIVE
+ * @generated
+ * @ordered
+ */
+ public static final DB2XMLSchemaDecomposition INOPERATIVE_LITERAL = new DB2XMLSchemaDecomposition(INOPERATIVE, "INOPERATIVE", "INOPERATIVE"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>DB2XML Schema Decomposition</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DB2XMLSchemaDecomposition[] VALUES_ARRAY =
+ new DB2XMLSchemaDecomposition[] {
+ ENABLED_LITERAL,
+ NOT_ENABLED_LITERAL,
+ INOPERATIVE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>DB2XML Schema Decomposition</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>DB2XML Schema Decomposition</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2XMLSchemaDecomposition get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2XMLSchemaDecomposition result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2XML Schema Decomposition</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2XMLSchemaDecomposition getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2XMLSchemaDecomposition result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2XML Schema Decomposition</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2XMLSchemaDecomposition get(int value) {
+ switch (value) {
+ case ENABLED: return ENABLED_LITERAL;
+ case NOT_ENABLED: return NOT_ENABLED_LITERAL;
+ case INOPERATIVE: return INOPERATIVE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DB2XMLSchemaDecomposition(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //DB2XMLSchemaDecomposition
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDocProperties.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDocProperties.java
new file mode 100644
index 0000000..80f0c14
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDocProperties.java
@@ -0,0 +1,86 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchemaDocProperties.java,v 1.5 2007/10/12 23:05:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2XML Schema Doc Properties</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Users can specify properties for each XML Schema document and these are stored as a BLOB(5M) in the XSR. Properties come as a name and value pair.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getXmlSchemaDoc <em>Xml Schema Doc</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocProperties()
+ * @model
+ * @generated
+ */
+public interface DB2XMLSchemaDocProperties extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * value of the property.
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocProperties_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Xml Schema Doc</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchemaDocProperties <em>Xml Schema Doc Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xml Schema Doc</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xml Schema Doc</em>' container reference.
+ * @see #setXmlSchemaDoc(DB2XMLSchemaDocument)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocProperties_XmlSchemaDoc()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchemaDocProperties
+ * @model opposite="xmlSchemaDocProperties" required="true"
+ * @generated
+ */
+ DB2XMLSchemaDocument getXmlSchemaDoc();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getXmlSchemaDoc <em>Xml Schema Doc</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Xml Schema Doc</em>' container reference.
+ * @see #getXmlSchemaDoc()
+ * @generated
+ */
+ void setXmlSchemaDoc(DB2XMLSchemaDocument value);
+
+} // DB2XMLSchemaDocProperties
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDocument.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDocument.java
new file mode 100644
index 0000000..ee00906
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaDocument.java
@@ -0,0 +1,185 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchemaDocument.java,v 1.5 2007/10/12 23:05:34 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2XML Schema Document</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * XML Schema documents are used to validate XML documents that are stored in XML type columns.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getFileName <em>File Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getSchemaLocation <em>Schema Location</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getTargetNamespace <em>Target Namespace</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#isPrimary <em>Primary</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchema <em>Xml Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchemaDocProperties <em>Xml Schema Doc Properties</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocument()
+ * @model
+ * @generated
+ */
+public interface DB2XMLSchemaDocument extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>File Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The name of the .xsd file
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>File Name</em>' attribute.
+ * @see #setFileName(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocument_FileName()
+ * @model
+ * @generated
+ */
+ String getFileName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getFileName <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Name</em>' attribute.
+ * @see #getFileName()
+ * @generated
+ */
+ void setFileName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Schema Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Specifies the URL of the xml schema document
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Schema Location</em>' attribute.
+ * @see #setSchemaLocation(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocument_SchemaLocation()
+ * @model
+ * @generated
+ */
+ String getSchemaLocation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getSchemaLocation <em>Schema Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema Location</em>' attribute.
+ * @see #getSchemaLocation()
+ * @generated
+ */
+ void setSchemaLocation(String value);
+
+ /**
+ * Returns the value of the '<em><b>Target Namespace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Namespace of the schema document
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Target Namespace</em>' attribute.
+ * @see #setTargetNamespace(String)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocument_TargetNamespace()
+ * @model
+ * @generated
+ */
+ String getTargetNamespace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getTargetNamespace <em>Target Namespace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Namespace</em>' attribute.
+ * @see #getTargetNamespace()
+ * @generated
+ */
+ void setTargetNamespace(String value);
+
+ /**
+ * Returns the value of the '<em><b>Primary</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Each XML schema has 1 primary xml schema document. The targetNamespace and the schemaLocation of the primary document is assigned to the XML schema
+ * <!-- end-model-doc -->
+ * @return the value of the '<em>Primary</em>' attribute.
+ * @see #setPrimary(boolean)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocument_Primary()
+ * @model
+ * @generated
+ */
+ boolean isPrimary();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#isPrimary <em>Primary</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Primary</em>' attribute.
+ * @see #isPrimary()
+ * @generated
+ */
+ void setPrimary(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Xml Schema</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getXmlSchemaDocs <em>Xml Schema Docs</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xml Schema</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xml Schema</em>' container reference.
+ * @see #setXmlSchema(DB2XMLSchema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocument_XmlSchema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema#getXmlSchemaDocs
+ * @model opposite="xmlSchemaDocs" required="true"
+ * @generated
+ */
+ DB2XMLSchema getXmlSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument#getXmlSchema <em>Xml Schema</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Xml Schema</em>' container reference.
+ * @see #getXmlSchema()
+ * @generated
+ */
+ void setXmlSchema(DB2XMLSchema value);
+
+ /**
+ * Returns the value of the '<em><b>Xml Schema Doc Properties</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getXmlSchemaDoc <em>Xml Schema Doc</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Xml Schema Doc Properties</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Xml Schema Doc Properties</em>' containment reference list.
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaDocument_XmlSchemaDocProperties()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties#getXmlSchemaDoc
+ * @model type="org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties" opposite="xmlSchemaDoc" containment="true" required="true"
+ * @generated
+ */
+ EList getXmlSchemaDocProperties();
+
+} // DB2XMLSchemaDocument
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaStatus.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaStatus.java
new file mode 100644
index 0000000..e65f38a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XMLSchemaStatus.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchemaStatus.java,v 1.4 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>DB2XML Schema Status</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * From LUW v9.1 LI2076 in the SQL reference changes section, XSROBJECT catalog table, STATUS colum, the following indicates the registration status.
+ * C=COMPLETE
+ * I=INCOMPLETE
+ * R=REPLACE
+ * T=TEMPORARY
+ *
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XMLSchemaStatus()
+ * @model
+ * @generated
+ */
+public final class DB2XMLSchemaStatus extends AbstractEnumerator {
+ /**
+ * The '<em><b>COMPLETE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #COMPLETE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int COMPLETE = 0;
+
+ /**
+ * The '<em><b>INCOMPLETE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INCOMPLETE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int INCOMPLETE = 1;
+
+ /**
+ * The '<em><b>REPLACE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REPLACE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REPLACE = 2;
+
+ /**
+ * The '<em><b>TEMPORARY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TEMPORARY_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TEMPORARY = 3;
+
+ /**
+ * The '<em><b>COMPLETE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>COMPLETE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #COMPLETE
+ * @generated
+ * @ordered
+ */
+ public static final DB2XMLSchemaStatus COMPLETE_LITERAL = new DB2XMLSchemaStatus(COMPLETE, "COMPLETE", "COMPLETE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>INCOMPLETE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>INCOMPLETE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INCOMPLETE
+ * @generated
+ * @ordered
+ */
+ public static final DB2XMLSchemaStatus INCOMPLETE_LITERAL = new DB2XMLSchemaStatus(INCOMPLETE, "INCOMPLETE", "INCOMPLETE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>REPLACE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REPLACE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REPLACE
+ * @generated
+ * @ordered
+ */
+ public static final DB2XMLSchemaStatus REPLACE_LITERAL = new DB2XMLSchemaStatus(REPLACE, "REPLACE", "REPLACE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>TEMPORARY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TEMPORARY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TEMPORARY
+ * @generated
+ * @ordered
+ */
+ public static final DB2XMLSchemaStatus TEMPORARY_LITERAL = new DB2XMLSchemaStatus(TEMPORARY, "TEMPORARY", "TEMPORARY"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>DB2XML Schema Status</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DB2XMLSchemaStatus[] VALUES_ARRAY =
+ new DB2XMLSchemaStatus[] {
+ COMPLETE_LITERAL,
+ INCOMPLETE_LITERAL,
+ REPLACE_LITERAL,
+ TEMPORARY_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>DB2XML Schema Status</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>DB2XML Schema Status</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2XMLSchemaStatus get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2XMLSchemaStatus result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2XML Schema Status</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2XMLSchemaStatus getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DB2XMLSchemaStatus result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>DB2XML Schema Status</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2XMLSchemaStatus get(int value) {
+ switch (value) {
+ case COMPLETE: return COMPLETE_LITERAL;
+ case INCOMPLETE: return INCOMPLETE_LITERAL;
+ case REPLACE: return REPLACE_LITERAL;
+ case TEMPORARY: return TEMPORARY_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DB2XMLSchemaStatus(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //DB2XMLSchemaStatus
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XSRObject.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XSRObject.java
new file mode 100644
index 0000000..7676b82
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DB2XSRObject.java
@@ -0,0 +1,60 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XSRObject.java,v 1.6 2007/10/12 23:05:35 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>DB2XSR Object</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * Because the database needs to create its own copy of the XML schemas, DTDs and external entities it is using, a XML Schema repository (XSR) is defined and used to hold that information.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XSRObject()
+ * @model
+ * @generated
+ */
+public interface DB2XSRObject extends SQLObject {
+ /**
+ * Returns the value of the '<em><b>Schema</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getXsrObjects <em>Xsr Objects</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Schema</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Schema</em>' reference.
+ * @see #setSchema(DB2Schema)
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDB2XSRObject_Schema()
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema#getXsrObjects
+ * @model opposite="xsrObjects" required="true"
+ * @generated
+ */
+ DB2Schema getSchema();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject#getSchema <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Schema</em>' reference.
+ * @see #getSchema()
+ * @generated
+ */
+ void setSchema(DB2Schema value);
+
+} // DB2XSRObject
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DataCaptureType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DataCaptureType.java
new file mode 100644
index 0000000..41f49cb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/DataCaptureType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DataCaptureType.java,v 1.7 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Data Capture Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getDataCaptureType()
+ * @model
+ * @generated
+ */
+public final class DataCaptureType extends AbstractEnumerator {
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE = 0;
+
+ /**
+ * The '<em><b>CHANGES</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHANGES_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CHANGES = 1;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @generated
+ * @ordered
+ */
+ public static final DataCaptureType NONE_LITERAL = new DataCaptureType(NONE, "NONE", "NONE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>CHANGES</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CHANGES</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CHANGES
+ * @generated
+ * @ordered
+ */
+ public static final DataCaptureType CHANGES_LITERAL = new DataCaptureType(CHANGES, "CHANGES", "CHANGES"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Data Capture Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final DataCaptureType[] VALUES_ARRAY =
+ new DataCaptureType[] {
+ NONE_LITERAL,
+ CHANGES_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Data Capture Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Data Capture Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataCaptureType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DataCaptureType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Data Capture Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataCaptureType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ DataCaptureType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Data Capture Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataCaptureType get(int value) {
+ switch (value) {
+ case NONE: return NONE_LITERAL;
+ case CHANGES: return CHANGES_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private DataCaptureType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //DataCaptureType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/GenerateType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/GenerateType.java
new file mode 100644
index 0000000..749a4b4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/GenerateType.java
@@ -0,0 +1,151 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: GenerateType.java,v 1.5 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Generate Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getGenerateType()
+ * @model
+ * @generated
+ */
+public final class GenerateType extends AbstractEnumerator {
+ /**
+ * The '<em><b>ALWAYS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALWAYS_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ALWAYS = 0;
+
+ /**
+ * The '<em><b>BY DEFAULT</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BY_DEFAULT_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BY_DEFAULT = 1;
+
+ /**
+ * The '<em><b>ALWAYS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALWAYS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALWAYS
+ * @generated
+ * @ordered
+ */
+ public static final GenerateType ALWAYS_LITERAL = new GenerateType(ALWAYS, "ALWAYS", "ALWAYS"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>BY DEFAULT</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BY DEFAULT</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BY_DEFAULT
+ * @generated
+ * @ordered
+ */
+ public static final GenerateType BY_DEFAULT_LITERAL = new GenerateType(BY_DEFAULT, "BY_DEFAULT", "BY_DEFAULT"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Generate Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final GenerateType[] VALUES_ARRAY =
+ new GenerateType[] {
+ ALWAYS_LITERAL,
+ BY_DEFAULT_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Generate Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Generate Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerateType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GenerateType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Generate Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerateType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ GenerateType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Generate Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GenerateType get(int value) {
+ switch (value) {
+ case ALWAYS: return ALWAYS_LITERAL;
+ case BY_DEFAULT: return BY_DEFAULT_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private GenerateType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //GenerateType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/IsolationLevelType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/IsolationLevelType.java
new file mode 100644
index 0000000..bd230a5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/IsolationLevelType.java
@@ -0,0 +1,250 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: IsolationLevelType.java,v 1.9 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Isolation Level Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * SQL Reference for Cross-Platform Development - v1.1
+ * http://www7b.software.ibm.com/dmdd/library/techarticle/0206sqlref/0206sqlref.html
+ *
+ * Isolation level
+ *
+ * The isolation level used during the execution of SQL statement determines the degree to which the application process is isolated from concurrently executing application processes. Thus, when application process P executes an SQL statement, the isolation level determines:
+ * - The degree to which rows retrieved by P are available to other concurrently executing application processes.
+ * - The degree to which database changes made by concurrently executing application processes can affect P.
+ *
+ * The isolation level can be explicitly specified on a DELETE, INSERT, SELECT INTO, UPDATE, or select-statement. If the isolation level is not explicitly specified, the isolation level used when the SQL statement is executed is the default isolation level.
+ *
+ * Each product provides a product-specific means of explicitly specifying a default isolation level:
+ * - For static SQL statements, the default isolation level is the isolation level specified when the containing package, procedure, function, or trigger was created.
+ * - For dynamic SQL statements, the default isolation level is isolation level specified for the application process.
+ *
+ * Products support these isolation levels by automatically locking the appropriate data. Depending on the type of lock, this limits or prevents access to the data by concurrent application processes. Each database manager supports at least two types of locks:
+ * - Share: Limits concurrent application processes to read-only operations on the data.
+ * - Exclusive Prevents concurrent application processes from accessing the data in any way except for application processes with an isolation level of uncommitted read, which can read but not modify the data. (See
+ * " Uncommitted read" on page 18.)
+ *
+ * The isolation levels are:
+ *
+ * Repeatable read
+ * The Repeatable Read (RR) isolation level ensures that:
+ * - Any row read during a unit of work is not changed by other application processes until the unit of work is complete.
+ * - Any row changed by another application process cannot be read until it is committed by that application process.
+ * In addition to any exclusive locks, an application process running at level RR acquires at least share locks on all the rows it reads. Furthermore, the locking is performed so that the application process is completely isolated from the effects of concurrent application processes. In the SQL 1999 Core standard, Repeatable Read is called Serializable.
+ *
+ * Read stability
+ * Like level RR, the Read Stability (RS) isolation level ensures that:
+ * - Any row read during a unit of work is not changed by other application processes until the unit of work is complete.
+ * - Any row changed by another application process cannot be read until it is committed by that application process.
+ * Unlike RR, RS does not completely isolate the application process from the effects of concurrent application processes. At level RS, application processes that issue the same query more than once in the same unit of work might see additional rows. These additional rows are called phantom rows.
+ *
+ * Cursor stability
+ * Like levels RR and RS, the Cursor Stability (CS) isolation level ensures that any row changed by another application process cannot be read until it is committed by that application process. Unlike RR and RS, level CS only ensures that the current row of every updatable cursor is not changed by other application processes. Thus, the rows read during a unit of work can be changed by other application processes. In addition to any exclusive locks, an application process running at level CS has at least a share lock for the current row of every one of its open cursors. In the SQL 1999 Core standard, Cursor Stability is called Read Committed.
+ *
+ * Uncommitted read
+ * For a SELECT INTO, FETCH with a read-only cursor, subquery, or subselect used in an INSERT statement, the Uncommitted Read (UR) isolation level allows:
+ * - Any row read during the unit of work to be changed by other application processes.
+ * - Any row changed by another application process to be read even if the change has not been committed by that application process.
+ * For other operations, the rules of level CS apply. In DB2 UDB for z/OS and OS/390, UR is escalated to CS for a subquery used in a DELETE or UPDATE statement, or for a subselect used in an INSERT statement. In the SQL 1999 Core standard, Uncommitted Read is called Read Uncommitted.
+ *
+ * <!-- end-model-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getIsolationLevelType()
+ * @model
+ * @generated
+ */
+public final class IsolationLevelType extends AbstractEnumerator {
+ /**
+ * The '<em><b>REPEATABLE READ</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #REPEATABLE_READ_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int REPEATABLE_READ = 0;
+
+ /**
+ * The '<em><b>READ STABILITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #READ_STABILITY_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int READ_STABILITY = 1;
+
+ /**
+ * The '<em><b>CURSOR STABILITY</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CURSOR_STABILITY_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int CURSOR_STABILITY = 2;
+
+ /**
+ * The '<em><b>UNCOMMITTED READ</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNCOMMITTED_READ_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNCOMMITTED_READ = 3;
+
+ /**
+ * The '<em><b>REPEATABLE READ</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>REPEATABLE READ</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #REPEATABLE_READ
+ * @generated
+ * @ordered
+ */
+ public static final IsolationLevelType REPEATABLE_READ_LITERAL = new IsolationLevelType(REPEATABLE_READ, "REPEATABLE_READ", "REPEATABLE_READ"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>READ STABILITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>READ STABILITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #READ_STABILITY
+ * @generated
+ * @ordered
+ */
+ public static final IsolationLevelType READ_STABILITY_LITERAL = new IsolationLevelType(READ_STABILITY, "READ_STABILITY", "READ_STABILITY"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>CURSOR STABILITY</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>CURSOR STABILITY</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CURSOR_STABILITY
+ * @generated
+ * @ordered
+ */
+ public static final IsolationLevelType CURSOR_STABILITY_LITERAL = new IsolationLevelType(CURSOR_STABILITY, "CURSOR_STABILITY", "CURSOR_STABILITY"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>UNCOMMITTED READ</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNCOMMITTED READ</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNCOMMITTED_READ
+ * @generated
+ * @ordered
+ */
+ public static final IsolationLevelType UNCOMMITTED_READ_LITERAL = new IsolationLevelType(UNCOMMITTED_READ, "UNCOMMITTED_READ", "UNCOMMITTED_READ"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Isolation Level Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final IsolationLevelType[] VALUES_ARRAY =
+ new IsolationLevelType[] {
+ REPEATABLE_READ_LITERAL,
+ READ_STABILITY_LITERAL,
+ CURSOR_STABILITY_LITERAL,
+ UNCOMMITTED_READ_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Isolation Level Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Isolation Level Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static IsolationLevelType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ IsolationLevelType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Isolation Level Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static IsolationLevelType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ IsolationLevelType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Isolation Level Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static IsolationLevelType get(int value) {
+ switch (value) {
+ case REPEATABLE_READ: return REPEATABLE_READ_LITERAL;
+ case READ_STABILITY: return READ_STABILITY_LITERAL;
+ case CURSOR_STABILITY: return CURSOR_STABILITY_LITERAL;
+ case UNCOMMITTED_READ: return UNCOMMITTED_READ_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private IsolationLevelType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //IsolationLevelType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/OriginType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/OriginType.java
new file mode 100644
index 0000000..e8f9e5d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/OriginType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: OriginType.java,v 1.4 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Origin Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getOriginType()
+ * @model
+ * @generated
+ */
+public final class OriginType extends AbstractEnumerator {
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE = 0;
+
+ /**
+ * The '<em><b>TEMPLATE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #TEMPLATE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int TEMPLATE = 1;
+
+ /**
+ * The '<em><b>SOURCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SOURCE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int SOURCE = 2;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @generated
+ * @ordered
+ */
+ public static final OriginType NONE_LITERAL = new OriginType(NONE, "NONE", "NONE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>TEMPLATE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>TEMPLATE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #TEMPLATE
+ * @generated
+ * @ordered
+ */
+ public static final OriginType TEMPLATE_LITERAL = new OriginType(TEMPLATE, "TEMPLATE", "TEMPLATE"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>SOURCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>SOURCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #SOURCE
+ * @generated
+ * @ordered
+ */
+ public static final OriginType SOURCE_LITERAL = new OriginType(SOURCE, "SOURCE", "SOURCE"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Origin Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final OriginType[] VALUES_ARRAY =
+ new OriginType[] {
+ NONE_LITERAL,
+ TEMPLATE_LITERAL,
+ SOURCE_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Origin Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Origin Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OriginType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OriginType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Origin Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OriginType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ OriginType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Origin Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static OriginType get(int value) {
+ switch (value) {
+ case NONE: return NONE_LITERAL;
+ case TEMPLATE: return TEMPLATE_LITERAL;
+ case SOURCE: return SOURCE_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private OriginType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //OriginType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/ReoptType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/ReoptType.java
new file mode 100644
index 0000000..e651212
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/ReoptType.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ReoptType.java,v 1.2 2009/03/16 21:08:37 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Reopt Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getReoptType()
+ * @model
+ * @generated
+ */
+public final class ReoptType extends AbstractEnumerator {
+ /**
+ * The '<em><b>NONE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>NONE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int NONE = 0;
+
+ /**
+ * The '<em><b>ONCE</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ONCE</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ONCE_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ONCE = 1;
+
+ /**
+ * The '<em><b>ALWAYS</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>ALWAYS</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #ALWAYS_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int ALWAYS = 2;
+
+ /**
+ * The '<em><b>AUTO</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AUTO</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AUTO_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AUTO = 3;
+
+ /**
+ * The '<em><b>NONE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @generated
+ * @ordered
+ */
+ public static final ReoptType NONE_LITERAL = new ReoptType(NONE, "NONE", "NONE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ONCE</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ONCE
+ * @generated
+ * @ordered
+ */
+ public static final ReoptType ONCE_LITERAL = new ReoptType(ONCE, "ONCE", "ONCE"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>ALWAYS</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #ALWAYS
+ * @generated
+ * @ordered
+ */
+ public static final ReoptType ALWAYS_LITERAL = new ReoptType(ALWAYS, "ALWAYS", "ALWAYS"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>AUTO</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AUTO
+ * @generated
+ * @ordered
+ */
+ public static final ReoptType AUTO_LITERAL = new ReoptType(AUTO, "AUTO", "AUTO"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Reopt Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ReoptType[] VALUES_ARRAY =
+ new ReoptType[] {
+ NONE_LITERAL,
+ ONCE_LITERAL,
+ ALWAYS_LITERAL,
+ AUTO_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Reopt Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Reopt Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ReoptType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ReoptType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Reopt Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ReoptType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ReoptType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Reopt Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ReoptType get(int value) {
+ switch (value) {
+ case NONE: return NONE_LITERAL;
+ case ONCE: return ONCE_LITERAL;
+ case ALWAYS: return ALWAYS_LITERAL;
+ case AUTO: return AUTO_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ReoptType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //ReoptType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/SourceDialect.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/SourceDialect.java
new file mode 100644
index 0000000..db08ca7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/SourceDialect.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: SourceDialect.java,v 1.1 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Source Dialect</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getSourceDialect()
+ * @model
+ * @generated
+ */
+public final class SourceDialect extends AbstractEnumerator {
+ /**
+ * The '<em><b>UNKNOWN</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>UNKNOWN</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #UNKNOWN_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int UNKNOWN = 0;
+
+ /**
+ * The '<em><b>PLSQL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>PLSQL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PLSQL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int PLSQL = 1;
+
+ /**
+ * The '<em><b>DB2SQLPL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>DB2SQLPL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #DB2SQLPL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int DB2SQLPL = 2;
+
+ /**
+ * The '<em><b>UNKNOWN</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UNKNOWN
+ * @generated
+ * @ordered
+ */
+ public static final SourceDialect UNKNOWN_LITERAL = new SourceDialect(UNKNOWN, "UNKNOWN", "UNKNOWN"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>PLSQL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PLSQL
+ * @generated
+ * @ordered
+ */
+ public static final SourceDialect PLSQL_LITERAL = new SourceDialect(PLSQL, "PLSQL", "PLSQL"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>DB2SQLPL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DB2SQLPL
+ * @generated
+ * @ordered
+ */
+ public static final SourceDialect DB2SQLPL_LITERAL = new SourceDialect(DB2SQLPL, "DB2SQLPL", "DB2SQLPL"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * An array of all the '<em><b>Source Dialect</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SourceDialect[] VALUES_ARRAY =
+ new SourceDialect[] {
+ UNKNOWN_LITERAL,
+ PLSQL_LITERAL,
+ DB2SQLPL_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Source Dialect</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Source Dialect</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SourceDialect get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SourceDialect result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Source Dialect</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SourceDialect getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ SourceDialect result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Source Dialect</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SourceDialect get(int value) {
+ switch (value) {
+ case UNKNOWN: return UNKNOWN_LITERAL;
+ case PLSQL: return PLSQL_LITERAL;
+ case DB2SQLPL: return DB2SQLPL_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SourceDialect(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //SourceDialect
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/UnitType.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/UnitType.java
new file mode 100644
index 0000000..54c69f5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/UnitType.java
@@ -0,0 +1,178 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UnitType.java,v 1.8 2009/01/31 00:22:40 xli Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Unit Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#getUnitType()
+ * @model
+ * @generated
+ */
+public final class UnitType extends AbstractEnumerator {
+ /**
+ * The '<em><b>K</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #K_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int K = 0;
+
+ /**
+ * The '<em><b>M</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #M_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int M = 1;
+
+ /**
+ * The '<em><b>G</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #G_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int G = 2;
+
+ /**
+ * The '<em><b>K</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>K</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #K
+ * @generated
+ * @ordered
+ */
+ public static final UnitType K_LITERAL = new UnitType(K, "K", "K"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>M</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>M</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #M
+ * @generated
+ * @ordered
+ */
+ public static final UnitType M_LITERAL = new UnitType(M, "M", "M"); //$NON-NLS-1$
+
+ /**
+ * The '<em><b>G</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>G</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #G
+ * @generated
+ * @ordered
+ */
+ public static final UnitType G_LITERAL = new UnitType(G, "G", "G"); //$NON-NLS-1$
+
+ /**
+ * An array of all the '<em><b>Unit Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final UnitType[] VALUES_ARRAY =
+ new UnitType[] {
+ K_LITERAL,
+ M_LITERAL,
+ G_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>Unit Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Unit Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UnitType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UnitType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Unit Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UnitType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ UnitType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Unit Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static UnitType get(int value) {
+ switch (value) {
+ case K: return K_LITERAL;
+ case M: return M_LITERAL;
+ case G: return G_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private UnitType(int value, String name, String literal) {
+ super(value, name, literal);
+ }
+
+} //UnitType
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2AliasImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2AliasImpl.java
new file mode 100644
index 0000000..4f23404
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2AliasImpl.java
@@ -0,0 +1,163 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.impl.TableImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Alias</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2AliasImpl#getAliasedTable <em>Aliased Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2AliasImpl extends TableImpl implements DB2Alias {
+ /**
+ * The cached value of the '{@link #getAliasedTable() <em>Aliased Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAliasedTable()
+ * @generated
+ * @ordered
+ */
+ protected Table aliasedTable;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2AliasImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_ALIAS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Table getAliasedTable() {
+ if (aliasedTable != null && aliasedTable.eIsProxy()) {
+ InternalEObject oldAliasedTable = (InternalEObject)aliasedTable;
+ aliasedTable = (Table)eResolveProxy(oldAliasedTable);
+ if (aliasedTable != oldAliasedTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_ALIAS__ALIASED_TABLE, oldAliasedTable, aliasedTable));
+ }
+ }
+ return aliasedTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Table basicGetAliasedTable() {
+ return aliasedTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAliasedTable(Table newAliasedTable) {
+ Table oldAliasedTable = aliasedTable;
+ aliasedTable = newAliasedTable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_ALIAS__ALIASED_TABLE, oldAliasedTable, aliasedTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_ALIAS__ALIASED_TABLE:
+ if (resolve) return getAliasedTable();
+ return basicGetAliasedTable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_ALIAS__ALIASED_TABLE:
+ setAliasedTable((Table)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_ALIAS__ALIASED_TABLE:
+ setAliasedTable((Table)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_ALIAS__ALIASED_TABLE:
+ return aliasedTable != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ public EList getColumns() {
+ if (getAliasedTable() != null) {
+ return aliasedTable.getColumns();
+ } else return super.getColumns();
+
+ }
+
+} //DB2AliasImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ApplicationProcessImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ApplicationProcessImpl.java
new file mode 100644
index 0000000..c1080f3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ApplicationProcessImpl.java
@@ -0,0 +1,241 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Transaction;
+import org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Application Process</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ApplicationProcessImpl#getIsolationLevel <em>Isolation Level</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ApplicationProcessImpl#getUnitOfWork <em>Unit Of Work</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2ApplicationProcessImpl extends SQLObjectImpl implements DB2ApplicationProcess {
+ /**
+ * The default value of the '{@link #getIsolationLevel() <em>Isolation Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIsolationLevel()
+ * @generated
+ * @ordered
+ */
+ protected static final IsolationLevelType ISOLATION_LEVEL_EDEFAULT = IsolationLevelType.REPEATABLE_READ_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getIsolationLevel() <em>Isolation Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIsolationLevel()
+ * @generated
+ * @ordered
+ */
+ protected IsolationLevelType isolationLevel = ISOLATION_LEVEL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getUnitOfWork() <em>Unit Of Work</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUnitOfWork()
+ * @generated
+ * @ordered
+ */
+ protected DB2Transaction unitOfWork;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ApplicationProcessImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_APPLICATION_PROCESS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IsolationLevelType getIsolationLevel() {
+ return isolationLevel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsolationLevel(IsolationLevelType newIsolationLevel) {
+ IsolationLevelType oldIsolationLevel = isolationLevel;
+ isolationLevel = newIsolationLevel == null ? ISOLATION_LEVEL_EDEFAULT : newIsolationLevel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_APPLICATION_PROCESS__ISOLATION_LEVEL, oldIsolationLevel, isolationLevel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Transaction getUnitOfWork() {
+ return unitOfWork;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetUnitOfWork(DB2Transaction newUnitOfWork, NotificationChain msgs) {
+ DB2Transaction oldUnitOfWork = unitOfWork;
+ unitOfWork = newUnitOfWork;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK, oldUnitOfWork, newUnitOfWork);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUnitOfWork(DB2Transaction newUnitOfWork) {
+ if (newUnitOfWork != unitOfWork) {
+ NotificationChain msgs = null;
+ if (unitOfWork != null)
+ msgs = ((InternalEObject)unitOfWork).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK, null, msgs);
+ if (newUnitOfWork != null)
+ msgs = ((InternalEObject)newUnitOfWork).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK, null, msgs);
+ msgs = basicSetUnitOfWork(newUnitOfWork, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK, newUnitOfWork, newUnitOfWork));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK:
+ return basicSetUnitOfWork(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__ISOLATION_LEVEL:
+ return getIsolationLevel();
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK:
+ return getUnitOfWork();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__ISOLATION_LEVEL:
+ setIsolationLevel((IsolationLevelType)newValue);
+ return;
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK:
+ setUnitOfWork((DB2Transaction)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__ISOLATION_LEVEL:
+ setIsolationLevel(ISOLATION_LEVEL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK:
+ setUnitOfWork((DB2Transaction)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__ISOLATION_LEVEL:
+ return isolationLevel != ISOLATION_LEVEL_EDEFAULT;
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS__UNIT_OF_WORK:
+ return unitOfWork != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (isolationLevel: "); //$NON-NLS-1$
+ result.append(isolationLevel);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2ApplicationProcessImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ClusterImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ClusterImpl.java
new file mode 100644
index 0000000..a887ad0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ClusterImpl.java
@@ -0,0 +1,311 @@
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Member;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import java.util.Collection;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Cluster</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ClusterImpl#getLevel <em>Level</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ClusterImpl#getInstance <em>Instance</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ClusterImpl#getMembers <em>Members</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2ClusterImpl extends SQLObjectImpl implements DB2Cluster {
+ /**
+ * The default value of the '{@link #getLevel() <em>Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLevel()
+ * @generated
+ * @ordered
+ */
+ protected static final String LEVEL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLevel() <em>Level</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLevel()
+ * @generated
+ * @ordered
+ */
+ protected String level = LEVEL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInstance() <em>Instance</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstance()
+ * @generated
+ * @ordered
+ */
+ protected DB2DatabaseManager instance;
+
+ /**
+ * The cached value of the '{@link #getMembers() <em>Members</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMembers()
+ * @generated
+ * @ordered
+ */
+ protected EList members;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ClusterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_CLUSTER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLevel() {
+ return level;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLevel(String newLevel) {
+ String oldLevel = level;
+ level = newLevel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_CLUSTER__LEVEL, oldLevel, level));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2DatabaseManager getInstance() {
+ if (instance != null && instance.eIsProxy()) {
+ InternalEObject oldInstance = (InternalEObject)instance;
+ instance = (DB2DatabaseManager)eResolveProxy(oldInstance);
+ if (instance != oldInstance) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_CLUSTER__INSTANCE, oldInstance, instance));
+ }
+ }
+ return instance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2DatabaseManager basicGetInstance() {
+ return instance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetInstance(DB2DatabaseManager newInstance, NotificationChain msgs) {
+ DB2DatabaseManager oldInstance = instance;
+ instance = newInstance;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_CLUSTER__INSTANCE, oldInstance, newInstance);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInstance(DB2DatabaseManager newInstance) {
+ if (newInstance != instance) {
+ NotificationChain msgs = null;
+ if (instance != null)
+ msgs = ((InternalEObject)instance).eInverseRemove(this, DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER, DB2DatabaseManager.class, msgs);
+ if (newInstance != null)
+ msgs = ((InternalEObject)newInstance).eInverseAdd(this, DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER, DB2DatabaseManager.class, msgs);
+ msgs = basicSetInstance(newInstance, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_CLUSTER__INSTANCE, newInstance, newInstance));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getMembers() {
+ if (members == null) {
+ members = new EObjectWithInverseResolvingEList(DB2Member.class, this, DB2ModelPackage.DB2_CLUSTER__MEMBERS, DB2ModelPackage.DB2_MEMBER__CLUSTER);
+ }
+ return members;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_CLUSTER__INSTANCE:
+ if (instance != null)
+ msgs = ((InternalEObject)instance).eInverseRemove(this, DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER, DB2DatabaseManager.class, msgs);
+ return basicSetInstance((DB2DatabaseManager)otherEnd, msgs);
+ case DB2ModelPackage.DB2_CLUSTER__MEMBERS:
+ return ((InternalEList)getMembers()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_CLUSTER__INSTANCE:
+ return basicSetInstance(null, msgs);
+ case DB2ModelPackage.DB2_CLUSTER__MEMBERS:
+ return ((InternalEList)getMembers()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_CLUSTER__LEVEL:
+ return getLevel();
+ case DB2ModelPackage.DB2_CLUSTER__INSTANCE:
+ if (resolve) return getInstance();
+ return basicGetInstance();
+ case DB2ModelPackage.DB2_CLUSTER__MEMBERS:
+ return getMembers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_CLUSTER__LEVEL:
+ setLevel((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_CLUSTER__INSTANCE:
+ setInstance((DB2DatabaseManager)newValue);
+ return;
+ case DB2ModelPackage.DB2_CLUSTER__MEMBERS:
+ getMembers().clear();
+ getMembers().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_CLUSTER__LEVEL:
+ setLevel(LEVEL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_CLUSTER__INSTANCE:
+ setInstance((DB2DatabaseManager)null);
+ return;
+ case DB2ModelPackage.DB2_CLUSTER__MEMBERS:
+ getMembers().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_CLUSTER__LEVEL:
+ return LEVEL_EDEFAULT == null ? level != null : !LEVEL_EDEFAULT.equals(level);
+ case DB2ModelPackage.DB2_CLUSTER__INSTANCE:
+ return instance != null;
+ case DB2ModelPackage.DB2_CLUSTER__MEMBERS:
+ return members != null && !members.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (level: "); //$NON-NLS-1$
+ result.append(level);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2ClusterImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ColumnImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ColumnImpl.java
new file mode 100644
index 0000000..86859cf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ColumnImpl.java
@@ -0,0 +1,598 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2ColumnImpl.java,v 1.9 2008/04/28 20:54:22 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.ColumnImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Period;
+import org.eclipse.datatools.enablement.ibm.db2.model.GenerateType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Column</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl#getGenerationType <em>Generation Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl#isRowChangeTimestamp <em>Row Change Timestamp</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl#isRowBegin <em>Row Begin</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl#isRowEnd <em>Row End</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl#isTransStartID <em>Trans Start ID</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl#getBeginPeriod <em>Begin Period</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ColumnImpl#getEndPeriod <em>End Period</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2ColumnImpl extends ColumnImpl implements DB2Column {
+ /**
+ * The default value of the '{@link #getGenerationType() <em>Generation Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenerationType()
+ * @generated
+ * @ordered
+ */
+ protected static final GenerateType GENERATION_TYPE_EDEFAULT = GenerateType.ALWAYS_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getGenerationType() <em>Generation Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGenerationType()
+ * @generated
+ * @ordered
+ */
+ protected GenerateType generationType = GENERATION_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRowChangeTimestamp() <em>Row Change Timestamp</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowChangeTimestamp()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ROW_CHANGE_TIMESTAMP_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRowChangeTimestamp() <em>Row Change Timestamp</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowChangeTimestamp()
+ * @generated
+ * @ordered
+ */
+ protected boolean rowChangeTimestamp = ROW_CHANGE_TIMESTAMP_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRowBegin() <em>Row Begin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowBegin()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ROW_BEGIN_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRowBegin() <em>Row Begin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowBegin()
+ * @generated
+ * @ordered
+ */
+ protected boolean rowBegin = ROW_BEGIN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isRowEnd() <em>Row End</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowEnd()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ROW_END_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRowEnd() <em>Row End</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRowEnd()
+ * @generated
+ * @ordered
+ */
+ protected boolean rowEnd = ROW_END_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isTransStartID() <em>Trans Start ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isTransStartID()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean TRANS_START_ID_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isTransStartID() <em>Trans Start ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isTransStartID()
+ * @generated
+ * @ordered
+ */
+ protected boolean transStartID = TRANS_START_ID_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBeginPeriod() <em>Begin Period</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBeginPeriod()
+ * @generated
+ * @ordered
+ */
+ protected DB2Period beginPeriod;
+
+ /**
+ * The cached value of the '{@link #getEndPeriod() <em>End Period</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEndPeriod()
+ * @generated
+ * @ordered
+ */
+ protected DB2Period endPeriod;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ColumnImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_COLUMN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenerateType getGenerationType() {
+ return generationType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setGenerationType(GenerateType newGenerationType) {
+ GenerateType oldGenerationType = generationType;
+ generationType = newGenerationType == null ? GENERATION_TYPE_EDEFAULT : newGenerationType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__GENERATION_TYPE, oldGenerationType, generationType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRowChangeTimestamp() {
+ return rowChangeTimestamp;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowChangeTimestamp(boolean newRowChangeTimestamp) {
+ boolean oldRowChangeTimestamp = rowChangeTimestamp;
+ rowChangeTimestamp = newRowChangeTimestamp;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__ROW_CHANGE_TIMESTAMP, oldRowChangeTimestamp, rowChangeTimestamp));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRowBegin() {
+ return rowBegin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowBegin(boolean newRowBegin) {
+ boolean oldRowBegin = rowBegin;
+ rowBegin = newRowBegin;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__ROW_BEGIN, oldRowBegin, rowBegin));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRowEnd() {
+ return rowEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRowEnd(boolean newRowEnd) {
+ boolean oldRowEnd = rowEnd;
+ rowEnd = newRowEnd;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__ROW_END, oldRowEnd, rowEnd));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTransStartID() {
+ return transStartID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTransStartID(boolean newTransStartID) {
+ boolean oldTransStartID = transStartID;
+ transStartID = newTransStartID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__TRANS_START_ID, oldTransStartID, transStartID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Period getBeginPeriod() {
+ if (beginPeriod != null && beginPeriod.eIsProxy()) {
+ InternalEObject oldBeginPeriod = (InternalEObject)beginPeriod;
+ beginPeriod = (DB2Period)eResolveProxy(oldBeginPeriod);
+ if (beginPeriod != oldBeginPeriod) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD, oldBeginPeriod, beginPeriod));
+ }
+ }
+ return beginPeriod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Period basicGetBeginPeriod() {
+ return beginPeriod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBeginPeriod(DB2Period newBeginPeriod, NotificationChain msgs) {
+ DB2Period oldBeginPeriod = beginPeriod;
+ beginPeriod = newBeginPeriod;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD, oldBeginPeriod, newBeginPeriod);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBeginPeriod(DB2Period newBeginPeriod) {
+ if (newBeginPeriod != beginPeriod) {
+ NotificationChain msgs = null;
+ if (beginPeriod != null)
+ msgs = ((InternalEObject)beginPeriod).eInverseRemove(this, DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN, DB2Period.class, msgs);
+ if (newBeginPeriod != null)
+ msgs = ((InternalEObject)newBeginPeriod).eInverseAdd(this, DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN, DB2Period.class, msgs);
+ msgs = basicSetBeginPeriod(newBeginPeriod, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD, newBeginPeriod, newBeginPeriod));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Period getEndPeriod() {
+ if (endPeriod != null && endPeriod.eIsProxy()) {
+ InternalEObject oldEndPeriod = (InternalEObject)endPeriod;
+ endPeriod = (DB2Period)eResolveProxy(oldEndPeriod);
+ if (endPeriod != oldEndPeriod) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_COLUMN__END_PERIOD, oldEndPeriod, endPeriod));
+ }
+ }
+ return endPeriod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Period basicGetEndPeriod() {
+ return endPeriod;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetEndPeriod(DB2Period newEndPeriod, NotificationChain msgs) {
+ DB2Period oldEndPeriod = endPeriod;
+ endPeriod = newEndPeriod;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__END_PERIOD, oldEndPeriod, newEndPeriod);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEndPeriod(DB2Period newEndPeriod) {
+ if (newEndPeriod != endPeriod) {
+ NotificationChain msgs = null;
+ if (endPeriod != null)
+ msgs = ((InternalEObject)endPeriod).eInverseRemove(this, DB2ModelPackage.DB2_PERIOD__END_COLUMN, DB2Period.class, msgs);
+ if (newEndPeriod != null)
+ msgs = ((InternalEObject)newEndPeriod).eInverseAdd(this, DB2ModelPackage.DB2_PERIOD__END_COLUMN, DB2Period.class, msgs);
+ msgs = basicSetEndPeriod(newEndPeriod, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_COLUMN__END_PERIOD, newEndPeriod, newEndPeriod));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD:
+ if (beginPeriod != null)
+ msgs = ((InternalEObject)beginPeriod).eInverseRemove(this, DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN, DB2Period.class, msgs);
+ return basicSetBeginPeriod((DB2Period)otherEnd, msgs);
+ case DB2ModelPackage.DB2_COLUMN__END_PERIOD:
+ if (endPeriod != null)
+ msgs = ((InternalEObject)endPeriod).eInverseRemove(this, DB2ModelPackage.DB2_PERIOD__END_COLUMN, DB2Period.class, msgs);
+ return basicSetEndPeriod((DB2Period)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD:
+ return basicSetBeginPeriod(null, msgs);
+ case DB2ModelPackage.DB2_COLUMN__END_PERIOD:
+ return basicSetEndPeriod(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_COLUMN__GENERATION_TYPE:
+ return getGenerationType();
+ case DB2ModelPackage.DB2_COLUMN__ROW_CHANGE_TIMESTAMP:
+ return isRowChangeTimestamp() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_COLUMN__ROW_BEGIN:
+ return isRowBegin() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_COLUMN__ROW_END:
+ return isRowEnd() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_COLUMN__TRANS_START_ID:
+ return isTransStartID() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD:
+ if (resolve) return getBeginPeriod();
+ return basicGetBeginPeriod();
+ case DB2ModelPackage.DB2_COLUMN__END_PERIOD:
+ if (resolve) return getEndPeriod();
+ return basicGetEndPeriod();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_COLUMN__GENERATION_TYPE:
+ setGenerationType((GenerateType)newValue);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__ROW_CHANGE_TIMESTAMP:
+ setRowChangeTimestamp(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_COLUMN__ROW_BEGIN:
+ setRowBegin(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_COLUMN__ROW_END:
+ setRowEnd(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_COLUMN__TRANS_START_ID:
+ setTransStartID(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD:
+ setBeginPeriod((DB2Period)newValue);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__END_PERIOD:
+ setEndPeriod((DB2Period)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_COLUMN__GENERATION_TYPE:
+ setGenerationType(GENERATION_TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__ROW_CHANGE_TIMESTAMP:
+ setRowChangeTimestamp(ROW_CHANGE_TIMESTAMP_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__ROW_BEGIN:
+ setRowBegin(ROW_BEGIN_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__ROW_END:
+ setRowEnd(ROW_END_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__TRANS_START_ID:
+ setTransStartID(TRANS_START_ID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD:
+ setBeginPeriod((DB2Period)null);
+ return;
+ case DB2ModelPackage.DB2_COLUMN__END_PERIOD:
+ setEndPeriod((DB2Period)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_COLUMN__GENERATION_TYPE:
+ return generationType != GENERATION_TYPE_EDEFAULT;
+ case DB2ModelPackage.DB2_COLUMN__ROW_CHANGE_TIMESTAMP:
+ return rowChangeTimestamp != ROW_CHANGE_TIMESTAMP_EDEFAULT;
+ case DB2ModelPackage.DB2_COLUMN__ROW_BEGIN:
+ return rowBegin != ROW_BEGIN_EDEFAULT;
+ case DB2ModelPackage.DB2_COLUMN__ROW_END:
+ return rowEnd != ROW_END_EDEFAULT;
+ case DB2ModelPackage.DB2_COLUMN__TRANS_START_ID:
+ return transStartID != TRANS_START_ID_EDEFAULT;
+ case DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD:
+ return beginPeriod != null;
+ case DB2ModelPackage.DB2_COLUMN__END_PERIOD:
+ return endPeriod != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (generationType: "); //$NON-NLS-1$
+ result.append(generationType);
+ result.append(", rowChangeTimestamp: "); //$NON-NLS-1$
+ result.append(rowChangeTimestamp);
+ result.append(", rowBegin: "); //$NON-NLS-1$
+ result.append(rowBegin);
+ result.append(", rowEnd: "); //$NON-NLS-1$
+ result.append(rowEnd);
+ result.append(", transStartID: "); //$NON-NLS-1$
+ result.append(transStartID);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean isGenerated() {
+ if ( this.isRowChangeTimestamp() ||
+ this.isRowBegin() ||
+ this.isRowEnd() ||
+ this.isTransStartID() ||
+ this.getGenerateExpression() != null ||
+ this.getIdentitySpecifier() != null )
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+} //DB2ColumnImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DatabaseImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DatabaseImpl.java
new file mode 100644
index 0000000..e20434c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DatabaseImpl.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.DatabaseImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Database;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Database</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseImpl#isPartitioned <em>Partitioned</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseImpl#isDefaultOrganizeByRow <em>Default Organize By Row</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2DatabaseImpl extends DatabaseImpl implements DB2Database {
+ /**
+ * The default value of the '{@link #isPartitioned() <em>Partitioned</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPartitioned()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PARTITIONED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPartitioned() <em>Partitioned</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPartitioned()
+ * @generated
+ * @ordered
+ */
+ protected boolean partitioned = PARTITIONED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDefaultOrganizeByRow() <em>Default Organize By Row</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDefaultOrganizeByRow()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DEFAULT_ORGANIZE_BY_ROW_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isDefaultOrganizeByRow() <em>Default Organize By Row</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDefaultOrganizeByRow()
+ * @generated
+ * @ordered
+ */
+ protected boolean defaultOrganizeByRow = DEFAULT_ORGANIZE_BY_ROW_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2DatabaseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_DATABASE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPartitioned() {
+ return partitioned;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPartitioned(boolean newPartitioned) {
+ boolean oldPartitioned = partitioned;
+ partitioned = newPartitioned;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_DATABASE__PARTITIONED, oldPartitioned, partitioned));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDefaultOrganizeByRow() {
+ return defaultOrganizeByRow;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultOrganizeByRow(boolean newDefaultOrganizeByRow) {
+ boolean oldDefaultOrganizeByRow = defaultOrganizeByRow;
+ defaultOrganizeByRow = newDefaultOrganizeByRow;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW, oldDefaultOrganizeByRow, defaultOrganizeByRow));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE__PARTITIONED:
+ return isPartitioned() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW:
+ return isDefaultOrganizeByRow() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE__PARTITIONED:
+ setPartitioned(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW:
+ setDefaultOrganizeByRow(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE__PARTITIONED:
+ setPartitioned(PARTITIONED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW:
+ setDefaultOrganizeByRow(DEFAULT_ORGANIZE_BY_ROW_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE__PARTITIONED:
+ return partitioned != PARTITIONED_EDEFAULT;
+ case DB2ModelPackage.DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW:
+ return defaultOrganizeByRow != DEFAULT_ORGANIZE_BY_ROW_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (partitioned: "); //$NON-NLS-1$
+ result.append(partitioned);
+ result.append(", defaultOrganizeByRow: "); //$NON-NLS-1$
+ result.append(defaultOrganizeByRow);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2DatabaseImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DatabaseManagerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DatabaseManagerImpl.java
new file mode 100644
index 0000000..7b4a323
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DatabaseManagerImpl.java
@@ -0,0 +1,312 @@
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Database;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import java.util.Collection;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Database Manager</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl#getDatabases <em>Databases</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl#getDb2Process <em>Db2 Process</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl#getServer <em>Server</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2DatabaseManagerImpl#getCluster <em>Cluster</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2DatabaseManagerImpl extends SQLObjectImpl implements DB2DatabaseManager {
+ /**
+ * The cached value of the '{@link #getDatabases() <em>Databases</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDatabases()
+ * @generated
+ * @ordered
+ */
+ protected EList databases;
+
+ /**
+ * The cached value of the '{@link #getDb2Process() <em>Db2 Process</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDb2Process()
+ * @generated
+ * @ordered
+ */
+ protected EList db2Process;
+
+ /**
+ * The cached value of the '{@link #getServer() <em>Server</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getServer()
+ * @generated
+ * @ordered
+ */
+ protected EList server;
+
+ /**
+ * The cached value of the '{@link #getCluster() <em>Cluster</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCluster()
+ * @generated
+ * @ordered
+ */
+ protected DB2Cluster cluster;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2DatabaseManagerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_DATABASE_MANAGER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getDatabases() {
+ if (databases == null) {
+ databases = new EObjectResolvingEList(DB2Database.class, this, DB2ModelPackage.DB2_DATABASE_MANAGER__DATABASES);
+ }
+ return databases;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getDb2Process() {
+ if (db2Process == null) {
+ db2Process = new EObjectResolvingEList(DB2ApplicationProcess.class, this, DB2ModelPackage.DB2_DATABASE_MANAGER__DB2_PROCESS);
+ }
+ return db2Process;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public EList getServer() {
+// if (server == null) {
+// server = new EObjectWithInverseResolvingEList.ManyInverse(LUWAdminServer.class, this, DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER, LUWPackage.LUW_ADMIN_SERVER__INSTANCES);
+// }
+ return server;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Cluster getCluster() {
+ if (cluster != null && cluster.eIsProxy()) {
+ InternalEObject oldCluster = (InternalEObject)cluster;
+ cluster = (DB2Cluster)eResolveProxy(oldCluster);
+ if (cluster != oldCluster) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER, oldCluster, cluster));
+ }
+ }
+ return cluster;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Cluster basicGetCluster() {
+ return cluster;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCluster(DB2Cluster newCluster, NotificationChain msgs) {
+ DB2Cluster oldCluster = cluster;
+ cluster = newCluster;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER, oldCluster, newCluster);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCluster(DB2Cluster newCluster) {
+ if (newCluster != cluster) {
+ NotificationChain msgs = null;
+ if (cluster != null)
+ msgs = ((InternalEObject)cluster).eInverseRemove(this, DB2ModelPackage.DB2_CLUSTER__INSTANCE, DB2Cluster.class, msgs);
+ if (newCluster != null)
+ msgs = ((InternalEObject)newCluster).eInverseAdd(this, DB2ModelPackage.DB2_CLUSTER__INSTANCE, DB2Cluster.class, msgs);
+ msgs = basicSetCluster(newCluster, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER, newCluster, newCluster));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER:
+ return ((InternalEList)getServer()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER:
+ if (cluster != null)
+ msgs = ((InternalEObject)cluster).eInverseRemove(this, DB2ModelPackage.DB2_CLUSTER__INSTANCE, DB2Cluster.class, msgs);
+ return basicSetCluster((DB2Cluster)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER:
+ return ((InternalEList)getServer()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER:
+ return basicSetCluster(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DATABASES:
+ return getDatabases();
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DB2_PROCESS:
+ return getDb2Process();
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER:
+ return getServer();
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER:
+ if (resolve) return getCluster();
+ return basicGetCluster();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DATABASES:
+ getDatabases().clear();
+ getDatabases().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DB2_PROCESS:
+ getDb2Process().clear();
+ getDb2Process().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER:
+ getServer().clear();
+ getServer().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER:
+ setCluster((DB2Cluster)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DATABASES:
+ getDatabases().clear();
+ return;
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DB2_PROCESS:
+ getDb2Process().clear();
+ return;
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER:
+ getServer().clear();
+ return;
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER:
+ setCluster((DB2Cluster)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DATABASES:
+ return databases != null && !databases.isEmpty();
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__DB2_PROCESS:
+ return db2Process != null && !db2Process.isEmpty();
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__SERVER:
+ return server != null && !server.isEmpty();
+ case DB2ModelPackage.DB2_DATABASE_MANAGER__CLUSTER:
+ return cluster != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DB2DatabaseManagerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DistinctUserDefinedTypeImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DistinctUserDefinedTypeImpl.java
new file mode 100644
index 0000000..93db80c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2DistinctUserDefinedTypeImpl.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2DistinctUserDefinedType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.impl.DistinctUserDefinedTypeImpl;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Distinct User Defined Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DB2DistinctUserDefinedTypeImpl extends DistinctUserDefinedTypeImpl implements DB2DistinctUserDefinedType {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2DistinctUserDefinedTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_DISTINCT_USER_DEFINED_TYPE;
+ }
+
+} //DB2DistinctUserDefinedTypeImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ExtendedOptionsImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ExtendedOptionsImpl.java
new file mode 100644
index 0000000..0c7be5d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ExtendedOptionsImpl.java
@@ -0,0 +1,538 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Extended Options</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#getClasspathCompileJars <em>Classpath Compile Jars</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#getPreCompileOpts <em>Pre Compile Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#isForDebug <em>For Debug</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#isBuilt <em>Built</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#getCompileOpts <em>Compile Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#getLinkOpts <em>Link Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#getBindOpts <em>Bind Opts</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ExtendedOptionsImpl#getColid <em>Colid</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2ExtendedOptionsImpl extends SQLObjectImpl implements DB2ExtendedOptions {
+ /**
+ * The default value of the '{@link #getClasspathCompileJars() <em>Classpath Compile Jars</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathCompileJars()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASSPATH_COMPILE_JARS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClasspathCompileJars() <em>Classpath Compile Jars</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathCompileJars()
+ * @generated
+ * @ordered
+ */
+ protected String classpathCompileJars = CLASSPATH_COMPILE_JARS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPreCompileOpts() <em>Pre Compile Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreCompileOpts()
+ * @generated
+ * @ordered
+ */
+ protected static final String PRE_COMPILE_OPTS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPreCompileOpts() <em>Pre Compile Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreCompileOpts()
+ * @generated
+ * @ordered
+ */
+ protected String preCompileOpts = PRE_COMPILE_OPTS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isForDebug() <em>For Debug</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForDebug()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FOR_DEBUG_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isForDebug() <em>For Debug</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isForDebug()
+ * @generated
+ * @ordered
+ */
+ protected boolean forDebug = FOR_DEBUG_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBuilt() <em>Built</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBuilt()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BUILT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBuilt() <em>Built</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBuilt()
+ * @generated
+ * @ordered
+ */
+ protected boolean built = BUILT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCompileOpts() <em>Compile Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompileOpts()
+ * @generated
+ * @ordered
+ */
+ protected static final String COMPILE_OPTS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCompileOpts() <em>Compile Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCompileOpts()
+ * @generated
+ * @ordered
+ */
+ protected String compileOpts = COMPILE_OPTS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLinkOpts() <em>Link Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkOpts()
+ * @generated
+ * @ordered
+ */
+ protected static final String LINK_OPTS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLinkOpts() <em>Link Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLinkOpts()
+ * @generated
+ * @ordered
+ */
+ protected String linkOpts = LINK_OPTS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBindOpts() <em>Bind Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBindOpts()
+ * @generated
+ * @ordered
+ */
+ protected static final String BIND_OPTS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBindOpts() <em>Bind Opts</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBindOpts()
+ * @generated
+ * @ordered
+ */
+ protected String bindOpts = BIND_OPTS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getColid() <em>Colid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColid()
+ * @generated
+ * @ordered
+ */
+ protected static final String COLID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getColid() <em>Colid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getColid()
+ * @generated
+ * @ordered
+ */
+ protected String colid = COLID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ExtendedOptionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_EXTENDED_OPTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClasspathCompileJars() {
+ return classpathCompileJars;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClasspathCompileJars(String newClasspathCompileJars) {
+ String oldClasspathCompileJars = classpathCompileJars;
+ classpathCompileJars = newClasspathCompileJars;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS, oldClasspathCompileJars, classpathCompileJars));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPreCompileOpts() {
+ return preCompileOpts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPreCompileOpts(String newPreCompileOpts) {
+ String oldPreCompileOpts = preCompileOpts;
+ preCompileOpts = newPreCompileOpts;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS, oldPreCompileOpts, preCompileOpts));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isForDebug() {
+ return forDebug;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setForDebug(boolean newForDebug) {
+ boolean oldForDebug = forDebug;
+ forDebug = newForDebug;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__FOR_DEBUG, oldForDebug, forDebug));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isBuilt() {
+ return built;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBuilt(boolean newBuilt) {
+ boolean oldBuilt = built;
+ built = newBuilt;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__BUILT, oldBuilt, built));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCompileOpts() {
+ return compileOpts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCompileOpts(String newCompileOpts) {
+ String oldCompileOpts = compileOpts;
+ compileOpts = newCompileOpts;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__COMPILE_OPTS, oldCompileOpts, compileOpts));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLinkOpts() {
+ return linkOpts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLinkOpts(String newLinkOpts) {
+ String oldLinkOpts = linkOpts;
+ linkOpts = newLinkOpts;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__LINK_OPTS, oldLinkOpts, linkOpts));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBindOpts() {
+ return bindOpts;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBindOpts(String newBindOpts) {
+ String oldBindOpts = bindOpts;
+ bindOpts = newBindOpts;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__BIND_OPTS, oldBindOpts, bindOpts));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getColid() {
+ return colid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setColid(String newColid) {
+ String oldColid = colid;
+ colid = newColid;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_EXTENDED_OPTIONS__COLID, oldColid, colid));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS:
+ return getClasspathCompileJars();
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS:
+ return getPreCompileOpts();
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__FOR_DEBUG:
+ return isForDebug() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BUILT:
+ return isBuilt() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COMPILE_OPTS:
+ return getCompileOpts();
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__LINK_OPTS:
+ return getLinkOpts();
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BIND_OPTS:
+ return getBindOpts();
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COLID:
+ return getColid();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS:
+ setClasspathCompileJars((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS:
+ setPreCompileOpts((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__FOR_DEBUG:
+ setForDebug(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BUILT:
+ setBuilt(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COMPILE_OPTS:
+ setCompileOpts((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__LINK_OPTS:
+ setLinkOpts((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BIND_OPTS:
+ setBindOpts((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COLID:
+ setColid((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS:
+ setClasspathCompileJars(CLASSPATH_COMPILE_JARS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS:
+ setPreCompileOpts(PRE_COMPILE_OPTS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__FOR_DEBUG:
+ setForDebug(FOR_DEBUG_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BUILT:
+ setBuilt(BUILT_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COMPILE_OPTS:
+ setCompileOpts(COMPILE_OPTS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__LINK_OPTS:
+ setLinkOpts(LINK_OPTS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BIND_OPTS:
+ setBindOpts(BIND_OPTS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COLID:
+ setColid(COLID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS:
+ return CLASSPATH_COMPILE_JARS_EDEFAULT == null ? classpathCompileJars != null : !CLASSPATH_COMPILE_JARS_EDEFAULT.equals(classpathCompileJars);
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS:
+ return PRE_COMPILE_OPTS_EDEFAULT == null ? preCompileOpts != null : !PRE_COMPILE_OPTS_EDEFAULT.equals(preCompileOpts);
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__FOR_DEBUG:
+ return forDebug != FOR_DEBUG_EDEFAULT;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BUILT:
+ return built != BUILT_EDEFAULT;
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COMPILE_OPTS:
+ return COMPILE_OPTS_EDEFAULT == null ? compileOpts != null : !COMPILE_OPTS_EDEFAULT.equals(compileOpts);
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__LINK_OPTS:
+ return LINK_OPTS_EDEFAULT == null ? linkOpts != null : !LINK_OPTS_EDEFAULT.equals(linkOpts);
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__BIND_OPTS:
+ return BIND_OPTS_EDEFAULT == null ? bindOpts != null : !BIND_OPTS_EDEFAULT.equals(bindOpts);
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS__COLID:
+ return COLID_EDEFAULT == null ? colid != null : !COLID_EDEFAULT.equals(colid);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (classpathCompileJars: "); //$NON-NLS-1$
+ result.append(classpathCompileJars);
+ result.append(", preCompileOpts: "); //$NON-NLS-1$
+ result.append(preCompileOpts);
+ result.append(", forDebug: "); //$NON-NLS-1$
+ result.append(forDebug);
+ result.append(", built: "); //$NON-NLS-1$
+ result.append(built);
+ result.append(", compileOpts: "); //$NON-NLS-1$
+ result.append(compileOpts);
+ result.append(", linkOpts: "); //$NON-NLS-1$
+ result.append(linkOpts);
+ result.append(", bindOpts: "); //$NON-NLS-1$
+ result.append(bindOpts);
+ result.append(", colid: "); //$NON-NLS-1$
+ result.append(colid);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2ExtendedOptionsImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2IdentitySpecifierImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2IdentitySpecifierImpl.java
new file mode 100644
index 0000000..6b5cbce
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2IdentitySpecifierImpl.java
@@ -0,0 +1,322 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2IdentitySpecifierImpl.java,v 1.13 2009/07/30 00:21:44 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.IdentitySpecifierImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import java.math.BigInteger;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Identity Specifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl#getCache <em>Cache</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl#isOrder <em>Order</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl#isSystemGenerated <em>System Generated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IdentitySpecifierImpl#getRestartValue <em>Restart Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2IdentitySpecifierImpl extends IdentitySpecifierImpl implements DB2IdentitySpecifier {
+ /**
+ * The default value of the '{@link #getCache() <em>Cache</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCache()
+ * @generated
+ * @ordered
+ */
+ protected static final int CACHE_EDEFAULT = 20;
+
+ /**
+ * The cached value of the '{@link #getCache() <em>Cache</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCache()
+ * @generated
+ * @ordered
+ */
+ protected int cache = CACHE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isOrder() <em>Order</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrder()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ORDER_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isOrder() <em>Order</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrder()
+ * @generated
+ * @ordered
+ */
+ protected boolean order = ORDER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSystemGenerated() <em>System Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSystemGenerated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SYSTEM_GENERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSystemGenerated() <em>System Generated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSystemGenerated()
+ * @generated
+ * @ordered
+ */
+ protected boolean systemGenerated = SYSTEM_GENERATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRestartValue() <em>Restart Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestartValue()
+ * @generated
+ * @ordered
+ */
+ protected static final BigInteger RESTART_VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRestartValue() <em>Restart Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestartValue()
+ * @generated
+ * @ordered
+ */
+ protected BigInteger restartValue = RESTART_VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2IdentitySpecifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_IDENTITY_SPECIFIER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getCache() {
+ return cache;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCache(int newCache) {
+ int oldCache = cache;
+ cache = newCache;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_IDENTITY_SPECIFIER__CACHE, oldCache, cache));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOrder() {
+ return order;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrder(boolean newOrder) {
+ boolean oldOrder = order;
+ order = newOrder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_IDENTITY_SPECIFIER__ORDER, oldOrder, order));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSystemGenerated() {
+ return systemGenerated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSystemGenerated(boolean newSystemGenerated) {
+ boolean oldSystemGenerated = systemGenerated;
+ systemGenerated = newSystemGenerated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED, oldSystemGenerated, systemGenerated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigInteger getRestartValue() {
+ return restartValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRestartValue(BigInteger newRestartValue) {
+ BigInteger oldRestartValue = restartValue;
+ restartValue = newRestartValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_IDENTITY_SPECIFIER__RESTART_VALUE, oldRestartValue, restartValue));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__CACHE:
+ return new Integer(getCache());
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__ORDER:
+ return isOrder() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED:
+ return isSystemGenerated() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__RESTART_VALUE:
+ return getRestartValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__CACHE:
+ setCache(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__ORDER:
+ setOrder(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED:
+ setSystemGenerated(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__RESTART_VALUE:
+ setRestartValue((BigInteger)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__CACHE:
+ setCache(CACHE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__ORDER:
+ setOrder(ORDER_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED:
+ setSystemGenerated(SYSTEM_GENERATED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__RESTART_VALUE:
+ setRestartValue(RESTART_VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__CACHE:
+ return cache != CACHE_EDEFAULT;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__ORDER:
+ return order != ORDER_EDEFAULT;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED:
+ return systemGenerated != SYSTEM_GENERATED_EDEFAULT;
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER__RESTART_VALUE:
+ return RESTART_VALUE_EDEFAULT == null ? restartValue != null : !RESTART_VALUE_EDEFAULT.equals(restartValue);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (cache: "); //$NON-NLS-1$
+ result.append(cache);
+ result.append(", order: "); //$NON-NLS-1$
+ result.append(order);
+ result.append(", systemGenerated: "); //$NON-NLS-1$
+ result.append(systemGenerated);
+ result.append(", restartValue: "); //$NON-NLS-1$
+ result.append(restartValue);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2IdentitySpecifierImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2IndexImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2IndexImpl.java
new file mode 100644
index 0000000..f822b85
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2IndexImpl.java
@@ -0,0 +1,382 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Index</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl#getIndexType <em>Index Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl#isEncodedVector <em>Encoded Vector</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2IndexImpl#getDB2MultidimensionalIndex <em>DB2 Multidimensional Index</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2IndexImpl extends IndexImpl implements DB2Index {
+ /**
+ * The default value of the '{@link #getIndexType() <em>Index Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexType()
+ * @generated
+ * @ordered
+ */
+ protected static final DB2IndexType INDEX_TYPE_EDEFAULT = DB2IndexType.REGULAR_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getIndexType() <em>Index Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIndexType()
+ * @generated
+ * @ordered
+ */
+ protected DB2IndexType indexType = INDEX_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBusPeriodWithoutOverlap() <em>Bus Period Without Overlap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBusPeriodWithoutOverlap()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBusPeriodWithoutOverlap() <em>Bus Period Without Overlap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBusPeriodWithoutOverlap()
+ * @generated
+ * @ordered
+ */
+ protected boolean busPeriodWithoutOverlap = BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isEncodedVector() <em>Encoded Vector</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEncodedVector()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ENCODED_VECTOR_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isEncodedVector() <em>Encoded Vector</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEncodedVector()
+ * @generated
+ * @ordered
+ */
+ protected boolean encodedVector = ENCODED_VECTOR_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getDB2MultidimensionalIndex() <em>DB2 Multidimensional Index</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDB2MultidimensionalIndex()
+ * @generated
+ * @ordered
+ */
+ protected DB2MultidimensionalIndex db2MultidimensionalIndex;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2IndexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_INDEX;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2IndexType getIndexType() {
+ return indexType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIndexType(DB2IndexType newIndexType) {
+ DB2IndexType oldIndexType = indexType;
+ indexType = newIndexType == null ? INDEX_TYPE_EDEFAULT : newIndexType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_INDEX__INDEX_TYPE, oldIndexType, indexType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isBusPeriodWithoutOverlap() {
+ return busPeriodWithoutOverlap;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBusPeriodWithoutOverlap(boolean newBusPeriodWithoutOverlap) {
+ boolean oldBusPeriodWithoutOverlap = busPeriodWithoutOverlap;
+ busPeriodWithoutOverlap = newBusPeriodWithoutOverlap;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP, oldBusPeriodWithoutOverlap, busPeriodWithoutOverlap));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isEncodedVector() {
+ return encodedVector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEncodedVector(boolean newEncodedVector) {
+ boolean oldEncodedVector = encodedVector;
+ encodedVector = newEncodedVector;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_INDEX__ENCODED_VECTOR, oldEncodedVector, encodedVector));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2MultidimensionalIndex getDB2MultidimensionalIndex() {
+ if (db2MultidimensionalIndex != null && db2MultidimensionalIndex.eIsProxy()) {
+ InternalEObject oldDB2MultidimensionalIndex = (InternalEObject)db2MultidimensionalIndex;
+ db2MultidimensionalIndex = (DB2MultidimensionalIndex)eResolveProxy(oldDB2MultidimensionalIndex);
+ if (db2MultidimensionalIndex != oldDB2MultidimensionalIndex) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX, oldDB2MultidimensionalIndex, db2MultidimensionalIndex));
+ }
+ }
+ return db2MultidimensionalIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2MultidimensionalIndex basicGetDB2MultidimensionalIndex() {
+ return db2MultidimensionalIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDB2MultidimensionalIndex(DB2MultidimensionalIndex newDB2MultidimensionalIndex, NotificationChain msgs) {
+ DB2MultidimensionalIndex oldDB2MultidimensionalIndex = db2MultidimensionalIndex;
+ db2MultidimensionalIndex = newDB2MultidimensionalIndex;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX, oldDB2MultidimensionalIndex, newDB2MultidimensionalIndex);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDB2MultidimensionalIndex(DB2MultidimensionalIndex newDB2MultidimensionalIndex) {
+ if (newDB2MultidimensionalIndex != db2MultidimensionalIndex) {
+ NotificationChain msgs = null;
+ if (db2MultidimensionalIndex != null)
+ msgs = ((InternalEObject)db2MultidimensionalIndex).eInverseRemove(this, DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES, DB2MultidimensionalIndex.class, msgs);
+ if (newDB2MultidimensionalIndex != null)
+ msgs = ((InternalEObject)newDB2MultidimensionalIndex).eInverseAdd(this, DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES, DB2MultidimensionalIndex.class, msgs);
+ msgs = basicSetDB2MultidimensionalIndex(newDB2MultidimensionalIndex, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX, newDB2MultidimensionalIndex, newDB2MultidimensionalIndex));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX:
+ if (db2MultidimensionalIndex != null)
+ msgs = ((InternalEObject)db2MultidimensionalIndex).eInverseRemove(this, DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES, DB2MultidimensionalIndex.class, msgs);
+ return basicSetDB2MultidimensionalIndex((DB2MultidimensionalIndex)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX:
+ return basicSetDB2MultidimensionalIndex(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_INDEX__INDEX_TYPE:
+ return getIndexType();
+ case DB2ModelPackage.DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP:
+ return isBusPeriodWithoutOverlap() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_INDEX__ENCODED_VECTOR:
+ return isEncodedVector() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX:
+ if (resolve) return getDB2MultidimensionalIndex();
+ return basicGetDB2MultidimensionalIndex();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_INDEX__INDEX_TYPE:
+ setIndexType((DB2IndexType)newValue);
+ return;
+ case DB2ModelPackage.DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP:
+ setBusPeriodWithoutOverlap(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_INDEX__ENCODED_VECTOR:
+ setEncodedVector(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX:
+ setDB2MultidimensionalIndex((DB2MultidimensionalIndex)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_INDEX__INDEX_TYPE:
+ setIndexType(INDEX_TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP:
+ setBusPeriodWithoutOverlap(BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_INDEX__ENCODED_VECTOR:
+ setEncodedVector(ENCODED_VECTOR_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX:
+ setDB2MultidimensionalIndex((DB2MultidimensionalIndex)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_INDEX__INDEX_TYPE:
+ return indexType != INDEX_TYPE_EDEFAULT;
+ case DB2ModelPackage.DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP:
+ return busPeriodWithoutOverlap != BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT;
+ case DB2ModelPackage.DB2_INDEX__ENCODED_VECTOR:
+ return encodedVector != ENCODED_VECTOR_EDEFAULT;
+ case DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX:
+ return db2MultidimensionalIndex != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (indexType: "); //$NON-NLS-1$
+ result.append(indexType);
+ result.append(", busPeriodWithoutOverlap: "); //$NON-NLS-1$
+ result.append(busPeriodWithoutOverlap);
+ result.append(", encodedVector: "); //$NON-NLS-1$
+ result.append(encodedVector);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2IndexImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2JarImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2JarImpl.java
new file mode 100644
index 0000000..0eb92bd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2JarImpl.java
@@ -0,0 +1,532 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2JarImpl.java,v 1.9 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Jar</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl#getFileName <em>File Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl#getOwner <em>Owner</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl#getCreatedTS <em>Created TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl#getAlteredTS <em>Altered TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl#getProcedures <em>Procedures</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JarImpl#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2JarImpl extends SQLObjectImpl implements DB2Jar {
+ /**
+ * The default value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected String fileName = FILE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPath() <em>Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPath() <em>Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected String path = PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOwner() <em>Owner</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwner()
+ * @generated
+ * @ordered
+ */
+ protected static final String OWNER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOwner() <em>Owner</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwner()
+ * @generated
+ * @ordered
+ */
+ protected String owner = OWNER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreatedTS() <em>Created TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreatedTS()
+ * @generated
+ * @ordered
+ */
+ protected static final String CREATED_TS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreatedTS() <em>Created TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCreatedTS()
+ * @generated
+ * @ordered
+ */
+ protected String createdTS = CREATED_TS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAlteredTS() <em>Altered TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlteredTS()
+ * @generated
+ * @ordered
+ */
+ protected static final String ALTERED_TS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAlteredTS() <em>Altered TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlteredTS()
+ * @generated
+ * @ordered
+ */
+ protected String alteredTS = ALTERED_TS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getProcedures() <em>Procedures</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProcedures()
+ * @generated
+ * @ordered
+ */
+ protected EList procedures;
+
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema schema;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2JarImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_JAR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFileName() {
+ return fileName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFileName(String newFileName) {
+ String oldFileName = fileName;
+ fileName = newFileName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAR__FILE_NAME, oldFileName, fileName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPath(String newPath) {
+ String oldPath = path;
+ path = newPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAR__PATH, oldPath, path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOwner() {
+ return owner;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOwner(String newOwner) {
+ String oldOwner = owner;
+ owner = newOwner;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAR__OWNER, oldOwner, owner));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCreatedTS() {
+ return createdTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCreatedTS(String newCreatedTS) {
+ String oldCreatedTS = createdTS;
+ createdTS = newCreatedTS;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAR__CREATED_TS, oldCreatedTS, createdTS));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAlteredTS() {
+ return alteredTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAlteredTS(String newAlteredTS) {
+ String oldAlteredTS = alteredTS;
+ alteredTS = newAlteredTS;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAR__ALTERED_TS, oldAlteredTS, alteredTS));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getProcedures() {
+ if (procedures == null) {
+ procedures = new EObjectWithInverseResolvingEList(DB2JavaOptions.class, this, DB2ModelPackage.DB2_JAR__PROCEDURES, DB2ModelPackage.DB2_JAVA_OPTIONS__JAR);
+ }
+ return procedures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (DB2Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_JAR__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(DB2Schema newSchema, NotificationChain msgs) {
+ DB2Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAR__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(DB2Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__JARS, DB2Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__JARS, DB2Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAR__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAR__PROCEDURES:
+ return ((InternalEList)getProcedures()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_JAR__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__JARS, DB2Schema.class, msgs);
+ return basicSetSchema((DB2Schema)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAR__PROCEDURES:
+ return ((InternalEList)getProcedures()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_JAR__SCHEMA:
+ return basicSetSchema(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAR__FILE_NAME:
+ return getFileName();
+ case DB2ModelPackage.DB2_JAR__PATH:
+ return getPath();
+ case DB2ModelPackage.DB2_JAR__OWNER:
+ return getOwner();
+ case DB2ModelPackage.DB2_JAR__CREATED_TS:
+ return getCreatedTS();
+ case DB2ModelPackage.DB2_JAR__ALTERED_TS:
+ return getAlteredTS();
+ case DB2ModelPackage.DB2_JAR__PROCEDURES:
+ return getProcedures();
+ case DB2ModelPackage.DB2_JAR__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAR__FILE_NAME:
+ setFileName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAR__PATH:
+ setPath((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAR__OWNER:
+ setOwner((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAR__CREATED_TS:
+ setCreatedTS((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAR__ALTERED_TS:
+ setAlteredTS((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAR__PROCEDURES:
+ getProcedures().clear();
+ getProcedures().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAR__SCHEMA:
+ setSchema((DB2Schema)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAR__FILE_NAME:
+ setFileName(FILE_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAR__PATH:
+ setPath(PATH_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAR__OWNER:
+ setOwner(OWNER_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAR__CREATED_TS:
+ setCreatedTS(CREATED_TS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAR__ALTERED_TS:
+ setAlteredTS(ALTERED_TS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAR__PROCEDURES:
+ getProcedures().clear();
+ return;
+ case DB2ModelPackage.DB2_JAR__SCHEMA:
+ setSchema((DB2Schema)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAR__FILE_NAME:
+ return FILE_NAME_EDEFAULT == null ? fileName != null : !FILE_NAME_EDEFAULT.equals(fileName);
+ case DB2ModelPackage.DB2_JAR__PATH:
+ return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path);
+ case DB2ModelPackage.DB2_JAR__OWNER:
+ return OWNER_EDEFAULT == null ? owner != null : !OWNER_EDEFAULT.equals(owner);
+ case DB2ModelPackage.DB2_JAR__CREATED_TS:
+ return CREATED_TS_EDEFAULT == null ? createdTS != null : !CREATED_TS_EDEFAULT.equals(createdTS);
+ case DB2ModelPackage.DB2_JAR__ALTERED_TS:
+ return ALTERED_TS_EDEFAULT == null ? alteredTS != null : !ALTERED_TS_EDEFAULT.equals(alteredTS);
+ case DB2ModelPackage.DB2_JAR__PROCEDURES:
+ return procedures != null && !procedures.isEmpty();
+ case DB2ModelPackage.DB2_JAR__SCHEMA:
+ return schema != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fileName: "); //$NON-NLS-1$
+ result.append(fileName);
+ result.append(", path: "); //$NON-NLS-1$
+ result.append(path);
+ result.append(", owner: "); //$NON-NLS-1$
+ result.append(owner);
+ result.append(", createdTS: "); //$NON-NLS-1$
+ result.append(createdTS);
+ result.append(", alteredTS: "); //$NON-NLS-1$
+ result.append(alteredTS);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2JarImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2JavaOptionsImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2JavaOptionsImpl.java
new file mode 100644
index 0000000..3e44727
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2JavaOptionsImpl.java
@@ -0,0 +1,453 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2JavaOptionsImpl.java,v 1.9 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Java Options</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl#getClassName <em>Class Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl#getMethodName <em>Method Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl#isSqlj <em>Sqlj</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl#getProcedure <em>Procedure</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2JavaOptionsImpl#getJar <em>Jar</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2JavaOptionsImpl extends SQLObjectImpl implements DB2JavaOptions {
+ /**
+ * The default value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASS_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClassName() <em>Class Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClassName()
+ * @generated
+ * @ordered
+ */
+ protected String className = CLASS_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMethodName() <em>Method Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMethodName()
+ * @generated
+ * @ordered
+ */
+ protected static final String METHOD_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMethodName() <em>Method Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMethodName()
+ * @generated
+ * @ordered
+ */
+ protected String methodName = METHOD_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSqlj() <em>Sqlj</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSqlj()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SQLJ_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSqlj() <em>Sqlj</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSqlj()
+ * @generated
+ * @ordered
+ */
+ protected boolean sqlj = SQLJ_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getJar() <em>Jar</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJar()
+ * @generated
+ * @ordered
+ */
+ protected DB2Jar jar;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2JavaOptionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_JAVA_OPTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClassName() {
+ return className;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClassName(String newClassName) {
+ String oldClassName = className;
+ className = newClassName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAVA_OPTIONS__CLASS_NAME, oldClassName, className));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMethodName() {
+ return methodName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMethodName(String newMethodName) {
+ String oldMethodName = methodName;
+ methodName = newMethodName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAVA_OPTIONS__METHOD_NAME, oldMethodName, methodName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSqlj() {
+ return sqlj;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSqlj(boolean newSqlj) {
+ boolean oldSqlj = sqlj;
+ sqlj = newSqlj;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAVA_OPTIONS__SQLJ, oldSqlj, sqlj));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Procedure getProcedure() {
+ if (eContainerFeatureID() != DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE) return null;
+ return (DB2Procedure)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetProcedure(DB2Procedure newProcedure, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newProcedure, DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProcedure(DB2Procedure newProcedure) {
+ if (newProcedure != eInternalContainer() || (eContainerFeatureID() != DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE && newProcedure != null)) {
+ if (EcoreUtil.isAncestor(this, newProcedure))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newProcedure != null)
+ msgs = ((InternalEObject)newProcedure).eInverseAdd(this, DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS, DB2Procedure.class, msgs);
+ msgs = basicSetProcedure(newProcedure, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE, newProcedure, newProcedure));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Jar getJar() {
+ if (jar != null && jar.eIsProxy()) {
+ InternalEObject oldJar = (InternalEObject)jar;
+ jar = (DB2Jar)eResolveProxy(oldJar);
+ if (jar != oldJar) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_JAVA_OPTIONS__JAR, oldJar, jar));
+ }
+ }
+ return jar;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Jar basicGetJar() {
+ return jar;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetJar(DB2Jar newJar, NotificationChain msgs) {
+ DB2Jar oldJar = jar;
+ jar = newJar;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAVA_OPTIONS__JAR, oldJar, newJar);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setJar(DB2Jar newJar) {
+ if (newJar != jar) {
+ NotificationChain msgs = null;
+ if (jar != null)
+ msgs = ((InternalEObject)jar).eInverseRemove(this, DB2ModelPackage.DB2_JAR__PROCEDURES, DB2Jar.class, msgs);
+ if (newJar != null)
+ msgs = ((InternalEObject)newJar).eInverseAdd(this, DB2ModelPackage.DB2_JAR__PROCEDURES, DB2Jar.class, msgs);
+ msgs = basicSetJar(newJar, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_JAVA_OPTIONS__JAR, newJar, newJar));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetProcedure((DB2Procedure)otherEnd, msgs);
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__JAR:
+ if (jar != null)
+ msgs = ((InternalEObject)jar).eInverseRemove(this, DB2ModelPackage.DB2_JAR__PROCEDURES, DB2Jar.class, msgs);
+ return basicSetJar((DB2Jar)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE:
+ return basicSetProcedure(null, msgs);
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__JAR:
+ return basicSetJar(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE:
+ return eInternalContainer().eInverseRemove(this, DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS, DB2Procedure.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__CLASS_NAME:
+ return getClassName();
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__METHOD_NAME:
+ return getMethodName();
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__SQLJ:
+ return isSqlj() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE:
+ return getProcedure();
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__JAR:
+ if (resolve) return getJar();
+ return basicGetJar();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__CLASS_NAME:
+ setClassName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__METHOD_NAME:
+ setMethodName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__SQLJ:
+ setSqlj(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE:
+ setProcedure((DB2Procedure)newValue);
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__JAR:
+ setJar((DB2Jar)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__CLASS_NAME:
+ setClassName(CLASS_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__METHOD_NAME:
+ setMethodName(METHOD_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__SQLJ:
+ setSqlj(SQLJ_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE:
+ setProcedure((DB2Procedure)null);
+ return;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__JAR:
+ setJar((DB2Jar)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__CLASS_NAME:
+ return CLASS_NAME_EDEFAULT == null ? className != null : !CLASS_NAME_EDEFAULT.equals(className);
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__METHOD_NAME:
+ return METHOD_NAME_EDEFAULT == null ? methodName != null : !METHOD_NAME_EDEFAULT.equals(methodName);
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__SQLJ:
+ return sqlj != SQLJ_EDEFAULT;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE:
+ return getProcedure() != null;
+ case DB2ModelPackage.DB2_JAVA_OPTIONS__JAR:
+ return jar != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (className: "); //$NON-NLS-1$
+ result.append(className);
+ result.append(", methodName: "); //$NON-NLS-1$
+ result.append(methodName);
+ result.append(", sqlj: "); //$NON-NLS-1$
+ result.append(sqlj);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2JavaOptionsImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MaskImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MaskImpl.java
new file mode 100644
index 0000000..b28ebc2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MaskImpl.java
@@ -0,0 +1,636 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Mask</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl#getCorrelationName <em>Correlation Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl#getCaseExpression <em>Case Expression</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl#isEnable <em>Enable</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl#getSubjectTable <em>Subject Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl#getSubjectMQT <em>Subject MQT</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaskImpl#getSubjectColumn <em>Subject Column</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2MaskImpl extends SQLObjectImpl implements DB2Mask {
+ /**
+ * The default value of the '{@link #getCorrelationName() <em>Correlation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCorrelationName()
+ * @generated
+ * @ordered
+ */
+ protected static final String CORRELATION_NAME_EDEFAULT = null; //$NON-NLS-1$
+
+ /**
+ * The cached value of the '{@link #getCorrelationName() <em>Correlation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCorrelationName()
+ * @generated
+ * @ordered
+ */
+ protected String correlationName = CORRELATION_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCaseExpression() <em>Case Expression</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCaseExpression()
+ * @generated
+ * @ordered
+ */
+ protected QueryExpression caseExpression;
+
+ /**
+ * The default value of the '{@link #isEnable() <em>Enable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEnable()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ENABLE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isEnable() <em>Enable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEnable()
+ * @generated
+ * @ordered
+ */
+ protected boolean enable = ENABLE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema schema;
+
+ /**
+ * The cached value of the '{@link #getSubjectTable() <em>Subject Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubjectTable()
+ * @generated
+ * @ordered
+ */
+ protected DB2Table subjectTable;
+
+ /**
+ * The cached value of the '{@link #getSubjectMQT() <em>Subject MQT</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubjectMQT()
+ * @generated
+ * @ordered
+ */
+ protected DB2MaterializedQueryTable subjectMQT;
+
+ /**
+ * The cached value of the '{@link #getSubjectColumn() <em>Subject Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubjectColumn()
+ * @generated
+ * @ordered
+ */
+ protected DB2Column subjectColumn;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2MaskImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_MASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCorrelationName() {
+ return correlationName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCorrelationName(String newCorrelationName) {
+ String oldCorrelationName = correlationName;
+ correlationName = newCorrelationName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__CORRELATION_NAME, oldCorrelationName, correlationName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QueryExpression getCaseExpression() {
+ return caseExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCaseExpression(QueryExpression newCaseExpression, NotificationChain msgs) {
+ QueryExpression oldCaseExpression = caseExpression;
+ caseExpression = newCaseExpression;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__CASE_EXPRESSION, oldCaseExpression, newCaseExpression);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCaseExpression(QueryExpression newCaseExpression) {
+ if (newCaseExpression != caseExpression) {
+ NotificationChain msgs = null;
+ if (caseExpression != null)
+ msgs = ((InternalEObject)caseExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_MASK__CASE_EXPRESSION, null, msgs);
+ if (newCaseExpression != null)
+ msgs = ((InternalEObject)newCaseExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_MASK__CASE_EXPRESSION, null, msgs);
+ msgs = basicSetCaseExpression(newCaseExpression, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__CASE_EXPRESSION, newCaseExpression, newCaseExpression));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isEnable() {
+ return enable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEnable(boolean newEnable) {
+ boolean oldEnable = enable;
+ enable = newEnable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__ENABLE, oldEnable, enable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (DB2Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_MASK__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(DB2Schema newSchema, NotificationChain msgs) {
+ DB2Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(DB2Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__MASKS, DB2Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__MASKS, DB2Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table getSubjectTable() {
+ if (subjectTable != null && subjectTable.eIsProxy()) {
+ InternalEObject oldSubjectTable = (InternalEObject)subjectTable;
+ subjectTable = (DB2Table)eResolveProxy(oldSubjectTable);
+ if (subjectTable != oldSubjectTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_MASK__SUBJECT_TABLE, oldSubjectTable, subjectTable));
+ }
+ }
+ return subjectTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table basicGetSubjectTable() {
+ return subjectTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSubjectTable(DB2Table newSubjectTable, NotificationChain msgs) {
+ DB2Table oldSubjectTable = subjectTable;
+ subjectTable = newSubjectTable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__SUBJECT_TABLE, oldSubjectTable, newSubjectTable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubjectTable(DB2Table newSubjectTable) {
+ if (newSubjectTable != subjectTable) {
+ NotificationChain msgs = null;
+ if (subjectTable != null)
+ msgs = ((InternalEObject)subjectTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__MASKS, DB2Table.class, msgs);
+ if (newSubjectTable != null)
+ msgs = ((InternalEObject)newSubjectTable).eInverseAdd(this, DB2ModelPackage.DB2_TABLE__MASKS, DB2Table.class, msgs);
+ msgs = basicSetSubjectTable(newSubjectTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__SUBJECT_TABLE, newSubjectTable, newSubjectTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2MaterializedQueryTable getSubjectMQT() {
+ if (subjectMQT != null && subjectMQT.eIsProxy()) {
+ InternalEObject oldSubjectMQT = (InternalEObject)subjectMQT;
+ subjectMQT = (DB2MaterializedQueryTable)eResolveProxy(oldSubjectMQT);
+ if (subjectMQT != oldSubjectMQT) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_MASK__SUBJECT_MQT, oldSubjectMQT, subjectMQT));
+ }
+ }
+ return subjectMQT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2MaterializedQueryTable basicGetSubjectMQT() {
+ return subjectMQT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSubjectMQT(DB2MaterializedQueryTable newSubjectMQT, NotificationChain msgs) {
+ DB2MaterializedQueryTable oldSubjectMQT = subjectMQT;
+ subjectMQT = newSubjectMQT;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__SUBJECT_MQT, oldSubjectMQT, newSubjectMQT);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubjectMQT(DB2MaterializedQueryTable newSubjectMQT) {
+ if (newSubjectMQT != subjectMQT) {
+ NotificationChain msgs = null;
+ if (subjectMQT != null)
+ msgs = ((InternalEObject)subjectMQT).eInverseRemove(this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS, DB2MaterializedQueryTable.class, msgs);
+ if (newSubjectMQT != null)
+ msgs = ((InternalEObject)newSubjectMQT).eInverseAdd(this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS, DB2MaterializedQueryTable.class, msgs);
+ msgs = basicSetSubjectMQT(newSubjectMQT, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__SUBJECT_MQT, newSubjectMQT, newSubjectMQT));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Column getSubjectColumn() {
+ if (subjectColumn != null && subjectColumn.eIsProxy()) {
+ InternalEObject oldSubjectColumn = (InternalEObject)subjectColumn;
+ subjectColumn = (DB2Column)eResolveProxy(oldSubjectColumn);
+ if (subjectColumn != oldSubjectColumn) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_MASK__SUBJECT_COLUMN, oldSubjectColumn, subjectColumn));
+ }
+ }
+ return subjectColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Column basicGetSubjectColumn() {
+ return subjectColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubjectColumn(DB2Column newSubjectColumn) {
+ DB2Column oldSubjectColumn = subjectColumn;
+ subjectColumn = newSubjectColumn;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MASK__SUBJECT_COLUMN, oldSubjectColumn, subjectColumn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MASK__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__MASKS, DB2Schema.class, msgs);
+ return basicSetSchema((DB2Schema)otherEnd, msgs);
+ case DB2ModelPackage.DB2_MASK__SUBJECT_TABLE:
+ if (subjectTable != null)
+ msgs = ((InternalEObject)subjectTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__MASKS, DB2Table.class, msgs);
+ return basicSetSubjectTable((DB2Table)otherEnd, msgs);
+ case DB2ModelPackage.DB2_MASK__SUBJECT_MQT:
+ if (subjectMQT != null)
+ msgs = ((InternalEObject)subjectMQT).eInverseRemove(this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS, DB2MaterializedQueryTable.class, msgs);
+ return basicSetSubjectMQT((DB2MaterializedQueryTable)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MASK__CASE_EXPRESSION:
+ return basicSetCaseExpression(null, msgs);
+ case DB2ModelPackage.DB2_MASK__SCHEMA:
+ return basicSetSchema(null, msgs);
+ case DB2ModelPackage.DB2_MASK__SUBJECT_TABLE:
+ return basicSetSubjectTable(null, msgs);
+ case DB2ModelPackage.DB2_MASK__SUBJECT_MQT:
+ return basicSetSubjectMQT(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MASK__CORRELATION_NAME:
+ return getCorrelationName();
+ case DB2ModelPackage.DB2_MASK__CASE_EXPRESSION:
+ return getCaseExpression();
+ case DB2ModelPackage.DB2_MASK__ENABLE:
+ return isEnable() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_MASK__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ case DB2ModelPackage.DB2_MASK__SUBJECT_TABLE:
+ if (resolve) return getSubjectTable();
+ return basicGetSubjectTable();
+ case DB2ModelPackage.DB2_MASK__SUBJECT_MQT:
+ if (resolve) return getSubjectMQT();
+ return basicGetSubjectMQT();
+ case DB2ModelPackage.DB2_MASK__SUBJECT_COLUMN:
+ if (resolve) return getSubjectColumn();
+ return basicGetSubjectColumn();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MASK__CORRELATION_NAME:
+ setCorrelationName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_MASK__CASE_EXPRESSION:
+ setCaseExpression((QueryExpression)newValue);
+ return;
+ case DB2ModelPackage.DB2_MASK__ENABLE:
+ setEnable(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_MASK__SCHEMA:
+ setSchema((DB2Schema)newValue);
+ return;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_TABLE:
+ setSubjectTable((DB2Table)newValue);
+ return;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_MQT:
+ setSubjectMQT((DB2MaterializedQueryTable)newValue);
+ return;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_COLUMN:
+ setSubjectColumn((DB2Column)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MASK__CORRELATION_NAME:
+ setCorrelationName(CORRELATION_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MASK__CASE_EXPRESSION:
+ setCaseExpression((QueryExpression)null);
+ return;
+ case DB2ModelPackage.DB2_MASK__ENABLE:
+ setEnable(ENABLE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MASK__SCHEMA:
+ setSchema((DB2Schema)null);
+ return;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_TABLE:
+ setSubjectTable((DB2Table)null);
+ return;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_MQT:
+ setSubjectMQT((DB2MaterializedQueryTable)null);
+ return;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_COLUMN:
+ setSubjectColumn((DB2Column)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MASK__CORRELATION_NAME:
+ return CORRELATION_NAME_EDEFAULT == null ? correlationName != null : !CORRELATION_NAME_EDEFAULT.equals(correlationName);
+ case DB2ModelPackage.DB2_MASK__CASE_EXPRESSION:
+ return caseExpression != null;
+ case DB2ModelPackage.DB2_MASK__ENABLE:
+ return enable != ENABLE_EDEFAULT;
+ case DB2ModelPackage.DB2_MASK__SCHEMA:
+ return schema != null;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_TABLE:
+ return subjectTable != null;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_MQT:
+ return subjectMQT != null;
+ case DB2ModelPackage.DB2_MASK__SUBJECT_COLUMN:
+ return subjectColumn != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (correlationName: "); //$NON-NLS-1$
+ result.append(correlationName);
+ result.append(", enable: "); //$NON-NLS-1$
+ result.append(enable);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2MaskImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MaterializedQueryTableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MaterializedQueryTableImpl.java
new file mode 100644
index 0000000..df44c6f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MaterializedQueryTableImpl.java
@@ -0,0 +1,376 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask;
+import org.eclipse.datatools.modelbase.sql.tables.impl.DerivedTableImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Materialized Query Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl#getRefresh <em>Refresh</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl#isOptimizeQuery <em>Optimize Query</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl#getMaintainedBy <em>Maintained By</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl#isActivateRowAccessControl <em>Activate Row Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl#isActivateColumnAccessControl <em>Activate Column Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl#getMasks <em>Masks</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MaterializedQueryTableImpl#getPermissions <em>Permissions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DB2MaterializedQueryTableImpl extends DerivedTableImpl implements DB2MaterializedQueryTable {
+ /**
+ * The default value of the '{@link #isOptimizeQuery() <em>Optimize Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOptimizeQuery()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean OPTIMIZE_QUERY_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isOptimizeQuery() <em>Optimize Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOptimizeQuery()
+ * @generated
+ * @ordered
+ */
+ protected boolean optimizeQuery = OPTIMIZE_QUERY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isActivateRowAccessControl() <em>Activate Row Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateRowAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isActivateRowAccessControl() <em>Activate Row Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateRowAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected boolean activateRowAccessControl = ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isActivateColumnAccessControl() <em>Activate Column Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateColumnAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isActivateColumnAccessControl() <em>Activate Column Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateColumnAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected boolean activateColumnAccessControl = ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getMasks() <em>Masks</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMasks()
+ * @generated
+ * @ordered
+ */
+ protected EList masks;
+
+ /**
+ * The cached value of the '{@link #getPermissions() <em>Permissions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPermissions()
+ * @generated
+ * @ordered
+ */
+ protected EList permissions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2MaterializedQueryTableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_MATERIALIZED_QUERY_TABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOptimizeQuery() {
+ return optimizeQuery;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOptimizeQuery(boolean newOptimizeQuery) {
+ boolean oldOptimizeQuery = optimizeQuery;
+ optimizeQuery = newOptimizeQuery;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY, oldOptimizeQuery, optimizeQuery));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isActivateRowAccessControl() {
+ return activateRowAccessControl;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActivateRowAccessControl(boolean newActivateRowAccessControl) {
+ boolean oldActivateRowAccessControl = activateRowAccessControl;
+ activateRowAccessControl = newActivateRowAccessControl;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL, oldActivateRowAccessControl, activateRowAccessControl));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isActivateColumnAccessControl() {
+ return activateColumnAccessControl;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActivateColumnAccessControl(boolean newActivateColumnAccessControl) {
+ boolean oldActivateColumnAccessControl = activateColumnAccessControl;
+ activateColumnAccessControl = newActivateColumnAccessControl;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL, oldActivateColumnAccessControl, activateColumnAccessControl));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getMasks() {
+ if (masks == null) {
+ masks = new EObjectWithInverseResolvingEList(DB2Mask.class, this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS, DB2ModelPackage.DB2_MASK__SUBJECT_MQT);
+ }
+ return masks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPermissions() {
+ if (permissions == null) {
+ permissions = new EObjectWithInverseResolvingEList(DB2Permission.class, this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS, DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT);
+ }
+ return permissions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS:
+ return ((InternalEList)getMasks()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS:
+ return ((InternalEList)getPermissions()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS:
+ return ((InternalEList)getMasks()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS:
+ return ((InternalEList)getPermissions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY:
+ return isOptimizeQuery() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ return isActivateRowAccessControl() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ return isActivateColumnAccessControl() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS:
+ return getMasks();
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS:
+ return getPermissions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY:
+ setOptimizeQuery(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ setActivateRowAccessControl(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ setActivateColumnAccessControl(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS:
+ getMasks().clear();
+ getMasks().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS:
+ getPermissions().clear();
+ getPermissions().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY:
+ setOptimizeQuery(OPTIMIZE_QUERY_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ setActivateRowAccessControl(ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ setActivateColumnAccessControl(ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS:
+ getMasks().clear();
+ return;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS:
+ getPermissions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY:
+ return optimizeQuery != OPTIMIZE_QUERY_EDEFAULT;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ return activateRowAccessControl != ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ return activateColumnAccessControl != ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT;
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__MASKS:
+ return masks != null && !masks.isEmpty();
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS:
+ return permissions != null && !permissions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(", optimizeQuery: "); //$NON-NLS-1$
+ result.append(optimizeQuery);
+ result.append(", activateRowAccessControl: "); //$NON-NLS-1$
+ result.append(activateRowAccessControl);
+ result.append(", activateColumnAccessControl: "); //$NON-NLS-1$
+ result.append(activateColumnAccessControl);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2MaterializedQueryTableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MemberImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MemberImpl.java
new file mode 100644
index 0000000..1b80d5e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MemberImpl.java
@@ -0,0 +1,376 @@
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Member;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Member</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl#getHomeHost <em>Home Host</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl#getCurrentHost <em>Current Host</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl#getState <em>State</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MemberImpl#getCluster <em>Cluster</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2MemberImpl extends SQLObjectImpl implements DB2Member {
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final int ID_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected int id = ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHomeHost() <em>Home Host</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHomeHost()
+ * @generated
+ * @ordered
+ */
+ protected static final String HOME_HOST_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getHomeHost() <em>Home Host</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHomeHost()
+ * @generated
+ * @ordered
+ */
+ protected String homeHost = HOME_HOST_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCurrentHost() <em>Current Host</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCurrentHost()
+ * @generated
+ * @ordered
+ */
+ protected static final String CURRENT_HOST_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCurrentHost() <em>Current Host</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCurrentHost()
+ * @generated
+ * @ordered
+ */
+ protected String currentHost = CURRENT_HOST_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCluster() <em>Cluster</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCluster()
+ * @generated
+ * @ordered
+ */
+ protected DB2Cluster cluster;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2MemberImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_MEMBER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(int newId) {
+ int oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MEMBER__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getHomeHost() {
+ return homeHost;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHomeHost(String newHomeHost) {
+ String oldHomeHost = homeHost;
+ homeHost = newHomeHost;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MEMBER__HOME_HOST, oldHomeHost, homeHost));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCurrentHost() {
+ return currentHost;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentHost(String newCurrentHost) {
+ String oldCurrentHost = currentHost;
+ currentHost = newCurrentHost;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MEMBER__CURRENT_HOST, oldCurrentHost, currentHost));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Cluster getCluster() {
+ if (cluster != null && cluster.eIsProxy()) {
+ InternalEObject oldCluster = (InternalEObject)cluster;
+ cluster = (DB2Cluster)eResolveProxy(oldCluster);
+ if (cluster != oldCluster) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_MEMBER__CLUSTER, oldCluster, cluster));
+ }
+ }
+ return cluster;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Cluster basicGetCluster() {
+ return cluster;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetCluster(DB2Cluster newCluster, NotificationChain msgs) {
+ DB2Cluster oldCluster = cluster;
+ cluster = newCluster;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MEMBER__CLUSTER, oldCluster, newCluster);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCluster(DB2Cluster newCluster) {
+ if (newCluster != cluster) {
+ NotificationChain msgs = null;
+ if (cluster != null)
+ msgs = ((InternalEObject)cluster).eInverseRemove(this, DB2ModelPackage.DB2_CLUSTER__MEMBERS, DB2Cluster.class, msgs);
+ if (newCluster != null)
+ msgs = ((InternalEObject)newCluster).eInverseAdd(this, DB2ModelPackage.DB2_CLUSTER__MEMBERS, DB2Cluster.class, msgs);
+ msgs = basicSetCluster(newCluster, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_MEMBER__CLUSTER, newCluster, newCluster));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MEMBER__CLUSTER:
+ if (cluster != null)
+ msgs = ((InternalEObject)cluster).eInverseRemove(this, DB2ModelPackage.DB2_CLUSTER__MEMBERS, DB2Cluster.class, msgs);
+ return basicSetCluster((DB2Cluster)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MEMBER__CLUSTER:
+ return basicSetCluster(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MEMBER__ID:
+ return new Integer(getId());
+ case DB2ModelPackage.DB2_MEMBER__HOME_HOST:
+ return getHomeHost();
+ case DB2ModelPackage.DB2_MEMBER__CURRENT_HOST:
+ return getCurrentHost();
+ case DB2ModelPackage.DB2_MEMBER__CLUSTER:
+ if (resolve) return getCluster();
+ return basicGetCluster();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MEMBER__ID:
+ setId(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_MEMBER__HOME_HOST:
+ setHomeHost((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_MEMBER__CURRENT_HOST:
+ setCurrentHost((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_MEMBER__CLUSTER:
+ setCluster((DB2Cluster)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MEMBER__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MEMBER__HOME_HOST:
+ setHomeHost(HOME_HOST_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MEMBER__CURRENT_HOST:
+ setCurrentHost(CURRENT_HOST_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_MEMBER__CLUSTER:
+ setCluster((DB2Cluster)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MEMBER__ID:
+ return id != ID_EDEFAULT;
+ case DB2ModelPackage.DB2_MEMBER__HOME_HOST:
+ return HOME_HOST_EDEFAULT == null ? homeHost != null : !HOME_HOST_EDEFAULT.equals(homeHost);
+ case DB2ModelPackage.DB2_MEMBER__CURRENT_HOST:
+ return CURRENT_HOST_EDEFAULT == null ? currentHost != null : !CURRENT_HOST_EDEFAULT.equals(currentHost);
+ case DB2ModelPackage.DB2_MEMBER__CLUSTER:
+ return cluster != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: "); //$NON-NLS-1$
+ result.append(id);
+ result.append(", homeHost: "); //$NON-NLS-1$
+ result.append(homeHost);
+ result.append(", currentHost: "); //$NON-NLS-1$
+ result.append(currentHost);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2MemberImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MethodImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MethodImpl.java
new file mode 100644
index 0000000..2075cad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MethodImpl.java
@@ -0,0 +1,1874 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.impl.MethodImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Method;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension;
+import org.eclipse.datatools.enablement.ibm.db2.model.OriginType;
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Method</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getFenced <em>Fenced</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getThreadsafe <em>Threadsafe</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isDbInfo <em>Db Info</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isImplicitSchema <em>Implicit Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getParmCcsid <em>Parm Ccsid</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getSpecialRegister <em>Special Register</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getChangeState <em>Change State</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getDebugId <em>Debug Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getProgramType <em>Program Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getOrigSchemaName <em>Orig Schema Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getOrigParmSig <em>Orig Parm Sig</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getExtendedOptions <em>Extended Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getRoutineExtensions <em>Routine Extensions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isFinalCall <em>Final Call</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isScratchPad <em>Scratch Pad</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getScratchPadLength <em>Scratch Pad Length</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getFunctionType <em>Function Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getPredicate <em>Predicate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isExternalAction <em>External Action</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getCardinality <em>Cardinality</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isAllowParallel <em>Allow Parallel</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getReturnClause <em>Return Clause</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getOrigin <em>Origin</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isInheritLockRequest <em>Inherit Lock Request</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getDialect <em>Dialect</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isInline <em>Inline</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isSecured <em>Secured</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isReturnsSelfAsResult <em>Returns Self As Result</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MethodImpl#isImplemented <em>Implemented</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2MethodImpl extends MethodImpl implements DB2Method {
+ /**
+ * The default value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected static final String FENCED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected String fenced = FENCED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected static final String THREADSAFE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected String threadsafe = THREADSAFE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DB_INFO_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected boolean dbInfo = DB_INFO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IMPLICIT_SCHEMA_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected boolean implicitSchema = IMPLICIT_SCHEMA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FEDERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected boolean federated = FEDERATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected static final String PARM_CCSID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected String parmCcsid = PARM_CCSID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIAL_REGISTER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected String specialRegister = SPECIAL_REGISTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected static final int CHANGE_STATE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected int changeState = CHANGE_STATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEBUG_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected String debugId = DEBUG_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROGRAM_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected String programType = PROGRAM_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_SCHEMA_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected String origSchemaName = ORIG_SCHEMA_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_PARM_SIG_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected String origParmSig = ORIG_PARM_SIG_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExtendedOptions() <em>Extended Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtendedOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList extendedOptions;
+
+ /**
+ * The cached value of the '{@link #getRoutineExtensions() <em>Routine Extensions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRoutineExtensions()
+ * @generated
+ * @ordered
+ */
+ protected EList routineExtensions;
+
+ /**
+ * The default value of the '{@link #isFinalCall() <em>Final Call</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFinalCall()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FINAL_CALL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFinalCall() <em>Final Call</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFinalCall()
+ * @generated
+ * @ordered
+ */
+ protected boolean finalCall = FINAL_CALL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isScratchPad() <em>Scratch Pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isScratchPad()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SCRATCH_PAD_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isScratchPad() <em>Scratch Pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isScratchPad()
+ * @generated
+ * @ordered
+ */
+ protected boolean scratchPad = SCRATCH_PAD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getScratchPadLength() <em>Scratch Pad Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScratchPadLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int SCRATCH_PAD_LENGTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getScratchPadLength() <em>Scratch Pad Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScratchPadLength()
+ * @generated
+ * @ordered
+ */
+ protected int scratchPadLength = SCRATCH_PAD_LENGTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFunctionType() <em>Function Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunctionType()
+ * @generated
+ * @ordered
+ */
+ protected static final String FUNCTION_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFunctionType() <em>Function Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunctionType()
+ * @generated
+ * @ordered
+ */
+ protected String functionType = FUNCTION_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPredicate() <em>Predicate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicate()
+ * @generated
+ * @ordered
+ */
+ protected static final String PREDICATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicate()
+ * @generated
+ * @ordered
+ */
+ protected String predicate = PREDICATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isExternalAction() <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternalAction()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXTERNAL_ACTION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isExternalAction() <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternalAction()
+ * @generated
+ * @ordered
+ */
+ protected boolean externalAction = EXTERNAL_ACTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCardinality() <em>Cardinality</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCardinality()
+ * @generated
+ * @ordered
+ */
+ protected static final int CARDINALITY_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getCardinality() <em>Cardinality</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCardinality()
+ * @generated
+ * @ordered
+ */
+ protected int cardinality = CARDINALITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAllowParallel() <em>Allow Parallel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllowParallel()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ALLOW_PARALLEL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAllowParallel() <em>Allow Parallel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllowParallel()
+ * @generated
+ * @ordered
+ */
+ protected boolean allowParallel = ALLOW_PARALLEL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getReturnClause() <em>Return Clause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReturnClause()
+ * @generated
+ * @ordered
+ */
+ protected static final String RETURN_CLAUSE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getReturnClause() <em>Return Clause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReturnClause()
+ * @generated
+ * @ordered
+ */
+ protected String returnClause = RETURN_CLAUSE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigin() <em>Origin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigin()
+ * @generated
+ * @ordered
+ */
+ protected static final OriginType ORIGIN_EDEFAULT = OriginType.NONE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getOrigin() <em>Origin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigin()
+ * @generated
+ * @ordered
+ */
+ protected OriginType origin = ORIGIN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInheritLockRequest() <em>Inherit Lock Request</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritLockRequest()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INHERIT_LOCK_REQUEST_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInheritLockRequest() <em>Inherit Lock Request</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritLockRequest()
+ * @generated
+ * @ordered
+ */
+ protected boolean inheritLockRequest = INHERIT_LOCK_REQUEST_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected static final SourceDialect DIALECT_EDEFAULT = SourceDialect.UNKNOWN_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected SourceDialect dialect = DIALECT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInline() <em>Inline</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInline()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INLINE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInline() <em>Inline</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInline()
+ * @generated
+ * @ordered
+ */
+ protected boolean inline = INLINE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSecured() <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSecured()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SECURED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSecured() <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSecured()
+ * @generated
+ * @ordered
+ */
+ protected boolean secured = SECURED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isReturnsSelfAsResult() <em>Returns Self As Result</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturnsSelfAsResult()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RETURNS_SELF_AS_RESULT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReturnsSelfAsResult() <em>Returns Self As Result</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturnsSelfAsResult()
+ * @generated
+ * @ordered
+ */
+ protected boolean returnsSelfAsResult = RETURNS_SELF_AS_RESULT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isImplemented() <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplemented()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IMPLEMENTED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isImplemented() <em>Implemented</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplemented()
+ * @generated
+ * @ordered
+ */
+ protected boolean implemented = IMPLEMENTED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2MethodImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_METHOD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFenced() {
+ return fenced;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFenced(String newFenced) {
+ String oldFenced = fenced;
+ fenced = newFenced;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__FENCED, oldFenced, fenced));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getThreadsafe() {
+ return threadsafe;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setThreadsafe(String newThreadsafe) {
+ String oldThreadsafe = threadsafe;
+ threadsafe = newThreadsafe;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__THREADSAFE, oldThreadsafe, threadsafe));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDbInfo() {
+ return dbInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbInfo(boolean newDbInfo) {
+ boolean oldDbInfo = dbInfo;
+ dbInfo = newDbInfo;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__DB_INFO, oldDbInfo, dbInfo));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isImplicitSchema() {
+ return implicitSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplicitSchema(boolean newImplicitSchema) {
+ boolean oldImplicitSchema = implicitSchema;
+ implicitSchema = newImplicitSchema;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__IMPLICIT_SCHEMA, oldImplicitSchema, implicitSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFederated() {
+ return federated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFederated(boolean newFederated) {
+ boolean oldFederated = federated;
+ federated = newFederated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__FEDERATED, oldFederated, federated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getParmCcsid() {
+ return parmCcsid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParmCcsid(String newParmCcsid) {
+ String oldParmCcsid = parmCcsid;
+ parmCcsid = newParmCcsid;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__PARM_CCSID, oldParmCcsid, parmCcsid));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSpecialRegister() {
+ return specialRegister;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpecialRegister(String newSpecialRegister) {
+ String oldSpecialRegister = specialRegister;
+ specialRegister = newSpecialRegister;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__SPECIAL_REGISTER, oldSpecialRegister, specialRegister));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getChangeState() {
+ return changeState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChangeState(int newChangeState) {
+ int oldChangeState = changeState;
+ changeState = newChangeState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__CHANGE_STATE, oldChangeState, changeState));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDebugId() {
+ return debugId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDebugId(String newDebugId) {
+ String oldDebugId = debugId;
+ debugId = newDebugId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__DEBUG_ID, oldDebugId, debugId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProgramType() {
+ return programType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProgramType(String newProgramType) {
+ String oldProgramType = programType;
+ programType = newProgramType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__PROGRAM_TYPE, oldProgramType, programType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigSchemaName() {
+ return origSchemaName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigSchemaName(String newOrigSchemaName) {
+ String oldOrigSchemaName = origSchemaName;
+ origSchemaName = newOrigSchemaName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__ORIG_SCHEMA_NAME, oldOrigSchemaName, origSchemaName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigParmSig() {
+ return origParmSig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigParmSig(String newOrigParmSig) {
+ String oldOrigParmSig = origParmSig;
+ origParmSig = newOrigParmSig;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__ORIG_PARM_SIG, oldOrigParmSig, origParmSig));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SourceDialect getDialect() {
+ return dialect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDialect(SourceDialect newDialect) {
+ SourceDialect oldDialect = dialect;
+ dialect = newDialect == null ? DIALECT_EDEFAULT : newDialect;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__DIALECT, oldDialect, dialect));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInline() {
+ return inline;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInline(boolean newInline) {
+ boolean oldInline = inline;
+ inline = newInline;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__INLINE, oldInline, inline));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__VERSION, oldVersion, version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSecured() {
+ return secured;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSecured(boolean newSecured) {
+ boolean oldSecured = secured;
+ secured = newSecured;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__SECURED, oldSecured, secured));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getExtendedOptions() {
+ if (extendedOptions == null) {
+ extendedOptions = new EObjectContainmentEList(DB2ExtendedOptions.class, this, DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS);
+ }
+ return extendedOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRoutineExtensions() {
+ if (routineExtensions == null) {
+ routineExtensions = new EObjectResolvingEList(DB2RoutineExtension.class, this, DB2ModelPackage.DB2_METHOD__ROUTINE_EXTENSIONS);
+ }
+ return routineExtensions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFinalCall() {
+ return finalCall;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFinalCall(boolean newFinalCall) {
+ boolean oldFinalCall = finalCall;
+ finalCall = newFinalCall;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__FINAL_CALL, oldFinalCall, finalCall));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isScratchPad() {
+ return scratchPad;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setScratchPad(boolean newScratchPad) {
+ boolean oldScratchPad = scratchPad;
+ scratchPad = newScratchPad;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__SCRATCH_PAD, oldScratchPad, scratchPad));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getScratchPadLength() {
+ return scratchPadLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setScratchPadLength(int newScratchPadLength) {
+ int oldScratchPadLength = scratchPadLength;
+ scratchPadLength = newScratchPadLength;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__SCRATCH_PAD_LENGTH, oldScratchPadLength, scratchPadLength));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFunctionType() {
+ return functionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFunctionType(String newFunctionType) {
+ String oldFunctionType = functionType;
+ functionType = newFunctionType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__FUNCTION_TYPE, oldFunctionType, functionType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPredicate() {
+ return predicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPredicate(String newPredicate) {
+ String oldPredicate = predicate;
+ predicate = newPredicate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__PREDICATE, oldPredicate, predicate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isExternalAction() {
+ return externalAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExternalAction(boolean newExternalAction) {
+ boolean oldExternalAction = externalAction;
+ externalAction = newExternalAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__EXTERNAL_ACTION, oldExternalAction, externalAction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getCardinality() {
+ return cardinality;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCardinality(int newCardinality) {
+ int oldCardinality = cardinality;
+ cardinality = newCardinality;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__CARDINALITY, oldCardinality, cardinality));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAllowParallel() {
+ return allowParallel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAllowParallel(boolean newAllowParallel) {
+ boolean oldAllowParallel = allowParallel;
+ allowParallel = newAllowParallel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__ALLOW_PARALLEL, oldAllowParallel, allowParallel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getReturnClause() {
+ return returnClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReturnClause(String newReturnClause) {
+ String oldReturnClause = returnClause;
+ returnClause = newReturnClause;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__RETURN_CLAUSE, oldReturnClause, returnClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OriginType getOrigin() {
+ return origin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigin(OriginType newOrigin) {
+ OriginType oldOrigin = origin;
+ origin = newOrigin == null ? ORIGIN_EDEFAULT : newOrigin;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__ORIGIN, oldOrigin, origin));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInheritLockRequest() {
+ return inheritLockRequest;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInheritLockRequest(boolean newInheritLockRequest) {
+ boolean oldInheritLockRequest = inheritLockRequest;
+ inheritLockRequest = newInheritLockRequest;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__INHERIT_LOCK_REQUEST, oldInheritLockRequest, inheritLockRequest));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReturnsSelfAsResult() {
+ return returnsSelfAsResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReturnsSelfAsResult(boolean newReturnsSelfAsResult) {
+ boolean oldReturnsSelfAsResult = returnsSelfAsResult;
+ returnsSelfAsResult = newReturnsSelfAsResult;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__RETURNS_SELF_AS_RESULT, oldReturnsSelfAsResult, returnsSelfAsResult));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isImplemented() {
+ return implemented;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplemented(boolean newImplemented) {
+ boolean oldImplemented = implemented;
+ implemented = newImplemented;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_METHOD__IMPLEMENTED, oldImplemented, implemented));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS:
+ return ((InternalEList)getExtendedOptions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_METHOD__FENCED:
+ return getFenced();
+ case DB2ModelPackage.DB2_METHOD__THREADSAFE:
+ return getThreadsafe();
+ case DB2ModelPackage.DB2_METHOD__DB_INFO:
+ return isDbInfo() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__IMPLICIT_SCHEMA:
+ return isImplicitSchema() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__FEDERATED:
+ return isFederated() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__PARM_CCSID:
+ return getParmCcsid();
+ case DB2ModelPackage.DB2_METHOD__SPECIAL_REGISTER:
+ return getSpecialRegister();
+ case DB2ModelPackage.DB2_METHOD__CHANGE_STATE:
+ return new Integer(getChangeState());
+ case DB2ModelPackage.DB2_METHOD__DEBUG_ID:
+ return getDebugId();
+ case DB2ModelPackage.DB2_METHOD__PROGRAM_TYPE:
+ return getProgramType();
+ case DB2ModelPackage.DB2_METHOD__ORIG_SCHEMA_NAME:
+ return getOrigSchemaName();
+ case DB2ModelPackage.DB2_METHOD__ORIG_PARM_SIG:
+ return getOrigParmSig();
+ case DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS:
+ return getExtendedOptions();
+ case DB2ModelPackage.DB2_METHOD__ROUTINE_EXTENSIONS:
+ return getRoutineExtensions();
+ case DB2ModelPackage.DB2_METHOD__FINAL_CALL:
+ return isFinalCall() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD:
+ return isScratchPad() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD_LENGTH:
+ return new Integer(getScratchPadLength());
+ case DB2ModelPackage.DB2_METHOD__FUNCTION_TYPE:
+ return getFunctionType();
+ case DB2ModelPackage.DB2_METHOD__PREDICATE:
+ return getPredicate();
+ case DB2ModelPackage.DB2_METHOD__EXTERNAL_ACTION:
+ return isExternalAction() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__CARDINALITY:
+ return new Integer(getCardinality());
+ case DB2ModelPackage.DB2_METHOD__ALLOW_PARALLEL:
+ return isAllowParallel() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__RETURN_CLAUSE:
+ return getReturnClause();
+ case DB2ModelPackage.DB2_METHOD__ORIGIN:
+ return getOrigin();
+ case DB2ModelPackage.DB2_METHOD__INHERIT_LOCK_REQUEST:
+ return isInheritLockRequest() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__DIALECT:
+ return getDialect();
+ case DB2ModelPackage.DB2_METHOD__INLINE:
+ return isInline() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__VERSION:
+ return getVersion();
+ case DB2ModelPackage.DB2_METHOD__SECURED:
+ return isSecured() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__RETURNS_SELF_AS_RESULT:
+ return isReturnsSelfAsResult() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_METHOD__IMPLEMENTED:
+ return isImplemented() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_METHOD__FENCED:
+ setFenced((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__THREADSAFE:
+ setThreadsafe((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__DB_INFO:
+ setDbInfo(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__IMPLICIT_SCHEMA:
+ setImplicitSchema(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__FEDERATED:
+ setFederated(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__PARM_CCSID:
+ setParmCcsid((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__SPECIAL_REGISTER:
+ setSpecialRegister((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__CHANGE_STATE:
+ setChangeState(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__DEBUG_ID:
+ setDebugId((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__PROGRAM_TYPE:
+ setProgramType((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ORIG_SCHEMA_NAME:
+ setOrigSchemaName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ORIG_PARM_SIG:
+ setOrigParmSig((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ getExtendedOptions().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ getRoutineExtensions().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__FINAL_CALL:
+ setFinalCall(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD:
+ setScratchPad(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD_LENGTH:
+ setScratchPadLength(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__FUNCTION_TYPE:
+ setFunctionType((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__PREDICATE:
+ setPredicate((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__EXTERNAL_ACTION:
+ setExternalAction(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__CARDINALITY:
+ setCardinality(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__ALLOW_PARALLEL:
+ setAllowParallel(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__RETURN_CLAUSE:
+ setReturnClause((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ORIGIN:
+ setOrigin((OriginType)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__INHERIT_LOCK_REQUEST:
+ setInheritLockRequest(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__DIALECT:
+ setDialect((SourceDialect)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__INLINE:
+ setInline(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__VERSION:
+ setVersion((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_METHOD__SECURED:
+ setSecured(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__RETURNS_SELF_AS_RESULT:
+ setReturnsSelfAsResult(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_METHOD__IMPLEMENTED:
+ setImplemented(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_METHOD__FENCED:
+ setFenced(FENCED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__THREADSAFE:
+ setThreadsafe(THREADSAFE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__DB_INFO:
+ setDbInfo(DB_INFO_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__IMPLICIT_SCHEMA:
+ setImplicitSchema(IMPLICIT_SCHEMA_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__FEDERATED:
+ setFederated(FEDERATED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__PARM_CCSID:
+ setParmCcsid(PARM_CCSID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__SPECIAL_REGISTER:
+ setSpecialRegister(SPECIAL_REGISTER_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__CHANGE_STATE:
+ setChangeState(CHANGE_STATE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__DEBUG_ID:
+ setDebugId(DEBUG_ID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__PROGRAM_TYPE:
+ setProgramType(PROGRAM_TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ORIG_SCHEMA_NAME:
+ setOrigSchemaName(ORIG_SCHEMA_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ORIG_PARM_SIG:
+ setOrigParmSig(ORIG_PARM_SIG_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ return;
+ case DB2ModelPackage.DB2_METHOD__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ return;
+ case DB2ModelPackage.DB2_METHOD__FINAL_CALL:
+ setFinalCall(FINAL_CALL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD:
+ setScratchPad(SCRATCH_PAD_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD_LENGTH:
+ setScratchPadLength(SCRATCH_PAD_LENGTH_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__FUNCTION_TYPE:
+ setFunctionType(FUNCTION_TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__PREDICATE:
+ setPredicate(PREDICATE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__EXTERNAL_ACTION:
+ setExternalAction(EXTERNAL_ACTION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__CARDINALITY:
+ setCardinality(CARDINALITY_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ALLOW_PARALLEL:
+ setAllowParallel(ALLOW_PARALLEL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__RETURN_CLAUSE:
+ setReturnClause(RETURN_CLAUSE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__ORIGIN:
+ setOrigin(ORIGIN_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__INHERIT_LOCK_REQUEST:
+ setInheritLockRequest(INHERIT_LOCK_REQUEST_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__DIALECT:
+ setDialect(DIALECT_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__INLINE:
+ setInline(INLINE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__SECURED:
+ setSecured(SECURED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__RETURNS_SELF_AS_RESULT:
+ setReturnsSelfAsResult(RETURNS_SELF_AS_RESULT_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_METHOD__IMPLEMENTED:
+ setImplemented(IMPLEMENTED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_METHOD__FENCED:
+ return FENCED_EDEFAULT == null ? fenced != null : !FENCED_EDEFAULT.equals(fenced);
+ case DB2ModelPackage.DB2_METHOD__THREADSAFE:
+ return THREADSAFE_EDEFAULT == null ? threadsafe != null : !THREADSAFE_EDEFAULT.equals(threadsafe);
+ case DB2ModelPackage.DB2_METHOD__DB_INFO:
+ return dbInfo != DB_INFO_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__IMPLICIT_SCHEMA:
+ return implicitSchema != IMPLICIT_SCHEMA_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__FEDERATED:
+ return federated != FEDERATED_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__PARM_CCSID:
+ return PARM_CCSID_EDEFAULT == null ? parmCcsid != null : !PARM_CCSID_EDEFAULT.equals(parmCcsid);
+ case DB2ModelPackage.DB2_METHOD__SPECIAL_REGISTER:
+ return SPECIAL_REGISTER_EDEFAULT == null ? specialRegister != null : !SPECIAL_REGISTER_EDEFAULT.equals(specialRegister);
+ case DB2ModelPackage.DB2_METHOD__CHANGE_STATE:
+ return changeState != CHANGE_STATE_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__DEBUG_ID:
+ return DEBUG_ID_EDEFAULT == null ? debugId != null : !DEBUG_ID_EDEFAULT.equals(debugId);
+ case DB2ModelPackage.DB2_METHOD__PROGRAM_TYPE:
+ return PROGRAM_TYPE_EDEFAULT == null ? programType != null : !PROGRAM_TYPE_EDEFAULT.equals(programType);
+ case DB2ModelPackage.DB2_METHOD__ORIG_SCHEMA_NAME:
+ return ORIG_SCHEMA_NAME_EDEFAULT == null ? origSchemaName != null : !ORIG_SCHEMA_NAME_EDEFAULT.equals(origSchemaName);
+ case DB2ModelPackage.DB2_METHOD__ORIG_PARM_SIG:
+ return ORIG_PARM_SIG_EDEFAULT == null ? origParmSig != null : !ORIG_PARM_SIG_EDEFAULT.equals(origParmSig);
+ case DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS:
+ return extendedOptions != null && !extendedOptions.isEmpty();
+ case DB2ModelPackage.DB2_METHOD__ROUTINE_EXTENSIONS:
+ return routineExtensions != null && !routineExtensions.isEmpty();
+ case DB2ModelPackage.DB2_METHOD__FINAL_CALL:
+ return finalCall != FINAL_CALL_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD:
+ return scratchPad != SCRATCH_PAD_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD_LENGTH:
+ return scratchPadLength != SCRATCH_PAD_LENGTH_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__FUNCTION_TYPE:
+ return FUNCTION_TYPE_EDEFAULT == null ? functionType != null : !FUNCTION_TYPE_EDEFAULT.equals(functionType);
+ case DB2ModelPackage.DB2_METHOD__PREDICATE:
+ return PREDICATE_EDEFAULT == null ? predicate != null : !PREDICATE_EDEFAULT.equals(predicate);
+ case DB2ModelPackage.DB2_METHOD__EXTERNAL_ACTION:
+ return externalAction != EXTERNAL_ACTION_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__CARDINALITY:
+ return cardinality != CARDINALITY_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__ALLOW_PARALLEL:
+ return allowParallel != ALLOW_PARALLEL_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__RETURN_CLAUSE:
+ return RETURN_CLAUSE_EDEFAULT == null ? returnClause != null : !RETURN_CLAUSE_EDEFAULT.equals(returnClause);
+ case DB2ModelPackage.DB2_METHOD__ORIGIN:
+ return origin != ORIGIN_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__INHERIT_LOCK_REQUEST:
+ return inheritLockRequest != INHERIT_LOCK_REQUEST_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__DIALECT:
+ return dialect != DIALECT_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__INLINE:
+ return inline != INLINE_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case DB2ModelPackage.DB2_METHOD__SECURED:
+ return secured != SECURED_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__RETURNS_SELF_AS_RESULT:
+ return returnsSelfAsResult != RETURNS_SELF_AS_RESULT_EDEFAULT;
+ case DB2ModelPackage.DB2_METHOD__IMPLEMENTED:
+ return implemented != IMPLEMENTED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == DB2AccessPlan.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (derivedFeatureID) {
+ case DB2ModelPackage.DB2_METHOD__FENCED: return DB2ModelPackage.DB2_ROUTINE__FENCED;
+ case DB2ModelPackage.DB2_METHOD__THREADSAFE: return DB2ModelPackage.DB2_ROUTINE__THREADSAFE;
+ case DB2ModelPackage.DB2_METHOD__DB_INFO: return DB2ModelPackage.DB2_ROUTINE__DB_INFO;
+ case DB2ModelPackage.DB2_METHOD__IMPLICIT_SCHEMA: return DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA;
+ case DB2ModelPackage.DB2_METHOD__FEDERATED: return DB2ModelPackage.DB2_ROUTINE__FEDERATED;
+ case DB2ModelPackage.DB2_METHOD__PARM_CCSID: return DB2ModelPackage.DB2_ROUTINE__PARM_CCSID;
+ case DB2ModelPackage.DB2_METHOD__SPECIAL_REGISTER: return DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER;
+ case DB2ModelPackage.DB2_METHOD__CHANGE_STATE: return DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE;
+ case DB2ModelPackage.DB2_METHOD__DEBUG_ID: return DB2ModelPackage.DB2_ROUTINE__DEBUG_ID;
+ case DB2ModelPackage.DB2_METHOD__PROGRAM_TYPE: return DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE;
+ case DB2ModelPackage.DB2_METHOD__ORIG_SCHEMA_NAME: return DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME;
+ case DB2ModelPackage.DB2_METHOD__ORIG_PARM_SIG: return DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG;
+ case DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS: return DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS;
+ case DB2ModelPackage.DB2_METHOD__ROUTINE_EXTENSIONS: return DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Function.class) {
+ switch (derivedFeatureID) {
+ case DB2ModelPackage.DB2_METHOD__FINAL_CALL: return DB2ModelPackage.DB2_FUNCTION__FINAL_CALL;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD: return DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD;
+ case DB2ModelPackage.DB2_METHOD__SCRATCH_PAD_LENGTH: return DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD_LENGTH;
+ case DB2ModelPackage.DB2_METHOD__FUNCTION_TYPE: return DB2ModelPackage.DB2_FUNCTION__FUNCTION_TYPE;
+ case DB2ModelPackage.DB2_METHOD__PREDICATE: return DB2ModelPackage.DB2_FUNCTION__PREDICATE;
+ case DB2ModelPackage.DB2_METHOD__EXTERNAL_ACTION: return DB2ModelPackage.DB2_FUNCTION__EXTERNAL_ACTION;
+ case DB2ModelPackage.DB2_METHOD__CARDINALITY: return DB2ModelPackage.DB2_FUNCTION__CARDINALITY;
+ case DB2ModelPackage.DB2_METHOD__ALLOW_PARALLEL: return DB2ModelPackage.DB2_FUNCTION__ALLOW_PARALLEL;
+ case DB2ModelPackage.DB2_METHOD__RETURN_CLAUSE: return DB2ModelPackage.DB2_FUNCTION__RETURN_CLAUSE;
+ case DB2ModelPackage.DB2_METHOD__ORIGIN: return DB2ModelPackage.DB2_FUNCTION__ORIGIN;
+ case DB2ModelPackage.DB2_METHOD__INHERIT_LOCK_REQUEST: return DB2ModelPackage.DB2_FUNCTION__INHERIT_LOCK_REQUEST;
+ case DB2ModelPackage.DB2_METHOD__DIALECT: return DB2ModelPackage.DB2_FUNCTION__DIALECT;
+ case DB2ModelPackage.DB2_METHOD__INLINE: return DB2ModelPackage.DB2_FUNCTION__INLINE;
+ case DB2ModelPackage.DB2_METHOD__VERSION: return DB2ModelPackage.DB2_FUNCTION__VERSION;
+ case DB2ModelPackage.DB2_METHOD__SECURED: return DB2ModelPackage.DB2_FUNCTION__SECURED;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == DB2AccessPlan.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (baseFeatureID) {
+ case DB2ModelPackage.DB2_ROUTINE__FENCED: return DB2ModelPackage.DB2_METHOD__FENCED;
+ case DB2ModelPackage.DB2_ROUTINE__THREADSAFE: return DB2ModelPackage.DB2_METHOD__THREADSAFE;
+ case DB2ModelPackage.DB2_ROUTINE__DB_INFO: return DB2ModelPackage.DB2_METHOD__DB_INFO;
+ case DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA: return DB2ModelPackage.DB2_METHOD__IMPLICIT_SCHEMA;
+ case DB2ModelPackage.DB2_ROUTINE__FEDERATED: return DB2ModelPackage.DB2_METHOD__FEDERATED;
+ case DB2ModelPackage.DB2_ROUTINE__PARM_CCSID: return DB2ModelPackage.DB2_METHOD__PARM_CCSID;
+ case DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER: return DB2ModelPackage.DB2_METHOD__SPECIAL_REGISTER;
+ case DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE: return DB2ModelPackage.DB2_METHOD__CHANGE_STATE;
+ case DB2ModelPackage.DB2_ROUTINE__DEBUG_ID: return DB2ModelPackage.DB2_METHOD__DEBUG_ID;
+ case DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE: return DB2ModelPackage.DB2_METHOD__PROGRAM_TYPE;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME: return DB2ModelPackage.DB2_METHOD__ORIG_SCHEMA_NAME;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG: return DB2ModelPackage.DB2_METHOD__ORIG_PARM_SIG;
+ case DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS: return DB2ModelPackage.DB2_METHOD__EXTENDED_OPTIONS;
+ case DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS: return DB2ModelPackage.DB2_METHOD__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Function.class) {
+ switch (baseFeatureID) {
+ case DB2ModelPackage.DB2_FUNCTION__FINAL_CALL: return DB2ModelPackage.DB2_METHOD__FINAL_CALL;
+ case DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD: return DB2ModelPackage.DB2_METHOD__SCRATCH_PAD;
+ case DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD_LENGTH: return DB2ModelPackage.DB2_METHOD__SCRATCH_PAD_LENGTH;
+ case DB2ModelPackage.DB2_FUNCTION__FUNCTION_TYPE: return DB2ModelPackage.DB2_METHOD__FUNCTION_TYPE;
+ case DB2ModelPackage.DB2_FUNCTION__PREDICATE: return DB2ModelPackage.DB2_METHOD__PREDICATE;
+ case DB2ModelPackage.DB2_FUNCTION__EXTERNAL_ACTION: return DB2ModelPackage.DB2_METHOD__EXTERNAL_ACTION;
+ case DB2ModelPackage.DB2_FUNCTION__CARDINALITY: return DB2ModelPackage.DB2_METHOD__CARDINALITY;
+ case DB2ModelPackage.DB2_FUNCTION__ALLOW_PARALLEL: return DB2ModelPackage.DB2_METHOD__ALLOW_PARALLEL;
+ case DB2ModelPackage.DB2_FUNCTION__RETURN_CLAUSE: return DB2ModelPackage.DB2_METHOD__RETURN_CLAUSE;
+ case DB2ModelPackage.DB2_FUNCTION__ORIGIN: return DB2ModelPackage.DB2_METHOD__ORIGIN;
+ case DB2ModelPackage.DB2_FUNCTION__INHERIT_LOCK_REQUEST: return DB2ModelPackage.DB2_METHOD__INHERIT_LOCK_REQUEST;
+ case DB2ModelPackage.DB2_FUNCTION__DIALECT: return DB2ModelPackage.DB2_METHOD__DIALECT;
+ case DB2ModelPackage.DB2_FUNCTION__INLINE: return DB2ModelPackage.DB2_METHOD__INLINE;
+ case DB2ModelPackage.DB2_FUNCTION__VERSION: return DB2ModelPackage.DB2_METHOD__VERSION;
+ case DB2ModelPackage.DB2_FUNCTION__SECURED: return DB2ModelPackage.DB2_METHOD__SECURED;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fenced: "); //$NON-NLS-1$
+ result.append(fenced);
+ result.append(", threadsafe: "); //$NON-NLS-1$
+ result.append(threadsafe);
+ result.append(", dbInfo: "); //$NON-NLS-1$
+ result.append(dbInfo);
+ result.append(", implicitSchema: "); //$NON-NLS-1$
+ result.append(implicitSchema);
+ result.append(", federated: "); //$NON-NLS-1$
+ result.append(federated);
+ result.append(", parmCcsid: "); //$NON-NLS-1$
+ result.append(parmCcsid);
+ result.append(", specialRegister: "); //$NON-NLS-1$
+ result.append(specialRegister);
+ result.append(", changeState: "); //$NON-NLS-1$
+ result.append(changeState);
+ result.append(", debugId: "); //$NON-NLS-1$
+ result.append(debugId);
+ result.append(", programType: "); //$NON-NLS-1$
+ result.append(programType);
+ result.append(", origSchemaName: "); //$NON-NLS-1$
+ result.append(origSchemaName);
+ result.append(", origParmSig: "); //$NON-NLS-1$
+ result.append(origParmSig);
+ result.append(", finalCall: "); //$NON-NLS-1$
+ result.append(finalCall);
+ result.append(", scratchPad: "); //$NON-NLS-1$
+ result.append(scratchPad);
+ result.append(", scratchPadLength: "); //$NON-NLS-1$
+ result.append(scratchPadLength);
+ result.append(", functionType: "); //$NON-NLS-1$
+ result.append(functionType);
+ result.append(", predicate: "); //$NON-NLS-1$
+ result.append(predicate);
+ result.append(", externalAction: "); //$NON-NLS-1$
+ result.append(externalAction);
+ result.append(", cardinality: "); //$NON-NLS-1$
+ result.append(cardinality);
+ result.append(", allowParallel: "); //$NON-NLS-1$
+ result.append(allowParallel);
+ result.append(", returnClause: "); //$NON-NLS-1$
+ result.append(returnClause);
+ result.append(", origin: "); //$NON-NLS-1$
+ result.append(origin);
+ result.append(", inheritLockRequest: "); //$NON-NLS-1$
+ result.append(inheritLockRequest);
+ result.append(", dialect: "); //$NON-NLS-1$
+ result.append(dialect);
+ result.append(", inline: "); //$NON-NLS-1$
+ result.append(inline);
+ result.append(", version: "); //$NON-NLS-1$
+ result.append(version);
+ result.append(", secured: "); //$NON-NLS-1$
+ result.append(secured);
+ result.append(", returnsSelfAsResult: "); //$NON-NLS-1$
+ result.append(returnsSelfAsResult);
+ result.append(", implemented: "); //$NON-NLS-1$
+ result.append(implemented);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2MethodImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ModelFactoryImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ModelFactoryImpl.java
new file mode 100644
index 0000000..26c7cf7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ModelFactoryImpl.java
@@ -0,0 +1,776 @@
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.*;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DB2ModelFactoryImpl extends EFactoryImpl implements DB2ModelFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DB2ModelFactory init() {
+ try {
+ DB2ModelFactory theDB2ModelFactory = (DB2ModelFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org.eclipse.datatools.enablement.ibm.db2.model/db2.ecore"); //$NON-NLS-1$
+ if (theDB2ModelFactory != null) {
+ return theDB2ModelFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new DB2ModelFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ModelFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case DB2ModelPackage.DB2_DATABASE: return createDB2Database();
+ case DB2ModelPackage.DB2_PACKAGE: return createDB2Package();
+ case DB2ModelPackage.DB2_TABLE: return createDB2Table();
+ case DB2ModelPackage.DB2_TRIGGER: return createDB2Trigger();
+ case DB2ModelPackage.DB2_PROCEDURE: return createDB2Procedure();
+ case DB2ModelPackage.DB2_SCHEMA: return createDB2Schema();
+ case DB2ModelPackage.DB2_DATABASE_MANAGER: return createDB2DatabaseManager();
+ case DB2ModelPackage.DB2_VIEW: return createDB2View();
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS: return createDB2ApplicationProcess();
+ case DB2ModelPackage.DB2_TRANSACTION: return createDB2Transaction();
+ case DB2ModelPackage.DB2_SYSTEM_SCHEMA: return createDB2SystemSchema();
+ case DB2ModelPackage.DB2_SOURCE: return createDB2Source();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION: return createDB2UserDefinedFunction();
+ case DB2ModelPackage.DB2_METHOD: return createDB2Method();
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS: return createDB2ExtendedOptions();
+ case DB2ModelPackage.DB2_ALIAS: return createDB2Alias();
+ case DB2ModelPackage.DB2_INDEX: return createDB2Index();
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX: return createDB2MultidimensionalIndex();
+ case DB2ModelPackage.DB2_JAVA_OPTIONS: return createDB2JavaOptions();
+ case DB2ModelPackage.DB2_PROCEDURE_DEPLOY: return createDB2ProcedureDeploy();
+ case DB2ModelPackage.DB2OLAP_OBJECT: return createDB2OLAPObject();
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER: return createDB2IdentitySpecifier();
+ case DB2ModelPackage.DB2_JAR: return createDB2Jar();
+ case DB2ModelPackage.DB2_COLUMN: return createDB2Column();
+ case DB2ModelPackage.DB2XSR_OBJECT: return createDB2XSRObject();
+ case DB2ModelPackage.DB2XML_SCHEMA: return createDB2XMLSchema();
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT: return createDB2XMLSchemaDocument();
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES: return createDB2XMLSchemaDocProperties();
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT: return createDB2PackageStatement();
+ case DB2ModelPackage.DB2_PERIOD: return createDB2Period();
+ case DB2ModelPackage.DB2_CLUSTER: return createDB2Cluster();
+ case DB2ModelPackage.DB2_MEMBER: return createDB2Member();
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION: return createDB2UniqueConstraintExtension();
+ case DB2ModelPackage.DB2_MASK: return createDB2Mask();
+ case DB2ModelPackage.DB2_PERMISSION: return createDB2Permission();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case DB2ModelPackage.ISOLATION_LEVEL_TYPE:
+ return createIsolationLevelTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.DB2_INDEX_TYPE:
+ return createDB2IndexTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.DATA_CAPTURE_TYPE:
+ return createDataCaptureTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.UNIT_TYPE:
+ return createUnitTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.GENERATE_TYPE:
+ return createGenerateTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.DB2XML_SCHEMA_DECOMPOSITION:
+ return createDB2XMLSchemaDecompositionFromString(eDataType, initialValue);
+ case DB2ModelPackage.DB2XML_SCHEMA_STATUS:
+ return createDB2XMLSchemaStatusFromString(eDataType, initialValue);
+ case DB2ModelPackage.ORIGIN_TYPE:
+ return createOriginTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.REOPT_TYPE:
+ return createReoptTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.SOURCE_DIALECT:
+ return createSourceDialectFromString(eDataType, initialValue);
+ case DB2ModelPackage.DB2_PERIOD_TYPE:
+ return createDB2PeriodTypeFromString(eDataType, initialValue);
+ case DB2ModelPackage.DB2_TABLE_ORGANIZATION:
+ return createDB2TableOrganizationFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case DB2ModelPackage.ISOLATION_LEVEL_TYPE:
+ return convertIsolationLevelTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.DB2_INDEX_TYPE:
+ return convertDB2IndexTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.DATA_CAPTURE_TYPE:
+ return convertDataCaptureTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.UNIT_TYPE:
+ return convertUnitTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.GENERATE_TYPE:
+ return convertGenerateTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.DB2XML_SCHEMA_DECOMPOSITION:
+ return convertDB2XMLSchemaDecompositionToString(eDataType, instanceValue);
+ case DB2ModelPackage.DB2XML_SCHEMA_STATUS:
+ return convertDB2XMLSchemaStatusToString(eDataType, instanceValue);
+ case DB2ModelPackage.ORIGIN_TYPE:
+ return convertOriginTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.REOPT_TYPE:
+ return convertReoptTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.SOURCE_DIALECT:
+ return convertSourceDialectToString(eDataType, instanceValue);
+ case DB2ModelPackage.DB2_PERIOD_TYPE:
+ return convertDB2PeriodTypeToString(eDataType, instanceValue);
+ case DB2ModelPackage.DB2_TABLE_ORGANIZATION:
+ return convertDB2TableOrganizationToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Database createDB2Database() {
+ DB2DatabaseImpl db2Database = new DB2DatabaseImpl();
+ return db2Database;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Package createDB2Package() {
+ DB2PackageImpl db2Package = new DB2PackageImpl();
+ return db2Package;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table createDB2Table() {
+ DB2TableImpl db2Table = new DB2TableImpl();
+ return db2Table;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Trigger createDB2Trigger() {
+ DB2TriggerImpl db2Trigger = new DB2TriggerImpl();
+ return db2Trigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Procedure createDB2Procedure() {
+ DB2ProcedureImpl db2Procedure = new DB2ProcedureImpl();
+ return db2Procedure;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema createDB2Schema() {
+ DB2SchemaImpl db2Schema = new DB2SchemaImpl();
+ return db2Schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2DatabaseManager createDB2DatabaseManager() {
+ DB2DatabaseManagerImpl db2DatabaseManager = new DB2DatabaseManagerImpl();
+ return db2DatabaseManager;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2View createDB2View() {
+ DB2ViewImpl db2View = new DB2ViewImpl();
+ return db2View;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ApplicationProcess createDB2ApplicationProcess() {
+ DB2ApplicationProcessImpl db2ApplicationProcess = new DB2ApplicationProcessImpl();
+ return db2ApplicationProcess;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Transaction createDB2Transaction() {
+ DB2TransactionImpl db2Transaction = new DB2TransactionImpl();
+ return db2Transaction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2SystemSchema createDB2SystemSchema() {
+ DB2SystemSchemaImpl db2SystemSchema = new DB2SystemSchemaImpl();
+ return db2SystemSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Source createDB2Source() {
+ DB2SourceImpl db2Source = new DB2SourceImpl();
+ return db2Source;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2UserDefinedFunction createDB2UserDefinedFunction() {
+ DB2UserDefinedFunctionImpl db2UserDefinedFunction = new DB2UserDefinedFunctionImpl();
+ return db2UserDefinedFunction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Method createDB2Method() {
+ DB2MethodImpl db2Method = new DB2MethodImpl();
+ return db2Method;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ExtendedOptions createDB2ExtendedOptions() {
+ DB2ExtendedOptionsImpl db2ExtendedOptions = new DB2ExtendedOptionsImpl();
+ return db2ExtendedOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Alias createDB2Alias() {
+ DB2AliasImpl db2Alias = new DB2AliasImpl();
+ return db2Alias;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Index createDB2Index() {
+ DB2IndexImpl db2Index = new DB2IndexImpl();
+ return db2Index;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2MultidimensionalIndex createDB2MultidimensionalIndex() {
+ DB2MultidimensionalIndexImpl db2MultidimensionalIndex = new DB2MultidimensionalIndexImpl();
+ return db2MultidimensionalIndex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2JavaOptions createDB2JavaOptions() {
+ DB2JavaOptionsImpl db2JavaOptions = new DB2JavaOptionsImpl();
+ return db2JavaOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ProcedureDeploy createDB2ProcedureDeploy() {
+ DB2ProcedureDeployImpl db2ProcedureDeploy = new DB2ProcedureDeployImpl();
+ return db2ProcedureDeploy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2OLAPObject createDB2OLAPObject() {
+ DB2OLAPObjectImpl db2OLAPObject = new DB2OLAPObjectImpl();
+ return db2OLAPObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2IdentitySpecifier createDB2IdentitySpecifier() {
+ DB2IdentitySpecifierImpl db2IdentitySpecifier = new DB2IdentitySpecifierImpl();
+ return db2IdentitySpecifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Jar createDB2Jar() {
+ DB2JarImpl db2Jar = new DB2JarImpl();
+ return db2Jar;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Column createDB2Column() {
+ DB2ColumnImpl db2Column = new DB2ColumnImpl();
+ return db2Column;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XSRObject createDB2XSRObject() {
+ DB2XSRObjectImpl db2XSRObject = new DB2XSRObjectImpl();
+ return db2XSRObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchema createDB2XMLSchema() {
+ DB2XMLSchemaImpl db2XMLSchema = new DB2XMLSchemaImpl();
+ return db2XMLSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchemaDocument createDB2XMLSchemaDocument() {
+ DB2XMLSchemaDocumentImpl db2XMLSchemaDocument = new DB2XMLSchemaDocumentImpl();
+ return db2XMLSchemaDocument;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchemaDocProperties createDB2XMLSchemaDocProperties() {
+ DB2XMLSchemaDocPropertiesImpl db2XMLSchemaDocProperties = new DB2XMLSchemaDocPropertiesImpl();
+ return db2XMLSchemaDocProperties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2PackageStatement createDB2PackageStatement() {
+ DB2PackageStatementImpl db2PackageStatement = new DB2PackageStatementImpl();
+ return db2PackageStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Period createDB2Period() {
+ DB2PeriodImpl db2Period = new DB2PeriodImpl();
+ return db2Period;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Cluster createDB2Cluster() {
+ DB2ClusterImpl db2Cluster = new DB2ClusterImpl();
+ return db2Cluster;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Member createDB2Member() {
+ DB2MemberImpl db2Member = new DB2MemberImpl();
+ return db2Member;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2UniqueConstraintExtension createDB2UniqueConstraintExtension() {
+ DB2UniqueConstraintExtensionImpl db2UniqueConstraintExtension = new DB2UniqueConstraintExtensionImpl();
+ return db2UniqueConstraintExtension;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Mask createDB2Mask() {
+ DB2MaskImpl db2Mask = new DB2MaskImpl();
+ return db2Mask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Permission createDB2Permission() {
+ DB2PermissionImpl db2Permission = new DB2PermissionImpl();
+ return db2Permission;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IsolationLevelType createIsolationLevelTypeFromString(EDataType eDataType, String initialValue) {
+ IsolationLevelType result = IsolationLevelType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertIsolationLevelTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2IndexType createDB2IndexTypeFromString(EDataType eDataType, String initialValue) {
+ DB2IndexType result = DB2IndexType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDB2IndexTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataCaptureType createDataCaptureTypeFromString(EDataType eDataType, String initialValue) {
+ DataCaptureType result = DataCaptureType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDataCaptureTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnitType createUnitTypeFromString(EDataType eDataType, String initialValue) {
+ UnitType result = UnitType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertUnitTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GenerateType createGenerateTypeFromString(EDataType eDataType, String initialValue) {
+ GenerateType result = GenerateType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertGenerateTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchemaDecomposition createDB2XMLSchemaDecompositionFromString(EDataType eDataType, String initialValue) {
+ DB2XMLSchemaDecomposition result = DB2XMLSchemaDecomposition.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDB2XMLSchemaDecompositionToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchemaStatus createDB2XMLSchemaStatusFromString(EDataType eDataType, String initialValue) {
+ DB2XMLSchemaStatus result = DB2XMLSchemaStatus.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDB2XMLSchemaStatusToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OriginType createOriginTypeFromString(EDataType eDataType, String initialValue) {
+ OriginType result = OriginType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertOriginTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReoptType createReoptTypeFromString(EDataType eDataType, String initialValue) {
+ ReoptType result = ReoptType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertReoptTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SourceDialect createSourceDialectFromString(EDataType eDataType, String initialValue) {
+ SourceDialect result = SourceDialect.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertSourceDialectToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2PeriodType createDB2PeriodTypeFromString(EDataType eDataType, String initialValue) {
+ DB2PeriodType result = DB2PeriodType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDB2PeriodTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2TableOrganization createDB2TableOrganizationFromString(EDataType eDataType, String initialValue) {
+ DB2TableOrganization result = DB2TableOrganization.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertDB2TableOrganizationToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ModelPackage getDB2ModelPackage() {
+ return (DB2ModelPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static DB2ModelPackage getPackage() {
+ return DB2ModelPackage.eINSTANCE;
+ }
+
+} //DB2ModelFactoryImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ModelPackageImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ModelPackageImpl.java
new file mode 100644
index 0000000..b75217b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ModelPackageImpl.java
@@ -0,0 +1,3268 @@
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Alias;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ApplicationProcess;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Cluster;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Database;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2DatabaseManager;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2DistinctUserDefinedType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IdentitySpecifier;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2IndexType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Member;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Method;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelFactory;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Period;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Source;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2SystemSchema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Transaction;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2View;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject;
+import org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType;
+import org.eclipse.datatools.enablement.ibm.db2.model.GenerateType;
+import org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType;
+import org.eclipse.datatools.enablement.ibm.db2.model.OriginType;
+import org.eclipse.datatools.enablement.ibm.db2.model.ReoptType;
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+import org.eclipse.datatools.enablement.ibm.db2.model.UnitType;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataTypesPackage;
+import org.eclipse.datatools.modelbase.sql.expressions.SQLExpressionsPackage;
+import org.eclipse.datatools.modelbase.sql.routines.SQLRoutinesPackage;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatementsPackage;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DB2ModelPackageImpl extends EPackageImpl implements DB2ModelPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2DatabaseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2PackageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2TableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2TriggerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2ProcedureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2SchemaEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2RoutineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2DatabaseManagerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2ViewEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2ApplicationProcessEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2TransactionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2SystemSchemaEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2SourceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2AccessPlanEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2UserDefinedFunctionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2MethodEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2ExtendedOptionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2AliasEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2MaterializedQueryTableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2IndexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2MultidimensionalIndexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2FunctionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2JavaOptionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2ProcedureDeployEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2OLAPObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2RoutineExtensionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2IdentitySpecifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2JarEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2ColumnEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2XSRObjectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2XMLSchemaEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2XMLSchemaDocumentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2XMLSchemaDocPropertiesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2PackageStatementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2DistinctUserDefinedTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2PeriodEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2ClusterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2MemberEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2UniqueConstraintExtensionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2MaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass db2PermissionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum isolationLevelTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum db2IndexTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum dataCaptureTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum unitTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum generateTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum db2XMLSchemaDecompositionEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum db2XMLSchemaStatusEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum originTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum reoptTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum sourceDialectEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum db2PeriodTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum db2TableOrganizationEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private DB2ModelPackageImpl() {
+ super(eNS_URI, DB2ModelFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link DB2ModelPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static DB2ModelPackage init() {
+ if (isInited) return (DB2ModelPackage)EPackage.Registry.INSTANCE.getEPackage(DB2ModelPackage.eNS_URI);
+
+ // Obtain or create and register package
+ DB2ModelPackageImpl theDB2ModelPackage = (DB2ModelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof DB2ModelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new DB2ModelPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ SQLSchemaPackage.eINSTANCE.eClass();
+ SQLConstraintsPackage.eINSTANCE.eClass();
+ SQLDataTypesPackage.eINSTANCE.eClass();
+ SQLExpressionsPackage.eINSTANCE.eClass();
+ SQLRoutinesPackage.eINSTANCE.eClass();
+ SQLStatementsPackage.eINSTANCE.eClass();
+ SQLTablesPackage.eINSTANCE.eClass();
+ SQLAccessControlPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theDB2ModelPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theDB2ModelPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theDB2ModelPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(DB2ModelPackage.eNS_URI, theDB2ModelPackage);
+ return theDB2ModelPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Database() {
+ return db2DatabaseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Database_Partitioned() {
+ return (EAttribute)db2DatabaseEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Database_DefaultOrganizeByRow() {
+ return (EAttribute)db2DatabaseEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Package() {
+ return db2PackageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_Operative() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_Valid() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_Version() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_DefaultSchema() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_SqlPath() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_ReoptVar() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_Isolation() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_UniqueID() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Package_LastBindTS() {
+ return (EAttribute)db2PackageEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Package_Schema() {
+ return (EReference)db2PackageEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Package_Statements() {
+ return (EReference)db2PackageEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Table() {
+ return db2TableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Table_DataCapture() {
+ return (EAttribute)db2TableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Table_ActivateRowAccessControl() {
+ return (EAttribute)db2TableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Table_ActivateColumnAccessControl() {
+ return (EAttribute)db2TableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Table_OrganizeBy() {
+ return (EAttribute)db2TableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Table_Packages() {
+ return (EReference)db2TableEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Table_Periods() {
+ return (EReference)db2TableEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Table_HistoryTable() {
+ return (EReference)db2TableEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Table_TemporalTable() {
+ return (EReference)db2TableEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Table_Masks() {
+ return (EReference)db2TableEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Table_Permissions() {
+ return (EReference)db2TableEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Trigger() {
+ return db2TriggerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Trigger_Operative() {
+ return (EAttribute)db2TriggerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Trigger_Secured() {
+ return (EAttribute)db2TriggerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Procedure() {
+ return db2ProcedureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Procedure_ModelResultSets() {
+ return (EAttribute)db2ProcedureEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Procedure_NullInput() {
+ return (EAttribute)db2ProcedureEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Procedure_Version() {
+ return (EAttribute)db2ProcedureEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Procedure_Dialect() {
+ return (EAttribute)db2ProcedureEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Procedure_ExternalAction() {
+ return (EAttribute)db2ProcedureEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Procedure_Return() {
+ return (EReference)db2ProcedureEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Procedure_JavaOptions() {
+ return (EReference)db2ProcedureEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Procedure_Deploy() {
+ return (EReference)db2ProcedureEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Schema() {
+ return db2SchemaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_AccessPlans() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_OlapObjects() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_Jars() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_XsrObjects() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_Packages() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_Masks() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_Permissions() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_Modules() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Schema_GlobalVariables() {
+ return (EReference)db2SchemaEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Routine() {
+ return db2RoutineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_Fenced() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_Threadsafe() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_DbInfo() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_ImplicitSchema() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_Federated() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_ParmCcsid() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_SpecialRegister() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_ChangeState() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_DebugId() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_ProgramType() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_OrigSchemaName() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Routine_OrigParmSig() {
+ return (EAttribute)db2RoutineEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Routine_ExtendedOptions() {
+ return (EReference)db2RoutineEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Routine_RoutineExtensions() {
+ return (EReference)db2RoutineEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2DatabaseManager() {
+ return db2DatabaseManagerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2DatabaseManager_Databases() {
+ return (EReference)db2DatabaseManagerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2DatabaseManager_Db2Process() {
+ return (EReference)db2DatabaseManagerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2DatabaseManager_Server() {
+ return (EReference)db2DatabaseManagerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2DatabaseManager_Cluster() {
+ return (EReference)db2DatabaseManagerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2View() {
+ return db2ViewEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2View_Operative() {
+ return (EAttribute)db2ViewEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2ApplicationProcess() {
+ return db2ApplicationProcessEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ApplicationProcess_IsolationLevel() {
+ return (EAttribute)db2ApplicationProcessEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2ApplicationProcess_UnitOfWork() {
+ return (EReference)db2ApplicationProcessEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Transaction() {
+ return db2TransactionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2SystemSchema() {
+ return db2SystemSchemaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Source() {
+ return db2SourceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Source_FileName() {
+ return (EAttribute)db2SourceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Source_PackageName() {
+ return (EAttribute)db2SourceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Source_Db2PackageName() {
+ return (EAttribute)db2SourceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Source_LastModified() {
+ return (EAttribute)db2SourceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Source_Supporting() {
+ return (EReference)db2SourceEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Source_Primary() {
+ return (EReference)db2SourceEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2AccessPlan() {
+ return db2AccessPlanEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2UserDefinedFunction() {
+ return db2UserDefinedFunctionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Method() {
+ return db2MethodEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Method_ReturnsSelfAsResult() {
+ return (EAttribute)db2MethodEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Method_Implemented() {
+ return (EAttribute)db2MethodEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2ExtendedOptions() {
+ return db2ExtendedOptionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_ClasspathCompileJars() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_PreCompileOpts() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_ForDebug() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_Built() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_CompileOpts() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_LinkOpts() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_BindOpts() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ExtendedOptions_Colid() {
+ return (EAttribute)db2ExtendedOptionsEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Alias() {
+ return db2AliasEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Alias_AliasedTable() {
+ return (EReference)db2AliasEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2MaterializedQueryTable() {
+ return db2MaterializedQueryTableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2MaterializedQueryTable_Refresh() {
+ return (EAttribute)db2MaterializedQueryTableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2MaterializedQueryTable_OptimizeQuery() {
+ return (EAttribute)db2MaterializedQueryTableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2MaterializedQueryTable_MaintainedBy() {
+ return (EAttribute)db2MaterializedQueryTableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2MaterializedQueryTable_ActivateRowAccessControl() {
+ return (EAttribute)db2MaterializedQueryTableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2MaterializedQueryTable_ActivateColumnAccessControl() {
+ return (EAttribute)db2MaterializedQueryTableEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2MaterializedQueryTable_Masks() {
+ return (EReference)db2MaterializedQueryTableEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2MaterializedQueryTable_Permissions() {
+ return (EReference)db2MaterializedQueryTableEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Index() {
+ return db2IndexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Index_IndexType() {
+ return (EAttribute)db2IndexEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Index_BusPeriodWithoutOverlap() {
+ return (EAttribute)db2IndexEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Index_EncodedVector() {
+ return (EAttribute)db2IndexEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Index_DB2MultidimensionalIndex() {
+ return (EReference)db2IndexEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2MultidimensionalIndex() {
+ return db2MultidimensionalIndexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2MultidimensionalIndex_DimensionIndexes() {
+ return (EReference)db2MultidimensionalIndexEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Function() {
+ return db2FunctionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_FinalCall() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_ScratchPad() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_ScratchPadLength() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_FunctionType() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_Predicate() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_ExternalAction() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_Cardinality() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_AllowParallel() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_ReturnClause() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_Origin() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_InheritLockRequest() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_Dialect() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_Inline() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_Version() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Function_Secured() {
+ return (EAttribute)db2FunctionEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2JavaOptions() {
+ return db2JavaOptionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2JavaOptions_ClassName() {
+ return (EAttribute)db2JavaOptionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2JavaOptions_MethodName() {
+ return (EAttribute)db2JavaOptionsEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2JavaOptions_Sqlj() {
+ return (EAttribute)db2JavaOptionsEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2JavaOptions_Procedure() {
+ return (EReference)db2JavaOptionsEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2JavaOptions_Jar() {
+ return (EReference)db2JavaOptionsEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2ProcedureDeploy() {
+ return db2ProcedureDeployEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2ProcedureDeploy_FileName() {
+ return (EAttribute)db2ProcedureDeployEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2OLAPObject() {
+ return db2OLAPObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2OLAPObject_Schema() {
+ return (EReference)db2OLAPObjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2RoutineExtension() {
+ return db2RoutineExtensionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2IdentitySpecifier() {
+ return db2IdentitySpecifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2IdentitySpecifier_Cache() {
+ return (EAttribute)db2IdentitySpecifierEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2IdentitySpecifier_Order() {
+ return (EAttribute)db2IdentitySpecifierEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2IdentitySpecifier_SystemGenerated() {
+ return (EAttribute)db2IdentitySpecifierEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2IdentitySpecifier_RestartValue() {
+ return (EAttribute)db2IdentitySpecifierEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Jar() {
+ return db2JarEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Jar_FileName() {
+ return (EAttribute)db2JarEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Jar_Path() {
+ return (EAttribute)db2JarEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Jar_Owner() {
+ return (EAttribute)db2JarEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Jar_CreatedTS() {
+ return (EAttribute)db2JarEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Jar_AlteredTS() {
+ return (EAttribute)db2JarEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Jar_Procedures() {
+ return (EReference)db2JarEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Jar_Schema() {
+ return (EReference)db2JarEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Column() {
+ return db2ColumnEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Column_GenerationType() {
+ return (EAttribute)db2ColumnEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Column_RowChangeTimestamp() {
+ return (EAttribute)db2ColumnEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Column_RowBegin() {
+ return (EAttribute)db2ColumnEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Column_RowEnd() {
+ return (EAttribute)db2ColumnEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Column_TransStartID() {
+ return (EAttribute)db2ColumnEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Column_BeginPeriod() {
+ return (EReference)db2ColumnEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Column_EndPeriod() {
+ return (EReference)db2ColumnEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2XSRObject() {
+ return db2XSRObjectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2XSRObject_Schema() {
+ return (EReference)db2XSRObjectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2XMLSchema() {
+ return db2XMLSchemaEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2XMLSchema_Decomposition() {
+ return (EAttribute)db2XMLSchemaEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2XMLSchema_Status() {
+ return (EAttribute)db2XMLSchemaEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2XMLSchema_XmlSchemaDocs() {
+ return (EReference)db2XMLSchemaEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2XMLSchemaDocument() {
+ return db2XMLSchemaDocumentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2XMLSchemaDocument_FileName() {
+ return (EAttribute)db2XMLSchemaDocumentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2XMLSchemaDocument_SchemaLocation() {
+ return (EAttribute)db2XMLSchemaDocumentEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2XMLSchemaDocument_TargetNamespace() {
+ return (EAttribute)db2XMLSchemaDocumentEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2XMLSchemaDocument_Primary() {
+ return (EAttribute)db2XMLSchemaDocumentEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2XMLSchemaDocument_XmlSchema() {
+ return (EReference)db2XMLSchemaDocumentEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2XMLSchemaDocument_XmlSchemaDocProperties() {
+ return (EReference)db2XMLSchemaDocumentEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2XMLSchemaDocProperties() {
+ return db2XMLSchemaDocPropertiesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2XMLSchemaDocProperties_Value() {
+ return (EAttribute)db2XMLSchemaDocPropertiesEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2XMLSchemaDocProperties_XmlSchemaDoc() {
+ return (EReference)db2XMLSchemaDocPropertiesEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2PackageStatement() {
+ return db2PackageStatementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2PackageStatement_StatementNumber() {
+ return (EAttribute)db2PackageStatementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2PackageStatement_SectionNumber() {
+ return (EAttribute)db2PackageStatementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2PackageStatement_Package() {
+ return (EReference)db2PackageStatementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2PackageStatement_SqlStatement() {
+ return (EReference)db2PackageStatementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2DistinctUserDefinedType() {
+ return db2DistinctUserDefinedTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Period() {
+ return db2PeriodEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Period_Type() {
+ return (EAttribute)db2PeriodEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Period_BeginColumn() {
+ return (EReference)db2PeriodEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Period_EndColumn() {
+ return (EReference)db2PeriodEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Period_Table() {
+ return (EReference)db2PeriodEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Cluster() {
+ return db2ClusterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Cluster_Level() {
+ return (EAttribute)db2ClusterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Cluster_Instance() {
+ return (EReference)db2ClusterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Cluster_Members() {
+ return (EReference)db2ClusterEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Member() {
+ return db2MemberEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Member_Id() {
+ return (EAttribute)db2MemberEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Member_HomeHost() {
+ return (EAttribute)db2MemberEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Member_CurrentHost() {
+ return (EAttribute)db2MemberEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Member_State() {
+ return (EAttribute)db2MemberEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Member_Cluster() {
+ return (EReference)db2MemberEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2UniqueConstraintExtension() {
+ return db2UniqueConstraintExtensionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2UniqueConstraintExtension_BusPeriodWithoutOverlap() {
+ return (EAttribute)db2UniqueConstraintExtensionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Mask() {
+ return db2MaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Mask_CorrelationName() {
+ return (EAttribute)db2MaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Mask_CaseExpression() {
+ return (EReference)db2MaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Mask_Enable() {
+ return (EAttribute)db2MaskEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Mask_Schema() {
+ return (EReference)db2MaskEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Mask_SubjectTable() {
+ return (EReference)db2MaskEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Mask_SubjectMQT() {
+ return (EReference)db2MaskEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Mask_SubjectColumn() {
+ return (EReference)db2MaskEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDB2Permission() {
+ return db2PermissionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Permission_CorrelationName() {
+ return (EAttribute)db2PermissionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Permission_SearchCondition() {
+ return (EReference)db2PermissionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDB2Permission_Enable() {
+ return (EAttribute)db2PermissionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Permission_Schema() {
+ return (EReference)db2PermissionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Permission_SubjectTable() {
+ return (EReference)db2PermissionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDB2Permission_SubjectMQT() {
+ return (EReference)db2PermissionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getIsolationLevelType() {
+ return isolationLevelTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDB2IndexType() {
+ return db2IndexTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDataCaptureType() {
+ return dataCaptureTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getUnitType() {
+ return unitTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getGenerateType() {
+ return generateTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDB2XMLSchemaDecomposition() {
+ return db2XMLSchemaDecompositionEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDB2XMLSchemaStatus() {
+ return db2XMLSchemaStatusEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getOriginType() {
+ return originTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getReoptType() {
+ return reoptTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getSourceDialect() {
+ return sourceDialectEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDB2PeriodType() {
+ return db2PeriodTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getDB2TableOrganization() {
+ return db2TableOrganizationEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ModelFactory getDB2ModelFactory() {
+ return (DB2ModelFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ db2DatabaseEClass = createEClass(DB2_DATABASE);
+ createEAttribute(db2DatabaseEClass, DB2_DATABASE__PARTITIONED);
+ createEAttribute(db2DatabaseEClass, DB2_DATABASE__DEFAULT_ORGANIZE_BY_ROW);
+
+ db2PackageEClass = createEClass(DB2_PACKAGE);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__OPERATIVE);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__VALID);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__VERSION);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__DEFAULT_SCHEMA);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__SQL_PATH);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__REOPT_VAR);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__ISOLATION);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__UNIQUE_ID);
+ createEAttribute(db2PackageEClass, DB2_PACKAGE__LAST_BIND_TS);
+ createEReference(db2PackageEClass, DB2_PACKAGE__SCHEMA);
+ createEReference(db2PackageEClass, DB2_PACKAGE__STATEMENTS);
+
+ db2TableEClass = createEClass(DB2_TABLE);
+ createEAttribute(db2TableEClass, DB2_TABLE__DATA_CAPTURE);
+ createEAttribute(db2TableEClass, DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL);
+ createEAttribute(db2TableEClass, DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL);
+ createEAttribute(db2TableEClass, DB2_TABLE__ORGANIZE_BY);
+ createEReference(db2TableEClass, DB2_TABLE__PACKAGES);
+ createEReference(db2TableEClass, DB2_TABLE__PERIODS);
+ createEReference(db2TableEClass, DB2_TABLE__HISTORY_TABLE);
+ createEReference(db2TableEClass, DB2_TABLE__TEMPORAL_TABLE);
+ createEReference(db2TableEClass, DB2_TABLE__MASKS);
+ createEReference(db2TableEClass, DB2_TABLE__PERMISSIONS);
+
+ db2TriggerEClass = createEClass(DB2_TRIGGER);
+ createEAttribute(db2TriggerEClass, DB2_TRIGGER__OPERATIVE);
+ createEAttribute(db2TriggerEClass, DB2_TRIGGER__SECURED);
+
+ db2ProcedureEClass = createEClass(DB2_PROCEDURE);
+ createEAttribute(db2ProcedureEClass, DB2_PROCEDURE__MODEL_RESULT_SETS);
+ createEAttribute(db2ProcedureEClass, DB2_PROCEDURE__NULL_INPUT);
+ createEAttribute(db2ProcedureEClass, DB2_PROCEDURE__VERSION);
+ createEAttribute(db2ProcedureEClass, DB2_PROCEDURE__DIALECT);
+ createEAttribute(db2ProcedureEClass, DB2_PROCEDURE__EXTERNAL_ACTION);
+ createEReference(db2ProcedureEClass, DB2_PROCEDURE__RETURN);
+ createEReference(db2ProcedureEClass, DB2_PROCEDURE__JAVA_OPTIONS);
+ createEReference(db2ProcedureEClass, DB2_PROCEDURE__DEPLOY);
+
+ db2SchemaEClass = createEClass(DB2_SCHEMA);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__ACCESS_PLANS);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__OLAP_OBJECTS);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__JARS);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__XSR_OBJECTS);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__PACKAGES);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__MASKS);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__PERMISSIONS);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__MODULES);
+ createEReference(db2SchemaEClass, DB2_SCHEMA__GLOBAL_VARIABLES);
+
+ db2RoutineEClass = createEClass(DB2_ROUTINE);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__FENCED);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__THREADSAFE);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__DB_INFO);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__IMPLICIT_SCHEMA);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__FEDERATED);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__PARM_CCSID);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__SPECIAL_REGISTER);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__CHANGE_STATE);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__DEBUG_ID);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__PROGRAM_TYPE);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__ORIG_SCHEMA_NAME);
+ createEAttribute(db2RoutineEClass, DB2_ROUTINE__ORIG_PARM_SIG);
+ createEReference(db2RoutineEClass, DB2_ROUTINE__EXTENDED_OPTIONS);
+ createEReference(db2RoutineEClass, DB2_ROUTINE__ROUTINE_EXTENSIONS);
+
+ db2DatabaseManagerEClass = createEClass(DB2_DATABASE_MANAGER);
+ createEReference(db2DatabaseManagerEClass, DB2_DATABASE_MANAGER__DATABASES);
+ createEReference(db2DatabaseManagerEClass, DB2_DATABASE_MANAGER__DB2_PROCESS);
+ createEReference(db2DatabaseManagerEClass, DB2_DATABASE_MANAGER__SERVER);
+ createEReference(db2DatabaseManagerEClass, DB2_DATABASE_MANAGER__CLUSTER);
+
+ db2ViewEClass = createEClass(DB2_VIEW);
+ createEAttribute(db2ViewEClass, DB2_VIEW__OPERATIVE);
+
+ db2ApplicationProcessEClass = createEClass(DB2_APPLICATION_PROCESS);
+ createEAttribute(db2ApplicationProcessEClass, DB2_APPLICATION_PROCESS__ISOLATION_LEVEL);
+ createEReference(db2ApplicationProcessEClass, DB2_APPLICATION_PROCESS__UNIT_OF_WORK);
+
+ db2TransactionEClass = createEClass(DB2_TRANSACTION);
+
+ db2SystemSchemaEClass = createEClass(DB2_SYSTEM_SCHEMA);
+
+ db2SourceEClass = createEClass(DB2_SOURCE);
+ createEAttribute(db2SourceEClass, DB2_SOURCE__FILE_NAME);
+ createEAttribute(db2SourceEClass, DB2_SOURCE__PACKAGE_NAME);
+ createEAttribute(db2SourceEClass, DB2_SOURCE__DB2_PACKAGE_NAME);
+ createEAttribute(db2SourceEClass, DB2_SOURCE__LAST_MODIFIED);
+ createEReference(db2SourceEClass, DB2_SOURCE__SUPPORTING);
+ createEReference(db2SourceEClass, DB2_SOURCE__PRIMARY);
+
+ db2AccessPlanEClass = createEClass(DB2_ACCESS_PLAN);
+
+ db2UserDefinedFunctionEClass = createEClass(DB2_USER_DEFINED_FUNCTION);
+
+ db2MethodEClass = createEClass(DB2_METHOD);
+ createEAttribute(db2MethodEClass, DB2_METHOD__RETURNS_SELF_AS_RESULT);
+ createEAttribute(db2MethodEClass, DB2_METHOD__IMPLEMENTED);
+
+ db2ExtendedOptionsEClass = createEClass(DB2_EXTENDED_OPTIONS);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__CLASSPATH_COMPILE_JARS);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__PRE_COMPILE_OPTS);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__FOR_DEBUG);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__BUILT);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__COMPILE_OPTS);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__LINK_OPTS);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__BIND_OPTS);
+ createEAttribute(db2ExtendedOptionsEClass, DB2_EXTENDED_OPTIONS__COLID);
+
+ db2AliasEClass = createEClass(DB2_ALIAS);
+ createEReference(db2AliasEClass, DB2_ALIAS__ALIASED_TABLE);
+
+ db2MaterializedQueryTableEClass = createEClass(DB2_MATERIALIZED_QUERY_TABLE);
+ createEAttribute(db2MaterializedQueryTableEClass, DB2_MATERIALIZED_QUERY_TABLE__REFRESH);
+ createEAttribute(db2MaterializedQueryTableEClass, DB2_MATERIALIZED_QUERY_TABLE__OPTIMIZE_QUERY);
+ createEAttribute(db2MaterializedQueryTableEClass, DB2_MATERIALIZED_QUERY_TABLE__MAINTAINED_BY);
+ createEAttribute(db2MaterializedQueryTableEClass, DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_ROW_ACCESS_CONTROL);
+ createEAttribute(db2MaterializedQueryTableEClass, DB2_MATERIALIZED_QUERY_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL);
+ createEReference(db2MaterializedQueryTableEClass, DB2_MATERIALIZED_QUERY_TABLE__MASKS);
+ createEReference(db2MaterializedQueryTableEClass, DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS);
+
+ db2IndexEClass = createEClass(DB2_INDEX);
+ createEAttribute(db2IndexEClass, DB2_INDEX__INDEX_TYPE);
+ createEAttribute(db2IndexEClass, DB2_INDEX__BUS_PERIOD_WITHOUT_OVERLAP);
+ createEAttribute(db2IndexEClass, DB2_INDEX__ENCODED_VECTOR);
+ createEReference(db2IndexEClass, DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX);
+
+ db2MultidimensionalIndexEClass = createEClass(DB2_MULTIDIMENSIONAL_INDEX);
+ createEReference(db2MultidimensionalIndexEClass, DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES);
+
+ db2FunctionEClass = createEClass(DB2_FUNCTION);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__FINAL_CALL);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__SCRATCH_PAD);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__SCRATCH_PAD_LENGTH);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__FUNCTION_TYPE);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__PREDICATE);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__EXTERNAL_ACTION);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__CARDINALITY);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__ALLOW_PARALLEL);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__RETURN_CLAUSE);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__ORIGIN);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__INHERIT_LOCK_REQUEST);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__DIALECT);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__INLINE);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__VERSION);
+ createEAttribute(db2FunctionEClass, DB2_FUNCTION__SECURED);
+
+ db2JavaOptionsEClass = createEClass(DB2_JAVA_OPTIONS);
+ createEAttribute(db2JavaOptionsEClass, DB2_JAVA_OPTIONS__CLASS_NAME);
+ createEAttribute(db2JavaOptionsEClass, DB2_JAVA_OPTIONS__METHOD_NAME);
+ createEAttribute(db2JavaOptionsEClass, DB2_JAVA_OPTIONS__SQLJ);
+ createEReference(db2JavaOptionsEClass, DB2_JAVA_OPTIONS__PROCEDURE);
+ createEReference(db2JavaOptionsEClass, DB2_JAVA_OPTIONS__JAR);
+
+ db2ProcedureDeployEClass = createEClass(DB2_PROCEDURE_DEPLOY);
+ createEAttribute(db2ProcedureDeployEClass, DB2_PROCEDURE_DEPLOY__FILE_NAME);
+
+ db2OLAPObjectEClass = createEClass(DB2OLAP_OBJECT);
+ createEReference(db2OLAPObjectEClass, DB2OLAP_OBJECT__SCHEMA);
+
+ db2RoutineExtensionEClass = createEClass(DB2_ROUTINE_EXTENSION);
+
+ db2IdentitySpecifierEClass = createEClass(DB2_IDENTITY_SPECIFIER);
+ createEAttribute(db2IdentitySpecifierEClass, DB2_IDENTITY_SPECIFIER__CACHE);
+ createEAttribute(db2IdentitySpecifierEClass, DB2_IDENTITY_SPECIFIER__ORDER);
+ createEAttribute(db2IdentitySpecifierEClass, DB2_IDENTITY_SPECIFIER__SYSTEM_GENERATED);
+ createEAttribute(db2IdentitySpecifierEClass, DB2_IDENTITY_SPECIFIER__RESTART_VALUE);
+
+ db2JarEClass = createEClass(DB2_JAR);
+ createEAttribute(db2JarEClass, DB2_JAR__FILE_NAME);
+ createEAttribute(db2JarEClass, DB2_JAR__PATH);
+ createEAttribute(db2JarEClass, DB2_JAR__OWNER);
+ createEAttribute(db2JarEClass, DB2_JAR__CREATED_TS);
+ createEAttribute(db2JarEClass, DB2_JAR__ALTERED_TS);
+ createEReference(db2JarEClass, DB2_JAR__PROCEDURES);
+ createEReference(db2JarEClass, DB2_JAR__SCHEMA);
+
+ db2ColumnEClass = createEClass(DB2_COLUMN);
+ createEAttribute(db2ColumnEClass, DB2_COLUMN__GENERATION_TYPE);
+ createEAttribute(db2ColumnEClass, DB2_COLUMN__ROW_CHANGE_TIMESTAMP);
+ createEAttribute(db2ColumnEClass, DB2_COLUMN__ROW_BEGIN);
+ createEAttribute(db2ColumnEClass, DB2_COLUMN__ROW_END);
+ createEAttribute(db2ColumnEClass, DB2_COLUMN__TRANS_START_ID);
+ createEReference(db2ColumnEClass, DB2_COLUMN__BEGIN_PERIOD);
+ createEReference(db2ColumnEClass, DB2_COLUMN__END_PERIOD);
+
+ db2XSRObjectEClass = createEClass(DB2XSR_OBJECT);
+ createEReference(db2XSRObjectEClass, DB2XSR_OBJECT__SCHEMA);
+
+ db2XMLSchemaEClass = createEClass(DB2XML_SCHEMA);
+ createEAttribute(db2XMLSchemaEClass, DB2XML_SCHEMA__DECOMPOSITION);
+ createEAttribute(db2XMLSchemaEClass, DB2XML_SCHEMA__STATUS);
+ createEReference(db2XMLSchemaEClass, DB2XML_SCHEMA__XML_SCHEMA_DOCS);
+
+ db2XMLSchemaDocumentEClass = createEClass(DB2XML_SCHEMA_DOCUMENT);
+ createEAttribute(db2XMLSchemaDocumentEClass, DB2XML_SCHEMA_DOCUMENT__FILE_NAME);
+ createEAttribute(db2XMLSchemaDocumentEClass, DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION);
+ createEAttribute(db2XMLSchemaDocumentEClass, DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE);
+ createEAttribute(db2XMLSchemaDocumentEClass, DB2XML_SCHEMA_DOCUMENT__PRIMARY);
+ createEReference(db2XMLSchemaDocumentEClass, DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA);
+ createEReference(db2XMLSchemaDocumentEClass, DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES);
+
+ db2XMLSchemaDocPropertiesEClass = createEClass(DB2XML_SCHEMA_DOC_PROPERTIES);
+ createEAttribute(db2XMLSchemaDocPropertiesEClass, DB2XML_SCHEMA_DOC_PROPERTIES__VALUE);
+ createEReference(db2XMLSchemaDocPropertiesEClass, DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC);
+
+ db2PackageStatementEClass = createEClass(DB2_PACKAGE_STATEMENT);
+ createEAttribute(db2PackageStatementEClass, DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER);
+ createEAttribute(db2PackageStatementEClass, DB2_PACKAGE_STATEMENT__SECTION_NUMBER);
+ createEReference(db2PackageStatementEClass, DB2_PACKAGE_STATEMENT__PACKAGE);
+ createEReference(db2PackageStatementEClass, DB2_PACKAGE_STATEMENT__SQL_STATEMENT);
+
+ db2DistinctUserDefinedTypeEClass = createEClass(DB2_DISTINCT_USER_DEFINED_TYPE);
+
+ db2PeriodEClass = createEClass(DB2_PERIOD);
+ createEAttribute(db2PeriodEClass, DB2_PERIOD__TYPE);
+ createEReference(db2PeriodEClass, DB2_PERIOD__BEGIN_COLUMN);
+ createEReference(db2PeriodEClass, DB2_PERIOD__END_COLUMN);
+ createEReference(db2PeriodEClass, DB2_PERIOD__TABLE);
+
+ db2ClusterEClass = createEClass(DB2_CLUSTER);
+ createEAttribute(db2ClusterEClass, DB2_CLUSTER__LEVEL);
+ createEReference(db2ClusterEClass, DB2_CLUSTER__INSTANCE);
+ createEReference(db2ClusterEClass, DB2_CLUSTER__MEMBERS);
+
+ db2MemberEClass = createEClass(DB2_MEMBER);
+ createEAttribute(db2MemberEClass, DB2_MEMBER__ID);
+ createEAttribute(db2MemberEClass, DB2_MEMBER__HOME_HOST);
+ createEAttribute(db2MemberEClass, DB2_MEMBER__CURRENT_HOST);
+ createEAttribute(db2MemberEClass, DB2_MEMBER__STATE);
+ createEReference(db2MemberEClass, DB2_MEMBER__CLUSTER);
+
+ db2UniqueConstraintExtensionEClass = createEClass(DB2_UNIQUE_CONSTRAINT_EXTENSION);
+ createEAttribute(db2UniqueConstraintExtensionEClass, DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP);
+
+ db2MaskEClass = createEClass(DB2_MASK);
+ createEAttribute(db2MaskEClass, DB2_MASK__CORRELATION_NAME);
+ createEReference(db2MaskEClass, DB2_MASK__CASE_EXPRESSION);
+ createEAttribute(db2MaskEClass, DB2_MASK__ENABLE);
+ createEReference(db2MaskEClass, DB2_MASK__SCHEMA);
+ createEReference(db2MaskEClass, DB2_MASK__SUBJECT_TABLE);
+ createEReference(db2MaskEClass, DB2_MASK__SUBJECT_MQT);
+ createEReference(db2MaskEClass, DB2_MASK__SUBJECT_COLUMN);
+
+ db2PermissionEClass = createEClass(DB2_PERMISSION);
+ createEAttribute(db2PermissionEClass, DB2_PERMISSION__CORRELATION_NAME);
+ createEReference(db2PermissionEClass, DB2_PERMISSION__SEARCH_CONDITION);
+ createEAttribute(db2PermissionEClass, DB2_PERMISSION__ENABLE);
+ createEReference(db2PermissionEClass, DB2_PERMISSION__SCHEMA);
+ createEReference(db2PermissionEClass, DB2_PERMISSION__SUBJECT_TABLE);
+ createEReference(db2PermissionEClass, DB2_PERMISSION__SUBJECT_MQT);
+
+ // Create enums
+ isolationLevelTypeEEnum = createEEnum(ISOLATION_LEVEL_TYPE);
+ db2IndexTypeEEnum = createEEnum(DB2_INDEX_TYPE);
+ dataCaptureTypeEEnum = createEEnum(DATA_CAPTURE_TYPE);
+ unitTypeEEnum = createEEnum(UNIT_TYPE);
+ generateTypeEEnum = createEEnum(GENERATE_TYPE);
+ db2XMLSchemaDecompositionEEnum = createEEnum(DB2XML_SCHEMA_DECOMPOSITION);
+ db2XMLSchemaStatusEEnum = createEEnum(DB2XML_SCHEMA_STATUS);
+ originTypeEEnum = createEEnum(ORIGIN_TYPE);
+ reoptTypeEEnum = createEEnum(REOPT_TYPE);
+ sourceDialectEEnum = createEEnum(SOURCE_DIALECT);
+ db2PeriodTypeEEnum = createEEnum(DB2_PERIOD_TYPE);
+ db2TableOrganizationEEnum = createEEnum(DB2_TABLE_ORGANIZATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ SQLSchemaPackage theSQLSchemaPackage = (SQLSchemaPackage)EPackage.Registry.INSTANCE.getEPackage(SQLSchemaPackage.eNS_URI);
+ SQLTablesPackage theSQLTablesPackage = (SQLTablesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLTablesPackage.eNS_URI);
+ SQLRoutinesPackage theSQLRoutinesPackage = (SQLRoutinesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLRoutinesPackage.eNS_URI);
+ SQLDataTypesPackage theSQLDataTypesPackage = (SQLDataTypesPackage)EPackage.Registry.INSTANCE.getEPackage(SQLDataTypesPackage.eNS_URI);
+ SQLConstraintsPackage theSQLConstraintsPackage = (SQLConstraintsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLConstraintsPackage.eNS_URI);
+ EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
+ SQLStatementsPackage theSQLStatementsPackage = (SQLStatementsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLStatementsPackage.eNS_URI);
+ SQLExpressionsPackage theSQLExpressionsPackage = (SQLExpressionsPackage)EPackage.Registry.INSTANCE.getEPackage(SQLExpressionsPackage.eNS_URI);
+
+
+ // Add supertypes to classes
+ db2DatabaseEClass.getESuperTypes().add(theSQLSchemaPackage.getDatabase());
+ db2PackageEClass.getESuperTypes().add(this.getDB2AccessPlan());
+ db2TableEClass.getESuperTypes().add(theSQLTablesPackage.getPersistentTable());
+ db2TriggerEClass.getESuperTypes().add(theSQLTablesPackage.getTrigger());
+ db2TriggerEClass.getESuperTypes().add(this.getDB2AccessPlan());
+ db2ProcedureEClass.getESuperTypes().add(theSQLRoutinesPackage.getProcedure());
+ db2ProcedureEClass.getESuperTypes().add(this.getDB2Routine());
+ db2SchemaEClass.getESuperTypes().add(theSQLSchemaPackage.getSchema());
+ db2RoutineEClass.getESuperTypes().add(theSQLRoutinesPackage.getRoutine());
+ db2RoutineEClass.getESuperTypes().add(this.getDB2AccessPlan());
+ db2DatabaseManagerEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2ViewEClass.getESuperTypes().add(theSQLTablesPackage.getViewTable());
+ db2ApplicationProcessEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2TransactionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2SystemSchemaEClass.getESuperTypes().add(this.getDB2Schema());
+ db2SourceEClass.getESuperTypes().add(theSQLRoutinesPackage.getSource());
+ db2AccessPlanEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2UserDefinedFunctionEClass.getESuperTypes().add(theSQLRoutinesPackage.getUserDefinedFunction());
+ db2UserDefinedFunctionEClass.getESuperTypes().add(this.getDB2Function());
+ db2MethodEClass.getESuperTypes().add(theSQLRoutinesPackage.getMethod());
+ db2MethodEClass.getESuperTypes().add(this.getDB2Function());
+ db2ExtendedOptionsEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2AliasEClass.getESuperTypes().add(theSQLTablesPackage.getTable());
+ db2MaterializedQueryTableEClass.getESuperTypes().add(theSQLTablesPackage.getDerivedTable());
+ db2IndexEClass.getESuperTypes().add(theSQLConstraintsPackage.getIndex());
+ db2MultidimensionalIndexEClass.getESuperTypes().add(theSQLConstraintsPackage.getIndex());
+ db2FunctionEClass.getESuperTypes().add(this.getDB2Routine());
+ db2JavaOptionsEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2ProcedureDeployEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2OLAPObjectEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2RoutineExtensionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2IdentitySpecifierEClass.getESuperTypes().add(theSQLSchemaPackage.getIdentitySpecifier());
+ db2JarEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2ColumnEClass.getESuperTypes().add(theSQLTablesPackage.getColumn());
+ db2XSRObjectEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2XMLSchemaEClass.getESuperTypes().add(this.getDB2XSRObject());
+ db2XMLSchemaDocumentEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2XMLSchemaDocPropertiesEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2PackageStatementEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2DistinctUserDefinedTypeEClass.getESuperTypes().add(theSQLDataTypesPackage.getDistinctUserDefinedType());
+ db2ClusterEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2MemberEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2UniqueConstraintExtensionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2UniqueConstraintExtensionEClass.getESuperTypes().add(theSQLSchemaPackage.getObjectExtension());
+ db2MaskEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+ db2PermissionEClass.getESuperTypes().add(theSQLSchemaPackage.getSQLObject());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(db2DatabaseEClass, DB2Database.class, "DB2Database", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Database_Partitioned(), ecorePackage.getEBoolean(), "partitioned", null, 0, 1, DB2Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Database_DefaultOrganizeByRow(), ecorePackage.getEBoolean(), "defaultOrganizeByRow", "True", 0, 1, DB2Database.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+ initEClass(db2PackageEClass, DB2Package.class, "DB2Package", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Package_Operative(), ecorePackage.getEBoolean(), "operative", "true", 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Package_Valid(), ecorePackage.getEString(), "valid", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Package_Version(), ecorePackage.getEString(), "version", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Package_DefaultSchema(), ecorePackage.getEString(), "defaultSchema", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Package_SqlPath(), ecorePackage.getEString(), "sqlPath", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Package_ReoptVar(), this.getReoptType(), "reoptVar", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Package_Isolation(), this.getIsolationLevelType(), "isolation", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Package_UniqueID(), ecorePackage.getEString(), "uniqueID", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Package_LastBindTS(), ecorePackage.getEString(), "lastBindTS", null, 0, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Package_Schema(), this.getDB2Schema(), this.getDB2Schema_Packages(), "schema", null, 1, 1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Package_Statements(), this.getDB2PackageStatement(), this.getDB2PackageStatement_Package(), "statements", null, 0, -1, DB2Package.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2TableEClass, DB2Table.class, "DB2Table", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Table_DataCapture(), this.getDataCaptureType(), "dataCapture", null, 0, 1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Table_ActivateRowAccessControl(), ecorePackage.getEBoolean(), "activateRowAccessControl", "False", 0, 1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Table_ActivateColumnAccessControl(), ecorePackage.getEBoolean(), "activateColumnAccessControl", "False", 0, 1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Table_OrganizeBy(), this.getDB2TableOrganization(), "organizeBy", null, 0, 1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Table_Packages(), this.getDB2Package(), null, "packages", null, 0, -1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Table_Periods(), this.getDB2Period(), this.getDB2Period_Table(), "periods", null, 0, -1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Table_HistoryTable(), this.getDB2Table(), this.getDB2Table_TemporalTable(), "historyTable", null, 0, 1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Table_TemporalTable(), this.getDB2Table(), this.getDB2Table_HistoryTable(), "temporalTable", null, 0, 1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Table_Masks(), this.getDB2Mask(), this.getDB2Mask_SubjectTable(), "masks", null, 0, -1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Table_Permissions(), this.getDB2Permission(), this.getDB2Permission_SubjectTable(), "permissions", null, 0, -1, DB2Table.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2TriggerEClass, DB2Trigger.class, "DB2Trigger", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Trigger_Operative(), ecorePackage.getEBoolean(), "operative", "true", 0, 1, DB2Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Trigger_Secured(), ecorePackage.getEBoolean(), "secured", "False", 0, 1, DB2Trigger.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+ initEClass(db2ProcedureEClass, DB2Procedure.class, "DB2Procedure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Procedure_ModelResultSets(), ecorePackage.getEBoolean(), "modelResultSets", "false", 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Procedure_NullInput(), ecorePackage.getEBoolean(), "nullInput", null, 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Procedure_Version(), ecorePackage.getEString(), "version", null, 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Procedure_Dialect(), this.getSourceDialect(), "dialect", null, 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Procedure_ExternalAction(), ecorePackage.getEBoolean(), "externalAction", "true", 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getDB2Procedure_Return(), theSQLDataTypesPackage.getIntegerDataType(), null, "return", null, 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Procedure_JavaOptions(), this.getDB2JavaOptions(), this.getDB2JavaOptions_Procedure(), "javaOptions", null, 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Procedure_Deploy(), this.getDB2ProcedureDeploy(), null, "deploy", null, 0, 1, DB2Procedure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2SchemaEClass, DB2Schema.class, "DB2Schema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDB2Schema_AccessPlans(), this.getDB2AccessPlan(), null, "accessPlans", null, 0, -1, DB2Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Schema_OlapObjects(), this.getDB2OLAPObject(), this.getDB2OLAPObject_Schema(), "olapObjects", null, 0, -1, DB2Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Schema_Jars(), this.getDB2Jar(), this.getDB2Jar_Schema(), "jars", null, 0, -1, DB2Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Schema_XsrObjects(), this.getDB2XSRObject(), this.getDB2XSRObject_Schema(), "xsrObjects", null, 0, -1, DB2Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Schema_Packages(), this.getDB2Package(), this.getDB2Package_Schema(), "packages", null, 0, -1, DB2Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Schema_Masks(), this.getDB2Mask(), this.getDB2Mask_Schema(), "masks", null, 0, -1, DB2Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Schema_Permissions(), this.getDB2Permission(), this.getDB2Permission_Schema(), "permissions", null, 0, -1, DB2Schema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2RoutineEClass, DB2Routine.class, "DB2Routine", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_Fenced(), ecorePackage.getEString(), "fenced", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_Threadsafe(), ecorePackage.getEString(), "threadsafe", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_DbInfo(), ecorePackage.getEBoolean(), "dbInfo", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_ImplicitSchema(), ecorePackage.getEBoolean(), "implicitSchema", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_Federated(), ecorePackage.getEBoolean(), "federated", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_ParmCcsid(), ecorePackage.getEString(), "parmCcsid", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_SpecialRegister(), ecorePackage.getEString(), "specialRegister", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_ChangeState(), ecorePackage.getEInt(), "changeState", "0", 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Routine_DebugId(), ecorePackage.getEString(), "debugId", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_ProgramType(), ecorePackage.getEString(), "programType", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_OrigSchemaName(), ecorePackage.getEString(), "origSchemaName", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Routine_OrigParmSig(), ecorePackage.getEString(), "origParmSig", null, 0, 1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Routine_ExtendedOptions(), this.getDB2ExtendedOptions(), null, "extendedOptions", null, 1, -1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Routine_RoutineExtensions(), this.getDB2RoutineExtension(), null, "routineExtensions", null, 0, -1, DB2Routine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2DatabaseManagerEClass, DB2DatabaseManager.class, "DB2DatabaseManager", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDB2DatabaseManager_Databases(), this.getDB2Database(), null, "databases", null, 0, -1, DB2DatabaseManager.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2DatabaseManager_Db2Process(), this.getDB2ApplicationProcess(), null, "db2Process", null, 0, -1, DB2DatabaseManager.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2DatabaseManager_Cluster(), this.getDB2Cluster(), this.getDB2Cluster_Instance(), "cluster", null, 0, 1, DB2DatabaseManager.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2ViewEClass, DB2View.class, "DB2View", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2View_Operative(), ecorePackage.getEBoolean(), "operative", null, 0, 1, DB2View.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2ApplicationProcessEClass, DB2ApplicationProcess.class, "DB2ApplicationProcess", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2ApplicationProcess_IsolationLevel(), this.getIsolationLevelType(), "isolationLevel", null, 0, 1, DB2ApplicationProcess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2ApplicationProcess_UnitOfWork(), this.getDB2Transaction(), null, "unitOfWork", null, 0, 1, DB2ApplicationProcess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2TransactionEClass, DB2Transaction.class, "DB2Transaction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(db2SystemSchemaEClass, DB2SystemSchema.class, "DB2SystemSchema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(db2SourceEClass, DB2Source.class, "DB2Source", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Source_FileName(), ecorePackage.getEString(), "fileName", null, 0, 1, DB2Source.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Source_PackageName(), ecorePackage.getEString(), "packageName", null, 0, 1, DB2Source.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Source_Db2PackageName(), ecorePackage.getEString(), "db2PackageName", null, 0, 1, DB2Source.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Source_LastModified(), ecorePackage.getEString(), "lastModified", null, 0, 1, DB2Source.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Source_Supporting(), this.getDB2Source(), this.getDB2Source_Primary(), "supporting", null, 0, -1, DB2Source.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Source_Primary(), this.getDB2Source(), this.getDB2Source_Supporting(), "primary", null, 1, 1, DB2Source.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2AccessPlanEClass, DB2AccessPlan.class, "DB2AccessPlan", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(db2UserDefinedFunctionEClass, DB2UserDefinedFunction.class, "DB2UserDefinedFunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(db2MethodEClass, DB2Method.class, "DB2Method", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Method_ReturnsSelfAsResult(), ecorePackage.getEBoolean(), "returnsSelfAsResult", null, 0, 1, DB2Method.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Method_Implemented(), ecorePackage.getEBoolean(), "implemented", null, 0, 1, DB2Method.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2ExtendedOptionsEClass, DB2ExtendedOptions.class, "DB2ExtendedOptions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_ClasspathCompileJars(), ecorePackage.getEString(), "classpathCompileJars", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_PreCompileOpts(), ecorePackage.getEString(), "preCompileOpts", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_ForDebug(), ecorePackage.getEBoolean(), "forDebug", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_Built(), ecorePackage.getEBoolean(), "built", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_CompileOpts(), ecorePackage.getEString(), "compileOpts", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_LinkOpts(), ecorePackage.getEString(), "linkOpts", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_BindOpts(), ecorePackage.getEString(), "bindOpts", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2ExtendedOptions_Colid(), ecorePackage.getEString(), "colid", null, 0, 1, DB2ExtendedOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2AliasEClass, DB2Alias.class, "DB2Alias", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDB2Alias_AliasedTable(), theSQLTablesPackage.getTable(), null, "aliasedTable", null, 1, 1, DB2Alias.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2MaterializedQueryTableEClass, DB2MaterializedQueryTable.class, "DB2MaterializedQueryTable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2MaterializedQueryTable_OptimizeQuery(), ecorePackage.getEBoolean(), "optimizeQuery", "true", 0, 1, DB2MaterializedQueryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2MaterializedQueryTable_ActivateRowAccessControl(), ecorePackage.getEBoolean(), "activateRowAccessControl", "False", 0, 1, DB2MaterializedQueryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2MaterializedQueryTable_ActivateColumnAccessControl(), ecorePackage.getEBoolean(), "activateColumnAccessControl", "False", 0, 1, DB2MaterializedQueryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getDB2MaterializedQueryTable_Masks(), this.getDB2Mask(), this.getDB2Mask_SubjectMQT(), "masks", null, 0, -1, DB2MaterializedQueryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2MaterializedQueryTable_Permissions(), this.getDB2Permission(), this.getDB2Permission_SubjectMQT(), "permissions", null, 0, -1, DB2MaterializedQueryTable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2IndexEClass, DB2Index.class, "DB2Index", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Index_IndexType(), this.getDB2IndexType(), "indexType", null, 0, 1, DB2Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Index_BusPeriodWithoutOverlap(), ecorePackage.getEBoolean(), "busPeriodWithoutOverlap", "False", 0, 1, DB2Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Index_EncodedVector(), ecorePackage.getEBoolean(), "encodedVector", "False", 0, 1, DB2Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getDB2Index_DB2MultidimensionalIndex(), this.getDB2MultidimensionalIndex(), this.getDB2MultidimensionalIndex_DimensionIndexes(), "DB2MultidimensionalIndex", null, 1, 1, DB2Index.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2MultidimensionalIndexEClass, DB2MultidimensionalIndex.class, "DB2MultidimensionalIndex", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDB2MultidimensionalIndex_DimensionIndexes(), this.getDB2Index(), this.getDB2Index_DB2MultidimensionalIndex(), "dimensionIndexes", null, 1, -1, DB2MultidimensionalIndex.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2FunctionEClass, DB2Function.class, "DB2Function", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Function_FinalCall(), ecorePackage.getEBoolean(), "finalCall", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_ScratchPad(), ecorePackage.getEBoolean(), "scratchPad", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_ScratchPadLength(), ecorePackage.getEInt(), "scratchPadLength", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_FunctionType(), ecorePackage.getEString(), "functionType", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_Predicate(), ecorePackage.getEString(), "predicate", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_ExternalAction(), ecorePackage.getEBoolean(), "externalAction", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_Cardinality(), ecorePackage.getEInt(), "cardinality", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_AllowParallel(), ecorePackage.getEBoolean(), "allowParallel", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_ReturnClause(), ecorePackage.getEString(), "returnClause", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_Origin(), this.getOriginType(), "origin", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_InheritLockRequest(), ecorePackage.getEBoolean(), "inheritLockRequest", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_Dialect(), this.getSourceDialect(), "dialect", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_Inline(), ecorePackage.getEBoolean(), "inline", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_Version(), ecorePackage.getEString(), "version", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Function_Secured(), ecorePackage.getEBoolean(), "secured", null, 0, 1, DB2Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2JavaOptionsEClass, DB2JavaOptions.class, "DB2JavaOptions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2JavaOptions_ClassName(), ecorePackage.getEString(), "className", null, 0, 1, DB2JavaOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2JavaOptions_MethodName(), ecorePackage.getEString(), "methodName", null, 0, 1, DB2JavaOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2JavaOptions_Sqlj(), ecorePackage.getEBoolean(), "sqlj", null, 0, 1, DB2JavaOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2JavaOptions_Procedure(), this.getDB2Procedure(), this.getDB2Procedure_JavaOptions(), "procedure", null, 1, 1, DB2JavaOptions.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2JavaOptions_Jar(), this.getDB2Jar(), this.getDB2Jar_Procedures(), "jar", null, 0, 1, DB2JavaOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2ProcedureDeployEClass, DB2ProcedureDeploy.class, "DB2ProcedureDeploy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2ProcedureDeploy_FileName(), ecorePackage.getEString(), "fileName", null, 0, 1, DB2ProcedureDeploy.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2OLAPObjectEClass, DB2OLAPObject.class, "DB2OLAPObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDB2OLAPObject_Schema(), this.getDB2Schema(), this.getDB2Schema_OlapObjects(), "schema", null, 1, 1, DB2OLAPObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2RoutineExtensionEClass, DB2RoutineExtension.class, "DB2RoutineExtension", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(db2IdentitySpecifierEClass, DB2IdentitySpecifier.class, "DB2IdentitySpecifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2IdentitySpecifier_Cache(), ecorePackage.getEInt(), "cache", "20", 0, 1, DB2IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2IdentitySpecifier_Order(), ecorePackage.getEBoolean(), "order", null, 0, 1, DB2IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2IdentitySpecifier_SystemGenerated(), ecorePackage.getEBoolean(), "systemGenerated", null, 0, 1, DB2IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2IdentitySpecifier_RestartValue(), theEcorePackage.getEBigInteger(), "restartValue", null, 0, 1, DB2IdentitySpecifier.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2JarEClass, DB2Jar.class, "DB2Jar", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Jar_FileName(), ecorePackage.getEString(), "fileName", null, 0, 1, DB2Jar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Jar_Path(), ecorePackage.getEString(), "path", null, 0, 1, DB2Jar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Jar_Owner(), ecorePackage.getEString(), "owner", null, 0, 1, DB2Jar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Jar_CreatedTS(), ecorePackage.getEString(), "createdTS", null, 0, 1, DB2Jar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Jar_AlteredTS(), ecorePackage.getEString(), "alteredTS", null, 0, 1, DB2Jar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Jar_Procedures(), this.getDB2JavaOptions(), this.getDB2JavaOptions_Jar(), "procedures", null, 0, -1, DB2Jar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Jar_Schema(), this.getDB2Schema(), this.getDB2Schema_Jars(), "schema", null, 1, 1, DB2Jar.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2ColumnEClass, DB2Column.class, "DB2Column", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Column_GenerationType(), this.getGenerateType(), "generationType", null, 0, 1, DB2Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Column_RowChangeTimestamp(), ecorePackage.getEBoolean(), "rowChangeTimestamp", null, 0, 1, DB2Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Column_RowBegin(), ecorePackage.getEBoolean(), "rowBegin", "False", 0, 1, DB2Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Column_RowEnd(), ecorePackage.getEBoolean(), "rowEnd", "False", 0, 1, DB2Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEAttribute(getDB2Column_TransStartID(), ecorePackage.getEBoolean(), "transStartID", "False", 0, 1, DB2Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getDB2Column_BeginPeriod(), this.getDB2Period(), this.getDB2Period_BeginColumn(), "beginPeriod", null, 0, 1, DB2Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Column_EndPeriod(), this.getDB2Period(), this.getDB2Period_EndColumn(), "endPeriod", null, 0, 1, DB2Column.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2XSRObjectEClass, DB2XSRObject.class, "DB2XSRObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDB2XSRObject_Schema(), this.getDB2Schema(), this.getDB2Schema_XsrObjects(), "schema", null, 1, 1, DB2XSRObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2XMLSchemaEClass, DB2XMLSchema.class, "DB2XMLSchema", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2XMLSchema_Decomposition(), this.getDB2XMLSchemaDecomposition(), "decomposition", null, 0, 1, DB2XMLSchema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2XMLSchema_Status(), this.getDB2XMLSchemaStatus(), "status", null, 0, 1, DB2XMLSchema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2XMLSchema_XmlSchemaDocs(), this.getDB2XMLSchemaDocument(), this.getDB2XMLSchemaDocument_XmlSchema(), "xmlSchemaDocs", null, 1, -1, DB2XMLSchema.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2XMLSchemaDocumentEClass, DB2XMLSchemaDocument.class, "DB2XMLSchemaDocument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2XMLSchemaDocument_FileName(), ecorePackage.getEString(), "fileName", null, 0, 1, DB2XMLSchemaDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2XMLSchemaDocument_SchemaLocation(), ecorePackage.getEString(), "schemaLocation", null, 0, 1, DB2XMLSchemaDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2XMLSchemaDocument_TargetNamespace(), ecorePackage.getEString(), "targetNamespace", null, 0, 1, DB2XMLSchemaDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2XMLSchemaDocument_Primary(), ecorePackage.getEBoolean(), "primary", null, 0, 1, DB2XMLSchemaDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2XMLSchemaDocument_XmlSchema(), this.getDB2XMLSchema(), this.getDB2XMLSchema_XmlSchemaDocs(), "xmlSchema", null, 1, 1, DB2XMLSchemaDocument.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2XMLSchemaDocument_XmlSchemaDocProperties(), this.getDB2XMLSchemaDocProperties(), this.getDB2XMLSchemaDocProperties_XmlSchemaDoc(), "xmlSchemaDocProperties", null, 1, -1, DB2XMLSchemaDocument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2XMLSchemaDocPropertiesEClass, DB2XMLSchemaDocProperties.class, "DB2XMLSchemaDocProperties", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2XMLSchemaDocProperties_Value(), ecorePackage.getEString(), "value", null, 0, 1, DB2XMLSchemaDocProperties.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2XMLSchemaDocProperties_XmlSchemaDoc(), this.getDB2XMLSchemaDocument(), this.getDB2XMLSchemaDocument_XmlSchemaDocProperties(), "xmlSchemaDoc", null, 1, 1, DB2XMLSchemaDocProperties.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2PackageStatementEClass, DB2PackageStatement.class, "DB2PackageStatement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2PackageStatement_StatementNumber(), ecorePackage.getEInt(), "statementNumber", null, 0, 1, DB2PackageStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2PackageStatement_SectionNumber(), ecorePackage.getEInt(), "sectionNumber", null, 0, 1, DB2PackageStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2PackageStatement_Package(), this.getDB2Package(), this.getDB2Package_Statements(), "package", null, 1, 1, DB2PackageStatement.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2PackageStatement_SqlStatement(), theSQLStatementsPackage.getSQLStatement(), null, "sqlStatement", null, 0, 1, DB2PackageStatement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2DistinctUserDefinedTypeEClass, DB2DistinctUserDefinedType.class, "DB2DistinctUserDefinedType", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(db2PeriodEClass, DB2Period.class, "DB2Period", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Period_Type(), this.getDB2PeriodType(), "type", null, 0, 1, DB2Period.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Period_BeginColumn(), this.getDB2Column(), this.getDB2Column_BeginPeriod(), "beginColumn", null, 1, 1, DB2Period.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Period_EndColumn(), this.getDB2Column(), this.getDB2Column_EndPeriod(), "endColumn", null, 1, 1, DB2Period.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Period_Table(), this.getDB2Table(), this.getDB2Table_Periods(), "table", null, 1, 1, DB2Period.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2ClusterEClass, DB2Cluster.class, "DB2Cluster", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Cluster_Level(), ecorePackage.getEString(), "level", null, 0, 1, DB2Cluster.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Cluster_Instance(), this.getDB2DatabaseManager(), this.getDB2DatabaseManager_Cluster(), "instance", null, 1, 1, DB2Cluster.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Cluster_Members(), this.getDB2Member(), this.getDB2Member_Cluster(), "members", null, 0, -1, DB2Cluster.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2MemberEClass, DB2Member.class, "DB2Member", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Member_Id(), ecorePackage.getEInt(), "id", null, 0, 1, DB2Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Member_HomeHost(), ecorePackage.getEString(), "homeHost", null, 0, 1, DB2Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Member_CurrentHost(), ecorePackage.getEString(), "currentHost", null, 0, 1, DB2Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1
+ initEReference(getDB2Member_Cluster(), this.getDB2Cluster(), this.getDB2Cluster_Members(), "cluster", null, 1, 1, DB2Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2UniqueConstraintExtensionEClass, DB2UniqueConstraintExtension.class, "DB2UniqueConstraintExtension", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2UniqueConstraintExtension_BusPeriodWithoutOverlap(), ecorePackage.getEBoolean(), "busPeriodWithoutOverlap", "False", 0, 1, DB2UniqueConstraintExtension.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+
+ initEClass(db2MaskEClass, DB2Mask.class, "DB2Mask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Mask_CorrelationName(), ecorePackage.getEString(), "correlationName", null, 0, 1, DB2Mask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Mask_CaseExpression(), theSQLExpressionsPackage.getQueryExpression(), null, "caseExpression", null, 0, 1, DB2Mask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Mask_Enable(), ecorePackage.getEBoolean(), "enable", "true", 0, 1, DB2Mask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getDB2Mask_Schema(), this.getDB2Schema(), this.getDB2Schema_Masks(), "schema", null, 1, 1, DB2Mask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Mask_SubjectTable(), this.getDB2Table(), this.getDB2Table_Masks(), "subjectTable", null, 1, 1, DB2Mask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Mask_SubjectMQT(), this.getDB2MaterializedQueryTable(), this.getDB2MaterializedQueryTable_Masks(), "subjectMQT", null, 1, 1, DB2Mask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Mask_SubjectColumn(), this.getDB2Column(), null, "subjectColumn", null, 1, 1, DB2Mask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(db2PermissionEClass, DB2Permission.class, "DB2Permission", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDB2Permission_CorrelationName(), ecorePackage.getEString(), "correlationName", null, 0, 1, DB2Permission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Permission_SearchCondition(), theSQLExpressionsPackage.getQueryExpression(), null, "searchCondition", null, 0, 1, DB2Permission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDB2Permission_Enable(), ecorePackage.getEBoolean(), "enable", "true", 0, 1, DB2Permission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
+ initEReference(getDB2Permission_Schema(), this.getDB2Schema(), this.getDB2Schema_Permissions(), "schema", null, 1, 1, DB2Permission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Permission_SubjectTable(), this.getDB2Table(), this.getDB2Table_Permissions(), "subjectTable", null, 1, 1, DB2Permission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+ initEReference(getDB2Permission_SubjectMQT(), this.getDB2MaterializedQueryTable(), this.getDB2MaterializedQueryTable_Permissions(), "subjectMQT", null, 1, 1, DB2Permission.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(isolationLevelTypeEEnum, IsolationLevelType.class, "IsolationLevelType"); //$NON-NLS-1$
+ addEEnumLiteral(isolationLevelTypeEEnum, IsolationLevelType.REPEATABLE_READ_LITERAL);
+ addEEnumLiteral(isolationLevelTypeEEnum, IsolationLevelType.READ_STABILITY_LITERAL);
+ addEEnumLiteral(isolationLevelTypeEEnum, IsolationLevelType.CURSOR_STABILITY_LITERAL);
+ addEEnumLiteral(isolationLevelTypeEEnum, IsolationLevelType.UNCOMMITTED_READ_LITERAL);
+
+ initEEnum(db2IndexTypeEEnum, DB2IndexType.class, "DB2IndexType"); //$NON-NLS-1$
+ addEEnumLiteral(db2IndexTypeEEnum, DB2IndexType.REGULAR_LITERAL);
+ addEEnumLiteral(db2IndexTypeEEnum, DB2IndexType.BLOCK_LITERAL);
+ addEEnumLiteral(db2IndexTypeEEnum, DB2IndexType.DIMENSION_LITERAL);
+ addEEnumLiteral(db2IndexTypeEEnum, DB2IndexType.XMLPATH_LITERAL);
+ addEEnumLiteral(db2IndexTypeEEnum, DB2IndexType.XMLREGION_LITERAL);
+ addEEnumLiteral(db2IndexTypeEEnum, DB2IndexType.XMLCOLUMN_LOGICAL_LITERAL);
+ addEEnumLiteral(db2IndexTypeEEnum, DB2IndexType.XMLCOLUMN_PHYSICAL_LITERAL);
+
+ initEEnum(dataCaptureTypeEEnum, DataCaptureType.class, "DataCaptureType"); //$NON-NLS-1$
+ addEEnumLiteral(dataCaptureTypeEEnum, DataCaptureType.NONE_LITERAL);
+ addEEnumLiteral(dataCaptureTypeEEnum, DataCaptureType.CHANGES_LITERAL);
+
+ initEEnum(unitTypeEEnum, UnitType.class, "UnitType"); //$NON-NLS-1$
+ addEEnumLiteral(unitTypeEEnum, UnitType.K_LITERAL);
+ addEEnumLiteral(unitTypeEEnum, UnitType.M_LITERAL);
+ addEEnumLiteral(unitTypeEEnum, UnitType.G_LITERAL);
+
+ initEEnum(generateTypeEEnum, GenerateType.class, "GenerateType"); //$NON-NLS-1$
+ addEEnumLiteral(generateTypeEEnum, GenerateType.ALWAYS_LITERAL);
+ addEEnumLiteral(generateTypeEEnum, GenerateType.BY_DEFAULT_LITERAL);
+
+ initEEnum(db2XMLSchemaDecompositionEEnum, DB2XMLSchemaDecomposition.class, "DB2XMLSchemaDecomposition"); //$NON-NLS-1$
+ addEEnumLiteral(db2XMLSchemaDecompositionEEnum, DB2XMLSchemaDecomposition.ENABLED_LITERAL);
+ addEEnumLiteral(db2XMLSchemaDecompositionEEnum, DB2XMLSchemaDecomposition.NOT_ENABLED_LITERAL);
+ addEEnumLiteral(db2XMLSchemaDecompositionEEnum, DB2XMLSchemaDecomposition.INOPERATIVE_LITERAL);
+
+ initEEnum(db2XMLSchemaStatusEEnum, DB2XMLSchemaStatus.class, "DB2XMLSchemaStatus"); //$NON-NLS-1$
+ addEEnumLiteral(db2XMLSchemaStatusEEnum, DB2XMLSchemaStatus.COMPLETE_LITERAL);
+ addEEnumLiteral(db2XMLSchemaStatusEEnum, DB2XMLSchemaStatus.INCOMPLETE_LITERAL);
+ addEEnumLiteral(db2XMLSchemaStatusEEnum, DB2XMLSchemaStatus.REPLACE_LITERAL);
+ addEEnumLiteral(db2XMLSchemaStatusEEnum, DB2XMLSchemaStatus.TEMPORARY_LITERAL);
+
+ initEEnum(originTypeEEnum, OriginType.class, "OriginType"); //$NON-NLS-1$
+ addEEnumLiteral(originTypeEEnum, OriginType.NONE_LITERAL);
+ addEEnumLiteral(originTypeEEnum, OriginType.TEMPLATE_LITERAL);
+ addEEnumLiteral(originTypeEEnum, OriginType.SOURCE_LITERAL);
+
+ initEEnum(reoptTypeEEnum, ReoptType.class, "ReoptType"); //$NON-NLS-1$
+ addEEnumLiteral(reoptTypeEEnum, ReoptType.NONE_LITERAL);
+ addEEnumLiteral(reoptTypeEEnum, ReoptType.ONCE_LITERAL);
+ addEEnumLiteral(reoptTypeEEnum, ReoptType.ALWAYS_LITERAL);
+ addEEnumLiteral(reoptTypeEEnum, ReoptType.AUTO_LITERAL);
+
+ initEEnum(sourceDialectEEnum, SourceDialect.class, "SourceDialect"); //$NON-NLS-1$
+ addEEnumLiteral(sourceDialectEEnum, SourceDialect.UNKNOWN_LITERAL);
+ addEEnumLiteral(sourceDialectEEnum, SourceDialect.PLSQL_LITERAL);
+ addEEnumLiteral(sourceDialectEEnum, SourceDialect.DB2SQLPL_LITERAL);
+
+ initEEnum(db2PeriodTypeEEnum, DB2PeriodType.class, "DB2PeriodType"); //$NON-NLS-1$
+ addEEnumLiteral(db2PeriodTypeEEnum, DB2PeriodType.SYSTEM_TIME_LITERAL);
+ addEEnumLiteral(db2PeriodTypeEEnum, DB2PeriodType.BUSINESS_TIME_LITERAL);
+
+ initEEnum(db2TableOrganizationEEnum, DB2TableOrganization.class, "DB2TableOrganization"); //$NON-NLS-1$
+ addEEnumLiteral(db2TableOrganizationEEnum, DB2TableOrganization.UNSPECIFIED_LITERAL);
+ addEEnumLiteral(db2TableOrganizationEEnum, DB2TableOrganization.ROW_LITERAL);
+ addEEnumLiteral(db2TableOrganizationEEnum, DB2TableOrganization.COLUMN_LITERAL);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //DB2ModelPackageImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MultidimensionalIndexImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MultidimensionalIndexImpl.java
new file mode 100644
index 0000000..c7f71d6
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2MultidimensionalIndexImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.constraints.impl.IndexImpl;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Index;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MultidimensionalIndex;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Multidimensional Index</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2MultidimensionalIndexImpl#getDimensionIndexes <em>Dimension Indexes</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2MultidimensionalIndexImpl extends IndexImpl implements DB2MultidimensionalIndex {
+ /**
+ * The cached value of the '{@link #getDimensionIndexes() <em>Dimension Indexes</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDimensionIndexes()
+ * @generated
+ * @ordered
+ */
+ protected EList dimensionIndexes;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2MultidimensionalIndexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_MULTIDIMENSIONAL_INDEX;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getDimensionIndexes() {
+ if (dimensionIndexes == null) {
+ dimensionIndexes = new EObjectWithInverseResolvingEList(DB2Index.class, this, DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES, DB2ModelPackage.DB2_INDEX__DB2_MULTIDIMENSIONAL_INDEX);
+ }
+ return dimensionIndexes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES:
+ return ((InternalEList)getDimensionIndexes()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES:
+ return ((InternalEList)getDimensionIndexes()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES:
+ return getDimensionIndexes();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES:
+ getDimensionIndexes().clear();
+ getDimensionIndexes().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES:
+ getDimensionIndexes().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX__DIMENSION_INDEXES:
+ return dimensionIndexes != null && !dimensionIndexes.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DB2MultidimensionalIndexImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2OLAPObjectImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2OLAPObjectImpl.java
new file mode 100644
index 0000000..a4b88df
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2OLAPObjectImpl.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2OLAPObjectImpl.java,v 1.11 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2OLAP Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2OLAPObjectImpl#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2OLAPObjectImpl extends SQLObjectImpl implements DB2OLAPObject {
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema schema;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2OLAPObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2OLAP_OBJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (DB2Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(DB2Schema newSchema, NotificationChain msgs) {
+ DB2Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(DB2Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS, DB2Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS, DB2Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS, DB2Schema.class, msgs);
+ return basicSetSchema((DB2Schema)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA:
+ return basicSetSchema(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA:
+ setSchema((DB2Schema)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA:
+ setSchema((DB2Schema)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA:
+ return schema != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DB2OLAPObjectImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PackageImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PackageImpl.java
new file mode 100644
index 0000000..2fee43b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PackageImpl.java
@@ -0,0 +1,750 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.model.IsolationLevelType;
+import org.eclipse.datatools.enablement.ibm.db2.model.ReoptType;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Package</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#isOperative <em>Operative</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getValid <em>Valid</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getDefaultSchema <em>Default Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getSqlPath <em>Sql Path</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getReoptVar <em>Reopt Var</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getIsolation <em>Isolation</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getUniqueID <em>Unique ID</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getLastBindTS <em>Last Bind TS</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageImpl#getStatements <em>Statements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2PackageImpl extends SQLObjectImpl implements DB2Package {
+ /**
+ * The default value of the '{@link #isOperative() <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOperative()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean OPERATIVE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isOperative() <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOperative()
+ * @generated
+ * @ordered
+ */
+ protected boolean operative = OPERATIVE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValid() <em>Valid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValid()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValid() <em>Valid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValid()
+ * @generated
+ * @ordered
+ */
+ protected String valid = VALID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDefaultSchema() <em>Default Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultSchema()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_SCHEMA_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefaultSchema() <em>Default Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultSchema()
+ * @generated
+ * @ordered
+ */
+ protected String defaultSchema = DEFAULT_SCHEMA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSqlPath() <em>Sql Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSqlPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String SQL_PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSqlPath() <em>Sql Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSqlPath()
+ * @generated
+ * @ordered
+ */
+ protected String sqlPath = SQL_PATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getReoptVar() <em>Reopt Var</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReoptVar()
+ * @generated
+ * @ordered
+ */
+ protected static final ReoptType REOPT_VAR_EDEFAULT = ReoptType.NONE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getReoptVar() <em>Reopt Var</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReoptVar()
+ * @generated
+ * @ordered
+ */
+ protected ReoptType reoptVar = REOPT_VAR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIsolation() <em>Isolation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIsolation()
+ * @generated
+ * @ordered
+ */
+ protected static final IsolationLevelType ISOLATION_EDEFAULT = IsolationLevelType.REPEATABLE_READ_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getIsolation() <em>Isolation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIsolation()
+ * @generated
+ * @ordered
+ */
+ protected IsolationLevelType isolation = ISOLATION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getUniqueID() <em>Unique ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUniqueID()
+ * @generated
+ * @ordered
+ */
+ protected static final String UNIQUE_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUniqueID() <em>Unique ID</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUniqueID()
+ * @generated
+ * @ordered
+ */
+ protected String uniqueID = UNIQUE_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLastBindTS() <em>Last Bind TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastBindTS()
+ * @generated
+ * @ordered
+ */
+ protected static final String LAST_BIND_TS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLastBindTS() <em>Last Bind TS</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastBindTS()
+ * @generated
+ * @ordered
+ */
+ protected String lastBindTS = LAST_BIND_TS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema schema;
+
+ /**
+ * The cached value of the '{@link #getStatements() <em>Statements</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatements()
+ * @generated
+ * @ordered
+ */
+ protected EList statements;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2PackageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_PACKAGE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOperative() {
+ return operative;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperative(boolean newOperative) {
+ boolean oldOperative = operative;
+ operative = newOperative;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__OPERATIVE, oldOperative, operative));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValid() {
+ return valid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValid(String newValid) {
+ String oldValid = valid;
+ valid = newValid;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__VALID, oldValid, valid));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__VERSION, oldVersion, version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDefaultSchema() {
+ return defaultSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultSchema(String newDefaultSchema) {
+ String oldDefaultSchema = defaultSchema;
+ defaultSchema = newDefaultSchema;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__DEFAULT_SCHEMA, oldDefaultSchema, defaultSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSqlPath() {
+ return sqlPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSqlPath(String newSqlPath) {
+ String oldSqlPath = sqlPath;
+ sqlPath = newSqlPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__SQL_PATH, oldSqlPath, sqlPath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReoptType getReoptVar() {
+ return reoptVar;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReoptVar(ReoptType newReoptVar) {
+ ReoptType oldReoptVar = reoptVar;
+ reoptVar = newReoptVar == null ? REOPT_VAR_EDEFAULT : newReoptVar;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__REOPT_VAR, oldReoptVar, reoptVar));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IsolationLevelType getIsolation() {
+ return isolation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsolation(IsolationLevelType newIsolation) {
+ IsolationLevelType oldIsolation = isolation;
+ isolation = newIsolation == null ? ISOLATION_EDEFAULT : newIsolation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__ISOLATION, oldIsolation, isolation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUniqueID() {
+ return uniqueID;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUniqueID(String newUniqueID) {
+ String oldUniqueID = uniqueID;
+ uniqueID = newUniqueID;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__UNIQUE_ID, oldUniqueID, uniqueID));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLastBindTS() {
+ return lastBindTS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLastBindTS(String newLastBindTS) {
+ String oldLastBindTS = lastBindTS;
+ lastBindTS = newLastBindTS;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__LAST_BIND_TS, oldLastBindTS, lastBindTS));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (DB2Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_PACKAGE__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(DB2Schema newSchema, NotificationChain msgs) {
+ DB2Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(DB2Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__PACKAGES, DB2Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__PACKAGES, DB2Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getStatements() {
+ if (statements == null) {
+ statements = new EObjectContainmentWithInverseEList(DB2PackageStatement.class, this, DB2ModelPackage.DB2_PACKAGE__STATEMENTS, DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE);
+ }
+ return statements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__PACKAGES, DB2Schema.class, msgs);
+ return basicSetSchema((DB2Schema)otherEnd, msgs);
+ case DB2ModelPackage.DB2_PACKAGE__STATEMENTS:
+ return ((InternalEList)getStatements()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE__SCHEMA:
+ return basicSetSchema(null, msgs);
+ case DB2ModelPackage.DB2_PACKAGE__STATEMENTS:
+ return ((InternalEList)getStatements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE__OPERATIVE:
+ return isOperative() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PACKAGE__VALID:
+ return getValid();
+ case DB2ModelPackage.DB2_PACKAGE__VERSION:
+ return getVersion();
+ case DB2ModelPackage.DB2_PACKAGE__DEFAULT_SCHEMA:
+ return getDefaultSchema();
+ case DB2ModelPackage.DB2_PACKAGE__SQL_PATH:
+ return getSqlPath();
+ case DB2ModelPackage.DB2_PACKAGE__REOPT_VAR:
+ return getReoptVar();
+ case DB2ModelPackage.DB2_PACKAGE__ISOLATION:
+ return getIsolation();
+ case DB2ModelPackage.DB2_PACKAGE__UNIQUE_ID:
+ return getUniqueID();
+ case DB2ModelPackage.DB2_PACKAGE__LAST_BIND_TS:
+ return getLastBindTS();
+ case DB2ModelPackage.DB2_PACKAGE__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ case DB2ModelPackage.DB2_PACKAGE__STATEMENTS:
+ return getStatements();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE__OPERATIVE:
+ setOperative(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__VALID:
+ setValid((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__VERSION:
+ setVersion((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__DEFAULT_SCHEMA:
+ setDefaultSchema((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__SQL_PATH:
+ setSqlPath((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__REOPT_VAR:
+ setReoptVar((ReoptType)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__ISOLATION:
+ setIsolation((IsolationLevelType)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__UNIQUE_ID:
+ setUniqueID((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__LAST_BIND_TS:
+ setLastBindTS((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__SCHEMA:
+ setSchema((DB2Schema)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__STATEMENTS:
+ getStatements().clear();
+ getStatements().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE__OPERATIVE:
+ setOperative(OPERATIVE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__VALID:
+ setValid(VALID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__DEFAULT_SCHEMA:
+ setDefaultSchema(DEFAULT_SCHEMA_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__SQL_PATH:
+ setSqlPath(SQL_PATH_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__REOPT_VAR:
+ setReoptVar(REOPT_VAR_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__ISOLATION:
+ setIsolation(ISOLATION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__UNIQUE_ID:
+ setUniqueID(UNIQUE_ID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__LAST_BIND_TS:
+ setLastBindTS(LAST_BIND_TS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__SCHEMA:
+ setSchema((DB2Schema)null);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE__STATEMENTS:
+ getStatements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE__OPERATIVE:
+ return operative != OPERATIVE_EDEFAULT;
+ case DB2ModelPackage.DB2_PACKAGE__VALID:
+ return VALID_EDEFAULT == null ? valid != null : !VALID_EDEFAULT.equals(valid);
+ case DB2ModelPackage.DB2_PACKAGE__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case DB2ModelPackage.DB2_PACKAGE__DEFAULT_SCHEMA:
+ return DEFAULT_SCHEMA_EDEFAULT == null ? defaultSchema != null : !DEFAULT_SCHEMA_EDEFAULT.equals(defaultSchema);
+ case DB2ModelPackage.DB2_PACKAGE__SQL_PATH:
+ return SQL_PATH_EDEFAULT == null ? sqlPath != null : !SQL_PATH_EDEFAULT.equals(sqlPath);
+ case DB2ModelPackage.DB2_PACKAGE__REOPT_VAR:
+ return reoptVar != REOPT_VAR_EDEFAULT;
+ case DB2ModelPackage.DB2_PACKAGE__ISOLATION:
+ return isolation != ISOLATION_EDEFAULT;
+ case DB2ModelPackage.DB2_PACKAGE__UNIQUE_ID:
+ return UNIQUE_ID_EDEFAULT == null ? uniqueID != null : !UNIQUE_ID_EDEFAULT.equals(uniqueID);
+ case DB2ModelPackage.DB2_PACKAGE__LAST_BIND_TS:
+ return LAST_BIND_TS_EDEFAULT == null ? lastBindTS != null : !LAST_BIND_TS_EDEFAULT.equals(lastBindTS);
+ case DB2ModelPackage.DB2_PACKAGE__SCHEMA:
+ return schema != null;
+ case DB2ModelPackage.DB2_PACKAGE__STATEMENTS:
+ return statements != null && !statements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (operative: "); //$NON-NLS-1$
+ result.append(operative);
+ result.append(", valid: "); //$NON-NLS-1$
+ result.append(valid);
+ result.append(", version: "); //$NON-NLS-1$
+ result.append(version);
+ result.append(", defaultSchema: "); //$NON-NLS-1$
+ result.append(defaultSchema);
+ result.append(", sqlPath: "); //$NON-NLS-1$
+ result.append(sqlPath);
+ result.append(", reoptVar: "); //$NON-NLS-1$
+ result.append(reoptVar);
+ result.append(", isolation: "); //$NON-NLS-1$
+ result.append(isolation);
+ result.append(", uniqueID: "); //$NON-NLS-1$
+ result.append(uniqueID);
+ result.append(", lastBindTS: "); //$NON-NLS-1$
+ result.append(lastBindTS);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2PackageImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PackageStatementImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PackageStatementImpl.java
new file mode 100644
index 0000000..6c8ab92
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PackageStatementImpl.java
@@ -0,0 +1,382 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2PackageStatementImpl.java,v 1.1 2008/06/10 20:19:39 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2PackageStatement;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.datatools.modelbase.sql.statements.SQLStatement;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Package Statement</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl#getStatementNumber <em>Statement Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl#getSectionNumber <em>Section Number</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl#getPackage <em>Package</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PackageStatementImpl#getSqlStatement <em>Sql Statement</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2PackageStatementImpl extends SQLObjectImpl implements DB2PackageStatement {
+ /**
+ * The default value of the '{@link #getStatementNumber() <em>Statement Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatementNumber()
+ * @generated
+ * @ordered
+ */
+ protected static final int STATEMENT_NUMBER_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getStatementNumber() <em>Statement Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatementNumber()
+ * @generated
+ * @ordered
+ */
+ protected int statementNumber = STATEMENT_NUMBER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSectionNumber() <em>Section Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSectionNumber()
+ * @generated
+ * @ordered
+ */
+ protected static final int SECTION_NUMBER_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSectionNumber() <em>Section Number</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSectionNumber()
+ * @generated
+ * @ordered
+ */
+ protected int sectionNumber = SECTION_NUMBER_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSqlStatement() <em>Sql Statement</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSqlStatement()
+ * @generated
+ * @ordered
+ */
+ protected SQLStatement sqlStatement;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2PackageStatementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_PACKAGE_STATEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getStatementNumber() {
+ return statementNumber;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatementNumber(int newStatementNumber) {
+ int oldStatementNumber = statementNumber;
+ statementNumber = newStatementNumber;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER, oldStatementNumber, statementNumber));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getSectionNumber() {
+ return sectionNumber;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSectionNumber(int newSectionNumber) {
+ int oldSectionNumber = sectionNumber;
+ sectionNumber = newSectionNumber;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE_STATEMENT__SECTION_NUMBER, oldSectionNumber, sectionNumber));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Package getPackage() {
+ if (eContainerFeatureID() != DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE) return null;
+ return (DB2Package)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPackage(DB2Package newPackage, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newPackage, DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPackage(DB2Package newPackage) {
+ if (newPackage != eInternalContainer() || (eContainerFeatureID() != DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE && newPackage != null)) {
+ if (EcoreUtil.isAncestor(this, newPackage))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newPackage != null)
+ msgs = ((InternalEObject)newPackage).eInverseAdd(this, DB2ModelPackage.DB2_PACKAGE__STATEMENTS, DB2Package.class, msgs);
+ msgs = basicSetPackage(newPackage, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE, newPackage, newPackage));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SQLStatement getSqlStatement() {
+ return sqlStatement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSqlStatement(SQLStatement newSqlStatement, NotificationChain msgs) {
+ SQLStatement oldSqlStatement = sqlStatement;
+ sqlStatement = newSqlStatement;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT, oldSqlStatement, newSqlStatement);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSqlStatement(SQLStatement newSqlStatement) {
+ if (newSqlStatement != sqlStatement) {
+ NotificationChain msgs = null;
+ if (sqlStatement != null)
+ msgs = ((InternalEObject)sqlStatement).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT, null, msgs);
+ if (newSqlStatement != null)
+ msgs = ((InternalEObject)newSqlStatement).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT, null, msgs);
+ msgs = basicSetSqlStatement(newSqlStatement, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT, newSqlStatement, newSqlStatement));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetPackage((DB2Package)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE:
+ return basicSetPackage(null, msgs);
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT:
+ return basicSetSqlStatement(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE:
+ return eInternalContainer().eInverseRemove(this, DB2ModelPackage.DB2_PACKAGE__STATEMENTS, DB2Package.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER:
+ return new Integer(getStatementNumber());
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SECTION_NUMBER:
+ return new Integer(getSectionNumber());
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE:
+ return getPackage();
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT:
+ return getSqlStatement();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER:
+ setStatementNumber(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SECTION_NUMBER:
+ setSectionNumber(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE:
+ setPackage((DB2Package)newValue);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT:
+ setSqlStatement((SQLStatement)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER:
+ setStatementNumber(STATEMENT_NUMBER_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SECTION_NUMBER:
+ setSectionNumber(SECTION_NUMBER_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE:
+ setPackage((DB2Package)null);
+ return;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT:
+ setSqlStatement((SQLStatement)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__STATEMENT_NUMBER:
+ return statementNumber != STATEMENT_NUMBER_EDEFAULT;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SECTION_NUMBER:
+ return sectionNumber != SECTION_NUMBER_EDEFAULT;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__PACKAGE:
+ return getPackage() != null;
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT__SQL_STATEMENT:
+ return sqlStatement != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (statementNumber: "); //$NON-NLS-1$
+ result.append(statementNumber);
+ result.append(", sectionNumber: "); //$NON-NLS-1$
+ result.append(sectionNumber);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2PackageStatementImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PeriodImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PeriodImpl.java
new file mode 100644
index 0000000..f860453
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PeriodImpl.java
@@ -0,0 +1,437 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Column;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Period;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2PeriodType;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Period</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl#getBeginColumn <em>Begin Column</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl#getEndColumn <em>End Column</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PeriodImpl#getTable <em>Table</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2PeriodImpl extends EObjectImpl implements DB2Period {
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final DB2PeriodType TYPE_EDEFAULT = DB2PeriodType.SYSTEM_TIME_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected DB2PeriodType type = TYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBeginColumn() <em>Begin Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBeginColumn()
+ * @generated
+ * @ordered
+ */
+ protected DB2Column beginColumn;
+
+ /**
+ * The cached value of the '{@link #getEndColumn() <em>End Column</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEndColumn()
+ * @generated
+ * @ordered
+ */
+ protected DB2Column endColumn;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2PeriodImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_PERIOD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2PeriodType getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(DB2PeriodType newType) {
+ DB2PeriodType oldType = type;
+ type = newType == null ? TYPE_EDEFAULT : newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERIOD__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Column getBeginColumn() {
+ if (beginColumn != null && beginColumn.eIsProxy()) {
+ InternalEObject oldBeginColumn = (InternalEObject)beginColumn;
+ beginColumn = (DB2Column)eResolveProxy(oldBeginColumn);
+ if (beginColumn != oldBeginColumn) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN, oldBeginColumn, beginColumn));
+ }
+ }
+ return beginColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Column basicGetBeginColumn() {
+ return beginColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetBeginColumn(DB2Column newBeginColumn, NotificationChain msgs) {
+ DB2Column oldBeginColumn = beginColumn;
+ beginColumn = newBeginColumn;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN, oldBeginColumn, newBeginColumn);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBeginColumn(DB2Column newBeginColumn) {
+ if (newBeginColumn != beginColumn) {
+ NotificationChain msgs = null;
+ if (beginColumn != null)
+ msgs = ((InternalEObject)beginColumn).eInverseRemove(this, DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD, DB2Column.class, msgs);
+ if (newBeginColumn != null)
+ msgs = ((InternalEObject)newBeginColumn).eInverseAdd(this, DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD, DB2Column.class, msgs);
+ msgs = basicSetBeginColumn(newBeginColumn, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN, newBeginColumn, newBeginColumn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Column getEndColumn() {
+ if (endColumn != null && endColumn.eIsProxy()) {
+ InternalEObject oldEndColumn = (InternalEObject)endColumn;
+ endColumn = (DB2Column)eResolveProxy(oldEndColumn);
+ if (endColumn != oldEndColumn) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_PERIOD__END_COLUMN, oldEndColumn, endColumn));
+ }
+ }
+ return endColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Column basicGetEndColumn() {
+ return endColumn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetEndColumn(DB2Column newEndColumn, NotificationChain msgs) {
+ DB2Column oldEndColumn = endColumn;
+ endColumn = newEndColumn;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERIOD__END_COLUMN, oldEndColumn, newEndColumn);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEndColumn(DB2Column newEndColumn) {
+ if (newEndColumn != endColumn) {
+ NotificationChain msgs = null;
+ if (endColumn != null)
+ msgs = ((InternalEObject)endColumn).eInverseRemove(this, DB2ModelPackage.DB2_COLUMN__END_PERIOD, DB2Column.class, msgs);
+ if (newEndColumn != null)
+ msgs = ((InternalEObject)newEndColumn).eInverseAdd(this, DB2ModelPackage.DB2_COLUMN__END_PERIOD, DB2Column.class, msgs);
+ msgs = basicSetEndColumn(newEndColumn, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERIOD__END_COLUMN, newEndColumn, newEndColumn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table getTable() {
+ if (eContainerFeatureID() != DB2ModelPackage.DB2_PERIOD__TABLE) return null;
+ return (DB2Table)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTable(DB2Table newTable, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newTable, DB2ModelPackage.DB2_PERIOD__TABLE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTable(DB2Table newTable) {
+ if (newTable != eInternalContainer() || (eContainerFeatureID() != DB2ModelPackage.DB2_PERIOD__TABLE && newTable != null)) {
+ if (EcoreUtil.isAncestor(this, newTable))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newTable != null)
+ msgs = ((InternalEObject)newTable).eInverseAdd(this, DB2ModelPackage.DB2_TABLE__PERIODS, DB2Table.class, msgs);
+ msgs = basicSetTable(newTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERIOD__TABLE, newTable, newTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN:
+ if (beginColumn != null)
+ msgs = ((InternalEObject)beginColumn).eInverseRemove(this, DB2ModelPackage.DB2_COLUMN__BEGIN_PERIOD, DB2Column.class, msgs);
+ return basicSetBeginColumn((DB2Column)otherEnd, msgs);
+ case DB2ModelPackage.DB2_PERIOD__END_COLUMN:
+ if (endColumn != null)
+ msgs = ((InternalEObject)endColumn).eInverseRemove(this, DB2ModelPackage.DB2_COLUMN__END_PERIOD, DB2Column.class, msgs);
+ return basicSetEndColumn((DB2Column)otherEnd, msgs);
+ case DB2ModelPackage.DB2_PERIOD__TABLE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetTable((DB2Table)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN:
+ return basicSetBeginColumn(null, msgs);
+ case DB2ModelPackage.DB2_PERIOD__END_COLUMN:
+ return basicSetEndColumn(null, msgs);
+ case DB2ModelPackage.DB2_PERIOD__TABLE:
+ return basicSetTable(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case DB2ModelPackage.DB2_PERIOD__TABLE:
+ return eInternalContainer().eInverseRemove(this, DB2ModelPackage.DB2_TABLE__PERIODS, DB2Table.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERIOD__TYPE:
+ return getType();
+ case DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN:
+ if (resolve) return getBeginColumn();
+ return basicGetBeginColumn();
+ case DB2ModelPackage.DB2_PERIOD__END_COLUMN:
+ if (resolve) return getEndColumn();
+ return basicGetEndColumn();
+ case DB2ModelPackage.DB2_PERIOD__TABLE:
+ return getTable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERIOD__TYPE:
+ setType((DB2PeriodType)newValue);
+ return;
+ case DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN:
+ setBeginColumn((DB2Column)newValue);
+ return;
+ case DB2ModelPackage.DB2_PERIOD__END_COLUMN:
+ setEndColumn((DB2Column)newValue);
+ return;
+ case DB2ModelPackage.DB2_PERIOD__TABLE:
+ setTable((DB2Table)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERIOD__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN:
+ setBeginColumn((DB2Column)null);
+ return;
+ case DB2ModelPackage.DB2_PERIOD__END_COLUMN:
+ setEndColumn((DB2Column)null);
+ return;
+ case DB2ModelPackage.DB2_PERIOD__TABLE:
+ setTable((DB2Table)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERIOD__TYPE:
+ return type != TYPE_EDEFAULT;
+ case DB2ModelPackage.DB2_PERIOD__BEGIN_COLUMN:
+ return beginColumn != null;
+ case DB2ModelPackage.DB2_PERIOD__END_COLUMN:
+ return endColumn != null;
+ case DB2ModelPackage.DB2_PERIOD__TABLE:
+ return getTable() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: "); //$NON-NLS-1$
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2PeriodImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PermissionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PermissionImpl.java
new file mode 100644
index 0000000..681b865
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2PermissionImpl.java
@@ -0,0 +1,575 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2MaterializedQueryTable;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+
+import org.eclipse.datatools.modelbase.sql.expressions.QueryExpression;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Permission</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl#getCorrelationName <em>Correlation Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl#getSearchCondition <em>Search Condition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl#isEnable <em>Enable</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl#getSchema <em>Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl#getSubjectTable <em>Subject Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2PermissionImpl#getSubjectMQT <em>Subject MQT</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2PermissionImpl extends SQLObjectImpl implements DB2Permission {
+ /**
+ * The default value of the '{@link #getCorrelationName() <em>Correlation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCorrelationName()
+ * @generated
+ * @ordered
+ */
+ protected static final String CORRELATION_NAME_EDEFAULT = null; //$NON-NLS-1$
+
+ /**
+ * The cached value of the '{@link #getCorrelationName() <em>Correlation Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCorrelationName()
+ * @generated
+ * @ordered
+ */
+ protected String correlationName = CORRELATION_NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSearchCondition() <em>Search Condition</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSearchCondition()
+ * @generated
+ * @ordered
+ */
+ protected QueryExpression searchCondition;
+
+ /**
+ * The default value of the '{@link #isEnable() <em>Enable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEnable()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ENABLE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isEnable() <em>Enable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isEnable()
+ * @generated
+ * @ordered
+ */
+ protected boolean enable = ENABLE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema schema;
+
+ /**
+ * The cached value of the '{@link #getSubjectTable() <em>Subject Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubjectTable()
+ * @generated
+ * @ordered
+ */
+ protected DB2Table subjectTable;
+
+ /**
+ * The cached value of the '{@link #getSubjectMQT() <em>Subject MQT</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubjectMQT()
+ * @generated
+ * @ordered
+ */
+ protected DB2MaterializedQueryTable subjectMQT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2PermissionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_PERMISSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCorrelationName() {
+ return correlationName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCorrelationName(String newCorrelationName) {
+ String oldCorrelationName = correlationName;
+ correlationName = newCorrelationName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__CORRELATION_NAME, oldCorrelationName, correlationName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QueryExpression getSearchCondition() {
+ return searchCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSearchCondition(QueryExpression newSearchCondition, NotificationChain msgs) {
+ QueryExpression oldSearchCondition = searchCondition;
+ searchCondition = newSearchCondition;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION, oldSearchCondition, newSearchCondition);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSearchCondition(QueryExpression newSearchCondition) {
+ if (newSearchCondition != searchCondition) {
+ NotificationChain msgs = null;
+ if (searchCondition != null)
+ msgs = ((InternalEObject)searchCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION, null, msgs);
+ if (newSearchCondition != null)
+ msgs = ((InternalEObject)newSearchCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION, null, msgs);
+ msgs = basicSetSearchCondition(newSearchCondition, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION, newSearchCondition, newSearchCondition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isEnable() {
+ return enable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setEnable(boolean newEnable) {
+ boolean oldEnable = enable;
+ enable = newEnable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__ENABLE, oldEnable, enable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (DB2Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_PERMISSION__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(DB2Schema newSchema, NotificationChain msgs) {
+ DB2Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(DB2Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__PERMISSIONS, DB2Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__PERMISSIONS, DB2Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table getSubjectTable() {
+ if (subjectTable != null && subjectTable.eIsProxy()) {
+ InternalEObject oldSubjectTable = (InternalEObject)subjectTable;
+ subjectTable = (DB2Table)eResolveProxy(oldSubjectTable);
+ if (subjectTable != oldSubjectTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE, oldSubjectTable, subjectTable));
+ }
+ }
+ return subjectTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table basicGetSubjectTable() {
+ return subjectTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSubjectTable(DB2Table newSubjectTable, NotificationChain msgs) {
+ DB2Table oldSubjectTable = subjectTable;
+ subjectTable = newSubjectTable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE, oldSubjectTable, newSubjectTable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubjectTable(DB2Table newSubjectTable) {
+ if (newSubjectTable != subjectTable) {
+ NotificationChain msgs = null;
+ if (subjectTable != null)
+ msgs = ((InternalEObject)subjectTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__PERMISSIONS, DB2Table.class, msgs);
+ if (newSubjectTable != null)
+ msgs = ((InternalEObject)newSubjectTable).eInverseAdd(this, DB2ModelPackage.DB2_TABLE__PERMISSIONS, DB2Table.class, msgs);
+ msgs = basicSetSubjectTable(newSubjectTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE, newSubjectTable, newSubjectTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2MaterializedQueryTable getSubjectMQT() {
+ if (subjectMQT != null && subjectMQT.eIsProxy()) {
+ InternalEObject oldSubjectMQT = (InternalEObject)subjectMQT;
+ subjectMQT = (DB2MaterializedQueryTable)eResolveProxy(oldSubjectMQT);
+ if (subjectMQT != oldSubjectMQT) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT, oldSubjectMQT, subjectMQT));
+ }
+ }
+ return subjectMQT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2MaterializedQueryTable basicGetSubjectMQT() {
+ return subjectMQT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSubjectMQT(DB2MaterializedQueryTable newSubjectMQT, NotificationChain msgs) {
+ DB2MaterializedQueryTable oldSubjectMQT = subjectMQT;
+ subjectMQT = newSubjectMQT;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT, oldSubjectMQT, newSubjectMQT);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSubjectMQT(DB2MaterializedQueryTable newSubjectMQT) {
+ if (newSubjectMQT != subjectMQT) {
+ NotificationChain msgs = null;
+ if (subjectMQT != null)
+ msgs = ((InternalEObject)subjectMQT).eInverseRemove(this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS, DB2MaterializedQueryTable.class, msgs);
+ if (newSubjectMQT != null)
+ msgs = ((InternalEObject)newSubjectMQT).eInverseAdd(this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS, DB2MaterializedQueryTable.class, msgs);
+ msgs = basicSetSubjectMQT(newSubjectMQT, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT, newSubjectMQT, newSubjectMQT));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERMISSION__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__PERMISSIONS, DB2Schema.class, msgs);
+ return basicSetSchema((DB2Schema)otherEnd, msgs);
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE:
+ if (subjectTable != null)
+ msgs = ((InternalEObject)subjectTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__PERMISSIONS, DB2Table.class, msgs);
+ return basicSetSubjectTable((DB2Table)otherEnd, msgs);
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT:
+ if (subjectMQT != null)
+ msgs = ((InternalEObject)subjectMQT).eInverseRemove(this, DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE__PERMISSIONS, DB2MaterializedQueryTable.class, msgs);
+ return basicSetSubjectMQT((DB2MaterializedQueryTable)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION:
+ return basicSetSearchCondition(null, msgs);
+ case DB2ModelPackage.DB2_PERMISSION__SCHEMA:
+ return basicSetSchema(null, msgs);
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE:
+ return basicSetSubjectTable(null, msgs);
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT:
+ return basicSetSubjectMQT(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERMISSION__CORRELATION_NAME:
+ return getCorrelationName();
+ case DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION:
+ return getSearchCondition();
+ case DB2ModelPackage.DB2_PERMISSION__ENABLE:
+ return isEnable() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PERMISSION__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE:
+ if (resolve) return getSubjectTable();
+ return basicGetSubjectTable();
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT:
+ if (resolve) return getSubjectMQT();
+ return basicGetSubjectMQT();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERMISSION__CORRELATION_NAME:
+ setCorrelationName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION:
+ setSearchCondition((QueryExpression)newValue);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__ENABLE:
+ setEnable(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SCHEMA:
+ setSchema((DB2Schema)newValue);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE:
+ setSubjectTable((DB2Table)newValue);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT:
+ setSubjectMQT((DB2MaterializedQueryTable)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERMISSION__CORRELATION_NAME:
+ setCorrelationName(CORRELATION_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION:
+ setSearchCondition((QueryExpression)null);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__ENABLE:
+ setEnable(ENABLE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SCHEMA:
+ setSchema((DB2Schema)null);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE:
+ setSubjectTable((DB2Table)null);
+ return;
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT:
+ setSubjectMQT((DB2MaterializedQueryTable)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PERMISSION__CORRELATION_NAME:
+ return CORRELATION_NAME_EDEFAULT == null ? correlationName != null : !CORRELATION_NAME_EDEFAULT.equals(correlationName);
+ case DB2ModelPackage.DB2_PERMISSION__SEARCH_CONDITION:
+ return searchCondition != null;
+ case DB2ModelPackage.DB2_PERMISSION__ENABLE:
+ return enable != ENABLE_EDEFAULT;
+ case DB2ModelPackage.DB2_PERMISSION__SCHEMA:
+ return schema != null;
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE:
+ return subjectTable != null;
+ case DB2ModelPackage.DB2_PERMISSION__SUBJECT_MQT:
+ return subjectMQT != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (correlationName: "); //$NON-NLS-1$
+ result.append(correlationName);
+ result.append(", enable: "); //$NON-NLS-1$
+ result.append(enable);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2PermissionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ProcedureDeployImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ProcedureDeployImpl.java
new file mode 100644
index 0000000..d7c5e60
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ProcedureDeployImpl.java
@@ -0,0 +1,159 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2ProcedureDeployImpl.java,v 1.10 2008/01/29 00:04:55 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Procedure Deploy</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureDeployImpl#getFileName <em>File Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2ProcedureDeployImpl extends SQLObjectImpl implements DB2ProcedureDeploy {
+ /**
+ * The default value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected String fileName = FILE_NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ProcedureDeployImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_PROCEDURE_DEPLOY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFileName() {
+ return fileName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFileName(String newFileName) {
+ String oldFileName = fileName;
+ fileName = newFileName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE_DEPLOY__FILE_NAME, oldFileName, fileName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE_DEPLOY__FILE_NAME:
+ return getFileName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE_DEPLOY__FILE_NAME:
+ setFileName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE_DEPLOY__FILE_NAME:
+ setFileName(FILE_NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE_DEPLOY__FILE_NAME:
+ return FILE_NAME_EDEFAULT == null ? fileName != null : !FILE_NAME_EDEFAULT.equals(fileName);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fileName: "); //$NON-NLS-1$
+ result.append(fileName);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2ProcedureDeployImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ProcedureImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ProcedureImpl.java
new file mode 100644
index 0000000..558f22e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ProcedureImpl.java
@@ -0,0 +1,1400 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.IntegerDataType;
+import org.eclipse.datatools.modelbase.sql.routines.impl.ProcedureImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2JavaOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Procedure;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ProcedureDeploy;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension;
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Procedure</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getFenced <em>Fenced</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getThreadsafe <em>Threadsafe</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#isDbInfo <em>Db Info</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#isImplicitSchema <em>Implicit Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getParmCcsid <em>Parm Ccsid</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getSpecialRegister <em>Special Register</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getChangeState <em>Change State</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getDebugId <em>Debug Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getProgramType <em>Program Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getOrigSchemaName <em>Orig Schema Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getOrigParmSig <em>Orig Parm Sig</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getExtendedOptions <em>Extended Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getRoutineExtensions <em>Routine Extensions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#isModelResultSets <em>Model Result Sets</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#isNullInput <em>Null Input</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getDialect <em>Dialect</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#isExternalAction <em>External Action</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getReturn <em>Return</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getJavaOptions <em>Java Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ProcedureImpl#getDeploy <em>Deploy</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2ProcedureImpl extends ProcedureImpl implements DB2Procedure {
+ /**
+ * The default value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected static final String FENCED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected String fenced = FENCED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected static final String THREADSAFE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected String threadsafe = THREADSAFE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DB_INFO_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected boolean dbInfo = DB_INFO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IMPLICIT_SCHEMA_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected boolean implicitSchema = IMPLICIT_SCHEMA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FEDERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected boolean federated = FEDERATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected static final String PARM_CCSID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected String parmCcsid = PARM_CCSID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIAL_REGISTER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected String specialRegister = SPECIAL_REGISTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected static final int CHANGE_STATE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected int changeState = CHANGE_STATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEBUG_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected String debugId = DEBUG_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROGRAM_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected String programType = PROGRAM_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_SCHEMA_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected String origSchemaName = ORIG_SCHEMA_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_PARM_SIG_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected String origParmSig = ORIG_PARM_SIG_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExtendedOptions() <em>Extended Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtendedOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList extendedOptions;
+
+ /**
+ * The cached value of the '{@link #getRoutineExtensions() <em>Routine Extensions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRoutineExtensions()
+ * @generated
+ * @ordered
+ */
+ protected EList routineExtensions;
+
+ /**
+ * The default value of the '{@link #isModelResultSets() <em>Model Result Sets</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isModelResultSets()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MODEL_RESULT_SETS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isModelResultSets() <em>Model Result Sets</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isModelResultSets()
+ * @generated
+ * @ordered
+ */
+ protected boolean modelResultSets = MODEL_RESULT_SETS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isNullInput() <em>Null Input</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isNullInput()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean NULL_INPUT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isNullInput() <em>Null Input</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isNullInput()
+ * @generated
+ * @ordered
+ */
+ protected boolean nullInput = NULL_INPUT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected static final SourceDialect DIALECT_EDEFAULT = SourceDialect.UNKNOWN_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected SourceDialect dialect = DIALECT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isExternalAction() <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternalAction()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXTERNAL_ACTION_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isExternalAction() <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternalAction()
+ * @generated
+ * @ordered
+ */
+ protected boolean externalAction = EXTERNAL_ACTION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getReturn() <em>Return</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReturn()
+ * @generated
+ * @ordered
+ */
+ protected IntegerDataType return_;
+
+ /**
+ * The cached value of the '{@link #getJavaOptions() <em>Java Options</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJavaOptions()
+ * @generated
+ * @ordered
+ */
+ protected DB2JavaOptions javaOptions;
+
+ /**
+ * The cached value of the '{@link #getDeploy() <em>Deploy</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeploy()
+ * @generated
+ * @ordered
+ */
+ protected DB2ProcedureDeploy deploy;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ProcedureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_PROCEDURE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFenced() {
+ return fenced;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFenced(String newFenced) {
+ String oldFenced = fenced;
+ fenced = newFenced;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__FENCED, oldFenced, fenced));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getThreadsafe() {
+ return threadsafe;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setThreadsafe(String newThreadsafe) {
+ String oldThreadsafe = threadsafe;
+ threadsafe = newThreadsafe;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__THREADSAFE, oldThreadsafe, threadsafe));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDbInfo() {
+ return dbInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbInfo(boolean newDbInfo) {
+ boolean oldDbInfo = dbInfo;
+ dbInfo = newDbInfo;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__DB_INFO, oldDbInfo, dbInfo));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isImplicitSchema() {
+ return implicitSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplicitSchema(boolean newImplicitSchema) {
+ boolean oldImplicitSchema = implicitSchema;
+ implicitSchema = newImplicitSchema;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA, oldImplicitSchema, implicitSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFederated() {
+ return federated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFederated(boolean newFederated) {
+ boolean oldFederated = federated;
+ federated = newFederated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__FEDERATED, oldFederated, federated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getParmCcsid() {
+ return parmCcsid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParmCcsid(String newParmCcsid) {
+ String oldParmCcsid = parmCcsid;
+ parmCcsid = newParmCcsid;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID, oldParmCcsid, parmCcsid));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSpecialRegister() {
+ return specialRegister;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpecialRegister(String newSpecialRegister) {
+ String oldSpecialRegister = specialRegister;
+ specialRegister = newSpecialRegister;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER, oldSpecialRegister, specialRegister));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getChangeState() {
+ return changeState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChangeState(int newChangeState) {
+ int oldChangeState = changeState;
+ changeState = newChangeState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE, oldChangeState, changeState));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDebugId() {
+ return debugId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDebugId(String newDebugId) {
+ String oldDebugId = debugId;
+ debugId = newDebugId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID, oldDebugId, debugId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProgramType() {
+ return programType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProgramType(String newProgramType) {
+ String oldProgramType = programType;
+ programType = newProgramType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE, oldProgramType, programType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigSchemaName() {
+ return origSchemaName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigSchemaName(String newOrigSchemaName) {
+ String oldOrigSchemaName = origSchemaName;
+ origSchemaName = newOrigSchemaName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME, oldOrigSchemaName, origSchemaName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigParmSig() {
+ return origParmSig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigParmSig(String newOrigParmSig) {
+ String oldOrigParmSig = origParmSig;
+ origParmSig = newOrigParmSig;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG, oldOrigParmSig, origParmSig));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getExtendedOptions() {
+ if (extendedOptions == null) {
+ extendedOptions = new EObjectContainmentEList(DB2ExtendedOptions.class, this, DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS);
+ }
+ return extendedOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRoutineExtensions() {
+ if (routineExtensions == null) {
+ routineExtensions = new EObjectResolvingEList(DB2RoutineExtension.class, this, DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS);
+ }
+ return routineExtensions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ProcedureDeploy getDeploy() {
+ return deploy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetDeploy(DB2ProcedureDeploy newDeploy, NotificationChain msgs) {
+ DB2ProcedureDeploy oldDeploy = deploy;
+ deploy = newDeploy;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__DEPLOY, oldDeploy, newDeploy);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDeploy(DB2ProcedureDeploy newDeploy) {
+ if (newDeploy != deploy) {
+ NotificationChain msgs = null;
+ if (deploy != null)
+ msgs = ((InternalEObject)deploy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PROCEDURE__DEPLOY, null, msgs);
+ if (newDeploy != null)
+ msgs = ((InternalEObject)newDeploy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PROCEDURE__DEPLOY, null, msgs);
+ msgs = basicSetDeploy(newDeploy, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__DEPLOY, newDeploy, newDeploy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS:
+ if (javaOptions != null)
+ msgs = ((InternalEObject)javaOptions).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS, null, msgs);
+ return basicSetJavaOptions((DB2JavaOptions)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS:
+ return ((InternalEList)getExtendedOptions()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_PROCEDURE__RETURN:
+ return basicSetReturn(null, msgs);
+ case DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS:
+ return basicSetJavaOptions(null, msgs);
+ case DB2ModelPackage.DB2_PROCEDURE__DEPLOY:
+ return basicSetDeploy(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE__FENCED:
+ return getFenced();
+ case DB2ModelPackage.DB2_PROCEDURE__THREADSAFE:
+ return getThreadsafe();
+ case DB2ModelPackage.DB2_PROCEDURE__DB_INFO:
+ return isDbInfo() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA:
+ return isImplicitSchema() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PROCEDURE__FEDERATED:
+ return isFederated() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID:
+ return getParmCcsid();
+ case DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER:
+ return getSpecialRegister();
+ case DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE:
+ return new Integer(getChangeState());
+ case DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID:
+ return getDebugId();
+ case DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE:
+ return getProgramType();
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME:
+ return getOrigSchemaName();
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG:
+ return getOrigParmSig();
+ case DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS:
+ return getExtendedOptions();
+ case DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS:
+ return getRoutineExtensions();
+ case DB2ModelPackage.DB2_PROCEDURE__MODEL_RESULT_SETS:
+ return isModelResultSets() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PROCEDURE__NULL_INPUT:
+ return isNullInput() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PROCEDURE__VERSION:
+ return getVersion();
+ case DB2ModelPackage.DB2_PROCEDURE__DIALECT:
+ return getDialect();
+ case DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_ACTION:
+ return isExternalAction() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_PROCEDURE__RETURN:
+ return getReturn();
+ case DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS:
+ return getJavaOptions();
+ case DB2ModelPackage.DB2_PROCEDURE__DEPLOY:
+ return getDeploy();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE__FENCED:
+ setFenced((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__THREADSAFE:
+ setThreadsafe((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DB_INFO:
+ setDbInfo(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA:
+ setImplicitSchema(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__FEDERATED:
+ setFederated(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID:
+ setParmCcsid((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER:
+ setSpecialRegister((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE:
+ setChangeState(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID:
+ setDebugId((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE:
+ setProgramType((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME:
+ setOrigSchemaName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG:
+ setOrigParmSig((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ getExtendedOptions().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ getRoutineExtensions().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__MODEL_RESULT_SETS:
+ setModelResultSets(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__NULL_INPUT:
+ setNullInput(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__VERSION:
+ setVersion((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DIALECT:
+ setDialect((SourceDialect)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_ACTION:
+ setExternalAction(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__RETURN:
+ setReturn((IntegerDataType)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS:
+ setJavaOptions((DB2JavaOptions)newValue);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DEPLOY:
+ setDeploy((DB2ProcedureDeploy)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE__FENCED:
+ setFenced(FENCED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__THREADSAFE:
+ setThreadsafe(THREADSAFE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DB_INFO:
+ setDbInfo(DB_INFO_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA:
+ setImplicitSchema(IMPLICIT_SCHEMA_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__FEDERATED:
+ setFederated(FEDERATED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID:
+ setParmCcsid(PARM_CCSID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER:
+ setSpecialRegister(SPECIAL_REGISTER_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE:
+ setChangeState(CHANGE_STATE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID:
+ setDebugId(DEBUG_ID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE:
+ setProgramType(PROGRAM_TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME:
+ setOrigSchemaName(ORIG_SCHEMA_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG:
+ setOrigParmSig(ORIG_PARM_SIG_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__MODEL_RESULT_SETS:
+ setModelResultSets(MODEL_RESULT_SETS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__NULL_INPUT:
+ setNullInput(NULL_INPUT_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DIALECT:
+ setDialect(DIALECT_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_ACTION:
+ setExternalAction(EXTERNAL_ACTION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__RETURN:
+ setReturn((IntegerDataType)null);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS:
+ setJavaOptions((DB2JavaOptions)null);
+ return;
+ case DB2ModelPackage.DB2_PROCEDURE__DEPLOY:
+ setDeploy((DB2ProcedureDeploy)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_PROCEDURE__FENCED:
+ return FENCED_EDEFAULT == null ? fenced != null : !FENCED_EDEFAULT.equals(fenced);
+ case DB2ModelPackage.DB2_PROCEDURE__THREADSAFE:
+ return THREADSAFE_EDEFAULT == null ? threadsafe != null : !THREADSAFE_EDEFAULT.equals(threadsafe);
+ case DB2ModelPackage.DB2_PROCEDURE__DB_INFO:
+ return dbInfo != DB_INFO_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA:
+ return implicitSchema != IMPLICIT_SCHEMA_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__FEDERATED:
+ return federated != FEDERATED_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID:
+ return PARM_CCSID_EDEFAULT == null ? parmCcsid != null : !PARM_CCSID_EDEFAULT.equals(parmCcsid);
+ case DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER:
+ return SPECIAL_REGISTER_EDEFAULT == null ? specialRegister != null : !SPECIAL_REGISTER_EDEFAULT.equals(specialRegister);
+ case DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE:
+ return changeState != CHANGE_STATE_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID:
+ return DEBUG_ID_EDEFAULT == null ? debugId != null : !DEBUG_ID_EDEFAULT.equals(debugId);
+ case DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE:
+ return PROGRAM_TYPE_EDEFAULT == null ? programType != null : !PROGRAM_TYPE_EDEFAULT.equals(programType);
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME:
+ return ORIG_SCHEMA_NAME_EDEFAULT == null ? origSchemaName != null : !ORIG_SCHEMA_NAME_EDEFAULT.equals(origSchemaName);
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG:
+ return ORIG_PARM_SIG_EDEFAULT == null ? origParmSig != null : !ORIG_PARM_SIG_EDEFAULT.equals(origParmSig);
+ case DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS:
+ return extendedOptions != null && !extendedOptions.isEmpty();
+ case DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS:
+ return routineExtensions != null && !routineExtensions.isEmpty();
+ case DB2ModelPackage.DB2_PROCEDURE__MODEL_RESULT_SETS:
+ return modelResultSets != MODEL_RESULT_SETS_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__NULL_INPUT:
+ return nullInput != NULL_INPUT_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case DB2ModelPackage.DB2_PROCEDURE__DIALECT:
+ return dialect != DIALECT_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_ACTION:
+ return externalAction != EXTERNAL_ACTION_EDEFAULT;
+ case DB2ModelPackage.DB2_PROCEDURE__RETURN:
+ return return_ != null;
+ case DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS:
+ return javaOptions != null;
+ case DB2ModelPackage.DB2_PROCEDURE__DEPLOY:
+ return deploy != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isModelResultSets() {
+ return modelResultSets;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setModelResultSets(boolean newModelResultSets) {
+ boolean oldModelResultSets = modelResultSets;
+ modelResultSets = newModelResultSets;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__MODEL_RESULT_SETS, oldModelResultSets, modelResultSets));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isNullInput() {
+ return nullInput;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNullInput(boolean newNullInput) {
+ boolean oldNullInput = nullInput;
+ nullInput = newNullInput;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__NULL_INPUT, oldNullInput, nullInput));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__VERSION, oldVersion, version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SourceDialect getDialect() {
+ return dialect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDialect(SourceDialect newDialect) {
+ SourceDialect oldDialect = dialect;
+ dialect = newDialect == null ? DIALECT_EDEFAULT : newDialect;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__DIALECT, oldDialect, dialect));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isExternalAction() {
+ return externalAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExternalAction(boolean newExternalAction) {
+ boolean oldExternalAction = externalAction;
+ externalAction = newExternalAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__EXTERNAL_ACTION, oldExternalAction, externalAction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IntegerDataType getReturn() {
+ return return_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetReturn(IntegerDataType newReturn, NotificationChain msgs) {
+ IntegerDataType oldReturn = return_;
+ return_ = newReturn;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__RETURN, oldReturn, newReturn);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReturn(IntegerDataType newReturn) {
+ if (newReturn != return_) {
+ NotificationChain msgs = null;
+ if (return_ != null)
+ msgs = ((InternalEObject)return_).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PROCEDURE__RETURN, null, msgs);
+ if (newReturn != null)
+ msgs = ((InternalEObject)newReturn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - DB2ModelPackage.DB2_PROCEDURE__RETURN, null, msgs);
+ msgs = basicSetReturn(newReturn, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__RETURN, newReturn, newReturn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2JavaOptions getJavaOptions() {
+ return javaOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetJavaOptions(DB2JavaOptions newJavaOptions, NotificationChain msgs) {
+ DB2JavaOptions oldJavaOptions = javaOptions;
+ javaOptions = newJavaOptions;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS, oldJavaOptions, newJavaOptions);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setJavaOptions(DB2JavaOptions newJavaOptions) {
+ if (newJavaOptions != javaOptions) {
+ NotificationChain msgs = null;
+ if (javaOptions != null)
+ msgs = ((InternalEObject)javaOptions).eInverseRemove(this, DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE, DB2JavaOptions.class, msgs);
+ if (newJavaOptions != null)
+ msgs = ((InternalEObject)newJavaOptions).eInverseAdd(this, DB2ModelPackage.DB2_JAVA_OPTIONS__PROCEDURE, DB2JavaOptions.class, msgs);
+ msgs = basicSetJavaOptions(newJavaOptions, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_PROCEDURE__JAVA_OPTIONS, newJavaOptions, newJavaOptions));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == DB2AccessPlan.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (derivedFeatureID) {
+ case DB2ModelPackage.DB2_PROCEDURE__FENCED: return DB2ModelPackage.DB2_ROUTINE__FENCED;
+ case DB2ModelPackage.DB2_PROCEDURE__THREADSAFE: return DB2ModelPackage.DB2_ROUTINE__THREADSAFE;
+ case DB2ModelPackage.DB2_PROCEDURE__DB_INFO: return DB2ModelPackage.DB2_ROUTINE__DB_INFO;
+ case DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA: return DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA;
+ case DB2ModelPackage.DB2_PROCEDURE__FEDERATED: return DB2ModelPackage.DB2_ROUTINE__FEDERATED;
+ case DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID: return DB2ModelPackage.DB2_ROUTINE__PARM_CCSID;
+ case DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER: return DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER;
+ case DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE: return DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE;
+ case DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID: return DB2ModelPackage.DB2_ROUTINE__DEBUG_ID;
+ case DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE: return DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE;
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME: return DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME;
+ case DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG: return DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG;
+ case DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS: return DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS;
+ case DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS: return DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == DB2AccessPlan.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (baseFeatureID) {
+ case DB2ModelPackage.DB2_ROUTINE__FENCED: return DB2ModelPackage.DB2_PROCEDURE__FENCED;
+ case DB2ModelPackage.DB2_ROUTINE__THREADSAFE: return DB2ModelPackage.DB2_PROCEDURE__THREADSAFE;
+ case DB2ModelPackage.DB2_ROUTINE__DB_INFO: return DB2ModelPackage.DB2_PROCEDURE__DB_INFO;
+ case DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA: return DB2ModelPackage.DB2_PROCEDURE__IMPLICIT_SCHEMA;
+ case DB2ModelPackage.DB2_ROUTINE__FEDERATED: return DB2ModelPackage.DB2_PROCEDURE__FEDERATED;
+ case DB2ModelPackage.DB2_ROUTINE__PARM_CCSID: return DB2ModelPackage.DB2_PROCEDURE__PARM_CCSID;
+ case DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER: return DB2ModelPackage.DB2_PROCEDURE__SPECIAL_REGISTER;
+ case DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE: return DB2ModelPackage.DB2_PROCEDURE__CHANGE_STATE;
+ case DB2ModelPackage.DB2_ROUTINE__DEBUG_ID: return DB2ModelPackage.DB2_PROCEDURE__DEBUG_ID;
+ case DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE: return DB2ModelPackage.DB2_PROCEDURE__PROGRAM_TYPE;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME: return DB2ModelPackage.DB2_PROCEDURE__ORIG_SCHEMA_NAME;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG: return DB2ModelPackage.DB2_PROCEDURE__ORIG_PARM_SIG;
+ case DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS: return DB2ModelPackage.DB2_PROCEDURE__EXTENDED_OPTIONS;
+ case DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS: return DB2ModelPackage.DB2_PROCEDURE__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fenced: "); //$NON-NLS-1$
+ result.append(fenced);
+ result.append(", threadsafe: "); //$NON-NLS-1$
+ result.append(threadsafe);
+ result.append(", dbInfo: "); //$NON-NLS-1$
+ result.append(dbInfo);
+ result.append(", implicitSchema: "); //$NON-NLS-1$
+ result.append(implicitSchema);
+ result.append(", federated: "); //$NON-NLS-1$
+ result.append(federated);
+ result.append(", parmCcsid: "); //$NON-NLS-1$
+ result.append(parmCcsid);
+ result.append(", specialRegister: "); //$NON-NLS-1$
+ result.append(specialRegister);
+ result.append(", changeState: "); //$NON-NLS-1$
+ result.append(changeState);
+ result.append(", debugId: "); //$NON-NLS-1$
+ result.append(debugId);
+ result.append(", programType: "); //$NON-NLS-1$
+ result.append(programType);
+ result.append(", origSchemaName: "); //$NON-NLS-1$
+ result.append(origSchemaName);
+ result.append(", origParmSig: "); //$NON-NLS-1$
+ result.append(origParmSig);
+ result.append(", modelResultSets: "); //$NON-NLS-1$
+ result.append(modelResultSets);
+ result.append(", nullInput: "); //$NON-NLS-1$
+ result.append(nullInput);
+ result.append(", version: "); //$NON-NLS-1$
+ result.append(version);
+ result.append(", dialect: "); //$NON-NLS-1$
+ result.append(dialect);
+ result.append(", externalAction: "); //$NON-NLS-1$
+ result.append(externalAction);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2ProcedureImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SchemaImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SchemaImpl.java
new file mode 100644
index 0000000..be9fa33
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SchemaImpl.java
@@ -0,0 +1,466 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SchemaImpl;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Jar;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2OLAPObject;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Schema</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getAccessPlans <em>Access Plans</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getOlapObjects <em>Olap Objects</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getJars <em>Jars</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getXsrObjects <em>Xsr Objects</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getPackages <em>Packages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getMasks <em>Masks</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getPermissions <em>Permissions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getModules <em>Modules</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SchemaImpl#getGlobalVariables <em>Global Variables</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2SchemaImpl extends SchemaImpl implements DB2Schema {
+ /**
+ * The cached value of the '{@link #getAccessPlans() <em>Access Plans</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAccessPlans()
+ * @generated
+ * @ordered
+ */
+ protected EList accessPlans;
+
+ /**
+ * The cached value of the '{@link #getOlapObjects() <em>Olap Objects</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOlapObjects()
+ * @generated
+ * @ordered
+ */
+ protected EList olapObjects;
+
+ /**
+ * The cached value of the '{@link #getJars() <em>Jars</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getJars()
+ * @generated
+ * @ordered
+ */
+ protected EList jars;
+
+ /**
+ * The cached value of the '{@link #getXsrObjects() <em>Xsr Objects</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXsrObjects()
+ * @generated
+ * @ordered
+ */
+ protected EList xsrObjects;
+
+ /**
+ * The cached value of the '{@link #getPackages() <em>Packages</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPackages()
+ * @generated
+ * @ordered
+ */
+ protected EList packages;
+
+ /**
+ * The cached value of the '{@link #getMasks() <em>Masks</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMasks()
+ * @generated
+ * @ordered
+ */
+ protected EList masks;
+
+ /**
+ * The cached value of the '{@link #getPermissions() <em>Permissions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPermissions()
+ * @generated
+ * @ordered
+ */
+ protected EList permissions;
+
+ /**
+ * The cached value of the '{@link #getModules() <em>Modules</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModules()
+ * @generated
+ * @ordered
+ */
+ protected EList modules;
+
+ /**
+ * The cached value of the '{@link #getGlobalVariables() <em>Global Variables</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGlobalVariables()
+ * @generated
+ * @ordered
+ */
+ protected EList globalVariables;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2SchemaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_SCHEMA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getAccessPlans() {
+ if (accessPlans == null) {
+ accessPlans = new EObjectResolvingEList(DB2AccessPlan.class, this, DB2ModelPackage.DB2_SCHEMA__ACCESS_PLANS);
+ }
+ return accessPlans;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getOlapObjects() {
+ if (olapObjects == null) {
+ olapObjects = new EObjectWithInverseResolvingEList(DB2OLAPObject.class, this, DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS, DB2ModelPackage.DB2OLAP_OBJECT__SCHEMA);
+ }
+ return olapObjects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getJars() {
+ if (jars == null) {
+ jars = new EObjectWithInverseResolvingEList(DB2Jar.class, this, DB2ModelPackage.DB2_SCHEMA__JARS, DB2ModelPackage.DB2_JAR__SCHEMA);
+ }
+ return jars;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getXsrObjects() {
+ if (xsrObjects == null) {
+ xsrObjects = new EObjectWithInverseResolvingEList(DB2XSRObject.class, this, DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS, DB2ModelPackage.DB2XSR_OBJECT__SCHEMA);
+ }
+ return xsrObjects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPackages() {
+ if (packages == null) {
+ packages = new EObjectWithInverseResolvingEList(DB2Package.class, this, DB2ModelPackage.DB2_SCHEMA__PACKAGES, DB2ModelPackage.DB2_PACKAGE__SCHEMA);
+ }
+ return packages;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getMasks() {
+ if (masks == null) {
+ masks = new EObjectWithInverseResolvingEList(DB2Mask.class, this, DB2ModelPackage.DB2_SCHEMA__MASKS, DB2ModelPackage.DB2_MASK__SCHEMA);
+ }
+ return masks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPermissions() {
+ if (permissions == null) {
+ permissions = new EObjectWithInverseResolvingEList(DB2Permission.class, this, DB2ModelPackage.DB2_SCHEMA__PERMISSIONS, DB2ModelPackage.DB2_PERMISSION__SCHEMA);
+ }
+ return permissions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getModules() {
+// if (modules == null) {
+// modules = new EObjectWithInverseResolvingEList(LUWModule.class, this, DB2ModelPackage.DB2_SCHEMA__MODULES, LUWPackage.LUW_MODULE__OWNING_SCHEMA);
+// }
+ return modules;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getGlobalVariables() {
+// if (globalVariables == null) {
+// globalVariables = new EObjectWithInverseResolvingEList(LUWGlobalVariable.class, this, DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES, LUWPackage.LUW_GLOBAL_VARIABLE__SCHEMA);
+// }
+ return globalVariables;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS:
+ return ((InternalEList)getOlapObjects()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__JARS:
+ return ((InternalEList)getJars()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS:
+ return ((InternalEList)getXsrObjects()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__PACKAGES:
+ return ((InternalEList)getPackages()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__MASKS:
+ return ((InternalEList)getMasks()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__PERMISSIONS:
+ return ((InternalEList)getPermissions()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__MODULES:
+ return ((InternalEList)getModules()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES:
+ return ((InternalEList)getGlobalVariables()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS:
+ return ((InternalEList)getOlapObjects()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__JARS:
+ return ((InternalEList)getJars()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS:
+ return ((InternalEList)getXsrObjects()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__PACKAGES:
+ return ((InternalEList)getPackages()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__MASKS:
+ return ((InternalEList)getMasks()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__PERMISSIONS:
+ return ((InternalEList)getPermissions()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__MODULES:
+ return ((InternalEList)getModules()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES:
+ return ((InternalEList)getGlobalVariables()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SCHEMA__ACCESS_PLANS:
+ return getAccessPlans();
+ case DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS:
+ return getOlapObjects();
+ case DB2ModelPackage.DB2_SCHEMA__JARS:
+ return getJars();
+ case DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS:
+ return getXsrObjects();
+ case DB2ModelPackage.DB2_SCHEMA__PACKAGES:
+ return getPackages();
+ case DB2ModelPackage.DB2_SCHEMA__MASKS:
+ return getMasks();
+ case DB2ModelPackage.DB2_SCHEMA__PERMISSIONS:
+ return getPermissions();
+ case DB2ModelPackage.DB2_SCHEMA__MODULES:
+ return getModules();
+ case DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES:
+ return getGlobalVariables();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SCHEMA__ACCESS_PLANS:
+ getAccessPlans().clear();
+ getAccessPlans().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS:
+ getOlapObjects().clear();
+ getOlapObjects().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__JARS:
+ getJars().clear();
+ getJars().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS:
+ getXsrObjects().clear();
+ getXsrObjects().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__PACKAGES:
+ getPackages().clear();
+ getPackages().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__MASKS:
+ getMasks().clear();
+ getMasks().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__PERMISSIONS:
+ getPermissions().clear();
+ getPermissions().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__MODULES:
+ getModules().clear();
+ getModules().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES:
+ getGlobalVariables().clear();
+ getGlobalVariables().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SCHEMA__ACCESS_PLANS:
+ getAccessPlans().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS:
+ getOlapObjects().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__JARS:
+ getJars().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS:
+ getXsrObjects().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__PACKAGES:
+ getPackages().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__MASKS:
+ getMasks().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__PERMISSIONS:
+ getPermissions().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__MODULES:
+ getModules().clear();
+ return;
+ case DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES:
+ getGlobalVariables().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SCHEMA__ACCESS_PLANS:
+ return accessPlans != null && !accessPlans.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__OLAP_OBJECTS:
+ return olapObjects != null && !olapObjects.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__JARS:
+ return jars != null && !jars.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS:
+ return xsrObjects != null && !xsrObjects.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__PACKAGES:
+ return packages != null && !packages.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__MASKS:
+ return masks != null && !masks.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__PERMISSIONS:
+ return permissions != null && !permissions.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__MODULES:
+ return modules != null && !modules.isEmpty();
+ case DB2ModelPackage.DB2_SCHEMA__GLOBAL_VARIABLES:
+ return globalVariables != null && !globalVariables.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DB2SchemaImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SourceImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SourceImpl.java
new file mode 100644
index 0000000..00a95e0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SourceImpl.java
@@ -0,0 +1,461 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.impl.SourceImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Source;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Source</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl#getFileName <em>File Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl#getPackageName <em>Package Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl#getDb2PackageName <em>Db2 Package Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl#getLastModified <em>Last Modified</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl#getSupporting <em>Supporting</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2SourceImpl#getPrimary <em>Primary</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2SourceImpl extends SourceImpl implements DB2Source {
+ /**
+ * The default value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected String fileName = FILE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPackageName() <em>Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPackageName()
+ * @generated
+ * @ordered
+ */
+ protected static final String PACKAGE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPackageName() <em>Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPackageName()
+ * @generated
+ * @ordered
+ */
+ protected String packageName = PACKAGE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDb2PackageName() <em>Db2 Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDb2PackageName()
+ * @generated
+ * @ordered
+ */
+ protected static final String DB2_PACKAGE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDb2PackageName() <em>Db2 Package Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDb2PackageName()
+ * @generated
+ * @ordered
+ */
+ protected String db2PackageName = DB2_PACKAGE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLastModified() <em>Last Modified</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastModified()
+ * @generated
+ * @ordered
+ */
+ protected static final String LAST_MODIFIED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLastModified() <em>Last Modified</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLastModified()
+ * @generated
+ * @ordered
+ */
+ protected String lastModified = LAST_MODIFIED_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSupporting() <em>Supporting</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSupporting()
+ * @generated
+ * @ordered
+ */
+ protected EList supporting;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2SourceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_SOURCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFileName() {
+ return fileName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFileName(String newFileName) {
+ String oldFileName = fileName;
+ fileName = newFileName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_SOURCE__FILE_NAME, oldFileName, fileName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPackageName() {
+ return packageName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPackageName(String newPackageName) {
+ String oldPackageName = packageName;
+ packageName = newPackageName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_SOURCE__PACKAGE_NAME, oldPackageName, packageName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDb2PackageName() {
+ return db2PackageName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDb2PackageName(String newDb2PackageName) {
+ String oldDb2PackageName = db2PackageName;
+ db2PackageName = newDb2PackageName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_SOURCE__DB2_PACKAGE_NAME, oldDb2PackageName, db2PackageName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLastModified() {
+ return lastModified;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLastModified(String newLastModified) {
+ String oldLastModified = lastModified;
+ lastModified = newLastModified;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_SOURCE__LAST_MODIFIED, oldLastModified, lastModified));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getSupporting() {
+ if (supporting == null) {
+ supporting = new EObjectContainmentWithInverseEList(DB2Source.class, this, DB2ModelPackage.DB2_SOURCE__SUPPORTING, DB2ModelPackage.DB2_SOURCE__PRIMARY);
+ }
+ return supporting;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Source getPrimary() {
+ if (eContainerFeatureID() != DB2ModelPackage.DB2_SOURCE__PRIMARY) return null;
+ return (DB2Source)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPrimary(DB2Source newPrimary, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newPrimary, DB2ModelPackage.DB2_SOURCE__PRIMARY, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrimary(DB2Source newPrimary) {
+ if (newPrimary != eInternalContainer() || (eContainerFeatureID() != DB2ModelPackage.DB2_SOURCE__PRIMARY && newPrimary != null)) {
+ if (EcoreUtil.isAncestor(this, newPrimary))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newPrimary != null)
+ msgs = ((InternalEObject)newPrimary).eInverseAdd(this, DB2ModelPackage.DB2_SOURCE__SUPPORTING, DB2Source.class, msgs);
+ msgs = basicSetPrimary(newPrimary, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_SOURCE__PRIMARY, newPrimary, newPrimary));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SOURCE__SUPPORTING:
+ return ((InternalEList)getSupporting()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SOURCE__PRIMARY:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetPrimary((DB2Source)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SOURCE__SUPPORTING:
+ return ((InternalEList)getSupporting()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_SOURCE__PRIMARY:
+ return basicSetPrimary(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case DB2ModelPackage.DB2_SOURCE__PRIMARY:
+ return eInternalContainer().eInverseRemove(this, DB2ModelPackage.DB2_SOURCE__SUPPORTING, DB2Source.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SOURCE__FILE_NAME:
+ return getFileName();
+ case DB2ModelPackage.DB2_SOURCE__PACKAGE_NAME:
+ return getPackageName();
+ case DB2ModelPackage.DB2_SOURCE__DB2_PACKAGE_NAME:
+ return getDb2PackageName();
+ case DB2ModelPackage.DB2_SOURCE__LAST_MODIFIED:
+ return getLastModified();
+ case DB2ModelPackage.DB2_SOURCE__SUPPORTING:
+ return getSupporting();
+ case DB2ModelPackage.DB2_SOURCE__PRIMARY:
+ return getPrimary();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SOURCE__FILE_NAME:
+ setFileName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__PACKAGE_NAME:
+ setPackageName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__DB2_PACKAGE_NAME:
+ setDb2PackageName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__LAST_MODIFIED:
+ setLastModified((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__SUPPORTING:
+ getSupporting().clear();
+ getSupporting().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__PRIMARY:
+ setPrimary((DB2Source)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SOURCE__FILE_NAME:
+ setFileName(FILE_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__PACKAGE_NAME:
+ setPackageName(PACKAGE_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__DB2_PACKAGE_NAME:
+ setDb2PackageName(DB2_PACKAGE_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__LAST_MODIFIED:
+ setLastModified(LAST_MODIFIED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_SOURCE__SUPPORTING:
+ getSupporting().clear();
+ return;
+ case DB2ModelPackage.DB2_SOURCE__PRIMARY:
+ setPrimary((DB2Source)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_SOURCE__FILE_NAME:
+ return FILE_NAME_EDEFAULT == null ? fileName != null : !FILE_NAME_EDEFAULT.equals(fileName);
+ case DB2ModelPackage.DB2_SOURCE__PACKAGE_NAME:
+ return PACKAGE_NAME_EDEFAULT == null ? packageName != null : !PACKAGE_NAME_EDEFAULT.equals(packageName);
+ case DB2ModelPackage.DB2_SOURCE__DB2_PACKAGE_NAME:
+ return DB2_PACKAGE_NAME_EDEFAULT == null ? db2PackageName != null : !DB2_PACKAGE_NAME_EDEFAULT.equals(db2PackageName);
+ case DB2ModelPackage.DB2_SOURCE__LAST_MODIFIED:
+ return LAST_MODIFIED_EDEFAULT == null ? lastModified != null : !LAST_MODIFIED_EDEFAULT.equals(lastModified);
+ case DB2ModelPackage.DB2_SOURCE__SUPPORTING:
+ return supporting != null && !supporting.isEmpty();
+ case DB2ModelPackage.DB2_SOURCE__PRIMARY:
+ return getPrimary() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fileName: "); //$NON-NLS-1$
+ result.append(fileName);
+ result.append(", packageName: "); //$NON-NLS-1$
+ result.append(packageName);
+ result.append(", db2PackageName: "); //$NON-NLS-1$
+ result.append(db2PackageName);
+ result.append(", lastModified: "); //$NON-NLS-1$
+ result.append(lastModified);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2SourceImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SystemSchemaImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SystemSchemaImpl.java
new file mode 100644
index 0000000..be6e873
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2SystemSchemaImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2SystemSchema;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 System Schema</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2SystemSchemaImpl extends DB2SchemaImpl implements DB2SystemSchema {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2SystemSchemaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_SYSTEM_SCHEMA;
+ }
+
+} //DB2SystemSchemaImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TableImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TableImpl.java
new file mode 100644
index 0000000..800f744
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TableImpl.java
@@ -0,0 +1,683 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Mask;
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.PersistentTableImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Package;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Period;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Permission;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Table;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2TableOrganization;
+import org.eclipse.datatools.enablement.ibm.db2.model.DataCaptureType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Table</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getDataCapture <em>Data Capture</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#isActivateRowAccessControl <em>Activate Row Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#isActivateColumnAccessControl <em>Activate Column Access Control</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getOrganizeBy <em>Organize By</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getPackages <em>Packages</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getPeriods <em>Periods</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getHistoryTable <em>History Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getTemporalTable <em>Temporal Table</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getMasks <em>Masks</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TableImpl#getPermissions <em>Permissions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2TableImpl extends PersistentTableImpl implements DB2Table {
+ /**
+ * The default value of the '{@link #getDataCapture() <em>Data Capture</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCapture()
+ * @generated
+ * @ordered
+ */
+ protected static final DataCaptureType DATA_CAPTURE_EDEFAULT = DataCaptureType.NONE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getDataCapture() <em>Data Capture</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDataCapture()
+ * @generated
+ * @ordered
+ */
+ protected DataCaptureType dataCapture = DATA_CAPTURE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isActivateRowAccessControl() <em>Activate Row Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateRowAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isActivateRowAccessControl() <em>Activate Row Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateRowAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected boolean activateRowAccessControl = ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isActivateColumnAccessControl() <em>Activate Column Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateColumnAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isActivateColumnAccessControl() <em>Activate Column Access Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActivateColumnAccessControl()
+ * @generated
+ * @ordered
+ */
+ protected boolean activateColumnAccessControl = ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrganizeBy() <em>Organize By</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrganizeBy()
+ * @generated
+ * @ordered
+ */
+ protected static final DB2TableOrganization ORGANIZE_BY_EDEFAULT = DB2TableOrganization.UNSPECIFIED_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getOrganizeBy() <em>Organize By</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrganizeBy()
+ * @generated
+ * @ordered
+ */
+ protected DB2TableOrganization organizeBy = ORGANIZE_BY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPackages() <em>Packages</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPackages()
+ * @generated
+ * @ordered
+ */
+ protected EList packages;
+
+ /**
+ * The cached value of the '{@link #getPeriods() <em>Periods</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPeriods()
+ * @generated
+ * @ordered
+ */
+ protected EList periods;
+
+ /**
+ * The cached value of the '{@link #getHistoryTable() <em>History Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHistoryTable()
+ * @generated
+ * @ordered
+ */
+ protected DB2Table historyTable;
+
+ /**
+ * The cached value of the '{@link #getTemporalTable() <em>Temporal Table</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTemporalTable()
+ * @generated
+ * @ordered
+ */
+ protected DB2Table temporalTable;
+
+ /**
+ * The cached value of the '{@link #getMasks() <em>Masks</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMasks()
+ * @generated
+ * @ordered
+ */
+ protected EList masks;
+
+ /**
+ * The cached value of the '{@link #getPermissions() <em>Permissions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPermissions()
+ * @generated
+ * @ordered
+ */
+ protected EList permissions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2TableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_TABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataCaptureType getDataCapture() {
+ return dataCapture;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDataCapture(DataCaptureType newDataCapture) {
+ DataCaptureType oldDataCapture = dataCapture;
+ dataCapture = newDataCapture == null ? DATA_CAPTURE_EDEFAULT : newDataCapture;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__DATA_CAPTURE, oldDataCapture, dataCapture));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isActivateRowAccessControl() {
+ return activateRowAccessControl;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActivateRowAccessControl(boolean newActivateRowAccessControl) {
+ boolean oldActivateRowAccessControl = activateRowAccessControl;
+ activateRowAccessControl = newActivateRowAccessControl;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL, oldActivateRowAccessControl, activateRowAccessControl));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isActivateColumnAccessControl() {
+ return activateColumnAccessControl;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setActivateColumnAccessControl(boolean newActivateColumnAccessControl) {
+ boolean oldActivateColumnAccessControl = activateColumnAccessControl;
+ activateColumnAccessControl = newActivateColumnAccessControl;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL, oldActivateColumnAccessControl, activateColumnAccessControl));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2TableOrganization getOrganizeBy() {
+ return organizeBy;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrganizeBy(DB2TableOrganization newOrganizeBy) {
+ DB2TableOrganization oldOrganizeBy = organizeBy;
+ organizeBy = newOrganizeBy == null ? ORGANIZE_BY_EDEFAULT : newOrganizeBy;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__ORGANIZE_BY, oldOrganizeBy, organizeBy));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPackages() {
+ if (packages == null) {
+ packages = new EObjectResolvingEList(DB2Package.class, this, DB2ModelPackage.DB2_TABLE__PACKAGES);
+ }
+ return packages;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPeriods() {
+ if (periods == null) {
+ periods = new EObjectContainmentWithInverseEList(DB2Period.class, this, DB2ModelPackage.DB2_TABLE__PERIODS, DB2ModelPackage.DB2_PERIOD__TABLE);
+ }
+ return periods;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table getHistoryTable() {
+ if (historyTable != null && historyTable.eIsProxy()) {
+ InternalEObject oldHistoryTable = (InternalEObject)historyTable;
+ historyTable = (DB2Table)eResolveProxy(oldHistoryTable);
+ if (historyTable != oldHistoryTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_TABLE__HISTORY_TABLE, oldHistoryTable, historyTable));
+ }
+ }
+ return historyTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table basicGetHistoryTable() {
+ return historyTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetHistoryTable(DB2Table newHistoryTable, NotificationChain msgs) {
+ DB2Table oldHistoryTable = historyTable;
+ historyTable = newHistoryTable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__HISTORY_TABLE, oldHistoryTable, newHistoryTable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setHistoryTable(DB2Table newHistoryTable) {
+ if (newHistoryTable != historyTable) {
+ NotificationChain msgs = null;
+ if (historyTable != null)
+ msgs = ((InternalEObject)historyTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE, DB2Table.class, msgs);
+ if (newHistoryTable != null)
+ msgs = ((InternalEObject)newHistoryTable).eInverseAdd(this, DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE, DB2Table.class, msgs);
+ msgs = basicSetHistoryTable(newHistoryTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__HISTORY_TABLE, newHistoryTable, newHistoryTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table getTemporalTable() {
+ if (temporalTable != null && temporalTable.eIsProxy()) {
+ InternalEObject oldTemporalTable = (InternalEObject)temporalTable;
+ temporalTable = (DB2Table)eResolveProxy(oldTemporalTable);
+ if (temporalTable != oldTemporalTable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE, oldTemporalTable, temporalTable));
+ }
+ }
+ return temporalTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Table basicGetTemporalTable() {
+ return temporalTable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetTemporalTable(DB2Table newTemporalTable, NotificationChain msgs) {
+ DB2Table oldTemporalTable = temporalTable;
+ temporalTable = newTemporalTable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE, oldTemporalTable, newTemporalTable);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTemporalTable(DB2Table newTemporalTable) {
+ if (newTemporalTable != temporalTable) {
+ NotificationChain msgs = null;
+ if (temporalTable != null)
+ msgs = ((InternalEObject)temporalTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__HISTORY_TABLE, DB2Table.class, msgs);
+ if (newTemporalTable != null)
+ msgs = ((InternalEObject)newTemporalTable).eInverseAdd(this, DB2ModelPackage.DB2_TABLE__HISTORY_TABLE, DB2Table.class, msgs);
+ msgs = basicSetTemporalTable(newTemporalTable, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE, newTemporalTable, newTemporalTable));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getMasks() {
+ if (masks == null) {
+ masks = new EObjectWithInverseResolvingEList(DB2Mask.class, this, DB2ModelPackage.DB2_TABLE__MASKS, DB2ModelPackage.DB2_MASK__SUBJECT_TABLE);
+ }
+ return masks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPermissions() {
+ if (permissions == null) {
+ permissions = new EObjectWithInverseResolvingEList(DB2Permission.class, this, DB2ModelPackage.DB2_TABLE__PERMISSIONS, DB2ModelPackage.DB2_PERMISSION__SUBJECT_TABLE);
+ }
+ return permissions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TABLE__PERIODS:
+ return ((InternalEList)getPeriods()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_TABLE__HISTORY_TABLE:
+ if (historyTable != null)
+ msgs = ((InternalEObject)historyTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE, DB2Table.class, msgs);
+ return basicSetHistoryTable((DB2Table)otherEnd, msgs);
+ case DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE:
+ if (temporalTable != null)
+ msgs = ((InternalEObject)temporalTable).eInverseRemove(this, DB2ModelPackage.DB2_TABLE__HISTORY_TABLE, DB2Table.class, msgs);
+ return basicSetTemporalTable((DB2Table)otherEnd, msgs);
+ case DB2ModelPackage.DB2_TABLE__MASKS:
+ return ((InternalEList)getMasks()).basicAdd(otherEnd, msgs);
+ case DB2ModelPackage.DB2_TABLE__PERMISSIONS:
+ return ((InternalEList)getPermissions()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TABLE__PERIODS:
+ return ((InternalEList)getPeriods()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_TABLE__HISTORY_TABLE:
+ return basicSetHistoryTable(null, msgs);
+ case DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE:
+ return basicSetTemporalTable(null, msgs);
+ case DB2ModelPackage.DB2_TABLE__MASKS:
+ return ((InternalEList)getMasks()).basicRemove(otherEnd, msgs);
+ case DB2ModelPackage.DB2_TABLE__PERMISSIONS:
+ return ((InternalEList)getPermissions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TABLE__DATA_CAPTURE:
+ return getDataCapture();
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ return isActivateRowAccessControl() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ return isActivateColumnAccessControl() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_TABLE__ORGANIZE_BY:
+ return getOrganizeBy();
+ case DB2ModelPackage.DB2_TABLE__PACKAGES:
+ return getPackages();
+ case DB2ModelPackage.DB2_TABLE__PERIODS:
+ return getPeriods();
+ case DB2ModelPackage.DB2_TABLE__HISTORY_TABLE:
+ if (resolve) return getHistoryTable();
+ return basicGetHistoryTable();
+ case DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE:
+ if (resolve) return getTemporalTable();
+ return basicGetTemporalTable();
+ case DB2ModelPackage.DB2_TABLE__MASKS:
+ return getMasks();
+ case DB2ModelPackage.DB2_TABLE__PERMISSIONS:
+ return getPermissions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TABLE__DATA_CAPTURE:
+ setDataCapture((DataCaptureType)newValue);
+ return;
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ setActivateRowAccessControl(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ setActivateColumnAccessControl(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_TABLE__ORGANIZE_BY:
+ setOrganizeBy((DB2TableOrganization)newValue);
+ return;
+ case DB2ModelPackage.DB2_TABLE__PACKAGES:
+ getPackages().clear();
+ getPackages().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_TABLE__PERIODS:
+ getPeriods().clear();
+ getPeriods().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_TABLE__HISTORY_TABLE:
+ setHistoryTable((DB2Table)newValue);
+ return;
+ case DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE:
+ setTemporalTable((DB2Table)newValue);
+ return;
+ case DB2ModelPackage.DB2_TABLE__MASKS:
+ getMasks().clear();
+ getMasks().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_TABLE__PERMISSIONS:
+ getPermissions().clear();
+ getPermissions().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TABLE__DATA_CAPTURE:
+ setDataCapture(DATA_CAPTURE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ setActivateRowAccessControl(ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ setActivateColumnAccessControl(ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_TABLE__ORGANIZE_BY:
+ setOrganizeBy(ORGANIZE_BY_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_TABLE__PACKAGES:
+ getPackages().clear();
+ return;
+ case DB2ModelPackage.DB2_TABLE__PERIODS:
+ getPeriods().clear();
+ return;
+ case DB2ModelPackage.DB2_TABLE__HISTORY_TABLE:
+ setHistoryTable((DB2Table)null);
+ return;
+ case DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE:
+ setTemporalTable((DB2Table)null);
+ return;
+ case DB2ModelPackage.DB2_TABLE__MASKS:
+ getMasks().clear();
+ return;
+ case DB2ModelPackage.DB2_TABLE__PERMISSIONS:
+ getPermissions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TABLE__DATA_CAPTURE:
+ return dataCapture != DATA_CAPTURE_EDEFAULT;
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_ROW_ACCESS_CONTROL:
+ return activateRowAccessControl != ACTIVATE_ROW_ACCESS_CONTROL_EDEFAULT;
+ case DB2ModelPackage.DB2_TABLE__ACTIVATE_COLUMN_ACCESS_CONTROL:
+ return activateColumnAccessControl != ACTIVATE_COLUMN_ACCESS_CONTROL_EDEFAULT;
+ case DB2ModelPackage.DB2_TABLE__ORGANIZE_BY:
+ return organizeBy != ORGANIZE_BY_EDEFAULT;
+ case DB2ModelPackage.DB2_TABLE__PACKAGES:
+ return packages != null && !packages.isEmpty();
+ case DB2ModelPackage.DB2_TABLE__PERIODS:
+ return periods != null && !periods.isEmpty();
+ case DB2ModelPackage.DB2_TABLE__HISTORY_TABLE:
+ return historyTable != null;
+ case DB2ModelPackage.DB2_TABLE__TEMPORAL_TABLE:
+ return temporalTable != null;
+ case DB2ModelPackage.DB2_TABLE__MASKS:
+ return masks != null && !masks.isEmpty();
+ case DB2ModelPackage.DB2_TABLE__PERMISSIONS:
+ return permissions != null && !permissions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (dataCapture: "); //$NON-NLS-1$
+ result.append(dataCapture);
+ result.append(", activateRowAccessControl: "); //$NON-NLS-1$
+ result.append(activateRowAccessControl);
+ result.append(", activateColumnAccessControl: "); //$NON-NLS-1$
+ result.append(activateColumnAccessControl);
+ result.append(", organizeBy: "); //$NON-NLS-1$
+ result.append(organizeBy);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2TableImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TransactionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TransactionImpl.java
new file mode 100644
index 0000000..cea1f07
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TransactionImpl.java
@@ -0,0 +1,44 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Transaction;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Transaction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2TransactionImpl extends SQLObjectImpl implements DB2Transaction {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2TransactionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_TRANSACTION;
+ }
+
+} //DB2TransactionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TriggerImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TriggerImpl.java
new file mode 100644
index 0000000..23f61eb
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2TriggerImpl.java
@@ -0,0 +1,214 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.TriggerImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Trigger;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TriggerImpl#isOperative <em>Operative</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2TriggerImpl#isSecured <em>Secured</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2TriggerImpl extends TriggerImpl implements DB2Trigger {
+ /**
+ * The default value of the '{@link #isOperative() <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOperative()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean OPERATIVE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isOperative() <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOperative()
+ * @generated
+ * @ordered
+ */
+ protected boolean operative = OPERATIVE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSecured() <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSecured()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SECURED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSecured() <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSecured()
+ * @generated
+ * @ordered
+ */
+ protected boolean secured = SECURED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2TriggerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_TRIGGER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOperative() {
+ return operative;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperative(boolean newOperative) {
+ boolean oldOperative = operative;
+ operative = newOperative;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TRIGGER__OPERATIVE, oldOperative, operative));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSecured() {
+ return secured;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSecured(boolean newSecured) {
+ boolean oldSecured = secured;
+ secured = newSecured;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_TRIGGER__SECURED, oldSecured, secured));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TRIGGER__OPERATIVE:
+ return isOperative() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_TRIGGER__SECURED:
+ return isSecured() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TRIGGER__OPERATIVE:
+ setOperative(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_TRIGGER__SECURED:
+ setSecured(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TRIGGER__OPERATIVE:
+ setOperative(OPERATIVE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_TRIGGER__SECURED:
+ setSecured(SECURED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_TRIGGER__OPERATIVE:
+ return operative != OPERATIVE_EDEFAULT;
+ case DB2ModelPackage.DB2_TRIGGER__SECURED:
+ return secured != SECURED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (operative: "); //$NON-NLS-1$
+ result.append(operative);
+ result.append(", secured: "); //$NON-NLS-1$
+ result.append(secured);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2TriggerImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2UniqueConstraintExtensionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2UniqueConstraintExtensionImpl.java
new file mode 100644
index 0000000..eafe076
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2UniqueConstraintExtensionImpl.java
@@ -0,0 +1,293 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UniqueConstraintExtension;
+
+import org.eclipse.datatools.modelbase.sql.schema.ObjectExtension;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 Unique Constraint Extension</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UniqueConstraintExtensionImpl#getSQLObject <em>SQL Object</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UniqueConstraintExtensionImpl#isBusPeriodWithoutOverlap <em>Bus Period Without Overlap</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2UniqueConstraintExtensionImpl extends SQLObjectImpl implements DB2UniqueConstraintExtension {
+ /**
+ * The default value of the '{@link #isBusPeriodWithoutOverlap() <em>Bus Period Without Overlap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBusPeriodWithoutOverlap()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBusPeriodWithoutOverlap() <em>Bus Period Without Overlap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBusPeriodWithoutOverlap()
+ * @generated
+ * @ordered
+ */
+ protected boolean busPeriodWithoutOverlap = BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2UniqueConstraintExtensionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_UNIQUE_CONSTRAINT_EXTENSION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SQLObject getSQLObject() {
+ if (eContainerFeatureID() != DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT) return null;
+ return (SQLObject)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSQLObject(SQLObject newSQLObject, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newSQLObject, DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSQLObject(SQLObject newSQLObject) {
+ if (newSQLObject != eInternalContainer() || (eContainerFeatureID() != DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT && newSQLObject != null)) {
+ if (EcoreUtil.isAncestor(this, newSQLObject))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newSQLObject != null)
+ msgs = ((InternalEObject)newSQLObject).eInverseAdd(this, SQLSchemaPackage.SQL_OBJECT__EXTENSIONS, SQLObject.class, msgs);
+ msgs = basicSetSQLObject(newSQLObject, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT, newSQLObject, newSQLObject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isBusPeriodWithoutOverlap() {
+ return busPeriodWithoutOverlap;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBusPeriodWithoutOverlap(boolean newBusPeriodWithoutOverlap) {
+ boolean oldBusPeriodWithoutOverlap = busPeriodWithoutOverlap;
+ busPeriodWithoutOverlap = newBusPeriodWithoutOverlap;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP, oldBusPeriodWithoutOverlap, busPeriodWithoutOverlap));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetSQLObject((SQLObject)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT:
+ return basicSetSQLObject(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT:
+ return eInternalContainer().eInverseRemove(this, SQLSchemaPackage.SQL_OBJECT__EXTENSIONS, SQLObject.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT:
+ return getSQLObject();
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP:
+ return isBusPeriodWithoutOverlap() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT:
+ setSQLObject((SQLObject)newValue);
+ return;
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP:
+ setBusPeriodWithoutOverlap(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT:
+ setSQLObject((SQLObject)null);
+ return;
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP:
+ setBusPeriodWithoutOverlap(BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT:
+ return getSQLObject() != null;
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__BUS_PERIOD_WITHOUT_OVERLAP:
+ return busPeriodWithoutOverlap != BUS_PERIOD_WITHOUT_OVERLAP_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == ObjectExtension.class) {
+ switch (derivedFeatureID) {
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT: return SQLSchemaPackage.OBJECT_EXTENSION__SQL_OBJECT;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == ObjectExtension.class) {
+ switch (baseFeatureID) {
+ case SQLSchemaPackage.OBJECT_EXTENSION__SQL_OBJECT: return DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION__SQL_OBJECT;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (busPeriodWithoutOverlap: "); //$NON-NLS-1$
+ result.append(busPeriodWithoutOverlap);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2UniqueConstraintExtensionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2UserDefinedFunctionImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2UserDefinedFunctionImpl.java
new file mode 100644
index 0000000..a8a6b15
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2UserDefinedFunctionImpl.java
@@ -0,0 +1,1766 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.routines.impl.UserDefinedFunctionImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2AccessPlan;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ExtendedOptions;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Function;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Routine;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2RoutineExtension;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2UserDefinedFunction;
+import org.eclipse.datatools.enablement.ibm.db2.model.OriginType;
+import org.eclipse.datatools.enablement.ibm.db2.model.SourceDialect;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 User Defined Function</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getFenced <em>Fenced</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getThreadsafe <em>Threadsafe</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isDbInfo <em>Db Info</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isImplicitSchema <em>Implicit Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isFederated <em>Federated</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getParmCcsid <em>Parm Ccsid</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getSpecialRegister <em>Special Register</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getChangeState <em>Change State</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getDebugId <em>Debug Id</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getProgramType <em>Program Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getOrigSchemaName <em>Orig Schema Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getOrigParmSig <em>Orig Parm Sig</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getExtendedOptions <em>Extended Options</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getRoutineExtensions <em>Routine Extensions</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isFinalCall <em>Final Call</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isScratchPad <em>Scratch Pad</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getScratchPadLength <em>Scratch Pad Length</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getFunctionType <em>Function Type</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getPredicate <em>Predicate</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isExternalAction <em>External Action</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getCardinality <em>Cardinality</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isAllowParallel <em>Allow Parallel</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getReturnClause <em>Return Clause</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getOrigin <em>Origin</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isInheritLockRequest <em>Inherit Lock Request</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getDialect <em>Dialect</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isInline <em>Inline</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2UserDefinedFunctionImpl#isSecured <em>Secured</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2UserDefinedFunctionImpl extends UserDefinedFunctionImpl implements DB2UserDefinedFunction {
+ /**
+ * The default value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected static final String FENCED_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFenced() <em>Fenced</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFenced()
+ * @generated
+ * @ordered
+ */
+ protected String fenced = FENCED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected static final String THREADSAFE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getThreadsafe() <em>Threadsafe</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreadsafe()
+ * @generated
+ * @ordered
+ */
+ protected String threadsafe = THREADSAFE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean DB_INFO_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isDbInfo() <em>Db Info</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDbInfo()
+ * @generated
+ * @ordered
+ */
+ protected boolean dbInfo = DB_INFO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IMPLICIT_SCHEMA_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isImplicitSchema() <em>Implicit Schema</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isImplicitSchema()
+ * @generated
+ * @ordered
+ */
+ protected boolean implicitSchema = IMPLICIT_SCHEMA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FEDERATED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFederated() <em>Federated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFederated()
+ * @generated
+ * @ordered
+ */
+ protected boolean federated = FEDERATED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected static final String PARM_CCSID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getParmCcsid() <em>Parm Ccsid</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getParmCcsid()
+ * @generated
+ * @ordered
+ */
+ protected String parmCcsid = PARM_CCSID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected static final String SPECIAL_REGISTER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSpecialRegister() <em>Special Register</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSpecialRegister()
+ * @generated
+ * @ordered
+ */
+ protected String specialRegister = SPECIAL_REGISTER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected static final int CHANGE_STATE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getChangeState() <em>Change State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChangeState()
+ * @generated
+ * @ordered
+ */
+ protected int changeState = CHANGE_STATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEBUG_ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDebugId() <em>Debug Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDebugId()
+ * @generated
+ * @ordered
+ */
+ protected String debugId = DEBUG_ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROGRAM_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProgramType() <em>Program Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramType()
+ * @generated
+ * @ordered
+ */
+ protected String programType = PROGRAM_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_SCHEMA_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigSchemaName() <em>Orig Schema Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigSchemaName()
+ * @generated
+ * @ordered
+ */
+ protected String origSchemaName = ORIG_SCHEMA_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected static final String ORIG_PARM_SIG_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOrigParmSig() <em>Orig Parm Sig</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigParmSig()
+ * @generated
+ * @ordered
+ */
+ protected String origParmSig = ORIG_PARM_SIG_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getExtendedOptions() <em>Extended Options</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExtendedOptions()
+ * @generated
+ * @ordered
+ */
+ protected EList extendedOptions;
+
+ /**
+ * The cached value of the '{@link #getRoutineExtensions() <em>Routine Extensions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRoutineExtensions()
+ * @generated
+ * @ordered
+ */
+ protected EList routineExtensions;
+
+ /**
+ * The default value of the '{@link #isFinalCall() <em>Final Call</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFinalCall()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FINAL_CALL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFinalCall() <em>Final Call</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFinalCall()
+ * @generated
+ * @ordered
+ */
+ protected boolean finalCall = FINAL_CALL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isScratchPad() <em>Scratch Pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isScratchPad()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SCRATCH_PAD_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isScratchPad() <em>Scratch Pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isScratchPad()
+ * @generated
+ * @ordered
+ */
+ protected boolean scratchPad = SCRATCH_PAD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getScratchPadLength() <em>Scratch Pad Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScratchPadLength()
+ * @generated
+ * @ordered
+ */
+ protected static final int SCRATCH_PAD_LENGTH_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getScratchPadLength() <em>Scratch Pad Length</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScratchPadLength()
+ * @generated
+ * @ordered
+ */
+ protected int scratchPadLength = SCRATCH_PAD_LENGTH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getFunctionType() <em>Function Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunctionType()
+ * @generated
+ * @ordered
+ */
+ protected static final String FUNCTION_TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFunctionType() <em>Function Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFunctionType()
+ * @generated
+ * @ordered
+ */
+ protected String functionType = FUNCTION_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPredicate() <em>Predicate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicate()
+ * @generated
+ * @ordered
+ */
+ protected static final String PREDICATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicate()
+ * @generated
+ * @ordered
+ */
+ protected String predicate = PREDICATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isExternalAction() <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternalAction()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean EXTERNAL_ACTION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isExternalAction() <em>External Action</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternalAction()
+ * @generated
+ * @ordered
+ */
+ protected boolean externalAction = EXTERNAL_ACTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCardinality() <em>Cardinality</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCardinality()
+ * @generated
+ * @ordered
+ */
+ protected static final int CARDINALITY_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getCardinality() <em>Cardinality</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCardinality()
+ * @generated
+ * @ordered
+ */
+ protected int cardinality = CARDINALITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAllowParallel() <em>Allow Parallel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllowParallel()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ALLOW_PARALLEL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAllowParallel() <em>Allow Parallel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllowParallel()
+ * @generated
+ * @ordered
+ */
+ protected boolean allowParallel = ALLOW_PARALLEL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getReturnClause() <em>Return Clause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReturnClause()
+ * @generated
+ * @ordered
+ */
+ protected static final String RETURN_CLAUSE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getReturnClause() <em>Return Clause</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReturnClause()
+ * @generated
+ * @ordered
+ */
+ protected String returnClause = RETURN_CLAUSE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOrigin() <em>Origin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigin()
+ * @generated
+ * @ordered
+ */
+ protected static final OriginType ORIGIN_EDEFAULT = OriginType.NONE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getOrigin() <em>Origin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrigin()
+ * @generated
+ * @ordered
+ */
+ protected OriginType origin = ORIGIN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInheritLockRequest() <em>Inherit Lock Request</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritLockRequest()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INHERIT_LOCK_REQUEST_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInheritLockRequest() <em>Inherit Lock Request</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInheritLockRequest()
+ * @generated
+ * @ordered
+ */
+ protected boolean inheritLockRequest = INHERIT_LOCK_REQUEST_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected static final SourceDialect DIALECT_EDEFAULT = SourceDialect.UNKNOWN_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getDialect() <em>Dialect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDialect()
+ * @generated
+ * @ordered
+ */
+ protected SourceDialect dialect = DIALECT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInline() <em>Inline</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInline()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INLINE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInline() <em>Inline</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInline()
+ * @generated
+ * @ordered
+ */
+ protected boolean inline = INLINE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSecured() <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSecured()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SECURED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSecured() <em>Secured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSecured()
+ * @generated
+ * @ordered
+ */
+ protected boolean secured = SECURED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2UserDefinedFunctionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_USER_DEFINED_FUNCTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFenced() {
+ return fenced;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFenced(String newFenced) {
+ String oldFenced = fenced;
+ fenced = newFenced;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED, oldFenced, fenced));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getThreadsafe() {
+ return threadsafe;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setThreadsafe(String newThreadsafe) {
+ String oldThreadsafe = threadsafe;
+ threadsafe = newThreadsafe;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE, oldThreadsafe, threadsafe));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDbInfo() {
+ return dbInfo;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDbInfo(boolean newDbInfo) {
+ boolean oldDbInfo = dbInfo;
+ dbInfo = newDbInfo;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO, oldDbInfo, dbInfo));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isImplicitSchema() {
+ return implicitSchema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setImplicitSchema(boolean newImplicitSchema) {
+ boolean oldImplicitSchema = implicitSchema;
+ implicitSchema = newImplicitSchema;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA, oldImplicitSchema, implicitSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFederated() {
+ return federated;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFederated(boolean newFederated) {
+ boolean oldFederated = federated;
+ federated = newFederated;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED, oldFederated, federated));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getParmCcsid() {
+ return parmCcsid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParmCcsid(String newParmCcsid) {
+ String oldParmCcsid = parmCcsid;
+ parmCcsid = newParmCcsid;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID, oldParmCcsid, parmCcsid));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSpecialRegister() {
+ return specialRegister;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSpecialRegister(String newSpecialRegister) {
+ String oldSpecialRegister = specialRegister;
+ specialRegister = newSpecialRegister;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER, oldSpecialRegister, specialRegister));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getChangeState() {
+ return changeState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setChangeState(int newChangeState) {
+ int oldChangeState = changeState;
+ changeState = newChangeState;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE, oldChangeState, changeState));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDebugId() {
+ return debugId;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDebugId(String newDebugId) {
+ String oldDebugId = debugId;
+ debugId = newDebugId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID, oldDebugId, debugId));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProgramType() {
+ return programType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProgramType(String newProgramType) {
+ String oldProgramType = programType;
+ programType = newProgramType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE, oldProgramType, programType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigSchemaName() {
+ return origSchemaName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigSchemaName(String newOrigSchemaName) {
+ String oldOrigSchemaName = origSchemaName;
+ origSchemaName = newOrigSchemaName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME, oldOrigSchemaName, origSchemaName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOrigParmSig() {
+ return origParmSig;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigParmSig(String newOrigParmSig) {
+ String oldOrigParmSig = origParmSig;
+ origParmSig = newOrigParmSig;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG, oldOrigParmSig, origParmSig));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getExtendedOptions() {
+ if (extendedOptions == null) {
+ extendedOptions = new EObjectContainmentEList(DB2ExtendedOptions.class, this, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS);
+ }
+ return extendedOptions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getRoutineExtensions() {
+ if (routineExtensions == null) {
+ routineExtensions = new EObjectResolvingEList(DB2RoutineExtension.class, this, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS);
+ }
+ return routineExtensions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFinalCall() {
+ return finalCall;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFinalCall(boolean newFinalCall) {
+ boolean oldFinalCall = finalCall;
+ finalCall = newFinalCall;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL, oldFinalCall, finalCall));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isScratchPad() {
+ return scratchPad;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setScratchPad(boolean newScratchPad) {
+ boolean oldScratchPad = scratchPad;
+ scratchPad = newScratchPad;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD, oldScratchPad, scratchPad));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getScratchPadLength() {
+ return scratchPadLength;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setScratchPadLength(int newScratchPadLength) {
+ int oldScratchPadLength = scratchPadLength;
+ scratchPadLength = newScratchPadLength;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH, oldScratchPadLength, scratchPadLength));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFunctionType() {
+ return functionType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFunctionType(String newFunctionType) {
+ String oldFunctionType = functionType;
+ functionType = newFunctionType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE, oldFunctionType, functionType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPredicate() {
+ return predicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPredicate(String newPredicate) {
+ String oldPredicate = predicate;
+ predicate = newPredicate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE, oldPredicate, predicate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isExternalAction() {
+ return externalAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExternalAction(boolean newExternalAction) {
+ boolean oldExternalAction = externalAction;
+ externalAction = newExternalAction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION, oldExternalAction, externalAction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getCardinality() {
+ return cardinality;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCardinality(int newCardinality) {
+ int oldCardinality = cardinality;
+ cardinality = newCardinality;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY, oldCardinality, cardinality));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAllowParallel() {
+ return allowParallel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setAllowParallel(boolean newAllowParallel) {
+ boolean oldAllowParallel = allowParallel;
+ allowParallel = newAllowParallel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL, oldAllowParallel, allowParallel));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getReturnClause() {
+ return returnClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setReturnClause(String newReturnClause) {
+ String oldReturnClause = returnClause;
+ returnClause = newReturnClause;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE, oldReturnClause, returnClause));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OriginType getOrigin() {
+ return origin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOrigin(OriginType newOrigin) {
+ OriginType oldOrigin = origin;
+ origin = newOrigin == null ? ORIGIN_EDEFAULT : newOrigin;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN, oldOrigin, origin));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInheritLockRequest() {
+ return inheritLockRequest;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInheritLockRequest(boolean newInheritLockRequest) {
+ boolean oldInheritLockRequest = inheritLockRequest;
+ inheritLockRequest = newInheritLockRequest;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST, oldInheritLockRequest, inheritLockRequest));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SourceDialect getDialect() {
+ return dialect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDialect(SourceDialect newDialect) {
+ SourceDialect oldDialect = dialect;
+ dialect = newDialect == null ? DIALECT_EDEFAULT : newDialect;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT, oldDialect, dialect));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isInline() {
+ return inline;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInline(boolean newInline) {
+ boolean oldInline = inline;
+ inline = newInline;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE, oldInline, inline));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION, oldVersion, version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSecured() {
+ return secured;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSecured(boolean newSecured) {
+ boolean oldSecured = secured;
+ secured = newSecured;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED, oldSecured, secured));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS:
+ return ((InternalEList)getExtendedOptions()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED:
+ return getFenced();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE:
+ return getThreadsafe();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO:
+ return isDbInfo() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA:
+ return isImplicitSchema() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED:
+ return isFederated() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID:
+ return getParmCcsid();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER:
+ return getSpecialRegister();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE:
+ return new Integer(getChangeState());
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID:
+ return getDebugId();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE:
+ return getProgramType();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME:
+ return getOrigSchemaName();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG:
+ return getOrigParmSig();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS:
+ return getExtendedOptions();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS:
+ return getRoutineExtensions();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL:
+ return isFinalCall() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD:
+ return isScratchPad() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH:
+ return new Integer(getScratchPadLength());
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE:
+ return getFunctionType();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE:
+ return getPredicate();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION:
+ return isExternalAction() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY:
+ return new Integer(getCardinality());
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL:
+ return isAllowParallel() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE:
+ return getReturnClause();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN:
+ return getOrigin();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST:
+ return isInheritLockRequest() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT:
+ return getDialect();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE:
+ return isInline() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION:
+ return getVersion();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED:
+ return isSecured() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED:
+ setFenced((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE:
+ setThreadsafe((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO:
+ setDbInfo(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA:
+ setImplicitSchema(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED:
+ setFederated(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID:
+ setParmCcsid((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER:
+ setSpecialRegister((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE:
+ setChangeState(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID:
+ setDebugId((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE:
+ setProgramType((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME:
+ setOrigSchemaName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG:
+ setOrigParmSig((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ getExtendedOptions().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ getRoutineExtensions().addAll((Collection)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL:
+ setFinalCall(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD:
+ setScratchPad(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH:
+ setScratchPadLength(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE:
+ setFunctionType((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE:
+ setPredicate((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION:
+ setExternalAction(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY:
+ setCardinality(((Integer)newValue).intValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL:
+ setAllowParallel(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE:
+ setReturnClause((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN:
+ setOrigin((OriginType)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST:
+ setInheritLockRequest(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT:
+ setDialect((SourceDialect)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE:
+ setInline(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION:
+ setVersion((String)newValue);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED:
+ setSecured(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED:
+ setFenced(FENCED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE:
+ setThreadsafe(THREADSAFE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO:
+ setDbInfo(DB_INFO_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA:
+ setImplicitSchema(IMPLICIT_SCHEMA_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED:
+ setFederated(FEDERATED_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID:
+ setParmCcsid(PARM_CCSID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER:
+ setSpecialRegister(SPECIAL_REGISTER_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE:
+ setChangeState(CHANGE_STATE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID:
+ setDebugId(DEBUG_ID_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE:
+ setProgramType(PROGRAM_TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME:
+ setOrigSchemaName(ORIG_SCHEMA_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG:
+ setOrigParmSig(ORIG_PARM_SIG_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS:
+ getExtendedOptions().clear();
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS:
+ getRoutineExtensions().clear();
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL:
+ setFinalCall(FINAL_CALL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD:
+ setScratchPad(SCRATCH_PAD_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH:
+ setScratchPadLength(SCRATCH_PAD_LENGTH_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE:
+ setFunctionType(FUNCTION_TYPE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE:
+ setPredicate(PREDICATE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION:
+ setExternalAction(EXTERNAL_ACTION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY:
+ setCardinality(CARDINALITY_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL:
+ setAllowParallel(ALLOW_PARALLEL_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE:
+ setReturnClause(RETURN_CLAUSE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN:
+ setOrigin(ORIGIN_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST:
+ setInheritLockRequest(INHERIT_LOCK_REQUEST_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT:
+ setDialect(DIALECT_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE:
+ setInline(INLINE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED:
+ setSecured(SECURED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED:
+ return FENCED_EDEFAULT == null ? fenced != null : !FENCED_EDEFAULT.equals(fenced);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE:
+ return THREADSAFE_EDEFAULT == null ? threadsafe != null : !THREADSAFE_EDEFAULT.equals(threadsafe);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO:
+ return dbInfo != DB_INFO_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA:
+ return implicitSchema != IMPLICIT_SCHEMA_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED:
+ return federated != FEDERATED_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID:
+ return PARM_CCSID_EDEFAULT == null ? parmCcsid != null : !PARM_CCSID_EDEFAULT.equals(parmCcsid);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER:
+ return SPECIAL_REGISTER_EDEFAULT == null ? specialRegister != null : !SPECIAL_REGISTER_EDEFAULT.equals(specialRegister);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE:
+ return changeState != CHANGE_STATE_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID:
+ return DEBUG_ID_EDEFAULT == null ? debugId != null : !DEBUG_ID_EDEFAULT.equals(debugId);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE:
+ return PROGRAM_TYPE_EDEFAULT == null ? programType != null : !PROGRAM_TYPE_EDEFAULT.equals(programType);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME:
+ return ORIG_SCHEMA_NAME_EDEFAULT == null ? origSchemaName != null : !ORIG_SCHEMA_NAME_EDEFAULT.equals(origSchemaName);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG:
+ return ORIG_PARM_SIG_EDEFAULT == null ? origParmSig != null : !ORIG_PARM_SIG_EDEFAULT.equals(origParmSig);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS:
+ return extendedOptions != null && !extendedOptions.isEmpty();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS:
+ return routineExtensions != null && !routineExtensions.isEmpty();
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL:
+ return finalCall != FINAL_CALL_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD:
+ return scratchPad != SCRATCH_PAD_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH:
+ return scratchPadLength != SCRATCH_PAD_LENGTH_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE:
+ return FUNCTION_TYPE_EDEFAULT == null ? functionType != null : !FUNCTION_TYPE_EDEFAULT.equals(functionType);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE:
+ return PREDICATE_EDEFAULT == null ? predicate != null : !PREDICATE_EDEFAULT.equals(predicate);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION:
+ return externalAction != EXTERNAL_ACTION_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY:
+ return cardinality != CARDINALITY_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL:
+ return allowParallel != ALLOW_PARALLEL_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE:
+ return RETURN_CLAUSE_EDEFAULT == null ? returnClause != null : !RETURN_CLAUSE_EDEFAULT.equals(returnClause);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN:
+ return origin != ORIGIN_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST:
+ return inheritLockRequest != INHERIT_LOCK_REQUEST_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT:
+ return dialect != DIALECT_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE:
+ return inline != INLINE_EDEFAULT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED:
+ return secured != SECURED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+ if (baseClass == DB2AccessPlan.class) {
+ switch (derivedFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (derivedFeatureID) {
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED: return DB2ModelPackage.DB2_ROUTINE__FENCED;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE: return DB2ModelPackage.DB2_ROUTINE__THREADSAFE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO: return DB2ModelPackage.DB2_ROUTINE__DB_INFO;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA: return DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED: return DB2ModelPackage.DB2_ROUTINE__FEDERATED;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID: return DB2ModelPackage.DB2_ROUTINE__PARM_CCSID;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER: return DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE: return DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID: return DB2ModelPackage.DB2_ROUTINE__DEBUG_ID;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE: return DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME: return DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG: return DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS: return DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS: return DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Function.class) {
+ switch (derivedFeatureID) {
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL: return DB2ModelPackage.DB2_FUNCTION__FINAL_CALL;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD: return DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH: return DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD_LENGTH;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE: return DB2ModelPackage.DB2_FUNCTION__FUNCTION_TYPE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE: return DB2ModelPackage.DB2_FUNCTION__PREDICATE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION: return DB2ModelPackage.DB2_FUNCTION__EXTERNAL_ACTION;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY: return DB2ModelPackage.DB2_FUNCTION__CARDINALITY;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL: return DB2ModelPackage.DB2_FUNCTION__ALLOW_PARALLEL;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE: return DB2ModelPackage.DB2_FUNCTION__RETURN_CLAUSE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN: return DB2ModelPackage.DB2_FUNCTION__ORIGIN;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST: return DB2ModelPackage.DB2_FUNCTION__INHERIT_LOCK_REQUEST;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT: return DB2ModelPackage.DB2_FUNCTION__DIALECT;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE: return DB2ModelPackage.DB2_FUNCTION__INLINE;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION: return DB2ModelPackage.DB2_FUNCTION__VERSION;
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED: return DB2ModelPackage.DB2_FUNCTION__SECURED;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+ if (baseClass == DB2AccessPlan.class) {
+ switch (baseFeatureID) {
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Routine.class) {
+ switch (baseFeatureID) {
+ case DB2ModelPackage.DB2_ROUTINE__FENCED: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FENCED;
+ case DB2ModelPackage.DB2_ROUTINE__THREADSAFE: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__THREADSAFE;
+ case DB2ModelPackage.DB2_ROUTINE__DB_INFO: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DB_INFO;
+ case DB2ModelPackage.DB2_ROUTINE__IMPLICIT_SCHEMA: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__IMPLICIT_SCHEMA;
+ case DB2ModelPackage.DB2_ROUTINE__FEDERATED: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FEDERATED;
+ case DB2ModelPackage.DB2_ROUTINE__PARM_CCSID: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PARM_CCSID;
+ case DB2ModelPackage.DB2_ROUTINE__SPECIAL_REGISTER: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SPECIAL_REGISTER;
+ case DB2ModelPackage.DB2_ROUTINE__CHANGE_STATE: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CHANGE_STATE;
+ case DB2ModelPackage.DB2_ROUTINE__DEBUG_ID: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DEBUG_ID;
+ case DB2ModelPackage.DB2_ROUTINE__PROGRAM_TYPE: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PROGRAM_TYPE;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_SCHEMA_NAME: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_SCHEMA_NAME;
+ case DB2ModelPackage.DB2_ROUTINE__ORIG_PARM_SIG: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIG_PARM_SIG;
+ case DB2ModelPackage.DB2_ROUTINE__EXTENDED_OPTIONS: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTENDED_OPTIONS;
+ case DB2ModelPackage.DB2_ROUTINE__ROUTINE_EXTENSIONS: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ROUTINE_EXTENSIONS;
+ default: return -1;
+ }
+ }
+ if (baseClass == DB2Function.class) {
+ switch (baseFeatureID) {
+ case DB2ModelPackage.DB2_FUNCTION__FINAL_CALL: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FINAL_CALL;
+ case DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD;
+ case DB2ModelPackage.DB2_FUNCTION__SCRATCH_PAD_LENGTH: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SCRATCH_PAD_LENGTH;
+ case DB2ModelPackage.DB2_FUNCTION__FUNCTION_TYPE: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__FUNCTION_TYPE;
+ case DB2ModelPackage.DB2_FUNCTION__PREDICATE: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__PREDICATE;
+ case DB2ModelPackage.DB2_FUNCTION__EXTERNAL_ACTION: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__EXTERNAL_ACTION;
+ case DB2ModelPackage.DB2_FUNCTION__CARDINALITY: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__CARDINALITY;
+ case DB2ModelPackage.DB2_FUNCTION__ALLOW_PARALLEL: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ALLOW_PARALLEL;
+ case DB2ModelPackage.DB2_FUNCTION__RETURN_CLAUSE: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__RETURN_CLAUSE;
+ case DB2ModelPackage.DB2_FUNCTION__ORIGIN: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__ORIGIN;
+ case DB2ModelPackage.DB2_FUNCTION__INHERIT_LOCK_REQUEST: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INHERIT_LOCK_REQUEST;
+ case DB2ModelPackage.DB2_FUNCTION__DIALECT: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__DIALECT;
+ case DB2ModelPackage.DB2_FUNCTION__INLINE: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__INLINE;
+ case DB2ModelPackage.DB2_FUNCTION__VERSION: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__VERSION;
+ case DB2ModelPackage.DB2_FUNCTION__SECURED: return DB2ModelPackage.DB2_USER_DEFINED_FUNCTION__SECURED;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fenced: "); //$NON-NLS-1$
+ result.append(fenced);
+ result.append(", threadsafe: "); //$NON-NLS-1$
+ result.append(threadsafe);
+ result.append(", dbInfo: "); //$NON-NLS-1$
+ result.append(dbInfo);
+ result.append(", implicitSchema: "); //$NON-NLS-1$
+ result.append(implicitSchema);
+ result.append(", federated: "); //$NON-NLS-1$
+ result.append(federated);
+ result.append(", parmCcsid: "); //$NON-NLS-1$
+ result.append(parmCcsid);
+ result.append(", specialRegister: "); //$NON-NLS-1$
+ result.append(specialRegister);
+ result.append(", changeState: "); //$NON-NLS-1$
+ result.append(changeState);
+ result.append(", debugId: "); //$NON-NLS-1$
+ result.append(debugId);
+ result.append(", programType: "); //$NON-NLS-1$
+ result.append(programType);
+ result.append(", origSchemaName: "); //$NON-NLS-1$
+ result.append(origSchemaName);
+ result.append(", origParmSig: "); //$NON-NLS-1$
+ result.append(origParmSig);
+ result.append(", finalCall: "); //$NON-NLS-1$
+ result.append(finalCall);
+ result.append(", scratchPad: "); //$NON-NLS-1$
+ result.append(scratchPad);
+ result.append(", scratchPadLength: "); //$NON-NLS-1$
+ result.append(scratchPadLength);
+ result.append(", functionType: "); //$NON-NLS-1$
+ result.append(functionType);
+ result.append(", predicate: "); //$NON-NLS-1$
+ result.append(predicate);
+ result.append(", externalAction: "); //$NON-NLS-1$
+ result.append(externalAction);
+ result.append(", cardinality: "); //$NON-NLS-1$
+ result.append(cardinality);
+ result.append(", allowParallel: "); //$NON-NLS-1$
+ result.append(allowParallel);
+ result.append(", returnClause: "); //$NON-NLS-1$
+ result.append(returnClause);
+ result.append(", origin: "); //$NON-NLS-1$
+ result.append(origin);
+ result.append(", inheritLockRequest: "); //$NON-NLS-1$
+ result.append(inheritLockRequest);
+ result.append(", dialect: "); //$NON-NLS-1$
+ result.append(dialect);
+ result.append(", inline: "); //$NON-NLS-1$
+ result.append(inline);
+ result.append(", version: "); //$NON-NLS-1$
+ result.append(version);
+ result.append(", secured: "); //$NON-NLS-1$
+ result.append(secured);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2UserDefinedFunctionImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ViewImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ViewImpl.java
new file mode 100644
index 0000000..fd44672
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2ViewImpl.java
@@ -0,0 +1,160 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * %W%
+ * @version %I% %H%
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.tables.impl.ViewTableImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2View;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2 View</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2ViewImpl#isOperative <em>Operative</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2ViewImpl extends ViewTableImpl implements DB2View {
+ /**
+ * The default value of the '{@link #isOperative() <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOperative()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean OPERATIVE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isOperative() <em>Operative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOperative()
+ * @generated
+ * @ordered
+ */
+ protected boolean operative = OPERATIVE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ViewImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2_VIEW;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOperative() {
+ return operative;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperative(boolean newOperative) {
+ boolean oldOperative = operative;
+ operative = newOperative;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2_VIEW__OPERATIVE, oldOperative, operative));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_VIEW__OPERATIVE:
+ return isOperative() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_VIEW__OPERATIVE:
+ setOperative(((Boolean)newValue).booleanValue());
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_VIEW__OPERATIVE:
+ setOperative(OPERATIVE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2_VIEW__OPERATIVE:
+ return operative != OPERATIVE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (operative: "); //$NON-NLS-1$
+ result.append(operative);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2ViewImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaDocPropertiesImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaDocPropertiesImpl.java
new file mode 100644
index 0000000..d1b34f8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaDocPropertiesImpl.java
@@ -0,0 +1,256 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchemaDocPropertiesImpl.java,v 1.6 2008/01/29 00:04:55 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2XML Schema Doc Properties</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocPropertiesImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocPropertiesImpl#getXmlSchemaDoc <em>Xml Schema Doc</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2XMLSchemaDocPropertiesImpl extends SQLObjectImpl implements DB2XMLSchemaDocProperties {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2XMLSchemaDocPropertiesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2XML_SCHEMA_DOC_PROPERTIES;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue) {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchemaDocument getXmlSchemaDoc() {
+ if (eContainerFeatureID() != DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC) return null;
+ return (DB2XMLSchemaDocument)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetXmlSchemaDoc(DB2XMLSchemaDocument newXmlSchemaDoc, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newXmlSchemaDoc, DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setXmlSchemaDoc(DB2XMLSchemaDocument newXmlSchemaDoc) {
+ if (newXmlSchemaDoc != eInternalContainer() || (eContainerFeatureID() != DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC && newXmlSchemaDoc != null)) {
+ if (EcoreUtil.isAncestor(this, newXmlSchemaDoc))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newXmlSchemaDoc != null)
+ msgs = ((InternalEObject)newXmlSchemaDoc).eInverseAdd(this, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES, DB2XMLSchemaDocument.class, msgs);
+ msgs = basicSetXmlSchemaDoc(newXmlSchemaDoc, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC, newXmlSchemaDoc, newXmlSchemaDoc));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetXmlSchemaDoc((DB2XMLSchemaDocument)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC:
+ return basicSetXmlSchemaDoc(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC:
+ return eInternalContainer().eInverseRemove(this, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES, DB2XMLSchemaDocument.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__VALUE:
+ return getValue();
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC:
+ return getXmlSchemaDoc();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__VALUE:
+ setValue((String)newValue);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC:
+ setXmlSchemaDoc((DB2XMLSchemaDocument)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC:
+ setXmlSchemaDoc((DB2XMLSchemaDocument)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC:
+ return getXmlSchemaDoc() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: "); //$NON-NLS-1$
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2XMLSchemaDocPropertiesImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaDocumentImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaDocumentImpl.java
new file mode 100644
index 0000000..4d5e6e1
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaDocumentImpl.java
@@ -0,0 +1,462 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchemaDocumentImpl.java,v 1.7 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocProperties;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2XML Schema Document</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl#getFileName <em>File Name</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl#getSchemaLocation <em>Schema Location</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl#getTargetNamespace <em>Target Namespace</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl#isPrimary <em>Primary</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl#getXmlSchema <em>Xml Schema</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaDocumentImpl#getXmlSchemaDocProperties <em>Xml Schema Doc Properties</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2XMLSchemaDocumentImpl extends SQLObjectImpl implements DB2XMLSchemaDocument {
+ /**
+ * The default value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected String fileName = FILE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSchemaLocation() <em>Schema Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchemaLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String SCHEMA_LOCATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSchemaLocation() <em>Schema Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchemaLocation()
+ * @generated
+ * @ordered
+ */
+ protected String schemaLocation = SCHEMA_LOCATION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTargetNamespace() <em>Target Namespace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetNamespace()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_NAMESPACE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetNamespace() <em>Target Namespace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetNamespace()
+ * @generated
+ * @ordered
+ */
+ protected String targetNamespace = TARGET_NAMESPACE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isPrimary() <em>Primary</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPrimary()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PRIMARY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPrimary() <em>Primary</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPrimary()
+ * @generated
+ * @ordered
+ */
+ protected boolean primary = PRIMARY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getXmlSchemaDocProperties() <em>Xml Schema Doc Properties</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXmlSchemaDocProperties()
+ * @generated
+ * @ordered
+ */
+ protected EList xmlSchemaDocProperties;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2XMLSchemaDocumentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2XML_SCHEMA_DOCUMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFileName() {
+ return fileName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFileName(String newFileName) {
+ String oldFileName = fileName;
+ fileName = newFileName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__FILE_NAME, oldFileName, fileName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSchemaLocation() {
+ return schemaLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchemaLocation(String newSchemaLocation) {
+ String oldSchemaLocation = schemaLocation;
+ schemaLocation = newSchemaLocation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION, oldSchemaLocation, schemaLocation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetNamespace() {
+ return targetNamespace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetNamespace(String newTargetNamespace) {
+ String oldTargetNamespace = targetNamespace;
+ targetNamespace = newTargetNamespace;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE, oldTargetNamespace, targetNamespace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPrimary() {
+ return primary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPrimary(boolean newPrimary) {
+ boolean oldPrimary = primary;
+ primary = newPrimary;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__PRIMARY, oldPrimary, primary));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchema getXmlSchema() {
+ if (eContainerFeatureID() != DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA) return null;
+ return (DB2XMLSchema)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetXmlSchema(DB2XMLSchema newXmlSchema, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newXmlSchema, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setXmlSchema(DB2XMLSchema newXmlSchema) {
+ if (newXmlSchema != eInternalContainer() || (eContainerFeatureID() != DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA && newXmlSchema != null)) {
+ if (EcoreUtil.isAncestor(this, newXmlSchema))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); //$NON-NLS-1$
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newXmlSchema != null)
+ msgs = ((InternalEObject)newXmlSchema).eInverseAdd(this, DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS, DB2XMLSchema.class, msgs);
+ msgs = basicSetXmlSchema(newXmlSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA, newXmlSchema, newXmlSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getXmlSchemaDocProperties() {
+ if (xmlSchemaDocProperties == null) {
+ xmlSchemaDocProperties = new EObjectContainmentWithInverseEList(DB2XMLSchemaDocProperties.class, this, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES, DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES__XML_SCHEMA_DOC);
+ }
+ return xmlSchemaDocProperties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetXmlSchema((DB2XMLSchema)otherEnd, msgs);
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES:
+ return ((InternalEList)getXmlSchemaDocProperties()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA:
+ return basicSetXmlSchema(null, msgs);
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES:
+ return ((InternalEList)getXmlSchemaDocProperties()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA:
+ return eInternalContainer().eInverseRemove(this, DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS, DB2XMLSchema.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__FILE_NAME:
+ return getFileName();
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION:
+ return getSchemaLocation();
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE:
+ return getTargetNamespace();
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__PRIMARY:
+ return isPrimary() ? Boolean.TRUE : Boolean.FALSE;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA:
+ return getXmlSchema();
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES:
+ return getXmlSchemaDocProperties();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__FILE_NAME:
+ setFileName((String)newValue);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION:
+ setSchemaLocation((String)newValue);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE:
+ setTargetNamespace((String)newValue);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__PRIMARY:
+ setPrimary(((Boolean)newValue).booleanValue());
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA:
+ setXmlSchema((DB2XMLSchema)newValue);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES:
+ getXmlSchemaDocProperties().clear();
+ getXmlSchemaDocProperties().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__FILE_NAME:
+ setFileName(FILE_NAME_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION:
+ setSchemaLocation(SCHEMA_LOCATION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE:
+ setTargetNamespace(TARGET_NAMESPACE_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__PRIMARY:
+ setPrimary(PRIMARY_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA:
+ setXmlSchema((DB2XMLSchema)null);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES:
+ getXmlSchemaDocProperties().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__FILE_NAME:
+ return FILE_NAME_EDEFAULT == null ? fileName != null : !FILE_NAME_EDEFAULT.equals(fileName);
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__SCHEMA_LOCATION:
+ return SCHEMA_LOCATION_EDEFAULT == null ? schemaLocation != null : !SCHEMA_LOCATION_EDEFAULT.equals(schemaLocation);
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__TARGET_NAMESPACE:
+ return TARGET_NAMESPACE_EDEFAULT == null ? targetNamespace != null : !TARGET_NAMESPACE_EDEFAULT.equals(targetNamespace);
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__PRIMARY:
+ return primary != PRIMARY_EDEFAULT;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA:
+ return getXmlSchema() != null;
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA_DOC_PROPERTIES:
+ return xmlSchemaDocProperties != null && !xmlSchemaDocProperties.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (fileName: "); //$NON-NLS-1$
+ result.append(fileName);
+ result.append(", schemaLocation: "); //$NON-NLS-1$
+ result.append(schemaLocation);
+ result.append(", targetNamespace: "); //$NON-NLS-1$
+ result.append(targetNamespace);
+ result.append(", primary: "); //$NON-NLS-1$
+ result.append(primary);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2XMLSchemaDocumentImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaImpl.java
new file mode 100644
index 0000000..df41f8c
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XMLSchemaImpl.java
@@ -0,0 +1,282 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XMLSchemaImpl.java,v 1.9 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDecomposition;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaDocument;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XMLSchemaStatus;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2XML Schema</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl#getDecomposition <em>Decomposition</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl#getStatus <em>Status</em>}</li>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XMLSchemaImpl#getXmlSchemaDocs <em>Xml Schema Docs</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2XMLSchemaImpl extends DB2XSRObjectImpl implements DB2XMLSchema {
+ /**
+ * The default value of the '{@link #getDecomposition() <em>Decomposition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDecomposition()
+ * @generated
+ * @ordered
+ */
+ protected static final DB2XMLSchemaDecomposition DECOMPOSITION_EDEFAULT = DB2XMLSchemaDecomposition.ENABLED_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getDecomposition() <em>Decomposition</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDecomposition()
+ * @generated
+ * @ordered
+ */
+ protected DB2XMLSchemaDecomposition decomposition = DECOMPOSITION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getStatus() <em>Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatus()
+ * @generated
+ * @ordered
+ */
+ protected static final DB2XMLSchemaStatus STATUS_EDEFAULT = DB2XMLSchemaStatus.COMPLETE_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getStatus() <em>Status</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStatus()
+ * @generated
+ * @ordered
+ */
+ protected DB2XMLSchemaStatus status = STATUS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getXmlSchemaDocs() <em>Xml Schema Docs</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getXmlSchemaDocs()
+ * @generated
+ * @ordered
+ */
+ protected EList xmlSchemaDocs;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2XMLSchemaImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2XML_SCHEMA;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchemaDecomposition getDecomposition() {
+ return decomposition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDecomposition(DB2XMLSchemaDecomposition newDecomposition) {
+ DB2XMLSchemaDecomposition oldDecomposition = decomposition;
+ decomposition = newDecomposition == null ? DECOMPOSITION_EDEFAULT : newDecomposition;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA__DECOMPOSITION, oldDecomposition, decomposition));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2XMLSchemaStatus getStatus() {
+ return status;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatus(DB2XMLSchemaStatus newStatus) {
+ DB2XMLSchemaStatus oldStatus = status;
+ status = newStatus == null ? STATUS_EDEFAULT : newStatus;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XML_SCHEMA__STATUS, oldStatus, status));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getXmlSchemaDocs() {
+ if (xmlSchemaDocs == null) {
+ xmlSchemaDocs = new EObjectContainmentWithInverseEList(DB2XMLSchemaDocument.class, this, DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS, DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT__XML_SCHEMA);
+ }
+ return xmlSchemaDocs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS:
+ return ((InternalEList)getXmlSchemaDocs()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS:
+ return ((InternalEList)getXmlSchemaDocs()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA__DECOMPOSITION:
+ return getDecomposition();
+ case DB2ModelPackage.DB2XML_SCHEMA__STATUS:
+ return getStatus();
+ case DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS:
+ return getXmlSchemaDocs();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA__DECOMPOSITION:
+ setDecomposition((DB2XMLSchemaDecomposition)newValue);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA__STATUS:
+ setStatus((DB2XMLSchemaStatus)newValue);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS:
+ getXmlSchemaDocs().clear();
+ getXmlSchemaDocs().addAll((Collection)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA__DECOMPOSITION:
+ setDecomposition(DECOMPOSITION_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA__STATUS:
+ setStatus(STATUS_EDEFAULT);
+ return;
+ case DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS:
+ getXmlSchemaDocs().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XML_SCHEMA__DECOMPOSITION:
+ return decomposition != DECOMPOSITION_EDEFAULT;
+ case DB2ModelPackage.DB2XML_SCHEMA__STATUS:
+ return status != STATUS_EDEFAULT;
+ case DB2ModelPackage.DB2XML_SCHEMA__XML_SCHEMA_DOCS:
+ return xmlSchemaDocs != null && !xmlSchemaDocs.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (decomposition: "); //$NON-NLS-1$
+ result.append(decomposition);
+ result.append(", status: "); //$NON-NLS-1$
+ result.append(status);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DB2XMLSchemaImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XSRObjectImpl.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XSRObjectImpl.java
new file mode 100644
index 0000000..b3d4f87
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/impl/DB2XSRObjectImpl.java
@@ -0,0 +1,205 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DB2XSRObjectImpl.java,v 1.8 2008/02/05 02:01:23 hskolwal Exp $
+ */
+package org.eclipse.datatools.enablement.ibm.db2.model.impl;
+
+import org.eclipse.datatools.modelbase.sql.schema.impl.SQLObjectImpl;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2ModelPackage;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2Schema;
+import org.eclipse.datatools.enablement.ibm.db2.model.DB2XSRObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>DB2XSR Object</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.datatools.enablement.ibm.db2.model.impl.DB2XSRObjectImpl#getSchema <em>Schema</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DB2XSRObjectImpl extends SQLObjectImpl implements DB2XSRObject {
+ /**
+ * The cached value of the '{@link #getSchema() <em>Schema</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSchema()
+ * @generated
+ * @ordered
+ */
+ protected DB2Schema schema;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2XSRObjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return DB2ModelPackage.Literals.DB2XSR_OBJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema getSchema() {
+ if (schema != null && schema.eIsProxy()) {
+ InternalEObject oldSchema = (InternalEObject)schema;
+ schema = (DB2Schema)eResolveProxy(oldSchema);
+ if (schema != oldSchema) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DB2ModelPackage.DB2XSR_OBJECT__SCHEMA, oldSchema, schema));
+ }
+ }
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2Schema basicGetSchema() {
+ return schema;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetSchema(DB2Schema newSchema, NotificationChain msgs) {
+ DB2Schema oldSchema = schema;
+ schema = newSchema;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XSR_OBJECT__SCHEMA, oldSchema, newSchema);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSchema(DB2Schema newSchema) {
+ if (newSchema != schema) {
+ NotificationChain msgs = null;
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS, DB2Schema.class, msgs);
+ if (newSchema != null)
+ msgs = ((InternalEObject)newSchema).eInverseAdd(this, DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS, DB2Schema.class, msgs);
+ msgs = basicSetSchema(newSchema, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DB2ModelPackage.DB2XSR_OBJECT__SCHEMA, newSchema, newSchema));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XSR_OBJECT__SCHEMA:
+ if (schema != null)
+ msgs = ((InternalEObject)schema).eInverseRemove(this, DB2ModelPackage.DB2_SCHEMA__XSR_OBJECTS, DB2Schema.class, msgs);
+ return basicSetSchema((DB2Schema)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XSR_OBJECT__SCHEMA:
+ return basicSetSchema(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XSR_OBJECT__SCHEMA:
+ if (resolve) return getSchema();
+ return basicGetSchema();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XSR_OBJECT__SCHEMA:
+ setSchema((DB2Schema)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XSR_OBJECT__SCHEMA:
+ setSchema((DB2Schema)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DB2ModelPackage.DB2XSR_OBJECT__SCHEMA:
+ return schema != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //DB2XSRObjectImpl
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/DB2ModelAdapterFactory.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/DB2ModelAdapterFactory.java
new file mode 100644
index 0000000..633ddf4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/DB2ModelAdapterFactory.java
@@ -0,0 +1,1242 @@
+package org.eclipse.datatools.enablement.ibm.db2.model.util;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.*;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.ObjectExtension;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see com.ibm.db.models.db2.DB2ModelPackage
+ * @generated
+ */
+public class DB2ModelAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static DB2ModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ModelAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = DB2ModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DB2ModelSwitch modelSwitch =
+ new DB2ModelSwitch() {
+ public Object caseDB2Database(DB2Database object) {
+ return createDB2DatabaseAdapter();
+ }
+ public Object caseDB2Package(DB2Package object) {
+ return createDB2PackageAdapter();
+ }
+ public Object caseDB2Table(DB2Table object) {
+ return createDB2TableAdapter();
+ }
+ public Object caseDB2Trigger(DB2Trigger object) {
+ return createDB2TriggerAdapter();
+ }
+ public Object caseDB2Procedure(DB2Procedure object) {
+ return createDB2ProcedureAdapter();
+ }
+ public Object caseDB2Schema(DB2Schema object) {
+ return createDB2SchemaAdapter();
+ }
+ public Object caseDB2Routine(DB2Routine object) {
+ return createDB2RoutineAdapter();
+ }
+ public Object caseDB2DatabaseManager(DB2DatabaseManager object) {
+ return createDB2DatabaseManagerAdapter();
+ }
+ public Object caseDB2View(DB2View object) {
+ return createDB2ViewAdapter();
+ }
+ public Object caseDB2ApplicationProcess(DB2ApplicationProcess object) {
+ return createDB2ApplicationProcessAdapter();
+ }
+ public Object caseDB2Transaction(DB2Transaction object) {
+ return createDB2TransactionAdapter();
+ }
+ public Object caseDB2SystemSchema(DB2SystemSchema object) {
+ return createDB2SystemSchemaAdapter();
+ }
+ public Object caseDB2Source(DB2Source object) {
+ return createDB2SourceAdapter();
+ }
+ public Object caseDB2AccessPlan(DB2AccessPlan object) {
+ return createDB2AccessPlanAdapter();
+ }
+ public Object caseDB2UserDefinedFunction(DB2UserDefinedFunction object) {
+ return createDB2UserDefinedFunctionAdapter();
+ }
+ public Object caseDB2Method(DB2Method object) {
+ return createDB2MethodAdapter();
+ }
+ public Object caseDB2ExtendedOptions(DB2ExtendedOptions object) {
+ return createDB2ExtendedOptionsAdapter();
+ }
+ public Object caseDB2Alias(DB2Alias object) {
+ return createDB2AliasAdapter();
+ }
+ public Object caseDB2MaterializedQueryTable(DB2MaterializedQueryTable object) {
+ return createDB2MaterializedQueryTableAdapter();
+ }
+ public Object caseDB2Index(DB2Index object) {
+ return createDB2IndexAdapter();
+ }
+ public Object caseDB2MultidimensionalIndex(DB2MultidimensionalIndex object) {
+ return createDB2MultidimensionalIndexAdapter();
+ }
+ public Object caseDB2Function(DB2Function object) {
+ return createDB2FunctionAdapter();
+ }
+ public Object caseDB2JavaOptions(DB2JavaOptions object) {
+ return createDB2JavaOptionsAdapter();
+ }
+ public Object caseDB2ProcedureDeploy(DB2ProcedureDeploy object) {
+ return createDB2ProcedureDeployAdapter();
+ }
+ public Object caseDB2OLAPObject(DB2OLAPObject object) {
+ return createDB2OLAPObjectAdapter();
+ }
+ public Object caseDB2RoutineExtension(DB2RoutineExtension object) {
+ return createDB2RoutineExtensionAdapter();
+ }
+ public Object caseDB2IdentitySpecifier(DB2IdentitySpecifier object) {
+ return createDB2IdentitySpecifierAdapter();
+ }
+ public Object caseDB2Jar(DB2Jar object) {
+ return createDB2JarAdapter();
+ }
+ public Object caseDB2Column(DB2Column object) {
+ return createDB2ColumnAdapter();
+ }
+ public Object caseDB2XSRObject(DB2XSRObject object) {
+ return createDB2XSRObjectAdapter();
+ }
+ public Object caseDB2XMLSchema(DB2XMLSchema object) {
+ return createDB2XMLSchemaAdapter();
+ }
+ public Object caseDB2XMLSchemaDocument(DB2XMLSchemaDocument object) {
+ return createDB2XMLSchemaDocumentAdapter();
+ }
+ public Object caseDB2XMLSchemaDocProperties(DB2XMLSchemaDocProperties object) {
+ return createDB2XMLSchemaDocPropertiesAdapter();
+ }
+ public Object caseDB2PackageStatement(DB2PackageStatement object) {
+ return createDB2PackageStatementAdapter();
+ }
+ public Object caseDB2DistinctUserDefinedType(DB2DistinctUserDefinedType object) {
+ return createDB2DistinctUserDefinedTypeAdapter();
+ }
+ public Object caseDB2Period(DB2Period object) {
+ return createDB2PeriodAdapter();
+ }
+ public Object caseDB2Cluster(DB2Cluster object) {
+ return createDB2ClusterAdapter();
+ }
+ public Object caseDB2Member(DB2Member object) {
+ return createDB2MemberAdapter();
+ }
+ public Object caseDB2UniqueConstraintExtension(DB2UniqueConstraintExtension object) {
+ return createDB2UniqueConstraintExtensionAdapter();
+ }
+ public Object caseDB2Mask(DB2Mask object) {
+ return createDB2MaskAdapter();
+ }
+ public Object caseDB2Permission(DB2Permission object) {
+ return createDB2PermissionAdapter();
+ }
+ public Object caseEModelElement(EModelElement object) {
+ return createEModelElementAdapter();
+ }
+ public Object caseENamedElement(ENamedElement object) {
+ return createENamedElementAdapter();
+ }
+ public Object caseSQLObject(SQLObject object) {
+ return createSQLObjectAdapter();
+ }
+ public Object caseDatabase(Database object) {
+ return createDatabaseAdapter();
+ }
+ public Object caseTable(Table object) {
+ return createTableAdapter();
+ }
+ public Object caseBaseTable(BaseTable object) {
+ return createBaseTableAdapter();
+ }
+ public Object casePersistentTable(PersistentTable object) {
+ return createPersistentTableAdapter();
+ }
+ public Object caseTrigger(Trigger object) {
+ return createTriggerAdapter();
+ }
+ public Object caseRoutine(Routine object) {
+ return createRoutineAdapter();
+ }
+ public Object caseProcedure(Procedure object) {
+ return createProcedureAdapter();
+ }
+ public Object caseSchema(Schema object) {
+ return createSchemaAdapter();
+ }
+ public Object caseDerivedTable(DerivedTable object) {
+ return createDerivedTableAdapter();
+ }
+ public Object caseViewTable(ViewTable object) {
+ return createViewTableAdapter();
+ }
+ public Object caseSource(Source object) {
+ return createSourceAdapter();
+ }
+ public Object caseFunction(Function object) {
+ return createFunctionAdapter();
+ }
+ public Object caseUserDefinedFunction(UserDefinedFunction object) {
+ return createUserDefinedFunctionAdapter();
+ }
+ public Object caseMethod(Method object) {
+ return createMethodAdapter();
+ }
+ public Object caseIndex(Index object) {
+ return createIndexAdapter();
+ }
+ public Object caseIdentitySpecifier(IdentitySpecifier object) {
+ return createIdentitySpecifierAdapter();
+ }
+ public Object caseTypedElement(TypedElement object) {
+ return createTypedElementAdapter();
+ }
+ public Object caseColumn(Column object) {
+ return createColumnAdapter();
+ }
+ public Object caseDataType(DataType object) {
+ return createDataTypeAdapter();
+ }
+ public Object caseUserDefinedType(UserDefinedType object) {
+ return createUserDefinedTypeAdapter();
+ }
+ public Object caseDistinctUserDefinedType(DistinctUserDefinedType object) {
+ return createDistinctUserDefinedTypeAdapter();
+ }
+ public Object caseObjectExtension(ObjectExtension object) {
+ return createObjectExtensionAdapter();
+ }
+ public Object defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Database <em>DB2 Database</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Database
+ * @generated
+ */
+ public Adapter createDB2DatabaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Package <em>DB2 Package</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Package
+ * @generated
+ */
+ public Adapter createDB2PackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Table <em>DB2 Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Table
+ * @generated
+ */
+ public Adapter createDB2TableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Trigger <em>DB2 Trigger</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Trigger
+ * @generated
+ */
+ public Adapter createDB2TriggerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Procedure <em>DB2 Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Procedure
+ * @generated
+ */
+ public Adapter createDB2ProcedureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Schema <em>DB2 Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Schema
+ * @generated
+ */
+ public Adapter createDB2SchemaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Routine <em>DB2 Routine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Routine
+ * @generated
+ */
+ public Adapter createDB2RoutineAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2DatabaseManager <em>DB2 Database Manager</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2DatabaseManager
+ * @generated
+ */
+ public Adapter createDB2DatabaseManagerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2View <em>DB2 View</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2View
+ * @generated
+ */
+ public Adapter createDB2ViewAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2ApplicationProcess <em>DB2 Application Process</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2ApplicationProcess
+ * @generated
+ */
+ public Adapter createDB2ApplicationProcessAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Transaction <em>DB2 Transaction</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Transaction
+ * @generated
+ */
+ public Adapter createDB2TransactionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2SystemSchema <em>DB2 System Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2SystemSchema
+ * @generated
+ */
+ public Adapter createDB2SystemSchemaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Source <em>DB2 Source</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Source
+ * @generated
+ */
+ public Adapter createDB2SourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2AccessPlan <em>DB2 Access Plan</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2AccessPlan
+ * @generated
+ */
+ public Adapter createDB2AccessPlanAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2UserDefinedFunction <em>DB2 User Defined Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2UserDefinedFunction
+ * @generated
+ */
+ public Adapter createDB2UserDefinedFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Method <em>DB2 Method</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Method
+ * @generated
+ */
+ public Adapter createDB2MethodAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2ExtendedOptions <em>DB2 Extended Options</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2ExtendedOptions
+ * @generated
+ */
+ public Adapter createDB2ExtendedOptionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Alias <em>DB2 Alias</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Alias
+ * @generated
+ */
+ public Adapter createDB2AliasAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2MaterializedQueryTable <em>DB2 Materialized Query Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2MaterializedQueryTable
+ * @generated
+ */
+ public Adapter createDB2MaterializedQueryTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Index <em>DB2 Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Index
+ * @generated
+ */
+ public Adapter createDB2IndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2MultidimensionalIndex <em>DB2 Multidimensional Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2MultidimensionalIndex
+ * @generated
+ */
+ public Adapter createDB2MultidimensionalIndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Function <em>DB2 Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Function
+ * @generated
+ */
+ public Adapter createDB2FunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2JavaOptions <em>DB2 Java Options</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2JavaOptions
+ * @generated
+ */
+ public Adapter createDB2JavaOptionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2ProcedureDeploy <em>DB2 Procedure Deploy</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2ProcedureDeploy
+ * @generated
+ */
+ public Adapter createDB2ProcedureDeployAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2OLAPObject <em>DB2OLAP Object</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2OLAPObject
+ * @generated
+ */
+ public Adapter createDB2OLAPObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2RoutineExtension <em>DB2 Routine Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2RoutineExtension
+ * @generated
+ */
+ public Adapter createDB2RoutineExtensionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2IdentitySpecifier <em>DB2 Identity Specifier</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2IdentitySpecifier
+ * @generated
+ */
+ public Adapter createDB2IdentitySpecifierAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Jar <em>DB2 Jar</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Jar
+ * @generated
+ */
+ public Adapter createDB2JarAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Column <em>DB2 Column</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Column
+ * @generated
+ */
+ public Adapter createDB2ColumnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2XSRObject <em>DB2XSR Object</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2XSRObject
+ * @generated
+ */
+ public Adapter createDB2XSRObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2XMLSchema <em>DB2XML Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2XMLSchema
+ * @generated
+ */
+ public Adapter createDB2XMLSchemaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2XMLSchemaDocument <em>DB2XML Schema Document</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2XMLSchemaDocument
+ * @generated
+ */
+ public Adapter createDB2XMLSchemaDocumentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2XMLSchemaDocProperties <em>DB2XML Schema Doc Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2XMLSchemaDocProperties
+ * @generated
+ */
+ public Adapter createDB2XMLSchemaDocPropertiesAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2PackageStatement <em>DB2 Package Statement</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2PackageStatement
+ * @generated
+ */
+ public Adapter createDB2PackageStatementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2DistinctUserDefinedType <em>DB2 Distinct User Defined Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2DistinctUserDefinedType
+ * @generated
+ */
+ public Adapter createDB2DistinctUserDefinedTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Period <em>DB2 Period</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Period
+ * @generated
+ */
+ public Adapter createDB2PeriodAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Cluster <em>DB2 Cluster</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Cluster
+ * @generated
+ */
+ public Adapter createDB2ClusterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Member <em>DB2 Member</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Member
+ * @generated
+ */
+ public Adapter createDB2MemberAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2UniqueConstraintExtension <em>DB2 Unique Constraint Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2UniqueConstraintExtension
+ * @generated
+ */
+ public Adapter createDB2UniqueConstraintExtensionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Mask <em>DB2 Mask</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Mask
+ * @generated
+ */
+ public Adapter createDB2MaskAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link com.ibm.db.models.db2.DB2Permission <em>DB2 Permission</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see com.ibm.db.models.db2.DB2Permission
+ * @generated
+ */
+ public Adapter createDB2PermissionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.EModelElement <em>EModel Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.EModelElement
+ * @generated
+ */
+ public Adapter createEModelElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.ecore.ENamedElement <em>ENamed Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.ecore.ENamedElement
+ * @generated
+ */
+ public Adapter createENamedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.SQLObject <em>SQL Object</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.SQLObject
+ * @generated
+ */
+ public Adapter createSQLObjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Database <em>Database</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.Database
+ * @generated
+ */
+ public Adapter createDatabaseAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Table <em>Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.Table
+ * @generated
+ */
+ public Adapter createTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.BaseTable <em>Base Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.BaseTable
+ * @generated
+ */
+ public Adapter createBaseTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.PersistentTable <em>Persistent Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.PersistentTable
+ * @generated
+ */
+ public Adapter createPersistentTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Trigger <em>Trigger</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.Trigger
+ * @generated
+ */
+ public Adapter createTriggerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Routine <em>Routine</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Routine
+ * @generated
+ */
+ public Adapter createRoutineAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Procedure <em>Procedure</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Procedure
+ * @generated
+ */
+ public Adapter createProcedureAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.Schema <em>Schema</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.Schema
+ * @generated
+ */
+ public Adapter createSchemaAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.DerivedTable <em>Derived Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.DerivedTable
+ * @generated
+ */
+ public Adapter createDerivedTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.ViewTable <em>View Table</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.ViewTable
+ * @generated
+ */
+ public Adapter createViewTableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Source <em>Source</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Source
+ * @generated
+ */
+ public Adapter createSourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Function <em>Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Function
+ * @generated
+ */
+ public Adapter createFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction <em>User Defined Function</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction
+ * @generated
+ */
+ public Adapter createUserDefinedFunctionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.routines.Method <em>Method</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.routines.Method
+ * @generated
+ */
+ public Adapter createMethodAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.constraints.Index <em>Index</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.constraints.Index
+ * @generated
+ */
+ public Adapter createIndexAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier <em>Identity Specifier</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier
+ * @generated
+ */
+ public Adapter createIdentitySpecifierAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.TypedElement <em>Typed Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.TypedElement
+ * @generated
+ */
+ public Adapter createTypedElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.tables.Column <em>Column</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.tables.Column
+ * @generated
+ */
+ public Adapter createColumnAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DataType <em>Data Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.DataType
+ * @generated
+ */
+ public Adapter createDataTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType <em>User Defined Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType
+ * @generated
+ */
+ public Adapter createUserDefinedTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType <em>Distinct User Defined Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType
+ * @generated
+ */
+ public Adapter createDistinctUserDefinedTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.datatools.modelbase.sql.schema.ObjectExtension <em>Object Extension</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.datatools.modelbase.sql.schema.ObjectExtension
+ * @generated
+ */
+ public Adapter createObjectExtensionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //DB2ModelAdapterFactory
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/DB2ModelSwitch.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/DB2ModelSwitch.java
new file mode 100644
index 0000000..aa4d7bc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/DB2ModelSwitch.java
@@ -0,0 +1,1531 @@
+package org.eclipse.datatools.enablement.ibm.db2.model.util;
+
+
+import org.eclipse.datatools.enablement.ibm.db2.model.*;
+import java.util.List;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Function;
+import org.eclipse.datatools.modelbase.sql.routines.Method;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.Source;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.IdentitySpecifier;
+import org.eclipse.datatools.modelbase.sql.schema.ObjectExtension;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.DerivedTable;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EModelElement;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see com.ibm.db.models.db2.DB2ModelPackage
+ * @generated
+ */
+public class DB2ModelSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static DB2ModelPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DB2ModelSwitch() {
+ if (modelPackage == null) {
+ modelPackage = DB2ModelPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case DB2ModelPackage.DB2_DATABASE: {
+ DB2Database db2Database = (DB2Database)theEObject;
+ Object result = caseDB2Database(db2Database);
+ if (result == null) result = caseDatabase(db2Database);
+ if (result == null) result = caseSQLObject(db2Database);
+ if (result == null) result = caseENamedElement(db2Database);
+ if (result == null) result = caseEModelElement(db2Database);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_PACKAGE: {
+ DB2Package db2Package = (DB2Package)theEObject;
+ Object result = caseDB2Package(db2Package);
+ if (result == null) result = caseDB2AccessPlan(db2Package);
+ if (result == null) result = caseSQLObject(db2Package);
+ if (result == null) result = caseENamedElement(db2Package);
+ if (result == null) result = caseEModelElement(db2Package);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_TABLE: {
+ DB2Table db2Table = (DB2Table)theEObject;
+ Object result = caseDB2Table(db2Table);
+ if (result == null) result = casePersistentTable(db2Table);
+ if (result == null) result = caseBaseTable(db2Table);
+ if (result == null) result = caseTable(db2Table);
+ if (result == null) result = caseSQLObject(db2Table);
+ if (result == null) result = caseENamedElement(db2Table);
+ if (result == null) result = caseEModelElement(db2Table);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_TRIGGER: {
+ DB2Trigger db2Trigger = (DB2Trigger)theEObject;
+ Object result = caseDB2Trigger(db2Trigger);
+ if (result == null) result = caseTrigger(db2Trigger);
+ if (result == null) result = caseDB2AccessPlan(db2Trigger);
+ if (result == null) result = caseSQLObject(db2Trigger);
+ if (result == null) result = caseENamedElement(db2Trigger);
+ if (result == null) result = caseEModelElement(db2Trigger);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_PROCEDURE: {
+ DB2Procedure db2Procedure = (DB2Procedure)theEObject;
+ Object result = caseDB2Procedure(db2Procedure);
+ if (result == null) result = caseProcedure(db2Procedure);
+ if (result == null) result = caseDB2Routine(db2Procedure);
+ if (result == null) result = caseRoutine(db2Procedure);
+ if (result == null) result = caseDB2AccessPlan(db2Procedure);
+ if (result == null) result = caseSQLObject(db2Procedure);
+ if (result == null) result = caseENamedElement(db2Procedure);
+ if (result == null) result = caseEModelElement(db2Procedure);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_SCHEMA: {
+ DB2Schema db2Schema = (DB2Schema)theEObject;
+ Object result = caseDB2Schema(db2Schema);
+ if (result == null) result = caseSchema(db2Schema);
+ if (result == null) result = caseSQLObject(db2Schema);
+ if (result == null) result = caseENamedElement(db2Schema);
+ if (result == null) result = caseEModelElement(db2Schema);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_ROUTINE: {
+ DB2Routine db2Routine = (DB2Routine)theEObject;
+ Object result = caseDB2Routine(db2Routine);
+ if (result == null) result = caseRoutine(db2Routine);
+ if (result == null) result = caseDB2AccessPlan(db2Routine);
+ if (result == null) result = caseSQLObject(db2Routine);
+ if (result == null) result = caseENamedElement(db2Routine);
+ if (result == null) result = caseEModelElement(db2Routine);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_DATABASE_MANAGER: {
+ DB2DatabaseManager db2DatabaseManager = (DB2DatabaseManager)theEObject;
+ Object result = caseDB2DatabaseManager(db2DatabaseManager);
+ if (result == null) result = caseSQLObject(db2DatabaseManager);
+ if (result == null) result = caseENamedElement(db2DatabaseManager);
+ if (result == null) result = caseEModelElement(db2DatabaseManager);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_VIEW: {
+ DB2View db2View = (DB2View)theEObject;
+ Object result = caseDB2View(db2View);
+ if (result == null) result = caseViewTable(db2View);
+ if (result == null) result = caseDerivedTable(db2View);
+ if (result == null) result = caseTable(db2View);
+ if (result == null) result = caseSQLObject(db2View);
+ if (result == null) result = caseENamedElement(db2View);
+ if (result == null) result = caseEModelElement(db2View);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_APPLICATION_PROCESS: {
+ DB2ApplicationProcess db2ApplicationProcess = (DB2ApplicationProcess)theEObject;
+ Object result = caseDB2ApplicationProcess(db2ApplicationProcess);
+ if (result == null) result = caseSQLObject(db2ApplicationProcess);
+ if (result == null) result = caseENamedElement(db2ApplicationProcess);
+ if (result == null) result = caseEModelElement(db2ApplicationProcess);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_TRANSACTION: {
+ DB2Transaction db2Transaction = (DB2Transaction)theEObject;
+ Object result = caseDB2Transaction(db2Transaction);
+ if (result == null) result = caseSQLObject(db2Transaction);
+ if (result == null) result = caseENamedElement(db2Transaction);
+ if (result == null) result = caseEModelElement(db2Transaction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_SYSTEM_SCHEMA: {
+ DB2SystemSchema db2SystemSchema = (DB2SystemSchema)theEObject;
+ Object result = caseDB2SystemSchema(db2SystemSchema);
+ if (result == null) result = caseDB2Schema(db2SystemSchema);
+ if (result == null) result = caseSchema(db2SystemSchema);
+ if (result == null) result = caseSQLObject(db2SystemSchema);
+ if (result == null) result = caseENamedElement(db2SystemSchema);
+ if (result == null) result = caseEModelElement(db2SystemSchema);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_SOURCE: {
+ DB2Source db2Source = (DB2Source)theEObject;
+ Object result = caseDB2Source(db2Source);
+ if (result == null) result = caseSource(db2Source);
+ if (result == null) result = caseSQLObject(db2Source);
+ if (result == null) result = caseENamedElement(db2Source);
+ if (result == null) result = caseEModelElement(db2Source);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_ACCESS_PLAN: {
+ DB2AccessPlan db2AccessPlan = (DB2AccessPlan)theEObject;
+ Object result = caseDB2AccessPlan(db2AccessPlan);
+ if (result == null) result = caseSQLObject(db2AccessPlan);
+ if (result == null) result = caseENamedElement(db2AccessPlan);
+ if (result == null) result = caseEModelElement(db2AccessPlan);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_USER_DEFINED_FUNCTION: {
+ DB2UserDefinedFunction db2UserDefinedFunction = (DB2UserDefinedFunction)theEObject;
+ Object result = caseDB2UserDefinedFunction(db2UserDefinedFunction);
+ if (result == null) result = caseUserDefinedFunction(db2UserDefinedFunction);
+ if (result == null) result = caseDB2Function(db2UserDefinedFunction);
+ if (result == null) result = caseFunction(db2UserDefinedFunction);
+ if (result == null) result = caseDB2Routine(db2UserDefinedFunction);
+ if (result == null) result = caseRoutine(db2UserDefinedFunction);
+ if (result == null) result = caseDB2AccessPlan(db2UserDefinedFunction);
+ if (result == null) result = caseSQLObject(db2UserDefinedFunction);
+ if (result == null) result = caseENamedElement(db2UserDefinedFunction);
+ if (result == null) result = caseEModelElement(db2UserDefinedFunction);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_METHOD: {
+ DB2Method db2Method = (DB2Method)theEObject;
+ Object result = caseDB2Method(db2Method);
+ if (result == null) result = caseMethod(db2Method);
+ if (result == null) result = caseDB2Function(db2Method);
+ if (result == null) result = caseFunction(db2Method);
+ if (result == null) result = caseDB2Routine(db2Method);
+ if (result == null) result = caseRoutine(db2Method);
+ if (result == null) result = caseDB2AccessPlan(db2Method);
+ if (result == null) result = caseSQLObject(db2Method);
+ if (result == null) result = caseENamedElement(db2Method);
+ if (result == null) result = caseEModelElement(db2Method);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_EXTENDED_OPTIONS: {
+ DB2ExtendedOptions db2ExtendedOptions = (DB2ExtendedOptions)theEObject;
+ Object result = caseDB2ExtendedOptions(db2ExtendedOptions);
+ if (result == null) result = caseSQLObject(db2ExtendedOptions);
+ if (result == null) result = caseENamedElement(db2ExtendedOptions);
+ if (result == null) result = caseEModelElement(db2ExtendedOptions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_ALIAS: {
+ DB2Alias db2Alias = (DB2Alias)theEObject;
+ Object result = caseDB2Alias(db2Alias);
+ if (result == null) result = caseTable(db2Alias);
+ if (result == null) result = caseSQLObject(db2Alias);
+ if (result == null) result = caseENamedElement(db2Alias);
+ if (result == null) result = caseEModelElement(db2Alias);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_MATERIALIZED_QUERY_TABLE: {
+ DB2MaterializedQueryTable db2MaterializedQueryTable = (DB2MaterializedQueryTable)theEObject;
+ Object result = caseDB2MaterializedQueryTable(db2MaterializedQueryTable);
+ if (result == null) result = caseDerivedTable(db2MaterializedQueryTable);
+ if (result == null) result = caseTable(db2MaterializedQueryTable);
+ if (result == null) result = caseSQLObject(db2MaterializedQueryTable);
+ if (result == null) result = caseENamedElement(db2MaterializedQueryTable);
+ if (result == null) result = caseEModelElement(db2MaterializedQueryTable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_INDEX: {
+ DB2Index db2Index = (DB2Index)theEObject;
+ Object result = caseDB2Index(db2Index);
+ if (result == null) result = caseIndex(db2Index);
+ if (result == null) result = caseSQLObject(db2Index);
+ if (result == null) result = caseENamedElement(db2Index);
+ if (result == null) result = caseEModelElement(db2Index);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_MULTIDIMENSIONAL_INDEX: {
+ DB2MultidimensionalIndex db2MultidimensionalIndex = (DB2MultidimensionalIndex)theEObject;
+ Object result = caseDB2MultidimensionalIndex(db2MultidimensionalIndex);
+ if (result == null) result = caseIndex(db2MultidimensionalIndex);
+ if (result == null) result = caseSQLObject(db2MultidimensionalIndex);
+ if (result == null) result = caseENamedElement(db2MultidimensionalIndex);
+ if (result == null) result = caseEModelElement(db2MultidimensionalIndex);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_FUNCTION: {
+ DB2Function db2Function = (DB2Function)theEObject;
+ Object result = caseDB2Function(db2Function);
+ if (result == null) result = caseDB2Routine(db2Function);
+ if (result == null) result = caseRoutine(db2Function);
+ if (result == null) result = caseDB2AccessPlan(db2Function);
+ if (result == null) result = caseSQLObject(db2Function);
+ if (result == null) result = caseENamedElement(db2Function);
+ if (result == null) result = caseEModelElement(db2Function);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_JAVA_OPTIONS: {
+ DB2JavaOptions db2JavaOptions = (DB2JavaOptions)theEObject;
+ Object result = caseDB2JavaOptions(db2JavaOptions);
+ if (result == null) result = caseSQLObject(db2JavaOptions);
+ if (result == null) result = caseENamedElement(db2JavaOptions);
+ if (result == null) result = caseEModelElement(db2JavaOptions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_PROCEDURE_DEPLOY: {
+ DB2ProcedureDeploy db2ProcedureDeploy = (DB2ProcedureDeploy)theEObject;
+ Object result = caseDB2ProcedureDeploy(db2ProcedureDeploy);
+ if (result == null) result = caseSQLObject(db2ProcedureDeploy);
+ if (result == null) result = caseENamedElement(db2ProcedureDeploy);
+ if (result == null) result = caseEModelElement(db2ProcedureDeploy);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2OLAP_OBJECT: {
+ DB2OLAPObject db2OLAPObject = (DB2OLAPObject)theEObject;
+ Object result = caseDB2OLAPObject(db2OLAPObject);
+ if (result == null) result = caseSQLObject(db2OLAPObject);
+ if (result == null) result = caseENamedElement(db2OLAPObject);
+ if (result == null) result = caseEModelElement(db2OLAPObject);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_ROUTINE_EXTENSION: {
+ DB2RoutineExtension db2RoutineExtension = (DB2RoutineExtension)theEObject;
+ Object result = caseDB2RoutineExtension(db2RoutineExtension);
+ if (result == null) result = caseSQLObject(db2RoutineExtension);
+ if (result == null) result = caseENamedElement(db2RoutineExtension);
+ if (result == null) result = caseEModelElement(db2RoutineExtension);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_IDENTITY_SPECIFIER: {
+ DB2IdentitySpecifier db2IdentitySpecifier = (DB2IdentitySpecifier)theEObject;
+ Object result = caseDB2IdentitySpecifier(db2IdentitySpecifier);
+ if (result == null) result = caseIdentitySpecifier(db2IdentitySpecifier);
+ if (result == null) result = caseSQLObject(db2IdentitySpecifier);
+ if (result == null) result = caseENamedElement(db2IdentitySpecifier);
+ if (result == null) result = caseEModelElement(db2IdentitySpecifier);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_JAR: {
+ DB2Jar db2Jar = (DB2Jar)theEObject;
+ Object result = caseDB2Jar(db2Jar);
+ if (result == null) result = caseSQLObject(db2Jar);
+ if (result == null) result = caseENamedElement(db2Jar);
+ if (result == null) result = caseEModelElement(db2Jar);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_COLUMN: {
+ DB2Column db2Column = (DB2Column)theEObject;
+ Object result = caseDB2Column(db2Column);
+ if (result == null) result = caseColumn(db2Column);
+ if (result == null) result = caseTypedElement(db2Column);
+ if (result == null) result = caseSQLObject(db2Column);
+ if (result == null) result = caseENamedElement(db2Column);
+ if (result == null) result = caseEModelElement(db2Column);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2XSR_OBJECT: {
+ DB2XSRObject db2XSRObject = (DB2XSRObject)theEObject;
+ Object result = caseDB2XSRObject(db2XSRObject);
+ if (result == null) result = caseSQLObject(db2XSRObject);
+ if (result == null) result = caseENamedElement(db2XSRObject);
+ if (result == null) result = caseEModelElement(db2XSRObject);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2XML_SCHEMA: {
+ DB2XMLSchema db2XMLSchema = (DB2XMLSchema)theEObject;
+ Object result = caseDB2XMLSchema(db2XMLSchema);
+ if (result == null) result = caseDB2XSRObject(db2XMLSchema);
+ if (result == null) result = caseSQLObject(db2XMLSchema);
+ if (result == null) result = caseENamedElement(db2XMLSchema);
+ if (result == null) result = caseEModelElement(db2XMLSchema);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2XML_SCHEMA_DOCUMENT: {
+ DB2XMLSchemaDocument db2XMLSchemaDocument = (DB2XMLSchemaDocument)theEObject;
+ Object result = caseDB2XMLSchemaDocument(db2XMLSchemaDocument);
+ if (result == null) result = caseSQLObject(db2XMLSchemaDocument);
+ if (result == null) result = caseENamedElement(db2XMLSchemaDocument);
+ if (result == null) result = caseEModelElement(db2XMLSchemaDocument);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2XML_SCHEMA_DOC_PROPERTIES: {
+ DB2XMLSchemaDocProperties db2XMLSchemaDocProperties = (DB2XMLSchemaDocProperties)theEObject;
+ Object result = caseDB2XMLSchemaDocProperties(db2XMLSchemaDocProperties);
+ if (result == null) result = caseSQLObject(db2XMLSchemaDocProperties);
+ if (result == null) result = caseENamedElement(db2XMLSchemaDocProperties);
+ if (result == null) result = caseEModelElement(db2XMLSchemaDocProperties);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_PACKAGE_STATEMENT: {
+ DB2PackageStatement db2PackageStatement = (DB2PackageStatement)theEObject;
+ Object result = caseDB2PackageStatement(db2PackageStatement);
+ if (result == null) result = caseSQLObject(db2PackageStatement);
+ if (result == null) result = caseENamedElement(db2PackageStatement);
+ if (result == null) result = caseEModelElement(db2PackageStatement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_DISTINCT_USER_DEFINED_TYPE: {
+ DB2DistinctUserDefinedType db2DistinctUserDefinedType = (DB2DistinctUserDefinedType)theEObject;
+ Object result = caseDB2DistinctUserDefinedType(db2DistinctUserDefinedType);
+ if (result == null) result = caseDistinctUserDefinedType(db2DistinctUserDefinedType);
+ if (result == null) result = caseUserDefinedType(db2DistinctUserDefinedType);
+ if (result == null) result = caseDataType(db2DistinctUserDefinedType);
+ if (result == null) result = caseSQLObject(db2DistinctUserDefinedType);
+ if (result == null) result = caseENamedElement(db2DistinctUserDefinedType);
+ if (result == null) result = caseEModelElement(db2DistinctUserDefinedType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_PERIOD: {
+ DB2Period db2Period = (DB2Period)theEObject;
+ Object result = caseDB2Period(db2Period);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_CLUSTER: {
+ DB2Cluster db2Cluster = (DB2Cluster)theEObject;
+ Object result = caseDB2Cluster(db2Cluster);
+ if (result == null) result = caseSQLObject(db2Cluster);
+ if (result == null) result = caseENamedElement(db2Cluster);
+ if (result == null) result = caseEModelElement(db2Cluster);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_MEMBER: {
+ DB2Member db2Member = (DB2Member)theEObject;
+ Object result = caseDB2Member(db2Member);
+ if (result == null) result = caseSQLObject(db2Member);
+ if (result == null) result = caseENamedElement(db2Member);
+ if (result == null) result = caseEModelElement(db2Member);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_UNIQUE_CONSTRAINT_EXTENSION: {
+ DB2UniqueConstraintExtension db2UniqueConstraintExtension = (DB2UniqueConstraintExtension)theEObject;
+ Object result = caseDB2UniqueConstraintExtension(db2UniqueConstraintExtension);
+ if (result == null) result = caseSQLObject(db2UniqueConstraintExtension);
+ if (result == null) result = caseObjectExtension(db2UniqueConstraintExtension);
+ if (result == null) result = caseENamedElement(db2UniqueConstraintExtension);
+ if (result == null) result = caseEModelElement(db2UniqueConstraintExtension);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_MASK: {
+ DB2Mask db2Mask = (DB2Mask)theEObject;
+ Object result = caseDB2Mask(db2Mask);
+ if (result == null) result = caseSQLObject(db2Mask);
+ if (result == null) result = caseENamedElement(db2Mask);
+ if (result == null) result = caseEModelElement(db2Mask);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DB2ModelPackage.DB2_PERMISSION: {
+ DB2Permission db2Permission = (DB2Permission)theEObject;
+ Object result = caseDB2Permission(db2Permission);
+ if (result == null) result = caseSQLObject(db2Permission);
+ if (result == null) result = caseENamedElement(db2Permission);
+ if (result == null) result = caseEModelElement(db2Permission);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Database</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Database</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Database(DB2Database object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Package</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Package</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Package(DB2Package object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Table(DB2Table object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Trigger</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Trigger</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Trigger(DB2Trigger object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Procedure</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Procedure(DB2Procedure object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Schema</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Schema</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Schema(DB2Schema object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Routine</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Routine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Routine(DB2Routine object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Database Manager</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Database Manager</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2DatabaseManager(DB2DatabaseManager object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 View</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 View</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2View(DB2View object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Application Process</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Application Process</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2ApplicationProcess(DB2ApplicationProcess object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Transaction</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Transaction</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Transaction(DB2Transaction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 System Schema</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 System Schema</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2SystemSchema(DB2SystemSchema object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Source</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Source</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Source(DB2Source object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Access Plan</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Access Plan</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2AccessPlan(DB2AccessPlan object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 User Defined Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 User Defined Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2UserDefinedFunction(DB2UserDefinedFunction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Method</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Method</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Method(DB2Method object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Extended Options</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Extended Options</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2ExtendedOptions(DB2ExtendedOptions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Alias</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Alias</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Alias(DB2Alias object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Materialized Query Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Materialized Query Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2MaterializedQueryTable(DB2MaterializedQueryTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Index(DB2Index object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Multidimensional Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Multidimensional Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2MultidimensionalIndex(DB2MultidimensionalIndex object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Function(DB2Function object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Java Options</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Java Options</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2JavaOptions(DB2JavaOptions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Procedure Deploy</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Procedure Deploy</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2ProcedureDeploy(DB2ProcedureDeploy object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2OLAP Object</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2OLAP Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2OLAPObject(DB2OLAPObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Routine Extension</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Routine Extension</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2RoutineExtension(DB2RoutineExtension object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Identity Specifier</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Identity Specifier</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2IdentitySpecifier(DB2IdentitySpecifier object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Jar</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Jar</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Jar(DB2Jar object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Column</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Column</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Column(DB2Column object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2XSR Object</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2XSR Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2XSRObject(DB2XSRObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2XML Schema</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2XML Schema</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2XMLSchema(DB2XMLSchema object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2XML Schema Document</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2XML Schema Document</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2XMLSchemaDocument(DB2XMLSchemaDocument object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2XML Schema Doc Properties</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2XML Schema Doc Properties</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2XMLSchemaDocProperties(DB2XMLSchemaDocProperties object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Package Statement</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Package Statement</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2PackageStatement(DB2PackageStatement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Distinct User Defined Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Distinct User Defined Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2DistinctUserDefinedType(DB2DistinctUserDefinedType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Period</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Period</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Period(DB2Period object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Cluster</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Cluster</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Cluster(DB2Cluster object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Member</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Member</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Member(DB2Member object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Unique Constraint Extension</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Unique Constraint Extension</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2UniqueConstraintExtension(DB2UniqueConstraintExtension object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Mask</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Mask</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Mask(DB2Mask object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>DB2 Permission</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>DB2 Permission</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDB2Permission(DB2Permission object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EModel Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseEModelElement(EModelElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>ENamed Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseENamedElement(ENamedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SQL Object</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseSQLObject(SQLObject object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Database</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Database</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDatabase(Database object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseTable(Table object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Base Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Base Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseBaseTable(BaseTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Persistent Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Persistent Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePersistentTable(PersistentTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Trigger</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Trigger</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseTrigger(Trigger object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Routine</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Routine</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseRoutine(Routine object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Procedure</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Procedure</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProcedure(Procedure object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Schema</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Schema</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseSchema(Schema object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Derived Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Derived Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDerivedTable(DerivedTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>View Table</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>View Table</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseViewTable(ViewTable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Source</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Source</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseSource(Source object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseFunction(Function object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>User Defined Function</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>User Defined Function</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseUserDefinedFunction(UserDefinedFunction object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Method</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Method</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseMethod(Method object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Index</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Index</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseIndex(Index object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Identity Specifier</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Identity Specifier</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseIdentitySpecifier(IdentitySpecifier object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseTypedElement(TypedElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Column</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Column</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseColumn(Column object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Data Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDataType(DataType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>User Defined Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>User Defined Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseUserDefinedType(UserDefinedType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Distinct User Defined Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Distinct User Defined Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDistinctUserDefinedType(DistinctUserDefinedType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Object Extension</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Object Extension</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseObjectExtension(ObjectExtension object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //DB2ModelSwitch
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/ReverseNavigationHelper.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/ReverseNavigationHelper.java
new file mode 100644
index 0000000..65ca739
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/model/util/ReverseNavigationHelper.java
@@ -0,0 +1,560 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.model.util;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.BasicEList.UnmodifiableEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <em>ReverseNavigationHelper</em>
+ * <p>
+ * Helper to augment a one-way EMF relationship with
+ * a <i>virtual inverse relationship</i> that makes it possible to navigate the one-way relationship in the opposite direction.
+ * This can be useful in cases where you wish to
+ * define a two-way relationship between classes that come from two different EMF models, but you only have
+ * authority to modify one of the models. In this situation you could create an explicit one-way EMF relationship from
+ * the class in your model to a class that belongs to the read-only model, and then you could establish a
+ * virtual inverse relationship that would allow you to write code that navigates in the inverse direction.
+ * <p>
+ * In order to use this helper to define a virtual inverse relationship, a client must do the
+ * following:
+ * <ol>
+ * <li>Create a singleton instance of a {@link InverseAdapter}. This instance has state
+ * that identifies the
+ * {@link org.eclipse.emf.ecore.EReference} object that defines the one-way
+ * relationship and also
+ * a flag to indicate whether the virtual inverse relationship has a cardinality of
+ * {@link #SINGLE} or {@link #MULTIPLE}.
+ * <p>
+ * For example, if the EMF package <code>MyPackage</code> has a one-way relationship called <code>foo</code>
+ * from class <code>SourceClass</code> to class <code>TargetClass</code>, and you wish the virtual inverse relationship
+ * to have a cardinality of <code>SINGLE</code>, you could define this
+ * singleton adapter as follows:
+ * <p>
+ * <xmp>
+ * protected static final EReference fooRef = MyPackage.eINSTANCE.getSourceClass_Foo();
+ * public static final InverseAdapter INVERSE_FOO_ADAPTER = new InverseAdapter(fooRef, SINGLE);
+ * </xmp>
+ * <p>
+ * <li>Make sure that the singleton instance is attached to every potential source object
+ * at the time each source object is created.
+ * <p>
+ * There are different ways that this
+ * can be done in EMF. For instance, you can override the
+ * appropriate create method in the generated FactoryImpl for the package.
+ * Another way is that an AdapterFactory may be created and registered
+ * for objects that require source adapters.
+ * <p>
+ * <li>Anywhere it is necessary to navigate from the target object back to the source object,
+ * use the singleton instance of <code>TargetAdapter</code> created in step 1
+ * to invoke the method {@link InverseAdapter#getOppositeEnd(Notifier)}.
+ * The argument to this method is the target of the one-way EMF relationship (i.e. it is the <u>source</u> of
+ * the virtual inverse relationship.)
+ * The value returned by this method is the source of the one-way EMF relationship (i.e. it is the <u>target</u> of
+ * the virtual inverse relationship.)
+ * <p>
+ * You may find it useful to provide a static convenience <i>get</i> method for the virtual inverse relationship.
+ * This convenience method could
+ * hide the singleton instance of the <code>InverseAdapter</code> and also cast the result of <code>getOppositeEnd</code>
+ * to be the appropriate type.
+ * So, for example, given the one-way relationship called <code>foo</code> described above,
+ * you may wish to define the following convenience method:
+ * <p>
+ * <xmp>
+ * public static SourceClass getInverseFoo(TargetClass t) {
+ * return (SourceClass) INVERSE_FOO_ADAPTER.getOppositeEnd(t);
+ * }
+ * </xmp>
+ * <p>
+ * Note, if we had chosen to define the virtual inverse relationship to be <code>MULTIPLE</code>
+ * instead of <code>SINGLE</code>, the convienience method would be
+ * <p>
+ * <xmp>
+ * public static EList getInverseFoo(TargetClass t) {
+ * return (EList) INVERSE_FOO_ADAPTER.getOppositeEnd(t);
+ * }
+ * </xmp>
+ * </ol>
+ * <p>
+ * <u><i>Usage Notes</i></u>
+ * <ul>
+ * <li>Note that there is no <code>setOppositeEnd</code> method.
+ * Also note that in the case where the inverse cardinality is
+ * <code>MULTIPLE</code>, the EList that is returned from <code>getOppositeEnd</code> in unmodifiable.
+ * Thus, the only way to create an instance of a virtual inverse relationship is to create an instance of the corresponeding
+ * one-way EMF relationship.
+ * <li>For virtual inverse relationships where the cardinality is <code>SINGLE</code>, if a given target object is already has a
+ * source object, the relationship on the old source object will be automatically updated to remove the target.
+ * <p>For example, if <code>s1</code> and <code>s2</code> are instances of <code>SourceClass</code> (from the above
+ * example)
+ * and <code>t1</code> is an instance of <code>TargetClass</code>,
+ * the following code fragment:
+ * <p>
+ * <xmp>
+ * s1.setFoo(t1); // creates real rel s1->t1 and virtual rel t1->s1
+ * s2.setFoo(t1); // creates real rel s2->t1 and virtual rel t1->s2 and destroys real rel s1->t1
+ * System.out.println(s1.getFoo());
+ * </xmp>
+ * <p>
+ * will print <b>null</b>.
+ * <p>
+ * <i>In other words, the fact that the virtual inverse relationship
+ * from <code>TargetClass</code> to <code>SourceClass</code> has a cardinality of <code>SINGLE</code>,
+ * introduces a side-effect to the generated set method that did not occur when the virtual inverse relationship was
+ * not present. </i>
+ * <p>
+ * <li>If the source and the target of a one-way EMF relationship are serialized
+ * into different resources, the link from the source to the target is preserved
+ * but the link from the target back to the source is not serialized.
+ * In other words, there is no proxy reference from the target resource back to the source resource.
+ * (This is how you would expect any one-way EMF relationship to behave. In general, you would not
+ * want the addition of a one-way reference to cause the target to be modified in any way.)
+ * This means that if the target resource is deserialized but the source resource is not,
+ * the virtual inverse relationship will not be created and it will not be possible to navigate
+ * from the target object back to the source object.
+ * Thus, the source resource must be loaded explicitly in order for
+ * the virtual inverse relationship to be navigable.
+ * </ul>
+ * <p>
+ * <u><i>Implementation Notes</i></u>
+ * <p>
+ * As stated above, the helper requires that a singleton instance of <code>InverseAdapter</code> be attached to
+ * every potential source object. This adapter listens for changes to the specified one-way relationship. Whenever
+ * a target object is added to this relationship, another adapter called a <code>TargetAdapter</code> is created and
+ * attached to the target object.
+ * There is a separate instance of <code>TargetAdapter</code> for each instance of the target object. This adapter has
+ * state that includes the source object (or a list of source objects, depending on the inverse cardinality.)
+ * This <code>TargetAdapter</code> class is completely hidden from the client.
+ * The implementation of the {@link InverseAdpater#getOppositeEnd} method interogates the
+ * <code>TargetAdapter</code> and returns the object at the other end of the virtual inverse relationship.
+ * <p>
+ * Whenever the <code>InverseAdapter</code> processes a SET or ADD event that involves a proxy reference, the
+ * proxy will automatically be resolved. This will ensure that any new <code>TargetAdapter</code> that needs to
+ * be created will be attached to
+ * the resolved target object rather than to the proxy for the target object.
+ * <p>
+ * The <code>InverseAdapter</code> also listens for changes that remove a target object from the specified one-way relationship.
+ * When an UNSET or REMOVE event is processed, the corresponding <code>targetAdapter</code> will be updated as needed.
+ */
+
+public class ReverseNavigationHelper {
+
+ /**
+ * <code>SINGLE</code> is used when constructing a {@link InverseAdapter} to specify that the cardinality
+ * of the source object is 1.
+ */
+ public final static int SINGLE=1;
+
+ /**
+ * <code>MULTIPLE</code> is used when constructing a {@link InverseAdapter} to specify that the cardinality
+ * of the source object is many.
+ */
+ public final static int MULTIPLE=-1;
+
+ /**
+ * A <code>InverseAdapter</code> may be attached to any <code>EObject</code> that is the source of
+ * a one-way EMF relationship. This adapter will provide the ability to
+ * navigate from a target object back to a source object via the {@link ReverseNavigationHelper#getOppositeEnd(Notifier)}
+ * helper method.
+ * <p>
+ * A singleton instance of a InverseAdapter is needed for a given type of relationship.
+ * This singleton instance can be attached to all instances of the
+ * source of that relationship. The InverseAdapter must be constructed with the
+ * <code>EReference</code> that identifies the relationship and also
+ * with a flag to indicate whether the virtual inverse relationship has a cardinality of
+ * {@link #SINGLE} or {@link #MULTIPLE}.
+ * <ul>
+ * <li> If the cardinality is <code>SINGLE</code>, a given target object can have be accessed by only one source object on the
+ * specified relationship.
+ * <li>If the cardinality can is <code>MULTIPLE</code>, a given target object can be accessed by many source objects on
+ * the specified relationship.
+ * <eul>
+ * Note that the cardinality of the virtual inverse relationship is completely independent of the cardinality
+ * of the forward relationship that is specified in the EMF model. Thus this helper class supports 1-to-1,
+ * 1-to-many, many-to-1, and many-to-many relationships.
+ */
+ public static class InverseAdapter extends AdapterImpl {
+
+ protected EReference reference;
+ protected int inverseCardinality;
+
+ /**
+ * Constructs a InverseAdapter for the specified relationship. The inverse cardinality will be set to SINGLE.
+ * @param reference The EReference that represents a one-way EMF relationship that needs to be augmented
+ */
+ public InverseAdapter(EReference reference) {
+ this(reference, SINGLE);
+ }
+
+ /**
+ * Constructs a InverseAdapter for the specified relationship and inverse cardinality.
+ * @param reference The EReference that represents a one-way EMF relationship that needs to be augmented
+ * @param inverseCardinality Either {@link ReverseNavigationHelper#SINGLE} or {@link ReverseNavigationHelper#MULTIPLE}.
+ * Indicate of whether the target object can be 1 or many source objects via the specified relationship.
+ */
+ public InverseAdapter(EReference reference, int inverseCardinality) {
+ super();
+ // TODO: should we throw and exception if the reference is already bidirectional???
+ this.reference = reference;
+ this.inverseCardinality = inverseCardinality;
+ }
+ /**
+ * Returns the source object of an augmented one-way relationship.
+ * <p>
+ * <u><i>Usage Notes</i></u>
+ * <ul>
+ * <li>If the cardinality of the virtual inverse relationship is <code>SINGLE</code>, the <code>getOppositeEnd</code> returns
+ * the single <code>EObject</code> at the other end of the relationship.
+ * If there is no instance of the virtual inverse relationship
+ * involving the specified object, <b>null</b> is returned.
+ * <li>If the cardinality of the virtual inverse relationship is <code>MULTIPLE</code>, the <code>getOppositeEnd</code> returns
+ * an <code>EList</code> containing all the other end of the relationship.
+ * This <code>EList</code> will be an unmodifiable list. Any attempt to add or remove members to or from the list
+ * will throw an {@link UnsupportedOperationException}.
+ * If there is no instance of the virtual inverse relationship
+ * involving the specified object, an empty list is returned.
+ * </ul>
+ * <p>
+ *
+ * @param target The object that is the target of the one-way relationship
+ * @return If the inverseCardinality is {@link ReverseNavigationHelper#SINGLE}, the result will be an EObject of the appropriate type.
+ * If the inverseCardinality is {@link ReverseNavigationHelper#MULTIPLE}, the result will be an <b>unmodifiable</b> <code>EList</code> containing the objects.
+ */
+ public Object getOppositeEnd(Notifier target) {
+ Object source=null;
+
+ TargetAdapter a = null;
+ for (Iterator iterator = target.eAdapters().iterator(); iterator.hasNext();)
+ {
+ Adapter adapter = (Adapter)iterator.next();
+ if (adapter.isAdapterForType(reference) && adapter instanceof TargetAdapter)
+ {
+ a = (TargetAdapter) adapter;
+ break;
+ }
+ }
+
+ if (a==null)
+ {
+ if (inverseCardinality==SINGLE)
+ {
+ a = (TargetAdapter) TargetAdapterFactory.SINGLE_SOURCE.adapt(target,reference);
+ }
+ else
+ {
+ a = (TargetAdapter) TargetAdapterFactory.MULTIPLE_SOURCE.adapt(target,reference);
+ }
+
+ }
+ if (a!=null) {
+ source = a.getSource();
+ }
+ return source;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.emf.common.notify.Adapter#isAdapterForType(java.lang.Object)
+ */
+ public boolean isAdapterForType(Object type) {
+ return type==InverseAdapter.class;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.emf.common.notify.Adapter#notifyChanged(org.eclipse.emf.common.notify.Notification)
+ */
+ public void notifyChanged(Notification notification) {
+
+ if (!reference.equals(notification.getFeature())) return;
+
+ int eventType = notification.getEventType();
+
+ Object oldTarget = notification.getOldValue();
+ Object newTarget = notification.getNewValue();
+ EObject source = (EObject)notification.getNotifier();
+ switch (eventType) {
+ case Notification.SET:
+ removeSourceFromOldTarget(source, (EObject)oldTarget);
+ addNewSourceToNewTarget(notification,(EObject)newTarget,-1);
+ break;
+ case Notification.UNSET:
+ removeSourceFromOldTarget(source,(EObject)oldTarget);
+ break;
+ case Notification.ADD:
+ addNewSourceToNewTarget(notification,(EObject)newTarget, notification.getPosition());
+ break;
+ case Notification.ADD_MANY:
+ Iterator a = ((List)newTarget).iterator();
+ List targetList = (List) newTarget;
+ for (int i=0, size=targetList.size(); i<size; i++) {
+ addNewSourceToNewTarget(notification,(EObject)targetList.get(i), i);
+ }
+ break;
+ case Notification.REMOVE:
+ removeSourceFromOldTarget(source,(EObject)oldTarget);
+ break;
+ case Notification.REMOVE_MANY:
+ Iterator r = ((List)oldTarget).iterator();
+ while (r.hasNext()) {
+ removeSourceFromOldTarget(source,(EObject)r.next());
+ }
+ break;
+ case Notification.RESOLVE:
+ removeSourceFromOldTarget(source, (EObject)oldTarget);
+ addNewSourceToNewTarget(notification,(EObject)newTarget,-1);
+ break;
+ }
+ }
+ // Access and set the TargetAdapter of the appropriate type
+ private void addNewSourceToNewTarget(Notification notification, EObject target, int pos) {
+ if (target!=null) {
+ EObject newSource = (EObject) notification.getNotifier();
+ // Target may be a proxy. If so, we should resolve it now
+ // so we can add an adapter to the resolved target...
+ if (target.eIsProxy()) {
+ if (reference.isMany()) {
+ List list = (List)newSource.eGet(reference);
+ target = (EObject)list.get(pos);
+ }
+ else
+ {
+ target = (EObject) newSource.eGet(reference);
+ }
+ }
+
+ // Now get an existing adapter or add a new adapter, as needed.
+ // Chose the type of Adapter based on the cardinality of the inverse rel.
+ TargetAdapter a;
+
+ if (inverseCardinality==SINGLE)
+ {
+ a = (TargetAdapter) TargetAdapterFactory.SINGLE_SOURCE.adapt(target,reference);
+ }
+ else
+ {
+ a = (TargetAdapter) TargetAdapterFactory.MULTIPLE_SOURCE.adapt(target,reference);
+ }
+
+ a.setSource(newSource);
+
+ }
+ }
+ // If this object already has an TargetAdapter for this reference, unset the value
+ private void removeSourceFromOldTarget(EObject oldSource, Notifier target) {
+ if (target!=null) {
+ TargetAdapter a = (TargetAdapter) EcoreUtil.getAdapter(target.eAdapters(),reference);
+ if(a!=null)
+ a.unsetSource(oldSource);
+ }
+ }
+ } //InverseAdapter
+
+ private static class TargetAdapterFactory extends AdapterFactoryImpl {
+
+
+ protected static TargetAdapterFactory SINGLE_SOURCE =
+ new TargetAdapterFactory() {
+ protected Adapter createAdapter(Notifier target) {
+ Adapter a = new TargetWithSingleSourceAdapter();
+ a.setTarget(target);
+ return a;
+ }
+
+ };
+ protected static TargetAdapterFactory MULTIPLE_SOURCE =
+ new TargetAdapterFactory(){
+ protected Adapter createAdapter(Notifier target) {
+ Adapter a = new TargetWithMultipleSourceAdapter();
+ a.setTarget(target);
+ return a;
+ }
+
+ };
+ protected TargetAdapterFactory() {
+ super();
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.emf.common.notify.impl.AdapterFactoryImpl#createAdapter(org.eclipse.emf.common.notify.Notifier, java.lang.Object)
+ */
+ protected Adapter createAdapter(Notifier target, Object type) {
+ TargetAdapter t = (TargetAdapter)super.createAdapter(target, type);
+ t.setReference((EReference)type);
+ return t;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.emf.common.notify.AdapterFactory#isFactoryForType(java.lang.Object)
+ */
+ public boolean isFactoryForType(Object type) {
+ if (type instanceof EObject) {
+ EObject eObj = (EObject) type;
+ if (eObj.eClass() == EcorePackage.eINSTANCE.getEReference()) return true;
+ }
+ return super.isFactoryForType(type);
+ }
+
+ public Adapter adapt(Notifier target, Object type)
+ {
+ for (Iterator adapters = target.eAdapters().iterator(); adapters.hasNext();)
+ {
+ Adapter adapter = (Adapter) adapters.next();
+ if (adapter.isAdapterForType(type) && adapter instanceof TargetAdapter)
+ {
+ return adapter;
+ }
+ }
+ return adaptNew(target, type);
+ }
+ }
+
+ private abstract static class TargetAdapter extends AdapterImpl {
+ protected EReference reference;
+ /**
+ * @param reference The reference to set.
+ */
+ public void setReference(EReference reference) {
+ this.reference = reference;
+ }
+ /**
+ * @return Returns the reference.
+ */
+ protected EReference getReference() {
+ return reference;
+ }
+
+ protected abstract Object getSource();
+
+ protected abstract void setSource(Object source);
+
+ protected abstract void unsetSource(Object source);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected TargetAdapter() {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.emf.common.notify.Adapter#isAdapterForType(java.lang.Object)
+ */
+ public boolean isAdapterForType(Object type) {
+ return type == reference;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.emf.common.notify.Adapter#notifyChanged(org.eclipse.emf.common.notify.Notification)
+ */
+ public void notifyChanged(Notification notification) {
+ // Do nothing - this adapter is only used to extend the
+ // adaptee. It is not used as a listener.
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.emf.common.notify.Adapter#setTarget(org.eclipse.emf.common.notify.Notifier)
+ */
+ } //TargetAdapter
+
+ private static class TargetWithSingleSourceAdapter extends TargetAdapter {
+ private EObject source=null;
+ /* (non-Javadoc)
+ * @see com.ibm.db.models.db2.luw.TableAdapter#setRemoteTable(com.ibm.db.models.db2.luw.RelationalRemoteDataSet)
+ */
+ protected void setSource(Object newSource) {
+ // For SINGLE inverse cardinality, if there is already a source object
+ // for this relationship, we need to modify the old source object to remove the
+ // pointer to target
+ EObject oldSource = (EObject) getSource();
+ if (oldSource!=null && oldSource!=newSource)
+ {
+ if (reference.isMany())
+ {
+ EList oldTargetList = (EList) oldSource.eGet(reference);
+ oldTargetList.remove(target);
+ }
+ else
+ {
+ oldSource.eUnset(reference);
+ }
+ }
+ this.source = (EObject)newSource;
+
+ }
+
+ protected void unsetSource(Object oldSource)
+ {
+ source=null;
+ }
+ /**
+ * @return Returns the source.
+ */
+ protected Object getSource() {
+ return source;
+ }
+
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public TargetWithSingleSourceAdapter() {
+ super();
+ }
+ } //TargetWithSingleSourceAdapter
+
+ private static class TargetWithMultipleSourceAdapter extends TargetAdapter {
+ private EList sourceList=null;
+ private EList getSourceList()
+ {
+ if (sourceList==null)
+ {
+ sourceList=new BasicEList();
+ }
+ return sourceList;
+ }
+ /**
+ * @return Returns the source.
+ */
+ public Object getSource() {
+ EList list = getSourceList();
+ return new UnmodifiableEList(list.size(),list.toArray());
+ }
+
+ protected void setSource(Object newSource)
+ {
+ EList newSourceList = (EList)getSourceList();
+ newSourceList.add(newSource);
+ }
+
+ protected void unsetSource(Object oldSource)
+ {
+ getSourceList().remove(oldSource);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public TargetWithMultipleSourceAdapter() {
+ super();
+ }
+ } //TargetWithMultipleSourceAdapter
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/util/DB2Version.java b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/util/DB2Version.java
new file mode 100644
index 0000000..b3229a4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm.db2/src/org/eclipse/datatools/enablement/ibm/db2/util/DB2Version.java
@@ -0,0 +1,295 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.db2.util;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.enablement.ibm.util.ConnectionProfileUtility;
+import org.eclipse.datatools.enablement.ibm.util.DBVersion;
+
+/**
+ * Abstracts a DB2 version consisting of a product name and three integers: version,
+ * release, and mod level. It supports comparisons between versions, as
+ * well as comparisons against precisely specified version, release, and/or
+ * mod levels.
+ * <p>
+ * This class also provides a shared set of unique DB2Version instances,
+ * which you may construct and access using the getSharedInstance methods,
+ * instead of using the constructors directly.
+ * Additional methods could be added for contributing a sharable instance
+ * and for removing them when they are not needed.
+ */
+public class DB2Version extends DBVersion
+{
+ /** Shared instance of the default version. */
+ protected static DB2Version sharedDefault;
+ /** Reusable DB2Version instances. */
+ protected static ArrayList<DB2Version> sharedInstances = new ArrayList<DB2Version>();
+
+ /**
+ * Gets a shared DB2Version, and creates one if it doesn't already exist.
+ * @param product The product name.
+ * @param version The version.
+ * @param release The release
+ * @param mod The modification level.
+ * @return A shared DB2Version.
+ */
+ public static DB2Version getSharedInstance(String product, int version, int release, int mod)
+ {
+ if (product == null)
+ product = WORKSTATION;
+ DB2Version db2version = findSharedInstance(product, version, release, mod);
+ if (db2version == null) // Didn't find one; create one:
+ {
+ db2version = new DB2Version(product, version, release, mod);
+ sharedInstances.add(db2version);
+ }
+ return db2version;
+ }
+
+ /**
+ * Gets a shared DB2Version, and creates one if it doesn't already exist.
+ * @param product The product name.
+ * @param productVersion The version string (with version, release, and possibly modification)
+ * @return A shared DB2Version.
+ */
+ public static DB2Version getSharedInstance(String product, String productVersion)
+ {
+ int[] v = getVersionArray(productVersion);
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+
+ /**
+ * Gets a shared DB2Version, and creates one if it doesn't already exist.
+ * @param profile IConnectionProfile
+ * @return A shared DB2Version.
+ */
+ public static DB2Version getSharedInstance(IConnectionProfile profile)
+ {
+ if (profile == null)
+ return getDefault();
+ ConnectionInfo conInfo = ConnectionProfileUtility.getConnectionInfo(profile, false);
+ if (conInfo != null)
+ return getSharedInstance(conInfo);
+ DatabaseDefinition dbDef = ConnectionProfileUtility.getDatabaseDefinition(profile);
+ return getSharedInstance(dbDef);
+ }
+
+ /**
+ * Gets a shared DB2Version, and creates one if it doesn't already exist.
+ * @param myConnection An RLDBConnection.
+ * @return A shared DB2Version.
+ */
+ public static DB2Version getSharedInstance(ConnectionInfo myConnection)
+ {
+ if (myConnection == null)
+ return getDefault();
+
+ /* obtain version from the connection info
+ * or when not set, from the DatabaseDefinition
+ */
+ DatabaseDefinition dbDef = myConnection.getDatabaseDefinition();
+ String productVersion = myConnection.getDatabaseProductVersion();
+ if (productVersion == null)
+ {
+ Connection con = myConnection.getSharedConnection();
+ if (con != null)
+ {
+ try
+ {
+ DatabaseMetaData dbmd = con.getMetaData();
+ productVersion = dbmd.getDatabaseProductVersion();
+ }
+ catch (SQLException sqle)
+ {
+ productVersion = null;
+ }
+ }
+ }
+ if(isSybase(dbDef)){
+ productVersion = dbDef.getVersion();
+ } else if (isIMS(dbDef)){
+ productVersion = dbDef.getVersion();
+ }
+ boolean isOracleDatabase = dbDef.getProduct().equalsIgnoreCase(ORACLE) ? true : false;
+ if (productVersion == null || isOracleDatabase)
+ {
+ productVersion = dbDef.getVersion();
+ }
+ String product = dbDef.getProduct();
+
+ if (productVersion!= null && productVersion.length() > 0) {
+ int[] v = getVersionArray(productVersion);
+ if (v== null)
+ v = new int []{0,0,0};
+ else if(isIDS(dbDef)) {
+ //only the first digit in the IDS release represents the real release number
+ //for example 11.70 represent version 11 release 7. This change is
+ //made to be consistent with informix database definition
+ if(v[1]>=10)
+ v[1]=v[1]/10;
+ }
+
+
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+ else {
+ int[] v = getVersionArray(myConnection.getDatabaseDefinition().getVersion());
+ if (v== null)
+ v = new int []{0,0,0};
+
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+ }
+
+ /**
+ * Gets a shared DB2Version, and creates one if it doesn't already exist.
+ * @param dbDef A database definition.
+ * @return A shared DB2Version.
+ */
+ public static DB2Version getSharedInstance(DatabaseDefinition dbDef)
+ {
+ if (dbDef == null)
+ return getDefault();
+
+ /* obtain version from the connection info
+ * or when not set, from the DatabaseDefinition
+ */
+ String version = dbDef.getVersion();
+ String product = dbDef.getProduct();
+
+ int[] v = getVersionArray(version);
+ if (v == null)
+ v = new int []{0,0,0};
+
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+
+ /**
+ * Gets a shared DB2Version, and creates one if it doesn't already exist.
+ * @param connection A Connection.
+ * @return A shared DB2Version.
+ */
+ public static DB2Version getSharedInstance(Connection connection)
+ {
+ String versionString = null;
+ String product;
+ try
+ {
+ product = connection.getMetaData().getDatabaseProductName();
+ versionString = connection.getMetaData().getDatabaseProductVersion();
+ }
+ catch (SQLException sqle)
+ {
+ product = WORKSTATION;
+ versionString = "8.2.0"; //$NON-NLS-1$
+ }
+ int[] v = getVersionArray(versionString);
+ if (v== null)
+ v = new int []{0,0,0};
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+
+ public DB2Version(Connection connection)
+ {
+ super(connection);
+ }
+
+ public DB2Version(String product, String versionString)
+ {
+ super(product, versionString);
+ }
+
+ public DB2Version(String versionString)
+ {
+ super(versionString);
+ }
+
+ public DB2Version(int version, int release, int mod)
+ {
+ super(version, release, mod);
+ }
+
+ public DB2Version(String prod, int version, int release, int mod)
+ {
+ super(prod, version, release, mod);
+ }
+
+ public DB2Version(DB2Version copyme)
+ {
+ super(copyme);
+ }
+
+ public DB2Version(IConnectionProfile profile)
+ {
+ super(profile);
+ }
+
+ public DB2Version(ConnectionInfo conInfo)
+ {
+ super(conInfo);
+ }
+
+ /**
+ * Gets a shared instance for a DatabaseDefinition.
+ * <p>
+ * @param The shared instance.
+ */
+ public DB2Version(DatabaseDefinition dbDef)
+ {
+ super(dbDef);
+ }
+
+ /**
+ * Gets the default shared instance, which is a new DB2Version(WORKSTATION,8,2,0).
+ * <p>
+ * @param The default shared instance of DB2Version.
+ */
+ public static DB2Version getDefault()
+ {
+ if (sharedDefault == null)
+ sharedDefault = new DB2Version(WORKSTATION,8,2,0);
+ return sharedDefault;
+ }
+
+ /**
+ * Gets a shared DB2Version, and returns null if it doesn't exist.
+ * @param product The product name.
+ * @param version The version.
+ * @param release The release
+ * @param mod The modification level.
+ * @return A shared DB2Version.
+ */
+ protected static DB2Version findSharedInstance(String product, int version, int release, int mod)
+ {
+ Iterator<DB2Version> i = sharedInstances.iterator();
+ DB2Version db2version;
+ while (i.hasNext())
+ {
+ db2version = i.next();
+ if (product.equals(db2version.getProduct())
+ && version == db2version.getVersion()
+ && release == db2version.getRelease()
+ && mod == db2version.getMod())
+ return db2version;
+ }
+ // Didn't find one; return null:
+ return null;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/.classpath b/plugins/org.eclipse.datatools.enablement.ibm/.classpath
new file mode 100644
index 0000000..1fa3e68
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/.project b/plugins/org.eclipse.datatools.enablement.ibm/.project
new file mode 100644
index 0000000..138fb07
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.datatools.enablement.ibm</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/META-INF/MANIFEST.MF b/plugins/org.eclipse.datatools.enablement.ibm/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..64f4422
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.datatools.enablement.ibm;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.datatools.enablement.ibm.IBMPluginActivator
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.datatools.connectivity;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.connectivity.sqm.core;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.modelbase.sql;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.modelbase.sql.query;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.datatools.sqltools.parsers.sql;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.datatools.sqltools.parsers.sql.query;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecore.change;bundle-version="[2.7.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)"
+Export-Package: org.eclipse.datatools.enablement.ibm,
+ org.eclipse.datatools.enablement.ibm.catalog,
+ org.eclipse.datatools.enablement.ibm.catalog.util,
+ org.eclipse.datatools.enablement.ibm.ddl,
+ org.eclipse.datatools.enablement.ibm.util
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/about.html b/plugins/org.eclipse.datatools.enablement.ibm/about.html
new file mode 100644
index 0000000..d0a7cc2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 15, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/build.properties b/plugins/org.eclipse.datatools.enablement.ibm/build.properties
new file mode 100644
index 0000000..cdd2db7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/plugin.properties b/plugins/org.eclipse.datatools.enablement.ibm/plugin.properties
new file mode 100644
index 0000000..8958050
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2014 IBM Corporation and others.
+# 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:
+# IBM Corporation - initial API and implementation
+###############################################################################
+pluginName=Eclipse Data Tools Platform IBM Plug-in
+providerName=Eclipse Data Tools Platform
\ No newline at end of file
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/IBMPluginActivator.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/IBMPluginActivator.java
new file mode 100644
index 0000000..005afce
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/IBMPluginActivator.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentService;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinitionRegistry;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+
+public class IBMPluginActivator extends Plugin {
+
+ private static IBMPluginActivator instance;
+ public static final String PLUGIN_ID = "org.eclipse.datatools.enablement.ibm"; //$NON-NLS-1$
+
+ public static final String PRIVILEGE_PROPERTY = "PRIVILEGE_PROPERTY"; //$NON-NLS-1$
+ public static final String PRIVILEGE_SYSTEM_GRANT = "PRIVILEGE_SYSTEM_GRANT"; //$NON-NLS-1$
+
+ public static IBMPluginActivator getInstance() { return instance; }
+
+ public IBMPluginActivator() {
+ super();
+ instance = this;
+ }
+
+ public DatabaseDefinitionRegistry getDatabaseDefinitionRegistry()
+ {
+ return RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry();
+ }
+
+ public ContainmentService getContainmentService()
+ {
+ return RDBCorePlugin.getDefault().getContainmentService();
+ }
+
+ public static void log( Throwable e )
+ {
+ getInstance().getLog().log( (e instanceof CoreException)
+ ? ((CoreException)e).getStatus()
+ : new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, e.getMessage(), e ) );
+ }
+
+ /**
+ * Method writeLog.
+ * @param severity - the severity; one of IStatus.OK, IStatus.ERROR, IStatus.INFO, or IStatus.WARNING
+ * @param code - the plug-in-specific status code, or OK
+ * @param message - a human-readable message, localized to the current locale
+ * @param exception a low-level exception, or null if not applicable
+ */
+ public void writeLog(int severity, int code, String message, Throwable exception) {
+ if (message == null)
+ message = ""; //$NON-NLS-1$
+
+ getLog().log(
+ new Status(severity, getBundle().getSymbolicName(), code, message, exception));
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/ICatalogAuthorizationIdentifier.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/ICatalogAuthorizationIdentifier.java
new file mode 100644
index 0000000..8c2c9e4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/ICatalogAuthorizationIdentifier.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.catalog;
+
+import org.eclipse.emf.common.util.EList;
+
+public interface ICatalogAuthorizationIdentifier {
+ public EList getCatalogReceivedPrivileges();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/IDatabaseObject.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/IDatabaseObject.java
new file mode 100644
index 0000000..afa426f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/IDatabaseObject.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.catalog;
+
+import java.util.Collection;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+
+public interface IDatabaseObject {
+ public final int IMPACTS = 0;
+ public final int STATISTICS = 1;
+
+ public ICatalogObject[] getImpacted();
+ public Collection getStatistics();
+ public void refresh(int refreshType);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogLoadUtil.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogLoadUtil.java
new file mode 100644
index 0000000..3b293c7
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogLoadUtil.java
@@ -0,0 +1,453 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.catalog.util;
+
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.PrintWriter;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.text.MessageFormat;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentService;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DataModelElementFactory;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class CatalogLoadUtil
+{
+ public static final String EMPTY = ""; //$NON-NLS-1$
+
+ private static final String CONTEXT_GET_USERNAME = "getUserName"; //$NON-NLS-1$
+
+ public static void load(EObject obj, IProgressMonitor monitor, int task)
+ {
+ loadInternal(obj, monitor, task, true);
+
+ Iterator it = obj.eClass().getEAllStructuralFeatures().iterator();
+ while(it.hasNext() ) {
+ EStructuralFeature feature = (EStructuralFeature) it.next();
+
+ if (isRequired(feature))
+ obj.eGet(feature);
+ }
+ }
+
+ public static void loadWithoutAttributes(EObject obj, IProgressMonitor monitor, int task)
+ {
+ loadInternal(obj, monitor, task, false);
+
+ Iterator it = obj.eClass().getEAllReferences().iterator();
+ while(it.hasNext() && !monitor.isCanceled()) {
+ EStructuralFeature feature = (EStructuralFeature) it.next();
+
+ if(isRequired(feature))
+ obj.eGet(feature);
+ }
+ }
+
+ public static double loadInternal( EObject object, IProgressMonitor monitor, double task, boolean includingAttributes)
+ {
+ ContainmentService containmentService = RDBCorePlugin.getDefault().getContainmentService();
+ Collection c = containmentService.getContainedElements(object);
+ Connection connection = object instanceof ICatalogObject ? ((ICatalogObject)object).getConnection() : null;
+
+ double acc = 0;
+
+ if(c.size() != 0) {
+ double delta = task/c.size();
+
+ Iterator it = c.iterator();
+ while(it.hasNext() && !monitor.isCanceled()) {
+ EObject child = (EObject) it.next();
+
+ if(containmentService.isDisplayableElement(child)) {
+ if(child instanceof ENamedElement) {
+ String name = ((ENamedElement) child).getName();
+
+ if(name != null) {
+// String type = IDataToolsUIServiceManager.INSTANCE.getLabelService(child).getDisplayType();
+ String type = child.eClass().getName();
+ name = "<" + type + "> " + name; //$NON-NLS-1$//$NON-NLS-2$
+//bgp monitor.subTask(Messages.LOADING_SUBTASK + " " + name); //$NON-NLS-1$
+ }
+ }
+ }
+
+ acc += loadInternal(child, monitor, delta, includingAttributes);
+
+/*
+ try
+ {
+ if (monitor.isCanceled() || connection != null && connection.isClosed())
+ {
+ monitor.setCanceled(true);
+ return 0.0;
+ }
+ }
+ catch (SQLException e)
+ {
+ return 0.0;
+ }
+ if(acc >= 1.0) {
+ monitor.worked((int) acc);
+ acc = acc - (int) acc;
+ }
+*/
+ }
+ }
+ else {
+ acc = task;
+ }
+
+ if ( includingAttributes ) {
+ Iterator it = object.eClass().getEAllStructuralFeatures().iterator();
+ while ( it.hasNext()) {
+ EStructuralFeature feature = (EStructuralFeature) it.next();
+
+ if(isRequired(feature))
+ object.eGet(feature);
+ }
+ }
+ else {
+ Iterator it = object.eClass().getEAllReferences().iterator();
+ while ( it.hasNext()) {
+ EStructuralFeature feature = (EStructuralFeature) it.next();
+
+ if(isRequired(feature))
+ object.eGet(feature);
+ }
+ }
+ return acc;
+ }
+
+ public static void generateImplicitPK(Database database)
+ {
+ for (Iterator iterS = database.getSchemas().iterator();iterS.hasNext();){
+ Schema schema = (Schema) iterS.next();
+
+ for (Iterator iterT = schema.getTables().iterator();iterT.hasNext();) {
+ Table table = (Table) iterT.next();
+
+ if (table instanceof BaseTable) {
+ generateImplicitPK((BaseTable)table);
+ }
+ }
+ }
+ }
+
+ private static boolean isRequired(EStructuralFeature feature) {
+ //Hard-coded Exceptions
+ //Nickname ---> RemoteDataSet
+ if ( feature.getEContainingClass().getName().equals("LUWNickname")) { //$NON-NLS-1$
+ if ( feature.getName().equals("remoteDataSet")) //$NON-NLS-1$
+ return false;
+ }
+
+ if (feature.isDerived() || feature.isTransient())
+ return false;
+
+ return true;
+ }
+
+ private static void generateImplicitPK(BaseTable table){
+ PrimaryKey pk = table.getPrimaryKey();
+ if ( pk != null)
+ return;
+
+ Iterator iter = table.getIndex().iterator();
+ while ( iter.hasNext()) {
+ Index index = (Index) iter.next();
+
+ if (index.isUnique()) {
+ generateImplictPK(table,index);
+
+ break;
+ }
+ }
+ }
+
+ private static void generateImplictPK(BaseTable table,Index index){
+ Schema schema = table.getSchema();
+ Database database = ModelHelper.getDatabase(schema);
+ DatabaseDefinition databaseDefinition = IBMPluginActivator.getInstance().getDatabaseDefinitionRegistry().getDefinition(database);
+ DataModelElementFactory factory = databaseDefinition.getDataModelElementFactory();
+
+ PrimaryKey pk = (PrimaryKey)factory.create(SQLConstraintsPackage.eINSTANCE.getPrimaryKey());
+ pk.setEnforced(false);
+
+ EList pkMember = pk.getMembers();
+ for ( Iterator iter = index.getMembers().iterator(); iter.hasNext();){
+ Column column = ((IndexMember) iter.next()).getColumn();
+ if ( column == null) {
+ return;
+ }
+ pkMember.add(column);
+ }
+
+//bgp String name = ImplicitRelationshipHandler.INSTANCE.createUniqueConstraintName(table.getConstraints(), PreferenceUtil.getExpandedPKString(table));
+//bgp pk.setName(name);
+
+ table.getConstraints().add(pk);
+ }
+
+ public static String getFilterString(String predicate, String parameter){
+ String filter = EMPTY;
+ String pattern = "\\{"; //$NON-NLS-1$
+
+ int occurrences = predicate.length() - predicate.toLowerCase().replaceAll(pattern.toLowerCase(), EMPTY).length();
+
+ if (occurrences > 0) {
+ Object[] params = new Object[ occurrences ];
+
+ for (int i = 0; i<params.length; i++) {
+ params[i] = parameter;
+ }
+
+ filter = MessageFormat.format( predicate.replaceAll( "'", "''" ), params); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else {
+ filter = parameter + " " + predicate; //$NON-NLS-1$
+ }
+
+ return "(" + filter + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static String parsePredicateFromReqList( //
+ String reqList, String schemaCol, String nameCol, //
+ @SuppressWarnings ("unused") String filterVal)
+ {
+ // Create a set of required objects from the various lists, remove duplicates
+ Map<String,Set<String>> objectMap = new HashMap<String,Set<String>>();
+
+ StringTokenizer listTokenizer = new StringTokenizer(reqList, "||"); //$NON-NLS-1$
+
+ while (listTokenizer.hasMoreTokens()) {
+ String fromList = listTokenizer.nextToken();
+
+ fromList = removeTag(fromList);
+
+ StringTokenizer objTokenizer = new StringTokenizer(fromList, ","); //$NON-NLS-1$
+
+ while (objTokenizer.hasMoreTokens()) {
+ addObjectToMap(objTokenizer.nextToken(), objectMap);
+ }
+ }
+
+ // Return early if no objects are required
+ if (objectMap.size() == 0) {
+ return EMPTY;
+ }
+
+ // Format set of objects into an IN-list predicate
+ StringBuilder predicate = new StringBuilder();
+ Set<String> schemas = objectMap.keySet();
+
+ for (String schema : schemas) {
+ predicate.append( "(" ); //$NON-NLS-1$
+ predicate.append( schemaCol + "='" + schema + "' AND " + nameCol + " IN (" ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ for (String name : objectMap.get(schema)) {
+ predicate.append( "'" + name + "'," ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ predicate.setLength(predicate.length()-1); // Remove trailing comma
+ predicate.append(")) OR "); //$NON-NLS-1$
+ }
+
+ if (predicate.length() == 0) {
+ return EMPTY;
+ }
+
+ predicate.setLength(predicate.length()-4); // Remove trailing comma
+
+ return predicate.toString();
+ }
+
+ private static void addObjectToMap(String obj, Map<String,Set<String>> objectMap) {
+ String[] elms = obj.split("\\."); //$NON-NLS-1$
+ if (elms.length != 2) {
+ return;
+ }
+
+ String schema = elms[0];
+ String name = elms[1];
+
+ Set<String> objectSet = objectMap.get(schema);
+
+ if (objectSet == null) {
+ objectSet = new HashSet<String>();
+ objectMap.put(schema, objectSet);
+ }
+
+ objectSet.add(name);
+ }
+
+ private static String removeTag(String fromList) {
+ return fromList.substring( fromList.indexOf( ']' ) + 1 );
+ }
+
+ public static void safeClose( ResultSet rs )
+ {
+ try
+ {
+ if ( rs != null )
+ {
+ rs.close();
+ }
+ }
+ catch (SQLException e)
+ {
+ // eat it
+ }
+ }
+
+ public static void safeClose( Statement stmt, ResultSet rs )
+ {
+ safeClose( rs );
+
+ try
+ {
+ if ( stmt != null )
+ {
+ stmt.close();
+ }
+ }
+ catch (SQLException e)
+ {
+ // eat it
+ }
+ }
+
+//<bgp /**
+// * Gets the user name in the connection or from CURRENT USER if the
+// * connection user name is null.
+// */
+// public static String getUserName( Connection connection, Database database )
+// {
+// String userName = null;
+//
+// try
+// {
+// if ( connection != null && connection.getMetaData() != null )
+// {
+// userName = connection.getMetaData().getUserName();
+// }
+// }
+// catch (Exception e)
+// {
+// userName = null;
+//
+// DB2PluginActivator.log( e );
+// }
+//
+// if ( userName == null || userName.trim().length() == 0 )
+// {
+// try
+// {
+// String query = "select CURRENT USER as USERNAME from sysibm.sysdummy1"; //$NON-NLS-1$
+//
+// ResultSet r = new PersistentResultSet( database, CONTEXT_GET_USERNAME, connection, query );
+//
+// try
+// {
+// if ( r.next() )
+// {
+// userName = r.getString( "USERNAME" ); //$NON-NLS-1$
+// }
+// }
+// catch (Exception e)
+// {
+// // Eat it
+// }
+// finally
+// {
+// safeClose( r );
+// }
+// }
+// catch (Exception e)
+// {
+// DB2PluginActivator.log( e );
+// }
+// }
+//
+// return userName;
+//bgp> }
+
+ public static String safeGetString( ResultSet r, String name ) //
+ throws SQLException
+ {
+ String s = r.getString( name );
+
+ return (s != null)
+ ? s
+ : EMPTY;
+ }
+
+ public static String safeGetTrimmedString( ResultSet r, String name ) //
+ throws SQLException
+ {
+ String s = r.getString( name );
+
+ return (s != null)
+ ? s.trim()
+ : EMPTY;
+ }
+
+ public static void safeClose( LineNumberReader lnr )
+ {
+ if ( lnr != null )
+ {
+ try
+ {
+ lnr.close();
+ }
+ catch (IOException e)
+ {
+ // eat it
+ }
+ }
+ }
+
+ public static void safeClose( PrintWriter pw )
+ {
+ if ( pw != null )
+ {
+ pw.close();
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogObjectEvent.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogObjectEvent.java
new file mode 100644
index 0000000..084793a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogObjectEvent.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.catalog.util;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+
+public class CatalogObjectEvent
+{
+ public ICatalogObject element;
+ public EVENT_TYPE type;
+
+ public enum EVENT_TYPE {
+ ELEMENT_REFRESH, ELEMENT_REUSE
+ }
+
+ public CatalogObjectEvent(ICatalogObject element, EVENT_TYPE type)
+ {
+ this.element = element;
+ this.type = type;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogStatistics.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogStatistics.java
new file mode 100644
index 0000000..c8b4791
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/CatalogStatistics.java
@@ -0,0 +1,260 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.catalog.util;
+
+import java.math.BigInteger;
+import java.sql.Timestamp;
+import java.util.Collection;
+
+public class CatalogStatistics {
+
+ public static final byte BOOLEAN_TYPE = 0;
+ public static final byte INTEGER_TYPE = 1;
+ public static final byte STRING_TYPE = 2;
+ public static final byte FLOAT_TYPE = 3;
+ public static final byte BIGINT_TYPE = 4;
+ public static final byte TIMESTAMP_TYPE = 5;
+ public static final byte COLLECTION_TYPE = 6;
+
+
+ public CatalogStatistics(String id,String name, String description, boolean initialValue, String syscatalog) {
+ this.init(id,name,description,initialValue,syscatalog);
+ }
+
+ public CatalogStatistics(String id,String name, String description, String initialValue,String syscatalog) {
+ this.init(id,name,description,initialValue,syscatalog);
+ }
+
+ public CatalogStatistics(String id,String name, String description, int initialValue,String syscatalog) {
+ this.init(id,name,description,initialValue,syscatalog);
+ }
+
+ public CatalogStatistics(String id,String name, String description, float initialValue,String syscatalog) {
+ this.init(id,name,description,initialValue,syscatalog);
+ }
+
+ public CatalogStatistics(String id,String name, String description, BigInteger initialValue,String syscatalog) {
+ this.init(id,name,description,initialValue,syscatalog);
+ }
+
+ public CatalogStatistics(String id,String name, String description, Timestamp initialValue,String syscatalog) {
+ this.init(id,name,description,initialValue,syscatalog);
+ }
+
+ public CatalogStatistics(String id,String name, String description, Collection initialValue,String syscatalog) {
+ this.init(id,name,description,initialValue,syscatalog);
+ }
+
+ public String getId(){
+ return this.id;
+ }
+ public String getName() {
+ return this.name;
+ }
+
+ public String getDescription() {
+ return this.desc;
+ }
+
+ public String getSyscatalog() {
+ return this.syscatalog;
+ }
+
+ public byte getType() {
+ return this.type;
+ }
+
+ public boolean getBoolean() {
+ if(this.type != CatalogStatistics.BOOLEAN_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ return this.booleanValue;
+ }
+
+ public void setBoolean(boolean value) {
+ if(this.type != CatalogStatistics.BOOLEAN_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ this.booleanValue = value;
+ }
+
+ public int getInt() {
+ if(this.type != CatalogStatistics.INTEGER_TYPE)throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ return this.intValue;
+
+ }
+
+ public void setInt(int value) {
+ if(this.type != CatalogStatistics.INTEGER_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ this.intValue = value;
+ }
+
+ public String getString() {
+ if(this.type != CatalogStatistics.STRING_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ return this.stringValue;
+ }
+
+ public void setString(String value) {
+ if(this.type != CatalogStatistics.STRING_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ this.stringValue = value;
+ }
+
+ public float getFloat() {
+ if(this.type != CatalogStatistics.FLOAT_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ return this.floatValue;
+ }
+
+ public void setFloat(float value) {
+ if(this.type != CatalogStatistics.FLOAT_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ this.floatValue = value;
+ }
+
+ public BigInteger getBiginteger() {
+ if(this.type != CatalogStatistics.BIGINT_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ return this.bigIntegerValue;
+ }
+
+ public void setBigInteger(BigInteger value) {
+ if(this.type != CatalogStatistics.BIGINT_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ this.bigIntegerValue = value;
+ }
+
+ public Timestamp getTimestamp() {
+ if(this.type != CatalogStatistics.TIMESTAMP_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ return this.timestampValue;
+ }
+
+ public void setTimestampr(Timestamp value) {
+ if(this.type != CatalogStatistics.TIMESTAMP_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ this.timestampValue = value;
+ }
+
+ public Collection getCollection() {
+ if(this.type != CatalogStatistics.COLLECTION_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ return this.collectionValue;
+ }
+
+ public void setComplex(Collection value) {
+ if(this.type != CatalogStatistics.COLLECTION_TYPE) throw new RuntimeException("Invalid Call"); //$NON-NLS-1$
+ this.collectionValue = value;
+ }
+
+
+ private void init(String id,String name, String description, boolean initialValue,String syscatalog) {
+ this.type = CatalogStatistics.BOOLEAN_TYPE;
+ this.id = id;
+ this.name = name;
+ this.desc = description;
+ this.syscatalog = syscatalog;
+ this.booleanValue = initialValue;
+ }
+
+ public void init (String id,String name, String description, String initialValue,String syscatalog) {
+ this.type = CatalogStatistics.STRING_TYPE;
+ this.id = id;
+ this.name = name;
+ this.desc = description;
+ this.syscatalog = syscatalog;
+ this.stringValue = initialValue;
+ }
+
+ public void init (String id,String name, String description, int initialValue,String syscatalog) {
+ this.type = CatalogStatistics.INTEGER_TYPE;
+ this.id = id;
+ this.name = name;
+ this.desc = description;
+ this.syscatalog = syscatalog;
+ this.intValue = initialValue;
+ }
+
+ public void init (String id,String name, String description, float initialValue,String syscatalog) {
+ this.type = CatalogStatistics.FLOAT_TYPE;
+ this.id = id;
+ this.name = name;
+ this.desc = description;
+ this.syscatalog = syscatalog;
+ this.floatValue = initialValue;
+ }
+
+ public void init (String id,String name, String description, BigInteger initialValue,String syscatalog) {
+ this.type = CatalogStatistics.BIGINT_TYPE;
+ this.id = id;
+ this.name = name;
+ this.desc = description;
+ this.syscatalog = syscatalog;
+ this.bigIntegerValue = initialValue;
+ }
+
+ public void init (String id,String name, String description, Timestamp initialValue,String syscatalog) {
+ this.type = CatalogStatistics.TIMESTAMP_TYPE;
+ this.id = id;
+ this.name = name;
+ this.desc = description;
+ this.syscatalog = syscatalog;
+ this.timestampValue = initialValue;
+ }
+
+ public void init (String id,String name, String description, Collection initialValue,String syscatalog) {
+ this.type = CatalogStatistics.COLLECTION_TYPE;
+ this.id = id;
+ this.name = name;
+ this.desc = description;
+ this.syscatalog = syscatalog;
+ this.collectionValue = initialValue;
+ }
+
+ public String toString() {
+ switch (this.getType()) {
+ case CatalogStatistics.BOOLEAN_TYPE:
+ return Boolean.toString(this.booleanValue);
+ case CatalogStatistics.INTEGER_TYPE:
+ return Integer.toString(this.intValue);
+ case CatalogStatistics.STRING_TYPE:
+ return this.stringValue;
+ case CatalogStatistics.FLOAT_TYPE:
+ return Float.toString(this.floatValue);
+ case CatalogStatistics.TIMESTAMP_TYPE:
+ return this.timestampValue.toString();
+ case CatalogStatistics.BIGINT_TYPE:
+ return this.bigIntegerValue.toString();
+ }
+ return "";
+ }
+
+ public String getForBitData(){
+ return this.forBitData;
+ }
+
+ public void setForBitData(String fotBitData) {
+ this.forBitData = fotBitData;
+ }
+
+ public void setForBitDataFromNumeric()
+ {
+ this.forBitDataFromNumeric = true;
+ }
+
+ public boolean isForBitDataFromNumeric()
+ {
+ return this.forBitDataFromNumeric;
+ }
+
+ private String id;
+ private String name;
+ private String desc;
+ private String syscatalog;
+ private boolean booleanValue;
+ private int intValue;
+ private String stringValue;
+ private float floatValue;
+ private BigInteger bigIntegerValue;
+ private Timestamp timestampValue;
+ private Collection collectionValue;
+ private byte type;
+ private String forBitData;
+ private boolean forBitDataFromNumeric = false;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/ICatalogObjectEventListener.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/ICatalogObjectEventListener.java
new file mode 100644
index 0000000..d2ea2aa
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/ICatalogObjectEventListener.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.catalog.util;
+
+public interface ICatalogObjectEventListener
+{
+ /**
+ *
+ * @param event, encapsulates the object type and the event
+ * that triggered the notification
+ */
+ public void notifyChanged(CatalogObjectEvent event);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/ICatalogQuery.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/ICatalogQuery.java
new file mode 100644
index 0000000..e98c557
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/catalog/util/ICatalogQuery.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.catalog.util;
+
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.ecore.EObject;
+
+public interface ICatalogQuery
+{
+ public void setContext( String context );
+
+ /**
+ * TODO obsolete Generate a query string, using the configured on-demand
+ * option, filter columns and values.
+ *
+ * @param database
+ * Database to be queried
+ * @deprecated Use generateOnDemandQuery() or generateUpFrontQuery() instead
+ */
+ public String generateQuery( Database database );
+
+ /**
+ * Generate a query string, using the configured filter columns and values.
+ *
+ * @param database
+ * Database to be queried
+ * @return Query string to execute
+ */
+ public String generateOnDemandQuery( Database database );
+
+ /**
+ * @return Number of result items that may be used to filter query results
+ */
+ public int getFilterColumnCount();
+
+ /**
+ * @return Names of result items to be used to filter results
+ */
+ public String[] getFilterColumns();
+
+ /**
+ * @param filterValues
+ * Values to be used to filter results
+ */
+ public void setFilterValues( EObject eObject );
+
+ /**
+ * @return Values to be used to filter results
+ */
+ public String[] getFilterValues();
+
+ /**
+ * Generate a query to retrieve all data
+ *
+ * @param database
+ * Database to be queried
+ * @return Query string without filtering.
+ */
+ public String generateUpFrontQuery( Database database );
+
+ /**
+ * TODO likely obsolete - Generate a query to retrieve all data, with
+ * filters to exclude the subset of keys already loaded on-demand.
+ *
+ * @param database
+ * Database to be queried
+ * @param alreadyLoadedValues
+ * filter values to OMIT from the results
+ * @return String representation of query to execute
+ */
+ public String generateUpFrontQueryWithoutLoadedItems( //
+ Database database, String[] alreadyLoadedValues );
+
+ /**
+ * @return true if we are capable of generating SQL that actually filters
+ * the query results. (Some implementations may always run upfront)
+ */
+ public boolean canBeOnDemand();
+
+ /**
+ *
+ * @return true if we are configured to filter the query results. otherwise
+ * the upfront base query will be executed to return all data
+ */
+ public boolean useOnDemandQuery();
+
+ /**
+ *
+ * @param useOnDemandQuery
+ * true to filter the query results. otherwise the upfront base
+ * query will be executed to return all data
+ */
+ public void setUseOnDemandQuery( boolean useOnDemandQuery );
+
+ /**
+ * SQL query returning the filter keys in the order they will be returned by
+ * the main query.
+ *
+ * @return Query if one is available, null otherwise
+ */
+ public ICatalogQuery getOrderQuery();
+
+ /**
+ * Check whether the specified query has been issued already; a check to
+ * determine whether slice needs to be processed
+ */
+ public boolean isQueryProcessed( Database database );
+
+ /**
+ * An extra check to determined whether the given container Object is
+ * compatible with the query to be issued.
+ *
+ * For example, a Table may be expected and unexpected results may occur if
+ * the filter value is not a Table object.
+ *
+ * This may happen with a general feature that is applicable to a large set
+ * of objects.
+ *
+ * For example, SQLSchemaPackage.eINSTANCE.getSQLObject_Privileges (see
+ * LUWTablePrivileges)
+ *
+ * @param object
+ * Object to check
+ * @return true if compatible, false otherwise
+ */
+ public boolean isCompatibleWith( EObject object );
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CodeTemplateContextPattern.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CodeTemplateContextPattern.java
new file mode 100644
index 0000000..0b18eba
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CodeTemplateContextPattern.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+public class CodeTemplateContextPattern {
+
+ private String name;
+ private String createProlog;
+ private String createPostlog;
+ private String dropProlog;
+ private String dropPostlog;
+ private int appliedType = 0;
+
+ public String getName(){
+ return this.name;
+ }
+
+ public void setName (String name) {
+ this.name = name;
+ }
+
+ public int getAppliedType(){
+ return this.appliedType;
+ }
+
+ public void setAppliedType(int type){
+ this.appliedType = this.appliedType | type;
+ }
+
+ public void setCreateProlog(String prolog){
+ this.createProlog = prolog;
+ }
+
+ public String getCreateProlog(){
+ return this.createProlog;
+ }
+
+ public void setCreatePostlog(String postlog){
+ this.createPostlog = postlog;
+ }
+
+ public String getCreatePostlog(){
+ return this.createPostlog;
+ }
+
+ public void setDropProlog(String prolog){
+ this.dropProlog = prolog;
+ }
+
+ public String getDropProlog(){
+ return this.dropProlog;
+ }
+
+ public void setDropPostlog(String postlog){
+ this.dropPostlog = postlog;
+ }
+
+ public String getDropPostlog(){
+ return this.dropPostlog;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDdlGenerator.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDdlGenerator.java
new file mode 100644
index 0000000..4aecdb8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDdlGenerator.java
@@ -0,0 +1,243 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Set;
+import java.util.Vector;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.datatools.connectivity.sqm.core.rte.DDLGenerator;
+import org.eclipse.datatools.connectivity.sqm.core.rte.EngineeringOption;
+import org.eclipse.datatools.connectivity.sqm.core.rte.IEngineeringCallBack;
+import org.eclipse.datatools.enablement.ibm.catalog.ICatalogAuthorizationIdentifier;
+import org.eclipse.datatools.enablement.ibm.util.DependencyImpactAnalyst;
+import org.eclipse.datatools.enablement.ibm.util.DependencyImpactDescription;
+import org.eclipse.datatools.enablement.ibm.util.EngineeringOptionID;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.ecore.EObject;
+
+public abstract class CoreDdlGenerator implements DDLGenerator {
+
+ protected Set<SQLObject> suppressCreateElementSet = null;
+
+ /**
+ * @deprecated
+ */
+ public String[] generateDDL(SQLObject[] elements, IProgressMonitor progressMonitor){
+ accessControlInitialize(elements,progressMonitor);
+ return this.generateDDL(elements, progressMonitor, null);
+ }
+ /**
+ * @deprecated
+ */
+ public String[] createSQLObjects(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor){
+ return this.createSQLObjects(elements, quoteIdentifiers, qualifyNames, progressMonitor,null);
+ }
+ /**
+ * @deprecated
+ */
+ public String[] dropSQLObjects(SQLObject[] elements, boolean quoteIdentifiers, boolean qualifyNames, IProgressMonitor progressMonitor){
+ return this.dropSQLObjects(elements, quoteIdentifiers, qualifyNames, progressMonitor,null);
+ }
+
+
+ public String[] generateDDL(SQLObject[] elements, SQLObject[] impacts, IProgressMonitor progressMonitor,IEngineeringCallBack callback){
+ accessControlInitialize(elements,progressMonitor);
+ Vector v = new Vector(Arrays.asList(elements));
+ Vector v_impacts = new Vector(Arrays.asList(impacts));
+ for (int i = 0; i < v_impacts.size(); i++){
+ SQLObject impact = (SQLObject) v_impacts.elementAt(i);
+ if (v.contains(impact)) continue;
+ this.calculateDependency(v, v_impacts, impact);
+ }
+
+ SQLObject[] allElements = new SQLObject[v.size()];
+ v.copyInto(allElements);
+
+ return this.generateDDL(allElements, progressMonitor,callback);
+ }
+
+ public String[] createSQLObjects(SQLObject[] elements, SQLObject[] impacts, IProgressMonitor progressMonitor,IEngineeringCallBack callback){
+ Vector v = new Vector(Arrays.asList(elements));
+ Vector v_impacts = new Vector(Arrays.asList(impacts));
+ for (int i = 0; i < v_impacts.size(); i++){
+ SQLObject impact = (SQLObject) v_impacts.elementAt(i);
+ if (v.contains(impact)) continue;
+ this.calculateDependency(v, v_impacts, impact);
+ }
+ SQLObject[] allElements = new SQLObject[v.size()];
+ v.copyInto(allElements);
+ EngineeringOption[] options = this.getOptions(allElements);
+ return this.createSQLObjects(allElements, EngineeringOptionID.generateQuotedIdentifiers(options), EngineeringOptionID.generateFullyQualifiedNames(options), progressMonitor,callback);
+
+ }
+ public String[] dropSQLObjects(SQLObject[] elements, SQLObject[] impacts, IProgressMonitor progressMonitor,IEngineeringCallBack callback){
+ Vector v = new Vector(Arrays.asList(elements));
+ Vector v_impacts = new Vector(Arrays.asList(impacts));
+ for (int i = 0; i < v_impacts.size(); i++){
+ SQLObject impact = (SQLObject) v_impacts.elementAt(i);
+ if (v.contains(impact)) continue;
+ this.calculateDependency(v, v_impacts, impact);
+ }
+ SQLObject[] allElements = new SQLObject[v.size()];
+ v.copyInto(allElements);
+ EngineeringOption[] options = this.getOptions(allElements);
+ return this.dropSQLObjects(allElements, EngineeringOptionID.generateQuotedIdentifiers(options), EngineeringOptionID.generateFullyQualifiedNames(options), progressMonitor,callback);
+ }
+
+ public String[] alterTableDropColumn(SQLObject[] columns, SQLObject[] impacts, IProgressMonitor progressMonitor,IEngineeringCallBack callback){
+ return null;
+ }
+
+ private void calculateDependency(Vector v,Vector impacts, SQLObject currentImpact){
+ Iterator iter = currentImpact.getDependencies().iterator();
+ while (iter.hasNext()) {
+ Dependency dependency = (Dependency) iter.next();
+ SQLObject targetEnd = (SQLObject) dependency.getTargetEnd();
+ if (impacts.contains(targetEnd)) {
+ this.calculateDependency(v, impacts,targetEnd);
+ }
+ }
+ v.add(currentImpact);
+ }
+
+ protected boolean checkModel(SQLObject[] sqlObjects, EngineeringOption[] options) {
+ boolean ret = true;
+ if (! EngineeringOptionID.checkModel(options)) return ret;
+
+ ModelValidationProvider provider = DdlGenerationUtility.getModelValidationProvider();
+ if (provider != null) {
+ ret = provider.checkModel(sqlObjects);
+ }
+ return ret;
+ }
+
+ protected EngineeringOption[] getSelectedOptions(SQLObject[] elements) {
+ // Default behavior is to load options again. Subclasses can cache options as necessary.
+ return this.getOptions(elements);
+ }
+
+ protected void accessControlInitialize(SQLObject[] elements,IProgressMonitor progressMonitor) {
+ EngineeringOption[] options = this.getSelectedOptions(elements);
+ for (int j=0;j<options.length;j++) {
+ if (options[j].getId().equals(EngineeringOptionID.GENERATE_PRIVILEGE)) {
+ if (options[j].getBoolean()) {
+ for (int i=0;i<elements.length;i++) {
+ SQLObject element = elements[i];
+ if (element instanceof ICatalogAuthorizationIdentifier) {
+ String type = element.eClass().getName();
+ String name = " <" + type + "> " + element.getName(); //$NON-NLS-1$//$NON-NLS-2$
+ progressMonitor.subTask(DdlGenerationMessages.LOADING_PRIVILEGES_PROGRESS + name);
+ ((ICatalogAuthorizationIdentifier) element).getCatalogReceivedPrivileges();
+ progressMonitor.subTask(null);
+ }
+ }
+ }
+ else return;
+ }
+ }
+ }
+
+ /**
+ * Get the builder that is associated with the generator.
+ * Subclass needs to override this method if needed.
+ * @return
+ */
+ public DdlBuilder getDdlBuilder() {
+ return null;
+ }
+
+
+ public void suppressCreate(SQLObject element) {
+ if (suppressCreateElementSet == null)
+ suppressCreateElementSet = new HashSet<SQLObject>();
+ suppressCreateElementSet.add(element);
+ }
+
+ public void suppressCreate(Set<SQLObject> elements) {
+ if (suppressCreateElementSet == null)
+ suppressCreateElementSet = new HashSet<SQLObject>();
+ suppressCreateElementSet.addAll(elements);
+ }
+
+ protected Set<SQLObject> removeCreateSuppressedElements(Set<SQLObject> elements) {
+ if (suppressCreateElementSet == null) return elements;
+ elements.removeAll(suppressCreateElementSet);
+ return elements;
+ }
+
+ protected Set sortDependency(Collection set){
+ LinkedHashSet sorted = new LinkedHashSet();
+ for (Iterator iter= set.iterator(); iter.hasNext();){
+ dependencySorting(sorted,set,(EObject)iter.next());
+ }
+ return sorted;
+ }
+
+ private void dependencySorting(LinkedHashSet sorted,Collection orginalSet, EObject object){
+ if (sorted.contains(object)) return;
+ if (enableDependency(object)) {
+ DependencyImpactAnalyst depAnalayst = DependencyImpactAnalyst.getInstance();
+ DependencyImpactDescription[] array = depAnalayst.getDirectDependencies( object );
+ if(array!=null && array.length > 0){
+ for(int i = array.length-1;i >= 0;i--){
+ DependencyImpactDescription depend = (DependencyImpactDescription)array[i];
+ EObject targetType = depend.getTarget();
+ if (orginalSet.contains(targetType) && !sorted.contains(targetType)){
+ dependencySorting(sorted,orginalSet,targetType);
+ }
+ }
+ }
+ }
+ sorted.add(object);
+ }
+
+ protected Set sortImpact(Collection set){
+ LinkedHashSet sorted = new LinkedHashSet();
+ for (Iterator iter= set.iterator(); iter.hasNext();){
+ impactSorting(sorted,set,(EObject)iter.next());
+ }
+ //Dependency map should be cleared at the end of call
+ DependencyImpactAnalyst depAnalayst = DependencyImpactAnalyst.getInstance();
+ depAnalayst.clearDependencyMap();
+ return sorted;
+ }
+
+ private void impactSorting(LinkedHashSet sorted,Collection orginalSet, EObject object){
+ if (sorted.contains(object)) return;
+ if (enableDependency(object)) {
+ DependencyImpactAnalyst depAnalayst = DependencyImpactAnalyst.getInstance();
+ DependencyImpactDescription[] array = depAnalayst.getDirectImpacted2(object );
+ if(array!=null && array.length > 0){
+ for(int i = array.length-1;i >= 0;i--){
+ DependencyImpactDescription depend = (DependencyImpactDescription)array[i];
+ EObject targetType = depend.getTarget();
+ if (orginalSet.contains(targetType) && !sorted.contains(targetType)){
+ impactSorting(sorted,orginalSet,targetType);
+ }
+ }
+ }
+ }
+ sorted.add(object);
+ }
+
+ //individual ddlGnerator enable this bit
+ protected boolean enableDependency(EObject object) {
+ return false;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDdlScriptVector.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDdlScriptVector.java
new file mode 100644
index 0000000..202a562
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDdlScriptVector.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import java.util.Collection;
+import java.util.TreeSet;
+import java.util.Vector;
+
+import org.eclipse.datatools.enablement.ibm.util.IPreorderedStatementList;
+
+/**
+ * CoreDdlScriptVector collects DDL statements which can be added
+ * in current order, or ordered lexicographically as they are added.
+ */
+public class CoreDdlScriptVector extends Vector {
+
+ /* Perform a sort of the elements of the input collection
+ * prior to adding them to the underlying Vector.
+ * @see java.util.Vector#addAll(java.util.Collection)
+ */
+ public synchronized boolean addAll(Collection collection) {
+ TreeSet set = new TreeSet(collection);
+ return super.addAll(set);
+ }
+
+ public synchronized boolean addAll(Collection collection, boolean sort) {
+ if(sort){
+ TreeSet set = new TreeSet(collection);
+ set.addAll(collection);
+ return super.addAll(set);
+ }else{
+ return super.addAll(collection);
+ }
+ }
+
+ /**
+ * This method is used for adding groups of statement sets
+ * which must retain their current order.
+ * @param list An IPreorderedStatementList subclass instance
+ * which has some order.
+ * @return boolean true if this invocation altered the contents
+ * of this CoreDdlScriptVector.
+ */
+ public synchronized boolean addAll(IPreorderedStatementList list) {
+ return super.addAll(list.getAll());
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDeltaDdlGenerator.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDeltaDdlGenerator.java
new file mode 100644
index 0000000..40946f8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/CoreDeltaDdlGenerator.java
@@ -0,0 +1,1065 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.core.rte.DDLGenerator;
+import org.eclipse.datatools.connectivity.sqm.core.rte.EngineeringOption;
+import org.eclipse.datatools.connectivity.sqm.core.rte.IEngineeringCallBack;
+import org.eclipse.datatools.connectivity.sqm.internal.core.rte.fe.GenericDeltaDdlGenerator;
+import org.eclipse.datatools.enablement.ibm.util.DependencyImpactAnalyst;
+import org.eclipse.datatools.enablement.ibm.util.DependencyImpactDescription;
+import org.eclipse.datatools.enablement.ibm.util.EngineeringOptionID;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.PersistentTable;
+import org.eclipse.datatools.modelbase.sql.tables.SQLTablesPackage;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.change.ChangeDescription;
+import org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl;
+
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public abstract class CoreDeltaDdlGenerator extends GenericDeltaDdlGenerator {
+
+ protected boolean dataPreservationRequired = false;
+ protected Set<SQLObject> suppressCreateElementSet = null;
+ protected EngineeringOption[] selectedOptions = null;
+ private boolean isDefaultSelectedOptionsSet = false;
+ protected DDLGenerator ddlGenerator = null;
+
+ public DDLGenerator getDdlGeneratorWithDeltaDDLOptions() {
+ if(ddlGenerator == null)
+ {
+ ddlGenerator = getDDLGenerator();
+ }
+ return ddlGenerator;
+ }
+
+
+ public void setDdlGeneratorWithDeltaDDLOptions(DDLGenerator ddlGenerator) {
+ this.ddlGenerator = ddlGenerator;
+ }
+ public CoreDeltaDdlGenerator() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * Subclass must implement this method to take the engineering callback.
+ * @param callback
+ */
+ protected abstract void setEngineeringCallback(IEngineeringCallBack callback);
+
+ protected boolean checkModel(SQLObject[] sqlObjects, EngineeringOption[] options) {
+ boolean ret = true;
+ if (! EngineeringOptionID.checkModel(options)) return ret;
+
+ ModelValidationProvider provider = DdlGenerationUtility.getModelValidationProvider();
+ if (provider != null) {
+ ret = provider.checkModel(sqlObjects);
+ }
+ return ret;
+ }
+
+ public String[] generateDeltaDDL(EObject rootObject, ChangeDescription changeDescription, SQLObject[] impacts, IProgressMonitor monitor, IEngineeringCallBack callback) {
+ dataPreservationRequired = false;
+ setDestructive(false);
+ setEngineeringOption(null);
+ setEngineeringCallback(callback);
+
+ // the selected options will be null if not invoked from compare merge screen
+ if (selectedOptions == null
+ || (selectedOptions != null && isDefaultSelectedOptionsSet == true)) {
+ this.rootObject = rootObject;
+ populateDefaultSelectedOptions(rootObject);
+ isDefaultSelectedOptionsSet = true;
+ }
+
+ if (!this.checkModel(new SQLObject[]{(SQLObject) rootObject}, selectedOptions)) {
+ callback.writeMessage(DdlGenerationMessages.FE_INVALID_MODEL);
+ return new String[0];
+ }
+
+ String[] statements = super.generateDeltaDDL(rootObject, changeDescription, monitor);
+ this.changeDescription = changeDescription;
+ impacts = analyzeImpacts(impacts, statements);
+ String[] dropImpactedStatements = getDependentsDropStatements(changeDescription, impacts, monitor, callback);
+ dropImpactedStatements = removeDuplicates(statements, dropImpactedStatements);
+ String[] createImpactedStatements = getDependentsCreateStatements(changeDescription, impacts, monitor, callback);
+ createImpactedStatements = removeDuplicates(statements, createImpactedStatements);
+ String[] m1 = merge(dropImpactedStatements, statements);
+ String[] m2 = merge(m1, createImpactedStatements);
+ this.changeDescription = null;
+ m2 = postProcess(m2);
+ return m2;
+ }
+
+ private void populateDefaultSelectedOptions(EObject rootObject) {
+ selectedOptions = getDdlGeneratorOptionsForDeltaDdl(
+ getDdlGeneratorWithDeltaDDLOptions(),
+ new SQLObject[] { (SQLObject) rootObject });
+ // set the default options as true
+ for (int i=0; i < selectedOptions.length; i++)
+ {
+ EngineeringOption option = selectedOptions[i];
+ if (!option.getBoolean()
+ && !option.getId().equals(
+ EngineeringOptionID.GENERATE_CREATE_OR_REPLACE))
+ option.setBoolean(true);
+ }
+ }
+
+
+ /**
+ * Allows subclasses to perform final processing of DDL before completion
+ *
+ * @param m2
+ * @return
+ */
+ protected String[] postProcess(String[] m2) {
+ return m2;
+ }
+
+ protected boolean hasDescription(SQLObject object) {
+ if (object != null) {
+ String description = object.getDescription();
+ if (description != null && description.length() > 0) return true;
+ }
+ return false;
+ }
+
+ private String[] removeDuplicates(String[] existingStatements,
+ String[] statements) {
+ TreeSet set = new TreeSet(Arrays.asList(existingStatements));
+ ArrayList list = new ArrayList();
+ for (int i = 0; i < statements.length; ++i) {
+ if (!set.contains(statements[i])) {
+ list.add(statements[i]);
+ }
+ }
+ String[] newStatements = new String[list.size()];
+ list.toArray(newStatements);
+ return newStatements;
+ }
+
+ protected boolean isChangeAnnotationRelated(EObject element,EObject changed,EStructuralFeature feature) {
+ if (EcorePackage.eINSTANCE.getEAnnotation().isSuperTypeOf(element.eClass())) return true;
+ EObject container = element.eContainer();
+ if (container != null &&
+ EcorePackage.eINSTANCE.getEAnnotation().isSuperTypeOf(container.eClass())) return true;
+ if (EcorePackage.eINSTANCE.getEAnnotation().isSuperTypeOf(changed.eClass())) return true;
+ container = changed.eContainer();
+ if (container != null &&
+ EcorePackage.eINSTANCE.getEAnnotation().isSuperTypeOf(container.eClass())) return true;
+ if(feature == EcorePackage.eINSTANCE.getEModelElement_EAnnotations()) return true;
+
+ return false;
+ }
+ /**
+ * This method is here to support callback. The one in GenericDeltaDdlGenerator does not support callback.
+ *
+ */
+ protected String[] getDropStatements(DDLGenerator gen, Map changeMap, IProgressMonitor monitor, IEngineeringCallBack callback) {
+ Vector elements = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if((flag & (DROP)) != 0) {
+ // if this is a drop->create which can be replaced by a CREATE OR REPLACE then we don't need to drop
+ if (((flag & CREATE) == 0) || (((flag & CREATE) != 0) && !isSuppressedDrop(key))) {
+ elements.add(key);
+ }
+ if (((flag & (CREATE)) != 0) &&
+ (SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(key.eClass()) ||
+ (SQLSchemaPackage.eINSTANCE.getSchema().isSuperTypeOf(key.eClass()) &&
+ ((Schema)key).getTables() != null &&
+ !((Schema)key).getTables().isEmpty())))
+ setDestructive(true);
+ }
+ }
+ if(elements.size() > 0) {
+ SQLObject[] d = new SQLObject[elements.size()];
+ elements.copyInto(d);
+ return gen.dropSQLObjects(d, this.generateQuotedIdentifiers(this.getSelectedOptions()), this.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, callback);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ /**
+ * Add an object to the record of which objects should have their DROP statements suppressed
+ *
+ * @param The object for which a DROP should be suppressed
+ */
+ protected void addSuppressedDrop(EObject key) {
+ }
+
+ /**
+ * Determine if an object should have its DROP statement suppressed.
+ *
+ * @return
+ */
+ protected boolean isSuppressedDrop(EObject key) {
+ return false;
+ }
+
+ /**
+ * Reset the record of objects which should have DROP statements suppressed
+ */
+ protected void resetSuppressedDrops() {
+ }
+
+ /**
+ * Determine whether a drop can be suppressed due to use of CREATE OR REPLACE statement usage
+ *
+ * @param Object for which the drop suppression is to be determined
+ * @return true if the drop is unnecessary because a CREATE OR REPLACE will be issued
+ */
+ protected boolean isDropSuppressedForCreateOrReplace(EObject key) {
+ return false;
+ }
+
+ protected boolean shouldExcludeElement(EObject element) {
+ if (element instanceof PersistentTable) {
+ if (!EngineeringOptionID.generateTables(selectedOptions))
+ return true;
+ } else if (element instanceof ViewTable) {
+ if (!EngineeringOptionID.generateViews(selectedOptions))
+ return true;
+ } else if (element instanceof Procedure) {
+ if (!EngineeringOptionID.generateStoredProcedures(selectedOptions))
+ return true;
+ } else if (element instanceof UserDefinedFunction) {
+ if (!EngineeringOptionID.generateFunctions(selectedOptions))
+ return true;
+ } else if (element instanceof Trigger) {
+ if (!EngineeringOptionID.generateTriggers(selectedOptions))
+ return true;
+ } else if (element instanceof CheckConstraint) {
+ if (!EngineeringOptionID.generateCKConstraints(selectedOptions))
+ return true;
+ } else if (element instanceof ForeignKey) {
+ if (!EngineeringOptionID.generateFKConstraints(selectedOptions))
+ return true;
+ } else if (element instanceof Index) {
+ if (!EngineeringOptionID.generateIndexes(selectedOptions)
+ || ((Index) element).isSystemGenerated())
+ return true;
+ } else if (element instanceof UserDefinedType) {
+ if (!EngineeringOptionID.generateUserDefinedTypes(selectedOptions))
+ return true;
+ } else if (element instanceof Sequence) {
+ if (!EngineeringOptionID.generateSequences(selectedOptions))
+ return true;
+ } else if (element instanceof Role) {
+ if (!EngineeringOptionID.generateRoles(selectedOptions))
+ return true;
+ } else if (element instanceof Privilege) {
+ if (!EngineeringOptionID.generateRevokeStatement(selectedOptions))
+ return true;
+ } else if (element instanceof RoleAuthorization) {
+ if (!EngineeringOptionID.generateRevokeStatement(selectedOptions))
+ return true;
+ } else if (element instanceof UniqueConstraint) {
+ if (!EngineeringOptionID.generatePKConstraints(selectedOptions)
+ || !((UniqueConstraint) element).isEnforced())
+ return true;
+ } else if (element instanceof Schema) {
+ if (!EngineeringOptionID.generateSchemas(selectedOptions))
+ return true;
+ } else if (element instanceof Privilege) {
+ if (!EngineeringOptionID.generateRevokeStatement(selectedOptions))
+ return true;
+ } else if (element instanceof AuthorizationIdentifier) {
+ if (EngineeringOptionID.generateRevokeStatement(selectedOptions)) {
+ return true;
+ }
+ } else if (element instanceof Role) {
+ if (!EngineeringOptionID.generateRoles(selectedOptions))
+ return true;
+ } else if (element instanceof RoleAuthorization) {
+ if (!EngineeringOptionID.generateRevokeStatement(selectedOptions))
+ return true;
+ }
+ return false;
+ }
+ /**
+ * This method is here to support callback. The one in GenericDeltaDdlGenerator does not support callback.
+ *
+ */
+ protected String[] getCreateStatements(DDLGenerator gen, Map changeMap, IProgressMonitor monitor, IEngineeringCallBack callback) {
+ Vector elements = new Vector();
+ Iterator it = changeMap.keySet().iterator();
+ while(it.hasNext()) {
+ EObject key = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(key)).intValue();
+ if((flag & CREATE) != 0) {
+ elements.add(key);
+ }
+ }
+ if(elements.size() > 0) {
+ SQLObject[] d = new SQLObject[elements.size()];
+ elements.copyInto(d);
+ return gen.createSQLObjects(d, this.generateQuotedIdentifiers(this.getSelectedOptions()), this.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, callback);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+
+ //@Override
+ protected void analyze(Map changeMap) {
+ List elements = new LinkedList();
+ elements.addAll(changeMap.keySet());
+ Iterator it = elements.iterator();
+ while(it.hasNext()) {
+ EObject e = (EObject) it.next();
+ int flag = ((Integer) changeMap.get(e)).intValue();
+ if(!needRecreate(e, flag)) {
+ continue;
+ }
+ // Recreate required
+ flag = setFlagsForRecreate(flag);
+ if(e instanceof Column) {
+ Column column = (Column) e;
+ Table table = column.getTable();
+ changeMap.put(table, new Integer(flag));
+ if(table instanceof PersistentTable){
+ processModifiedTable((PersistentTable)table, changeMap);
+ }
+ }
+ else if(e instanceof PersistentTable) {
+ changeMap.put(e, new Integer(flag));
+ processModifiedTable((PersistentTable) e, changeMap);
+ }
+ else if(e instanceof UniqueConstraint) {
+ changeMap.put(e, new Integer(flag));
+ processModifiedUniqueConstraint((UniqueConstraint) e, changeMap);
+ }
+ else if(e instanceof Index) {
+ changeMap.put(e, new Integer(flag));
+ processModifiedIndex((Index) e, changeMap);
+ }
+ else {
+ changeMap.put(e, new Integer(flag));
+ }
+ }
+ }
+
+ /**
+ * This method takes an existing changeFlag value and modifies it
+ * to be a drop and recreate instead of an alter. This implementation
+ * retains the COMMENT and LABEL flags only.
+ * @param flag changeFlag
+ * @return int changeFlag
+ */
+ protected int setFlagsForRecreate(int flag) {
+ // Data object must be dropped and recreated
+ // COMMENT and LABEL flags need to be retained
+ // DROP and CREATE flags need to be set
+ // ALL OTHER flags need to be reset
+ flag = flag & (COMMENT | LABEL);
+ flag = flag | CREATE | DROP;
+ return flag;
+ }
+
+ Pattern[] ALTER_PATTERNS;
+
+ // the following patterns are REs (Regular Expressions). If any of the REs match a
+ // given DDL Statement, then that statement does not require a DROP/CREATE of the
+ // impacted objects.
+ private final String[] ALTER_STRINGS=
+ {
+ "^alter table .* (drop|add) constraint",//$NON-NLS-1$ //wsdbu00297616: don't recreate objects on ADD or DROP constraints
+ "^alter table .*\\s*compress (yes|no)", //$NON-NLS-1$ //wsdbu00297613
+ "^alter table .*\\s*(activate|deactivate)", //$NON-NLS-1$
+ "^alter tablespace ", //$NON-NLS-1$ //wsdbu00297630
+ };
+
+ protected synchronized Pattern[] getAlterPatterns()
+ {
+ if (null==ALTER_PATTERNS)
+ {
+ ALTER_PATTERNS=new Pattern[ALTER_STRINGS.length];
+ for (int i=0; i<ALTER_STRINGS.length; ++i)
+ {
+ ALTER_PATTERNS[i]=Pattern.compile(ALTER_STRINGS[i], Pattern.CASE_INSENSITIVE);
+ }
+ }
+ return ALTER_PATTERNS;
+ }
+
+ /**
+ * Analyze the impacts of the statements on the dependents.
+ * Returns the dependents that may be impacted.
+ * @param dependents
+ * @param statements
+ * @return
+ */
+ protected SQLObject[] analyzeImpacts(SQLObject[] dependents,
+ String[] statements) {
+ // Here is a simple implementation. It only looks for any DDL
+ // that is not a COMMENT ON, REVOKE, or GRANT statement
+ // and determines there will be impacts on every dependent.
+ boolean hasImpact = false;
+ testAlter: for (int i = 0; i < statements.length; i++) {
+ if (statements[i].startsWith("COMMENT ON") || //$NON-NLS-1$
+ statements[i].startsWith("REVOKE") || //$NON-NLS-1$
+ statements[i].startsWith("GRANT")) { //$NON-NLS-1$
+ continue;
+ }
+ for (Pattern pattern: getAlterPatterns())
+ {
+ Matcher matcher=pattern.matcher(statements[i]);
+ if (matcher.find()) continue testAlter;
+ }
+
+ // If we have fallen through to here, all the exceptions are not true, so me must
+ // deal with the impacted objects.
+ hasImpact = true;
+ break;
+ }
+ if (hasImpact) {
+ return dependents;
+ } else {
+ return new SQLObject[0];
+ }
+ }
+
+ protected boolean isAncestorModified(Map changeMap, EObject e) {
+ if (isRenameTableSupported()) {
+ Iterator it = ContainmentServiceImpl.INSTANCE.getAllContainers(e).iterator();
+ while(it.hasNext()) {
+ Object c = it.next();
+ if(changeMap.containsKey(c)) {
+ int flag = ((Integer) changeMap.get(c)).intValue();
+ if((flag & (CREATE | DROP | MODIFIED)) != 0) return true;
+ if (!(c instanceof PersistentTable) &&
+ ((flag & RENAME) != 0)) return true;
+ }
+ }
+ return false;
+ }
+ return super.ancestorModified(changeMap, e);
+ }
+
+ protected boolean isRenameTableSupported() {
+ return false;
+ }
+
+ protected boolean isRenamedTable(EObject e,int flag) {
+ if (((flag & RENAME) != 0) &&
+ SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(e.eClass()))
+ return true;
+ return false;
+ }
+
+ protected void processModifiedUniqueConstraint(UniqueConstraint uk, Map changeMap) {
+ Iterator it = uk.getForeignKey().iterator();
+ while(it.hasNext()) {
+ ForeignKey fk = (ForeignKey) it.next();
+ if (isCreated(fk)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(fk)) {
+ flag = ((Integer) changeMap.get(fk)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(fk, new Integer(flag));
+ }
+ }
+
+ private void processModifiedIndex(Index index, Map changeMap) {
+ Iterator it = index.getForeignKey().iterator();
+ while(it.hasNext()) {
+ ForeignKey fk = (ForeignKey) it.next();
+ if (isCreated(fk)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(fk)) {
+ flag = ((Integer) changeMap.get(fk)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(fk, new Integer(flag));
+ }
+ }
+
+ private void processModifiedTable(PersistentTable table, Map changeMap) {
+ Iterator it = table.getUniqueConstraints().iterator();
+ while(it.hasNext()) {
+ UniqueConstraint uk = (UniqueConstraint) it.next();
+ if (isCreated(uk)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(uk)) {
+ flag = ((Integer) changeMap.get(uk)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(uk, new Integer(flag));
+ processModifiedUniqueConstraint(uk, changeMap);
+ }
+
+ it = table.getIndex().iterator();
+ while(it.hasNext()) {
+ Index index = (Index) it.next();
+ if (isCreated(index)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(index)) {
+ flag = ((Integer) changeMap.get(index)).intValue();
+ }
+ flag = modifyIndexChangeFlag(index,changeMap,flag);
+ changeMap.put(index, new Integer(flag));
+ processModifiedIndex(index, changeMap);
+ }
+
+ it = table.getForeignKeys().iterator();
+ while(it.hasNext()) {
+ ForeignKey fk = (ForeignKey) it.next();
+ if (isCreated(fk)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(fk)) {
+ flag = ((Integer) changeMap.get(fk)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(fk, new Integer(flag));
+ }
+
+ it = table.getReferencingForeignKeys().iterator();
+ while(it.hasNext()) {
+ ForeignKey fk = (ForeignKey) it.next();
+ if (isCreated(fk)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(fk)) {
+ flag = ((Integer) changeMap.get(fk)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(fk, new Integer(flag));
+ }
+
+ it = table.getConstraints().iterator();
+ while(it.hasNext()) {
+ Constraint ck = (Constraint) it.next();
+ if (!SQLConstraintsPackage.eINSTANCE.getCheckConstraint().isSuperTypeOf(ck.eClass())) continue;
+ if (isCreated(ck)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(ck)) {
+ flag = ((Integer) changeMap.get(ck)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(ck, new Integer(flag));
+ }
+
+ it = table.getTriggers().iterator();
+ while(it.hasNext()) {
+ Trigger trigger = (Trigger) it.next();
+ if (isCreated(trigger)) continue;
+ int flag = 0;
+ if(changeMap.containsKey(trigger)) {
+ flag = ((Integer) changeMap.get(trigger)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(trigger, new Integer(flag));
+ }
+
+ it = table.getColumns().iterator();
+ while (it.hasNext()) {
+ Column column = (Column)it.next();
+ if (hasDescription(column)) {
+ Integer flag = 0;
+ if(changeMap.containsKey(column)) {
+ flag = (Integer)changeMap.get(column);
+ }
+ flag = flag | COMMENT;
+ changeMap.put(column, flag);
+ }
+ }
+ // Find views with dependencies
+ List<ViewTable> impactedViews = getDependentViews(table);
+ for (ViewTable view:impactedViews) {
+ int flag = 0;
+ if(changeMap.containsKey(view)) {
+ flag = ((Integer) changeMap.get(view)).intValue();
+ }
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ changeMap.put(view, new Integer(flag));
+ }
+ }
+
+ protected List<ViewTable> getDependentViews(Table table) {
+ List<ViewTable> impactedViews = new ArrayList<ViewTable>();
+
+ DependencyImpactDescription[] impacts = DependencyImpactAnalyst.getInstance().getDirectImpacted(table);
+ for (int i=0; i<impacts.length; i++)
+ {
+ EObject target = impacts[i].getTarget();
+ if ( (target != null) && (target instanceof ViewTable)) {
+ impactedViews.add((ViewTable)target);
+ }
+ }
+ return impactedViews;
+ }
+
+ protected int modifyIndexChangeFlag(Index index,Map changeMap,int flag) {
+ flag = flag & ~(MODIFIED | RENAME);
+ flag = flag | (CREATE | DROP);
+ return flag;
+ }
+
+ protected void suppressCreate(SQLObject element) {
+ if (suppressCreateElementSet == null)
+ suppressCreateElementSet = new HashSet<SQLObject>();
+ suppressCreateElementSet.add(element);
+ }
+
+ protected void propagateColumnRename(Column column, Map changeMap) {
+ Table table = column.getTable();
+ Set<UniqueConstraint> uCs = new HashSet<UniqueConstraint>();
+ Set<Index> uIs = new HashSet<Index>();
+ if ((table == null) ||
+ !SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(table.eClass()))
+ return;
+ // Unique Constraints
+ Iterator it = ((PersistentTable)table).getUniqueConstraints().iterator();
+ while( it.hasNext() ) {
+ UniqueConstraint current = (UniqueConstraint)it.next();
+ if (current != null) {
+ EList columns = current.getMembers();
+ if ( (columns != null) && columns.contains(column) ) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ uCs.add(current);
+ }
+ }
+ }
+ // PK
+ {
+ PrimaryKey current = ((PersistentTable)table).getPrimaryKey();
+ if (current != null) {
+ EList columns = current.getMembers();
+ if ( (columns != null) && columns.contains(column) ) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ uCs.add(current);
+ }
+ }
+ }
+ // Indexes
+ it = ((PersistentTable)table).getIndex().iterator();
+ while( it.hasNext() ) {
+ Index current = (Index)it.next();
+ if (current != null) {
+ EList columns = current.getMembers();
+ if ( indexMemberListContains(columns, column) ) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ if (current.isUnique()) {
+ uIs.add(current);
+ }
+ continue;
+ }
+ columns = current.getIncludedMembers();
+ if ( indexMemberListContains(columns, column) ) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ }
+ }
+ }
+ // FKs
+ it = ((PersistentTable)table).getForeignKeys().iterator();
+ while( it.hasNext() ) {
+ ForeignKey current = (ForeignKey)it.next();
+ if (current != null) {
+ EList columns = current.getMembers();
+ if ( (columns != null) && columns.contains(column) ) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ }
+ }
+ }
+ // Referencing FKs
+ it = ((PersistentTable)table).getReferencingForeignKeys().iterator();
+ RefFkLoop: while( it.hasNext() ) {
+ ForeignKey current = (ForeignKey)it.next();
+ if (current != null) {
+ Iterator<UniqueConstraint> it1 = uCs.iterator();
+ while (it1.hasNext()) {
+ if (current.getUniqueConstraint() == it1.next()) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ continue RefFkLoop;
+ }
+ }
+ Iterator<Index> it2 = uIs.iterator();
+ while (it2.hasNext()) {
+ if (current.getUniqueIndex() == it2.next()) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ continue RefFkLoop;
+ }
+ }
+ EList columns = current.getReferencedMembers();
+ if ( (columns != null) && columns.contains(column) ) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ }
+ }
+ }
+ // Triggers
+ it = ((PersistentTable)table).getTriggers().iterator();
+ while( it.hasNext() ) {
+ Trigger current = (Trigger)it.next();
+ if (current != null) {
+ EList columns = current.getTriggerColumn();
+ if ( (columns != null) && columns.contains(column) ) {
+ updateMapFlags(current,changeMap,0,DROP | CREATE);
+ }
+ }
+ }
+ }
+
+ /**
+ * Implementation of contains(column) for index member column list - since the
+ * list that is returned by the getMembers method is a list of IndexMember
+ * objects we can't use the contains method of the list. The comparison is done
+ * using the == operator.
+ *
+ * @param columns The columns members of the list (as IndexMember objects)
+ * @param column The table column for which membership is to be tested
+ * @return true if the index member list includes column
+ */
+ protected boolean indexMemberListContains(EList columns, Column column) {
+ if (columns != null && column != null) {
+ for (Object indexMember : columns) {
+ if (indexMember != null && indexMember instanceof IndexMember) {
+ if (((IndexMember)indexMember).getColumn() == column) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ protected void removeRedundantColumnChange(Map changeMap, Map colMap) {
+ int flag;
+ Iterator it = colMap.keySet().iterator();
+ Table table = null;
+ while (it.hasNext()) {
+ Column column = (Column)it.next();
+ flag = ((Integer) colMap.get(column)).intValue();
+ if (flag == DROP) {
+ EObject obj = ((ChangeDescriptionImpl) changeDescription).getOldContainer(column);
+ if (SQLTablesPackage.eINSTANCE.getTable().isSuperTypeOf(obj.eClass()))
+ table = (Table)((ChangeDescriptionImpl) changeDescription).getOldContainer(column);
+ }
+ if (table == null)
+ table = column.getTable();
+ if (SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(table.eClass())) {
+ if(changeMap.containsKey(table)) {
+ flag = ((Integer) changeMap.get(table)).intValue();
+ if ((flag & DROP) != 0) {
+ it.remove();
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This method is here to support callback. The one in GenericDeltaDdlGenerator does not support callback.
+ */
+ protected String[] processChangeMap(Map changeMap, IProgressMonitor monitor, IEngineeringCallBack callback) {
+ DDLGenerator ddlGenerator = getDdlGeneratorWithDeltaDDLOptions();
+ this.undo();
+ String[] drops = new String[0];
+ String[] creates = new String[0];
+
+ if (EngineeringOptionID.generateDropStatement(selectedOptions))
+ drops = getDropStatements(ddlGenerator, changeMap, monitor, callback);
+ this.redo();
+ if (EngineeringOptionID.generateCreateStatement(selectedOptions))
+ creates = getCreateStatements(ddlGenerator, changeMap, monitor, callback);
+ this.changeDescription = null;
+ return merge(drops, creates);
+ }
+
+ protected boolean generateQuotedIdentifiers(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER, options);
+ }
+
+ protected boolean generateFullyQualifiedNames(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME, options);
+ }
+
+ private boolean getOptionValueByID(String optionID, EngineeringOption[] options){
+ return EngineeringOptionID.getOptionValueByID(optionID, options);
+ }
+
+ /**
+ * This generateDeltaDDL method also generates DDL for the impacted (dependent) database objects.
+ * @param changeSummary
+ * @param impacts
+ * @param monitor
+ * @return
+ * @deprecated
+ */
+ public String[] generateDeltaDDL(EObject rootObject, ChangeDescription changeDescription, SQLObject[] impacts, IProgressMonitor monitor) {
+ return this.generateDeltaDDL(rootObject, changeDescription, impacts, monitor, null);
+ }
+
+ /**
+ * Get the SQL statements for dropping the dependents (impacted objects).
+ * @param changeDescription
+ * @param impacts
+ * @param monitor
+ * @param callback
+ * @return
+ */
+ protected String[] getDependentsDropStatements(
+ ChangeDescription changeDescription, SQLObject[] impacts,
+ IProgressMonitor monitor, IEngineeringCallBack callback) {
+ CoreDdlGenerator generator = (CoreDdlGenerator)this.getDdlGeneratorWithDeltaDDLOptions();
+ if(impacts.length > 0) {
+ generator.getSelectedOptions(impacts);
+ for (int count = 0; count < impacts.length; count++) {
+ if (SQLTablesPackage.eINSTANCE.getPersistentTable().isSuperTypeOf(impacts[count].eClass())) {
+ this.setDestructive(true);
+ }
+ }
+ return generator.dropSQLObjects(impacts,EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, callback);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ /**
+ * Get the SQL statements for creating the dependents (impacted objects).
+ * @param changeDescription
+ * @param impacts
+ * @param monitor
+ * @param callback *
+ * @return
+ * @deprecated Use the alternative getDependentsCreateStatements.
+ */
+ protected final String[] getDependentsCreateStatements(ChangeDescription changeDescription, SQLObject[] impacts, IProgressMonitor monitor) {
+ CoreDdlGenerator generator = (CoreDdlGenerator)this.getDdlGeneratorWithDeltaDDLOptions();
+ if(impacts.length > 0) {
+ generator.getSelectedOptions(impacts);
+ return generator.createSQLObjects(impacts, EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, null);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ /**
+ * Get the SQL statements for creating the dependents (impacted objects).
+ * @param changeDescription
+ * @param impacts
+ * @param monitor
+ * @param callback
+ * @return
+ */
+ protected String[] getDependentsCreateStatements(
+ ChangeDescription changeDescription, SQLObject[] impacts,
+ IProgressMonitor monitor, IEngineeringCallBack callback) {
+ CoreDdlGenerator generator = (CoreDdlGenerator)this.getDdlGeneratorWithDeltaDDLOptions();
+ if(impacts.length > 0) {
+ generator.getSelectedOptions(impacts);
+ return generator.createSQLObjects(impacts, EngineeringOptionID.generateQuotedIdentifiers(this.getSelectedOptions()), EngineeringOptionID.generateFullyQualifiedNames(this.getSelectedOptions()), monitor, callback);
+ }
+ else {
+ return new String[0];
+ }
+ }
+
+ public Table getOldContainer(Column column) {
+ return (Table)((ChangeDescriptionImpl)this.changeDescription).getOldContainer(column);
+ }
+
+ protected boolean isColumnInPrimaryKey(Column column) {
+ Table table = column.getTable();
+ if (table instanceof BaseTable) {
+ PrimaryKey key = (PrimaryKey)(((BaseTable)table).getPrimaryKey());
+ if (key != null && key.getMembers().contains(column)) return true;
+ }
+ return false;
+ }
+
+ public boolean isDataPreservationRequired() {
+ return dataPreservationRequired;
+ }
+
+ /**
+ * Given a DDL generator and a list of SQL objects, ask the DDL generator
+ * to set up a list of DDL generation options. Then change two of
+ * the options to true. The client can further modify the values of the
+ * options.
+ * @param ddlGenerator A DDL generator
+ * @param sqlObjects An array of SQLObjects
+ * @return An array of DDL generation options.
+ */
+ public EngineeringOption[] getDdlGeneratorOptionsForDeltaDdl(DDLGenerator ddlGenerator, SQLObject[] sqlObjects) {
+ EngineeringOption[] ddlGenOptions = ddlGenerator.getOptions(sqlObjects);
+ for (int i = 0; i < ddlGenOptions.length; i++){
+ EngineeringOption option = (EngineeringOption) ddlGenOptions[i];
+ if (option == null) {
+ continue;
+ }
+ if (option.getId().equals(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME)) {
+ option.setBoolean(DdlGenerationUtility.getQualifyNamesDefault());
+ }
+ else if (option.getId().equals(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER)) {
+ option.setBoolean(DdlGenerationUtility.getQuoteIdentifiersDefault());
+ }
+ }
+ return ddlGenOptions;
+ }
+
+ /**
+ * Check to see if there are column order changes.
+ * Returns 0 if no changes to the columns, otherwise return MODIFIED.
+ * @param element
+ * @param feature
+ * @return
+ */
+ protected int getColumnsChangeFlag(EObject element, EStructuralFeature feature) {
+ if (feature == SQLTablesPackage.eINSTANCE.getTable_Columns()) {
+ List currentValue = (List)element.eGet(feature);
+ List previousValue = (List)this.getOldValue(feature, element);
+ if (isOrderChanged(currentValue, previousValue)) {
+ return MODIFIED;
+ }
+ }
+ return 0;
+ }
+
+ /**
+ * Updates the passed map (where the map's key is a changed element, and the
+ * map's value is the changeFlags), using the passed parameters.
+ * @param element EObject which has changed.
+ * @param map Map which should maintain the change flags for this element.
+ * @param flagsToReset int containing change flags to be reset.
+ * @param flagsToSet int containing change flags to set.
+ * @return int the new set of change flags stored for the element.
+ */
+ protected int updateMapFlags(EObject element,Map map,int flagsToReset,int flagsToSet) {
+ int flags = 0;
+ if (map.containsKey(element)) {
+ flags = ((Integer) map.get(element)).intValue();
+ if (flagsToReset != 0)
+ flags &= ~flagsToReset;
+ }
+ if (flagsToSet != 0)
+ flags |= flagsToSet;
+ map.put(element,new Integer(flags));
+ return flags;
+ }
+
+ protected boolean isRenameColumnSupported() {
+ return false;
+ }
+
+ /**
+ * Returns true if the order in current is different than that in previous.
+ * The current list derives from the previous list through add, delete, or modification.
+ * @param current A list of SQL objects.
+ * @param previous A list of SQL objects.
+ * @return
+ */
+ private boolean isOrderChanged (List current, List previous) {
+ ArrayList currentList = new ArrayList(current.size());
+ for (Iterator it = current.iterator(); it.hasNext();) {
+ SQLObject object = (SQLObject)it.next();
+ currentList.add(object);
+ }
+ ArrayList previousList = new ArrayList(previous.size());
+ for (Iterator it = previous.iterator(); it.hasNext();) {
+ SQLObject object = (SQLObject)it.next();
+ previousList.add(object);
+ }
+
+ // We should tolerate columns being dropped, and columns being
+ // added at the END of the list, but we should not tolerate
+ // columns being added in the middle of the list
+
+ // Remove columns which have been dropped (present only in previous
+ // list)
+ for (int index = 0; index < previousList.size(); ++index) {
+ if (!currentList.contains(previousList.get(index))) {
+ previousList.remove(index--);
+ }
+ }
+
+ // Previous list should now be same or shorter size than current
+ // list. Compare the first N columns, where N is the size of
+ // the possibly shortened previous list.
+ for (int index = 0; index < previousList.size(); ++index) {
+ if (currentList.get(index) != previousList.get(index)) return true;
+ }
+ return false;
+ }
+ /**
+ * This method returns the DeltaDDLGenerator options
+ *
+ * @return selectedOptions
+ */
+ public EngineeringOption[] getSelectedOptions() {
+ return selectedOptions;
+ }
+
+ /**
+ * Sets the options for Delta DDL generation
+ * @param selectedOptions
+ */
+ public void setSelectedOptions(EngineeringOption[] selectedOptions) {
+ this.selectedOptions = selectedOptions;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlBuilder.java
new file mode 100644
index 0000000..0659cf8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlBuilder.java
@@ -0,0 +1,1942 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Vector;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.IEngineeringCallBack;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.definition.DatabaseDefinitionRegistryImpl;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.util.AccessControlUtilities;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Role;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.Constraint;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.ReferenceConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.TableConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.datatypes.AttributeDefinition;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DateDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.DistinctUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.PredefinedDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.SQLDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.StructuredUserDefinedType;
+import org.eclipse.datatools.modelbase.sql.datatypes.TimeDataType;
+import org.eclipse.datatools.modelbase.sql.datatypes.UserDefinedType;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.expressions.ValueExpression;
+import org.eclipse.datatools.modelbase.sql.routines.Parameter;
+import org.eclipse.datatools.modelbase.sql.routines.Procedure;
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+import org.eclipse.datatools.modelbase.sql.routines.UserDefinedFunction;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.ReferentialActionType;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.schema.Sequence;
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+import org.eclipse.datatools.modelbase.sql.tables.BaseTable;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+ /**
+ * @author chetabha
+ *
+ */
+public abstract class DdlBuilder {
+ protected final static String ADMIN = "ADMIN"; //$NON-NLS-1$
+ protected final static String NEWLINE = System.getProperty("line.separator"); //$NON-NLS-1$
+ protected final static String UNDERSCORE = "_"; //$NON-NLS-1$
+ protected final static String EMPTY_STRING = ""; //$NON-NLS-1$
+ protected final static String DOT = "."; //$NON-NLS-1$
+ protected final static String SPACE = " "; //$NON-NLS-1$
+ protected final static String COMMA = ","; //$NON-NLS-1$
+ protected final static String SINGLE_QUOTE = "'"; //$NON-NLS-1$
+ protected final static String DOUBLE_QUOTE = "\""; //$NON-NLS-1$
+ protected final static String TAB = "\t"; //$NON-NLS-1$
+ protected final static String LEFT_PARENTHESIS = "("; //$NON-NLS-1$
+ protected final static String RIGHT_PARENTHESIS = ")"; //$NON-NLS-1$
+ protected final static String LEFT_SQUARE = "["; //$NON-NLS-1$
+ protected final static String RIGHT_SQUARE = "]"; //$NON-NLS-1$
+ protected final static String COLON = ":"; //$NON-NLS-1$
+ protected final static String DROP = "DROP"; //$NON-NLS-1$
+ protected final static String REMOVE = "REMOVE"; //$NON-NLS-1$
+ protected final static String CREATE = "CREATE"; //$NON-NLS-1$
+ protected final static String ALTER = "ALTER"; //$NON-NLS-1$
+ protected final static String ADD = "ADD"; //$NON-NLS-1$
+ protected final static String DELETE = "DELETE"; //$NON-NLS-1$
+ protected final static String UPDATE = "UPDATE"; //$NON-NLS-1$
+ protected final static String CASCADE = "CASCADE"; //$NON-NLS-1$
+ protected final static String CASCADED = "CASCADED"; //$NON-NLS-1$
+ protected final static String LOCAL = "LOCAL"; //$NON-NLS-1$
+ protected final static String OPTION = "OPTION"; //$NON-NLS-1$
+ protected final static String RESTRICT = "RESTRICT"; //$NON-NLS-1$
+ protected final static String NULL = "NULL"; //$NON-NLS-1$
+ protected final static String NOT = "NOT"; //$NON-NLS-1$
+ protected final static String DEFAULT = "DEFAULT"; //$NON-NLS-1$
+ protected final static String SET = "SET"; //$NON-NLS-1$
+ protected final static String DATABASE = "DATABASE"; //$NON-NLS-1$
+ protected final static String DATA_TYPE = "DATA TYPE";
+ protected final static String TRIGGER = "TRIGGER"; //$NON-NLS-1$
+ protected final static String TABLE = "TABLE"; //$NON-NLS-1$
+ protected final static String COLUMN = "COLUMN";
+ protected final static String TABLESPACE = "TABLESPACE"; //$NON-NLS-1$
+ protected final static String VIEW = "VIEW"; //$NON-NLS-1$
+ protected final static String INDEX = "INDEX"; //$NON-NLS-1$
+ protected final static String ROUTINE = "ROUTINE"; //$NON-NLS-1$
+ protected final static String PROCEDURE = "PROCEDURE"; //$NON-NLS-1$
+ protected final static String FUNCTION = "FUNCTION"; //$NON-NLS-1$
+ protected final static String METHOD = "METHOD"; //$NON-NLS-1$
+ protected final static String SEQUENCE = "SEQUENCE"; //$NON-NLS-1$
+ protected final static String CONSTRAINT = "CONSTRAINT"; //$NON-NLS-1$
+ protected final static String UNIQUE = "UNIQUE"; //$NON-NLS-1$
+ protected final static String CHECK = "CHECK"; //$NON-NLS-1$
+ protected final static String TYPE = "TYPE"; //$NON-NLS-1$
+ protected final static String ON = "ON"; //$NON-NLS-1$
+ protected final static String FOREIGN_KEY = "FOREIGN KEY"; //$NON-NLS-1$
+ protected final static String REFERENCES = "REFERENCES"; //$NON-NLS-1$
+ protected final static String PRIMARY_KEY = "PRIMARY KEY"; //$NON-NLS-1$
+ protected final static String DEFERRABLE = "DEFERRABLE"; //$NON-NLS-1$
+ protected final static String DEFERRED = "DEFERRED"; //$NON-NLS-1$
+ protected final static String INITIALLY = "INITIALLY"; //$NON-NLS-1$
+ protected final static String ALIAS = "ALIAS"; //$NON-NLS-1$
+ protected final static String AS = "AS"; //$NON-NLS-1$
+ protected final static String FOR = "FOR"; //$NON-NLS-1$
+ protected final static String DISTINCT = "DISTINCT"; //$NON-NLS-1$
+ protected final static String STRUCTURED = "STRUCTURED"; //$NON-NLS-1$
+ protected final static String LONG = "LONG"; //$NON-NLS-1$
+ protected final static String BLOB = "BLOB"; //$NON-NLS-1$
+ protected final static String DBCLOB = "DBCLOB"; //$NON-NLS-1$
+ protected final static String CLOB = "CLOB"; //$NON-NLS-1$
+ protected final static String VARCHAR = "VARCHAR"; //$NON-NLS-1$
+ protected final static String WITH = "WITH"; //$NON-NLS-1$
+ protected final static String COMPARISONS = "COMPARISONS"; //$NON-NLS-1$
+ protected final static String DATALINK = "DATALINK"; //$NON-NLS-1$
+ protected final static String VARGRAPHIC = "VARGRAPHIC"; //$NON-NLS-1$
+ protected final static String AFTER = "AFTER"; //$NON-NLS-1$
+ protected final static String BEFORE = "BEFORE"; //$NON-NLS-1$
+ protected final static String INSTEAD_OF = "INSTEAD OF"; //$NON-NLS-1$
+ protected final static String INSERT = "INSERT"; //$NON-NLS-1$
+ protected final static String NO = "NO"; //$NON-NLS-1$
+ protected final static String OF = "OF"; //$NON-NLS-1$
+ protected final static String REFERENCING = "REFERENCING"; //$NON-NLS-1$
+ protected final static String NEW = "NEW"; //$NON-NLS-1$
+ protected final static String OLD = "OLD"; //$NON-NLS-1$
+ protected final static String NEW_TABLE = "NEW_TABLE"; //$NON-NLS-1$
+ protected final static String OLD_TABLE = "OLD_TABLE"; //$NON-NLS-1$
+ protected final static String EACH = "EACH"; //$NON-NLS-1$
+ protected final static String ROW = "ROW"; //$NON-NLS-1$
+ protected final static String STATEMENT = "STATEMENT"; //$NON-NLS-1$
+ protected final static String WHEN = "WHEN"; //$NON-NLS-1$
+ protected final static String SCHEMA = "SCHEMA"; //$NON-NLS-1$
+ protected final static String AUTHORIZATION = "AUTHORIZATION"; //$NON-NLS-1$
+ protected final static String COMMENT = "COMMENT"; //$NON-NLS-1$
+ protected final static String IS = "IS"; //$NON-NLS-1$
+ protected final static String GRANT = "GRANT"; //$NON-NLS-1$
+ protected final static String REVOKE = "REVOKE"; //$NON-NLS-1$
+ protected final static String TO = "TO"; //$NON-NLS-1$
+ protected final static String FROM = "FROM"; //$NON-NLS-1$
+ protected final static String ROLE = "ROLE"; //$NON-NLS-1$
+ protected final static String USER = "USER"; //$NON-NLS-1$
+ protected final static String GROUP = "GROUP"; //$NON-NLS-1$
+ protected final static String NO_ACTION = "NO ACTION"; //$NON-NLS-1$
+ protected final static String ZERO_STRING = "0"; //$NON-NLS-1$
+ protected final static String RENAME = "RENAME"; //$NON-NLS-1$
+ protected static final String WHERE = "WHERE"; //$NON-NLS-1$
+ protected static final String EQUALS = "="; //$NON-NLS-1$
+ protected static final String COMMENT_DELIMITER = "--"; //$NON-NLS-1$
+ protected static final String LOCK = "LOCK"; //$NON-NLS-1$
+ protected static final String OR = "OR"; //$NON-NLS-1$
+ protected static final String USING = "USING"; //$NON-NLS-1$
+
+ private static RoutineDdlBuilder routineDdlBuilder = null;
+ private IEngineeringCallBack callback = null;
+ private IEngineeringCallBack dummyCallback = null;
+
+
+ public void setEngineeringCallBack(IEngineeringCallBack callback) {
+ this.callback = callback;
+ }
+
+ public IEngineeringCallBack getEngineeringCallBack() {
+ if (this.callback != null) {
+ return this.callback;
+ } else{
+ return this.getDummyEngineeringCallBack();
+ }
+ }
+
+ public String dropTrigger(Trigger trigger, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + TRIGGER + SPACE + getName(trigger, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropProcedure(Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ Database database = ModelHelper.getDatabase(procedure.getSchema());
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildDropRoutineStatement(procedure,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+ return DROP + SPACE + PROCEDURE + SPACE + getName(procedure, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropFunction(UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ Database database = ModelHelper.getDatabase(function.getSchema());
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildDropRoutineStatement(function,quoteIdentifiers,qualifyNames);
+ if (ddl!= null) return ddl;
+ }
+ return DROP + SPACE + FUNCTION + SPACE + getName(function, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropView(ViewTable view, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + VIEW + SPACE + getName(view, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropTableConstraint(TableConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ return ALTER + SPACE + this.getOwnerType(constraint) + SPACE + getName(constraint.getBaseTable(), quoteIdentifiers, qualifyNames)
+ + " DROP CONSTRAINT " + getName(constraint, quoteIdentifiers,qualifyNames); //$NON-NLS-1$
+ }
+
+ public String dropIndex(Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + INDEX + SPACE + getName(index, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropTable(BaseTable table, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropSequence(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + SEQUENCE + SPACE + getName(sequence, quoteIdentifiers, qualifyNames);
+ }
+
+ public String dropSchema(Schema schema, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + SCHEMA + SPACE + getName(schema, quoteIdentifiers,qualifyNames);
+ }
+
+ protected String getCommentString( SQLObject sqlObject )
+ {
+ String comment = sqlObject.getDescription();
+ if ( comment == null || comment.length() == 0 )
+ {
+ comment = EMPTY_STRING;
+ }
+ return comment;
+ }
+
+ public String commentOn(Procedure procedure, boolean quoteIdentifiers, boolean qualifyNames) {
+ Database database = ModelHelper.getDatabase(procedure.getSchema());
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildCommentOnStatement(procedure,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+
+ String comment = procedure.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String name = getName(procedure, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + PROCEDURE + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(UserDefinedFunction function, boolean quoteIdentifiers, boolean qualifyNames) {
+ Database database = ModelHelper.getDatabase(function.getSchema());
+ RoutineDdlBuilder routineDdlBuilder = DdlBuilder.getRoutineDdlBuilder(database.getVendor(),database.getVersion());
+ if (routineDdlBuilder != null) {
+ String ddl = routineDdlBuilder.buildCommentOnStatement(function,quoteIdentifiers,qualifyNames);
+ if (ddl != null) return ddl;
+ }
+
+ String comment = function.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String functionName = getName(function, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + FUNCTION + SPACE + functionName + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(Trigger trigger, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = trigger.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String name = getName(trigger, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + TRIGGER + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(TableConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ return commentOn(constraint, quoteIdentifiers, qualifyNames, false);
+ }
+
+ public String commentOn(TableConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames, boolean allowEmptyComment) {
+ String comment = constraint.getDescription();
+ if(comment == null || comment.length() == 0) {
+ if (allowEmptyComment) {
+ comment = EMPTY_STRING;
+ } else {
+ return null;
+ }
+ }
+ String constraintName = constraint.getName();
+ String tableName = constraint.getBaseTable().getName();
+ String schemaName = constraint.getBaseTable().getSchema().getName();
+
+ if(quoteIdentifiers) {
+ constraintName = this.getDoubleQuotedString(constraintName);
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ constraintName = schemaName + DOT + tableName + DOT + constraintName;
+ }
+ else {
+ constraintName = tableName + DOT + constraintName;
+ }
+
+ return COMMENT + SPACE + ON + SPACE + CONSTRAINT + SPACE + constraintName + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = index.getDescription();
+
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String indexName = getName(index, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + INDEX + SPACE + indexName + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ return commentOn(sequence, quoteIdentifiers, qualifyNames, false);
+ }
+
+ public String commentOn(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames, boolean allowEmptyComment) {
+ String comment = sequence.getDescription();
+ if(comment == null || comment.length() == 0) {
+ if (allowEmptyComment) {
+ comment = EMPTY_STRING;
+ } else {
+ return null;
+ }
+ }
+
+ String name = getName(sequence, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + SEQUENCE + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(Schema schema, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = schema.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ return COMMENT + SPACE + ON + SPACE + SCHEMA + SPACE + getName(schema, quoteIdentifiers,qualifyNames) //@d00058820gs
+ + SPACE + IS + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(StructuredUserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ String comment = type.getDescription();
+ if(comment == null || comment.length() == 0) {
+ return null;
+ }
+
+ String name = getName(type, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + STRUCTURED + SPACE + TYPE + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+
+ public String commentOn(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ return commentOn(table, quoteIdentifiers, qualifyNames, false);
+ }
+
+ public String commentOn(Table table, boolean quoteIdentifiers, boolean qualifyNames, boolean allowEmptyComment) {
+ String comment = table.getDescription();
+ if(comment == null || comment.length() == 0) {
+ if (allowEmptyComment) {
+ comment = EMPTY_STRING;
+ } else {
+ return null;
+ }
+ }
+
+ String name = getName(table, quoteIdentifiers, qualifyNames);
+
+ return COMMENT + SPACE + ON + SPACE + TABLE + SPACE + name + SPACE + IS
+ + NEWLINE + this.getSingleQuotedString(comment);
+ }
+ //@ed00058820gs
+
+ public String dropUserDefinedType(UserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ return DROP + SPACE + TYPE + SPACE + getName(type, quoteIdentifiers, qualifyNames);
+ }
+
+ public String createSchema(Schema schema, boolean quoteIdentifiers,boolean qualifyNames) {
+ String statement = CREATE + SPACE + SCHEMA + SPACE + AUTHORIZATION + SPACE + getName(schema, quoteIdentifiers,qualifyNames);
+ return statement;
+ }
+ public String createTable(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = CREATE + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + SPACE + LEFT_PARENTHESIS + NEWLINE ;
+ Iterator it = table.getColumns().iterator();
+ while(it.hasNext()) {
+ Column column = (Column) it.next();
+ statement += TAB + TAB + getColumnString(column, quoteIdentifiers,qualifyNames);
+ if(it.hasNext()) {
+ statement += COMMA;
+ }
+ statement += NEWLINE;
+ }
+ statement += TAB + RIGHT_PARENTHESIS;
+
+ return statement;
+ }
+
+ public String alterTableAddColumn(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+ if(table instanceof BaseTable) {
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + SPACE +addColumnClause(column, quoteIdentifiers,qualifyNames); //$NON-NLS-1$
+ return statement;
+ }
+ return null;
+ }
+
+ public String addColumnClause(Column column, boolean quoteIdentifiers, boolean qualifyNames)
+ {
+ String clause=ADD + SPACE + COLUMN +SPACE +getAlterTableAddColumnColumnString(column, quoteIdentifiers,qualifyNames);
+ return clause;
+ }
+
+ public String alterTableDropColumn(Column column, boolean quoteIdentifiers, boolean qualifyNames, CoreDeltaDdlGenerator deltaGen) {
+ Table table = deltaGen.getOldContainer(column);
+ if(table instanceof BaseTable) {
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + SPACE + dropColumnClause(column, quoteIdentifiers, qualifyNames, deltaGen);
+ return statement;
+ }
+ return null;
+ }
+
+ public String dropColumnClause(Column column, boolean quoteIdentifiers, boolean qualifyNames, CoreDeltaDdlGenerator deltaGen)
+ {
+ String clause=DROP + SPACE + COLUMN + SPACE + getColumnNameString(column, quoteIdentifiers,qualifyNames);
+ return clause;
+ }
+
+ public String alterTableWithClauses(Table table, Vector<String> clauses, boolean quoteIdentifiers, boolean qualifyNames)
+ {
+ String statement=ALTER + SPACE +TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames) + SPACE;
+ boolean first=true;
+ for (String clause: clauses)
+ {
+ if (!first)
+ {
+ statement += NEWLINE + TAB;
+ }
+ statement += clause;
+ first=false;
+ }
+ return statement;
+ }
+
+ public String alterTableAlterColumnDataType(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+
+ if(table instanceof BaseTable) {
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + SPACE + alterColumnDatatypeClause(column, quoteIdentifiers, qualifyNames); //$NON-NLS-1$
+ return statement;
+ }
+ return null;
+ }
+
+ public String alterColumnDatatypeClause(Column column, boolean quoteIdentifiers, boolean qualifyNames)
+ {
+ String columnName = column.getName();
+
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+
+ String columnString = ALTER + SPACE + COLUMN + SPACE + columnName + SPACE +
+ // SET + SPACE + DATA_TYPE + SPACE + getDataTypeString(column, column.getTable().getSchema(),qualifyNames); //$NON-NLS-1$
+ // fix for issue wsdbu00985096
+ SET + SPACE + DATA_TYPE + SPACE + getDataTypeString(column,column.getTable().getSchema(),quoteIdentifiers,qualifyNames); //$NON-NLS-1$
+ return columnString;
+ }
+
+ public String alterTableAlterColumnDefaultValue(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+ if (!(table instanceof BaseTable)) return null;
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + SPACE + alterColumnDefaultValueClause(column, quoteIdentifiers, qualifyNames);
+ return statement;
+ }
+
+ public String alterColumnDefaultValueClause(Column column, boolean quoteIdentifiers, boolean qualifyNames)
+ {
+ String columnName = column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+
+ String clause=ALTER + SPACE + COLUMN +SPACE + columnName; //$NON-NLS-1$
+ String defaultValue = column.getDefaultValue();
+ if (defaultValue == null || defaultValue.equals("")) { //$NON-NLS-1$
+ clause += " DROP DEFAULT "; //$NON-NLS-1$
+ } else {
+ clause += " SET DEFAULT " + getDefaultValue(column); //$NON-NLS-1$
+ }
+
+ return clause;
+ }
+
+ public String getUpdateColumnNullValues(Column column, String defaultValue, boolean quoteIdentifiers, boolean qualifyNames)
+ {
+ String updateStatement = null;
+ String formattedValue = formatDefaultValue(column.getContainedType(), defaultValue);
+ if (formattedValue != null && !formattedValue.equals("")) {
+ String columnName = column.getName();
+ String tableName = getName(column.getTable(), quoteIdentifiers, qualifyNames);
+ if (quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ updateStatement = COMMENT_DELIMITER + SPACE + UPDATE + SPACE + tableName + SPACE +
+ SET + SPACE + columnName + EQUALS + formattedValue + SPACE +
+ WHERE + SPACE + columnName + SPACE + IS + SPACE + NULL;
+ }
+ return updateStatement;
+ }
+
+ public String alterTableAlterColumnExpression(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+ if(table instanceof BaseTable) return null;
+ String columnName = column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + " ALTER COLUMN " + columnName ; //$NON-NLS-1$
+ ValueExpression v = column.getGenerateExpression();
+ if (v != null && !"".equals(v.getSQL())) {
+ statement +=" SET EXPRESSION AS " + v.getSQL(); //$NON-NLS-1$
+ } else {
+ statement += " DROP EXPRESSION"; //$NON-NLS-1$
+ }
+
+ return statement;
+ }
+
+ public String alterTableAlterColumnIdentity(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ return null;
+ }
+
+ public String alterTableAlterColumnNullable(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = column.getTable();
+ if (!(table instanceof BaseTable)) return null;
+
+ String statement = ALTER + SPACE + TABLE + SPACE + getName(table, quoteIdentifiers, qualifyNames)
+ + SPACE + alterNullableClause(column, quoteIdentifiers, qualifyNames);
+ return statement;
+ }
+
+ public String alterNullableClause(Column column, boolean quoteIdentifiers, boolean qualifyNames)
+ {
+ String columnName = column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ String clause = ALTER + SPACE + COLUMN + SPACE + columnName;
+
+ if(column.isNullable()) {
+ clause += " DROP NOT NULL"; //$NON-NLS-1$
+ } else {
+ clause += " SET NOT NULL"; //$NON-NLS-1$
+ }
+ return clause;
+ }
+
+ public String alterTableAlterProperties(Table table, int propertyType, boolean quoteIdentifiers, boolean qualifyNames) {
+ return null;
+ }
+
+ public String renameTable(Table table, String oldTableName, boolean quoteIdentifiers, boolean qualifyNames) {
+ if (table == null) return null;
+ String schemaName = table.getSchema() != null ? table.getSchema().getName() : "nullschema";
+
+ if(quoteIdentifiers) {
+ oldTableName = this.getDoubleQuotedString(oldTableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ oldTableName = schemaName + DOT + oldTableName;
+ }
+
+ return RENAME + SPACE + oldTableName + SPACE + TO + SPACE + getName(table, quoteIdentifiers, false);
+ }
+
+ public String createIndex(Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = CREATE + SPACE;
+ statement += getIndexTypePrefix(index);
+ statement += INDEX + SPACE + getName(index, quoteIdentifiers, qualifyNames);
+ statement += NEWLINE + TAB + ON + SPACE + getName(index.getTable(), quoteIdentifiers, qualifyNames);
+ statement += getIndexKeyColumns(index, quoteIdentifiers);
+ return statement;
+ }
+
+ public String addCheckConstraint(CheckConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ String checkCondition = this.getAddCheckConstraintClause(constraint, quoteIdentifiers,qualifyNames);
+ if (checkCondition == null) return null;
+ return ALTER + SPACE + this.getOwnerType(constraint) + SPACE + getName(constraint.getBaseTable(), quoteIdentifiers, qualifyNames)
+ + SPACE + checkCondition;
+ }
+
+ public String addUniqueConstraint(UniqueConstraint constraint, boolean quoteIdentifiers, boolean qualifyNames) {
+ String statement = ALTER + SPACE + this.getOwnerType(constraint) + SPACE + getName(constraint.getBaseTable(), quoteIdentifiers, qualifyNames) + SPACE;
+ String uniqueClause = this.getAddUniqueConstraintClause(constraint, quoteIdentifiers,qualifyNames);
+ if (uniqueClause == null) return null; //report error
+ statement += uniqueClause;
+
+ return statement;
+ }
+
+ public String addForeignKey(ForeignKey foreignKey, boolean quoteIdentifiers, boolean qualifyNames) {
+ UniqueConstraint uniqueConstraint = foreignKey.getUniqueConstraint();
+ Index index = foreignKey.getUniqueIndex();
+ Table parentTable = null;
+ String parentKey = null;
+ if(uniqueConstraint != null) {
+ parentTable = uniqueConstraint.getBaseTable();
+ parentKey = this.getKeyColumns(uniqueConstraint,quoteIdentifiers);
+ if (parentKey == null) {
+ // TODO report error
+ return null;
+ }
+ }
+ else if(index != null) {
+ parentTable = index.getTable();
+ parentKey = this.getParentKeyColumns(index, quoteIdentifiers);
+ }
+ if(parentTable == null) {
+ // TODO report error
+ return null;
+ }
+
+ String statement = ALTER + SPACE + this.getOwnerType(foreignKey) + SPACE + getName(foreignKey.getBaseTable(), quoteIdentifiers, qualifyNames)
+ + SPACE + ADD + SPACE + CONSTRAINT + SPACE + getName(foreignKey, quoteIdentifiers,qualifyNames) + SPACE + FOREIGN_KEY;
+ statement += this.getKeyColumns(foreignKey,quoteIdentifiers);
+ statement += NEWLINE + TAB + REFERENCES + SPACE + getName(parentTable, quoteIdentifiers, qualifyNames);
+ statement += parentKey ;
+
+ statement += this.getDeleteReferentialActionAction(foreignKey);
+ statement += this.getUpdateReferentialActionAction(foreignKey);
+
+ if(foreignKey.isDeferrable()) {
+ statement += NEWLINE + TAB + getDeferrableClause(foreignKey);
+ }
+ return statement;
+ }
+
+ public String createRole(Role role, boolean quoteIdentifiers) {
+ String dbName = role.getName();
+ if(quoteIdentifiers) {
+ dbName = this.getDoubleQuotedString(dbName);
+ }
+ String statement = "CREATE ROLE " + dbName; //$NON-NLS-1$ //$NON-NLS-2$
+
+ return statement;
+ }
+
+ public String dropRole(Role role, boolean quoteIdentifiers) {
+ String dbName = role.getName();
+ if(quoteIdentifiers) {
+ dbName = this.getDoubleQuotedString(dbName);
+ }
+ String statement = "DROP ROLE " + dbName; //$NON-NLS-1$ //$NON-NLS-2$
+
+ return statement;
+ }
+
+ public String[] grantOn(Database database, boolean quoteIdentifiers) {
+ return this.getGrantString(database,quoteIdentifiers, false);
+ }
+
+ public String[] grantOn(Schema schema, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(schema,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(table,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(UserDefinedFunction function,boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(function,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(Procedure procedure,boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(procedure,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(sequence,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(index,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(DistinctUserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getGrantString(type,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] grantOn(Role role, boolean quoteIdentifiers) {
+ Vector authVec = new Vector();
+ for (Iterator iter = role.getRoleAuthorization().iterator(); iter.hasNext();) {
+ authVec.add(this.getGrantRoleAuthorizationString((RoleAuthorization)iter.next(), quoteIdentifiers));
+ }
+ String[] authStr = new String[authVec.size()];
+ authVec.copyInto(authStr);
+ return authStr;
+ }
+
+ public String getGrantRoleAuthorizationStatement(RoleAuthorization roleAuth, boolean quoteIdentifiers) {
+ return getGrantRoleAuthorizationString(roleAuth,quoteIdentifiers);
+ }
+
+ public String[] revokeFrom(Database database, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(database,quoteIdentifiers,false);
+ }
+
+ public String[] revokeFrom(Schema schema, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(schema,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] revokeFrom(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(table,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] revokeFrom(UserDefinedFunction function,boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(function,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] revokeFrom(Procedure procedure,boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(procedure,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] revokeFrom(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(sequence,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] revokeFrom(Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(index,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] revokeFrom(DistinctUserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ return this.getRevokeString(type,quoteIdentifiers,qualifyNames);
+ }
+
+ public String[] revokeFrom(Role role, boolean quoteIdentifiers) {
+ Vector authVec = new Vector();
+ for (Iterator iter = role.getRoleAuthorization().iterator(); iter.hasNext();) {
+ authVec.add(this.getRevokeRoleAuthorizationString((RoleAuthorization)iter.next(), quoteIdentifiers));
+ }
+ String[] authStr = new String[authVec.size()];
+ authVec.copyInto(authStr);
+ return authStr;
+ }
+
+ public String getRevokeRoleAuthorizationStatement(RoleAuthorization roleAuth, boolean quoteIdentifiers) {
+ return getRevokeRoleAuthorizationString(roleAuth,quoteIdentifiers);
+}
+
+ public String createTableCodetemplate(Table table, int appliedType, boolean isProlog, Map patternMap){
+ if (!patternMap.containsKey("Table")) return null;
+ CodeTemplateContextPattern pattern = (CodeTemplateContextPattern) patternMap.get("Table");
+
+ if ((pattern.getAppliedType() & appliedType) != appliedType) return null;
+
+ final DatabaseDefinition databaseDefinition = IBMPluginActivator.getInstance().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(table.getSchema()));
+ String terminator = databaseDefinition.getSQLTerminationCharacter();
+
+ if (appliedType == DdlGenerationUtility.GENERATE_CREATE_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getCreateProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",table.getSchema().getName());
+ prolog = prolog.replaceAll("\\{table\\}",table.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ };
+ } else {
+ String postlog = pattern.getCreatePostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",table.getSchema().getName());
+ postlog = postlog.replaceAll("\\{table\\}",table.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ } else if (appliedType == DdlGenerationUtility.GENERATE_DROP_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getDropProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",table.getSchema().getName());
+ prolog = prolog.replaceAll("\\{table\\}",table.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ }
+ } else {
+ String postlog = pattern.getDropPostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",table.getSchema().getName());
+ postlog = postlog.replaceAll("\\{table\\}",table.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ }
+ return null;
+ }
+
+ public String createRoutineCodetemplate(Routine routine, int appliedType, boolean isProlog, Map patternMap){
+ if (!patternMap.containsKey("Routine")) return null;
+ CodeTemplateContextPattern pattern = (CodeTemplateContextPattern) patternMap.get("Routine");
+
+ if ((pattern.getAppliedType() & appliedType) != appliedType) return null;
+
+ final DatabaseDefinition databaseDefinition = IBMPluginActivator.getInstance().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(routine.getSchema()));
+ String terminator = databaseDefinition.getSQLTerminationCharacter();
+
+ if (appliedType == DdlGenerationUtility.GENERATE_CREATE_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getCreateProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",routine.getSchema().getName());
+ prolog = prolog.replaceAll("\\{routine\\}",routine.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ };
+ } else {
+ String postlog = pattern.getCreatePostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",routine.getSchema().getName());
+ postlog = postlog.replaceAll("\\{routine\\}",routine.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ } else if (appliedType == DdlGenerationUtility.GENERATE_DROP_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getDropProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",routine.getSchema().getName());
+ prolog = prolog.replaceAll("\\{routine\\}",routine.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ }
+ } else {
+ String postlog = pattern.getDropPostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",routine.getSchema().getName());
+ postlog = postlog.replaceAll("\\{routine\\}",routine.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ }
+ return null;
+ }
+
+ public String createConstraintCodetemplate(TableConstraint constraint, int appliedType, boolean isProlog, Map patternMap){
+ if (!patternMap.containsKey("Constraint")) return null;
+ CodeTemplateContextPattern pattern = (CodeTemplateContextPattern) patternMap.get("Constraint");
+
+ if ((pattern.getAppliedType() & appliedType) != appliedType) return null;
+
+ final DatabaseDefinition databaseDefinition = IBMPluginActivator.getInstance().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(constraint.getBaseTable().getSchema()));
+ String terminator = databaseDefinition.getSQLTerminationCharacter();
+
+ if (appliedType == DdlGenerationUtility.GENERATE_CREATE_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getCreateProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",constraint.getBaseTable().getSchema().getName());
+ prolog = prolog.replaceAll("\\{table\\}",constraint.getBaseTable().getName());
+ prolog = prolog.replaceAll("\\{constraint\\}",constraint.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ };
+ } else {
+ String postlog = pattern.getCreatePostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",constraint.getBaseTable().getSchema().getName());
+ postlog = postlog.replaceAll("\\{table\\}",constraint.getBaseTable().getName());
+ postlog = postlog.replaceAll("\\{constraint\\}",constraint.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ } else if (appliedType == DdlGenerationUtility.GENERATE_DROP_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getDropProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",constraint.getBaseTable().getSchema().getName());
+ prolog = prolog.replaceAll("\\{table\\}",constraint.getBaseTable().getName());
+ prolog = prolog.replaceAll("\\{constraint\\}",constraint.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ }
+ } else {
+ String postlog = pattern.getDropPostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",constraint.getBaseTable().getSchema().getName());
+ postlog = postlog.replaceAll("\\{table\\}",constraint.getBaseTable().getName());
+ postlog = postlog.replaceAll("\\{constraint\\}",constraint.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ }
+ return null;
+ }
+
+ public String createViewCodetemplate(ViewTable view, int appliedType, boolean isProlog, Map patternMap){
+ if (!patternMap.containsKey("View")) return null;
+ CodeTemplateContextPattern pattern = (CodeTemplateContextPattern) patternMap.get("View");
+
+ if ((pattern.getAppliedType() & appliedType) != appliedType) return null;
+
+ final DatabaseDefinition databaseDefinition = IBMPluginActivator.getInstance().getDatabaseDefinitionRegistry().getDefinition(ModelHelper.getDatabase(view.getSchema()));
+ String terminator = databaseDefinition.getSQLTerminationCharacter();
+
+ if (appliedType == DdlGenerationUtility.GENERATE_CREATE_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getCreateProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",view.getSchema().getName());
+ prolog = prolog.replaceAll("\\{view\\}",view.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ };
+ } else {
+ String postlog = pattern.getCreatePostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",view.getSchema().getName());
+ postlog = postlog.replaceAll("\\{view\\}",view.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ } else if (appliedType == DdlGenerationUtility.GENERATE_DROP_PATTERN) {
+ if (isProlog) {
+ String prolog = pattern.getDropProlog();
+ if (prolog != null) {
+ prolog = prolog.replaceAll("\\{schema\\}",view.getSchema().getName());
+ prolog = prolog.replaceAll("\\{view\\}",view.getName());
+ prolog = prolog.replaceAll("\\{terminator\\}",terminator);
+ return prolog;
+ }
+ } else {
+ String postlog = pattern.getDropPostlog();
+ if (postlog != null) {
+ postlog = postlog.replaceAll("\\{schema\\}",view.getSchema().getName());
+ postlog = postlog.replaceAll("\\{view\\}",view.getName());
+ postlog = postlog.replaceAll("\\{terminator\\}",terminator);
+ return postlog;
+ }
+ }
+ }
+ return null;
+ }
+
+
+ protected String getDeferrableClause(Constraint constraint) {
+ String clause = null;
+ if(constraint.isDeferrable()) {
+ clause = DEFERRABLE;
+ if(constraint.isInitiallyDeferred()) {
+ clause += SPACE + INITIALLY + SPACE + DEFERRED;
+ }
+ }
+ return clause;
+ }
+
+ protected String getReferentialAction(ReferentialActionType action) {
+ if(action == ReferentialActionType.CASCADE_LITERAL) {
+ return CASCADE;
+ }
+ else if(action == ReferentialActionType.RESTRICT_LITERAL) {
+ return RESTRICT;
+ }
+ else if(action == ReferentialActionType.SET_DEFAULT_LITERAL) {
+ return SET + SPACE + DEFAULT;
+ }
+ else if(action == ReferentialActionType.SET_NULL_LITERAL) {
+ return SET + SPACE + NULL;
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ protected String getViewColumnList(ViewTable view, boolean quoteIdentifiers) {
+ String columns = null;
+ Iterator it = view.getColumns().iterator();
+ if(it.hasNext()) {
+ Column c = (Column) it.next();
+ columns = c.getName();
+ if (quoteIdentifiers) {
+ columns = this.getDoubleQuotedString(columns);
+ }
+ }
+ else {
+ return null;
+ }
+
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ String columnName = c.getName();
+ if (quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ columns += COMMA + SPACE + columnName;
+ }
+
+ return columns;
+ }
+
+ protected String getColumnNameString(Column column, boolean quoteIdentifiers,boolean qualifyNames) {
+ String columnName = column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ return columnName;
+ }
+
+ protected String getAlterTableAddColumnColumnString(Column column, boolean quoteIdentifiers,boolean qualifyNames) {
+ return getColumnString(column,quoteIdentifiers,qualifyNames);
+ }
+
+ protected String getColumnString(Column column, boolean quoteIdentifiers,boolean qualifyNames) {
+ String columnName = column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+
+ // String columnString = columnName + SPACE + getDataTypeString(column, column.getTable().getSchema(),qualifyNames);
+ // fix for issue wsdbu00985096
+ String columnString = columnName + SPACE + getDataTypeString(column,column.getTable().getSchema(),quoteIdentifiers,qualifyNames);
+ String defaultValue = this.getDefaultValue(column);
+ if (defaultValue != null && !defaultValue.equals(EMPTY_STRING)) {
+ columnString = columnString + SPACE + DEFAULT + SPACE + defaultValue;
+ }
+
+ if(!column.isNullable()) {
+ columnString = columnString + SPACE + NOT + SPACE + NULL;
+ }
+
+ return columnString;
+ }
+
+ protected String getAddUniqueConstraintClause(UniqueConstraint constraint, boolean quoteIdentifiers) {
+ return this.getAddUniqueConstraintClause(constraint, quoteIdentifiers, false);
+ }
+
+ protected String getAddUniqueConstraintClause(UniqueConstraint constraint, boolean quoteIdentifiers,boolean qualifyNames) {
+ String constraintName = getName(constraint, quoteIdentifiers, qualifyNames);
+
+ String text = ADD + SPACE + CONSTRAINT + SPACE + constraintName
+ + SPACE + getUniqueConstraintType(constraint);
+
+ String keyList = this.getKeyColumns(constraint,quoteIdentifiers);
+
+ if (keyList == null){
+ //report error
+ return null;
+ }
+
+ text += keyList;
+
+ if(constraint.isDeferrable()) {
+ text += SPACE + getDeferrableClause(constraint);
+ }
+ return text;
+ }
+
+ protected String getUniqueConstraintType(UniqueConstraint constraint) {
+ if(constraint instanceof PrimaryKey) {
+ return PRIMARY_KEY;
+ }
+ return UNIQUE;
+ }
+
+ protected String getAddCheckConstraintClause(CheckConstraint constraint, boolean quoteIdentifiers) {
+ String constraintName = getName(constraint, quoteIdentifiers);
+
+ SearchCondition searchCondition = constraint.getSearchCondition();
+ if (searchCondition == null) return null;
+ String text = ADD + SPACE + CONSTRAINT + SPACE + constraintName + SPACE + CHECK
+ + SPACE + LEFT_PARENTHESIS + searchCondition.getSQL() + RIGHT_PARENTHESIS;
+ if(constraint.isDeferrable()) {
+ text += SPACE + getDeferrableClause(constraint);
+ }
+ return text;
+ }
+
+ protected String getAddCheckConstraintClause(CheckConstraint constraint, boolean quoteIdentifiers,boolean qualifyNames) {
+ String constraintName = getName(constraint, quoteIdentifiers,false);
+
+ SearchCondition searchCondition = constraint.getSearchCondition();
+ if (searchCondition == null) return null;
+ String text = ADD + SPACE + CONSTRAINT + SPACE + constraintName + SPACE + CHECK
+ + SPACE + LEFT_PARENTHESIS + searchCondition.getSQL() + RIGHT_PARENTHESIS;
+ if(constraint.isDeferrable()) {
+ text += SPACE + getDeferrableClause(constraint);
+ }
+ return text;
+ }
+
+ protected String getKeyColumns(ReferenceConstraint constraint, boolean quoteIdentifiers) {
+ String columns = NEWLINE + TAB + LEFT_PARENTHESIS;
+ Iterator it = constraint.getMembers().iterator();
+ if(it.hasNext()) {
+ Column c = (Column) it.next();
+ String colName = c.getName();
+ if (quoteIdentifiers) {
+ colName = this.getDoubleQuotedString(colName);
+ }
+ columns += colName;
+ }
+ else {
+ // TODO report error
+ return null;
+ }
+
+ while(it.hasNext()) {
+ Column c = (Column) it.next();
+ String colName = c.getName();
+ if (quoteIdentifiers) {
+ colName = this.getDoubleQuotedString(colName);
+ }
+ columns += COMMA;
+ columns += NEWLINE + TAB + SPACE + colName;
+ }
+
+ columns += RIGHT_PARENTHESIS;
+ return columns;
+ }
+
+ protected String getIndexKeyColumns(Index index, boolean quoteIdentifiers) {
+ String columns = NEWLINE + TAB + LEFT_PARENTHESIS;
+ Iterator it = index.getMembers().iterator();
+ if(it.hasNext()) {
+ String keyMemberString = null;
+ IndexMember m = (IndexMember) it.next();
+ Column column = m.getColumn();
+ if (column != null) {
+ keyMemberString = getIndexKeyColumnName(index, column, quoteIdentifiers);
+ }
+ else {
+ if (m.getExpression() != null) {
+ keyMemberString = m.getExpression().getSql();
+ }
+ }
+ columns += keyMemberString + this.getIncrementTypeString(m);
+ }
+ else {
+ // TODO report error
+ return null;
+ }
+
+ while(it.hasNext()) {
+ String keyMemberString = null;
+ IndexMember m = (IndexMember) it.next();
+ Column column = m.getColumn();
+ if (column != null) {
+ keyMemberString = getIndexKeyColumnName(index, column, quoteIdentifiers);
+ }
+ else {
+ if (m.getExpression() != null) {
+ keyMemberString = m.getExpression().getSql();
+ }
+ }
+ columns += COMMA;
+ columns += NEWLINE+ TAB + SPACE + SPACE + keyMemberString + this.getIncrementTypeString(m);
+ }
+ columns += RIGHT_PARENTHESIS;
+ return columns;
+ }
+
+ /**
+ * Get the name of the column for use in the create index statement key members list
+ *
+ * @param column An index key column
+ * @param quoteIdentifiers Delimit identifiers if true
+ * @return String containing the name of the column
+ */
+ protected String getIndexKeyColumnName(Index index, Column column, boolean quoteIdentifiers) {
+ String keyMemberString;
+ keyMemberString = column.getName();
+ if (quoteIdentifiers) {
+ keyMemberString = this.getDoubleQuotedString(keyMemberString);
+ }
+ return keyMemberString;
+ }
+
+ protected String getParentKeyColumns(Index index, boolean quoteIdentifiers) {
+ String columns = NEWLINE + TAB + LEFT_PARENTHESIS;
+ Iterator it = index.getMembers().iterator();
+ if(it.hasNext()) {
+ IndexMember m = (IndexMember) it.next();
+ Column column = m.getColumn();
+ if (column != null) {
+ String columnName = column.getName();
+ if(quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ columns += columnName;
+ }
+ else {
+ return null;
+ }
+ }
+ else {
+ // TODO report error
+ return null;
+ }
+
+ while(it.hasNext()) {
+ IndexMember m = (IndexMember) it.next();
+ Column column = m.getColumn();
+ if (column != null) {
+ String columnName = column.getName();
+ if (quoteIdentifiers) {
+ columnName = this.getDoubleQuotedString(columnName);
+ }
+ columns += COMMA;
+ columns += NEWLINE + TAB +SPACE + SPACE + columnName;
+ }
+ else {
+ return null;
+ }
+ }
+ columns += RIGHT_PARENTHESIS;
+ return columns;
+ }
+
+ protected String getRoutineSpecifier(SQLObject obj, boolean quoteIdentifiers, boolean qualifyNames) {
+ String name;
+ Routine routine = (Routine)obj;
+ Schema schema = routine.getSchema();
+ name = getName(routine, quoteIdentifiers, qualifyNames);
+ name += "("; //$NON-NLS-1$
+ Iterator it = routine.getParameters().iterator();
+ while (it.hasNext()) {
+ Parameter parm = (Parameter)it.next();
+ //name += getDataTypeString(parm, schema, qualifyNames) + (it.hasNext()?",":""); //$NON-NLS-1$ //$NON-NLS-2$
+ // fix for issue wsdbu00985096
+ name += getDataTypeString(parm,schema,quoteIdentifiers,qualifyNames) + (it.hasNext()?",":""); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ name += ")"; //$NON-NLS-1$
+ return name;
+ }
+
+ public String getParameterString(Parameter parameter, Schema schema, boolean qualifyNames) {
+ return getDataTypeString(parameter, schema, qualifyNames);
+ }
+
+ /**
+ * Get the string for the row data type fields. Subclass can override
+ * this method to provide the database manager specific string.
+ * This method was created for the compare and sync to compare row data type fields.
+ * @param type A row data type object
+ * @return The string for the fields of the row data type.
+ */
+ public String getRowDataTypeFields(DataType type) {
+ return null;
+ }
+
+ //(JYEH)This method was created for the compare and sync to compare data type strings.
+ public String getObjectDataTypeString(TypedElement typedElement) {
+ return getDataTypeStringIgnoreDomain(typedElement, null, true, null);
+ }
+
+ public String getObjectDataTypeString(TypedElement typedElement, SQLDataType type) {
+ return getDataTypeStringIgnoreDomain(typedElement, null, true, type);
+ }
+
+ //(JYEH)The default implementation returns the data type string without considering the domains. This is required by
+ //the getObjectDataTypeString(TypedElement) method which is used by the compare and sync editor.
+ protected String getDataTypeString(TypedElement typedElement, Schema schema,boolean qualifyNames) {
+ return getDataTypeStringIgnoreDomain(typedElement, schema, qualifyNames, null);
+ }
+
+ private String getDataTypeStringIgnoreDomain(TypedElement typedElement,
+ Schema schema, boolean qualifyNames, SQLDataType type) {
+ SQLDataType containedType = null;
+ if (type != null) {
+ containedType = type;
+ }
+ else {
+ containedType = typedElement.getContainedType();
+ }
+ if(containedType != null) {
+ if(containedType instanceof PredefinedDataType) {
+ EObject root = ContainmentServiceImpl.INSTANCE.getRootElement(typedElement);
+ if(root instanceof Database) {
+ DatabaseDefinition def = DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition((Database) root);
+ return def.getPredefinedDataTypeFormattedName((PredefinedDataType) containedType) + this.getCharacterSetString(containedType);
+ }
+ }
+ }
+ else {
+ UserDefinedType referencedType = typedElement.getReferencedType();
+ if(referencedType != null) {
+ if (referencedType.getSchema() != schema || qualifyNames) {
+ return this.getName(referencedType,false, true);
+ } else {
+ return referencedType.getName();
+ }
+ }
+ }
+ return null;
+ }
+
+ protected String getDataTypeString(TypedElement typedElement, Schema schema,boolean quoteIdentifiers,boolean qualifyNames) {
+ SQLDataType containedType = typedElement.getContainedType();
+ if(containedType != null) {
+ if(containedType instanceof PredefinedDataType) {
+ EObject root = ContainmentServiceImpl.INSTANCE.getRootElement(typedElement);
+ if(root instanceof Database) {
+ DatabaseDefinition def = DatabaseDefinitionRegistryImpl.INSTANCE.getDefinition((Database) root);
+ return def.getPredefinedDataTypeFormattedName((PredefinedDataType) containedType) + this.getCharacterSetString(containedType);
+ }
+ }
+ }
+ else {
+ UserDefinedType referencedType = typedElement.getReferencedType();
+ if(referencedType != null) {
+ if (referencedType.getSchema() != schema || qualifyNames) {
+ return this.getName(referencedType,quoteIdentifiers, true);
+ } else {
+ return this.getName(referencedType,quoteIdentifiers, false);
+ }
+ }
+ }
+ return null;
+ }
+
+ public String getPredefinedTypeCharacterSetString (PredefinedDataType type) {
+ return getCharacterSetString(type);
+ }
+
+ protected String getCharacterSetString(SQLDataType type){
+ return "";
+ }
+ protected String getDomainTypeString(TypedElement typedElement, Schema schema,boolean qualifyNames) {
+ TypedElementLogicalDomainProvider elementDomainProvider = DdlGenerationUtility.getElementDomainProvider();
+ if (elementDomainProvider != null) {
+ if(elementDomainProvider.hasDomain(typedElement)) {
+ String domainType = elementDomainProvider.getDomainBaseType(typedElement);
+ if ("".equals(domainType)) return null;
+ return domainType;
+ }
+ }
+ return null;
+ }
+
+
+ protected String getName(TableConstraint constraint, boolean quoteIdentifiers) {
+ String name = constraint.getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ }
+
+ return name;
+ }
+
+ protected String getName(TableConstraint constraint, boolean quoteIdentifiers,boolean qualifyNames) {
+ return this.getName(constraint, quoteIdentifiers);
+ }
+
+ protected String getTableConstraintName(TableConstraint constraint, boolean quoteIdentifiers,boolean qualifyNames) {
+ String name = constraint.getName();
+ String tableName = constraint.getBaseTable().getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ tableName = this.getDoubleQuotedString(tableName);
+ }
+ if(qualifyNames) {
+ name = tableName + DOT + name;
+ }
+
+ return name;
+ }
+
+ protected String getName(Column column, boolean quoteIdentifiers, boolean qualifyNames) {
+ String name = column.getName();
+ String tableName = column.getTable().getName();
+ String schemaName = column.getTable().getSchema().getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ name = schemaName + DOT + tableName + DOT + name;
+ }
+
+ return name;
+ }
+
+ protected String getName(Trigger trigger, boolean quoteIdentifiers, boolean qualifyNames) {
+ String name = trigger.getName();
+ Schema schema = trigger.getSchema() ==null? trigger.getSubjectTable().getSchema():trigger.getSchema();
+ String schemaName = schema.getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ name = schemaName + DOT + name;
+ }
+
+ return name;
+ }
+
+ protected String getName(Routine routine, boolean quoteIdentifiers, boolean qualifyNames) {
+ String name = routine.getName();
+ String schemaName = routine.getSchema().getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ if(qualifyNames) {
+ name = schemaName + DOT + name;
+ }
+
+ return name;
+ }
+
+ protected String getName(Index index, boolean quoteIdentifiers, boolean qualifyNames) {
+ Table table = index.getTable();
+
+ String indexName = index.getName();
+ Schema schema = index.getSchema();
+ if (schema == null) {
+ schema = table.getSchema();
+ }
+ String schemaName = schema.getName();
+ if(quoteIdentifiers) {
+ indexName = this.getDoubleQuotedString(indexName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ indexName = schemaName + DOT + indexName;
+ }
+ return indexName;
+ }
+
+ protected String getName(Database database, boolean quoteIdentifiers) {
+ String name = database.getName();
+
+ if(quoteIdentifiers) {
+ name = this.getDoubleQuotedString(name);
+ }
+
+ return name;
+ }
+
+ protected String getName(AuthorizationIdentifier auth, boolean quoteIdentifiers) {
+ String name = auth.getName();
+
+ if(quoteIdentifiers && !name.equals("PUBLIC")) { // $NON-NLS-1$
+ name = this.getDoubleQuotedString(name);
+ }
+
+ return name;
+ }
+
+ protected String getName(Schema schema, boolean quoteIdentifiers, boolean qualifyNames) {
+ String schemaName = schema.getName();
+
+ if(quoteIdentifiers) {
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ return schemaName;
+ }
+
+ protected String getName(Table table, boolean quoteIdentifiers, boolean qualifyNames) {
+ String tableName = table.getName();
+ String schemaName = table.getSchema() != null ? table.getSchema().getName() : "nullschema";
+ if (table.getSchema() == null) {
+ IBMPluginActivator.getInstance().writeLog(IStatus.ERROR, 0, "Table " + tableName + " does not have a schema. The table name will be qualified with \"nullschema\" in the DDL for now.", null);
+ }
+
+ if(quoteIdentifiers) {
+ tableName = this.getDoubleQuotedString(tableName);
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+
+ if(qualifyNames) {
+ tableName = schemaName + DOT + tableName;
+ }
+
+ return tableName;
+ }
+
+ protected String getName(Sequence sequence, boolean quoteIdentifiers, boolean qualifyNames) {
+ String sequenceName = sequence.getName();
+ String schemaName = sequence.getSchema() != null ? sequence.getSchema().getName() : null;
+
+ if (schemaName == null) {
+ IBMPluginActivator.getInstance().writeLog(IStatus.ERROR, 0, "Sequence " + sequence + " does not have a schema. The sequence name will not be qualified in the DDL.", null);
+ }
+
+ if(quoteIdentifiers) {
+ sequenceName = this.getDoubleQuotedString(sequenceName);
+ if (schemaName != null) {
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ }
+
+ if(qualifyNames && schemaName != null) {
+ sequenceName = schemaName + DOT + sequenceName;
+ }
+
+ return sequenceName;
+ }
+
+ protected String getName(UserDefinedType type, boolean quoteIdentifiers, boolean qualifyNames) {
+ String typeName = type.getName();
+ String schemaName = type.getSchema() != null ? type.getSchema().getName() : null;
+
+ if (schemaName == null) {
+ IBMPluginActivator.getInstance().writeLog(IStatus.ERROR, 0, "User-defined type " + type + " does not have a schema. The user-defined type name will not be qualified in the DDL.", null);
+ }
+
+ if(quoteIdentifiers) {
+ typeName = this.getDoubleQuotedString(typeName);
+ if (schemaName != null) {
+ schemaName = this.getDoubleQuotedString(schemaName);
+ }
+ }
+
+ if(qualifyNames && schemaName != null) {
+ typeName = schemaName + DOT + typeName;
+ }
+
+ return typeName;
+ }
+
+ protected String ensureSingleQuotedString(String original) {
+ if (original == null) return null;
+ if (original.startsWith(SINGLE_QUOTE) &&
+ original.endsWith(SINGLE_QUOTE))
+ return original;
+ return getSingleQuotedString(original);
+ }
+
+ protected String getSingleQuotedString(String orignal) {
+ String result = orignal;
+ if ( orignal.startsWith( SINGLE_QUOTE )
+ && orignal.endsWith( SINGLE_QUOTE ) ) {
+ result= orignal.substring(1,orignal.length()-1);
+ }
+
+ result = result.replaceAll(SINGLE_QUOTE,SINGLE_QUOTE + SINGLE_QUOTE);
+ return SINGLE_QUOTE + result + SINGLE_QUOTE;
+
+ }
+
+ protected String getDoubleQuotedString(String orignal) {
+ orignal = orignal.replaceAll(DOUBLE_QUOTE,DOUBLE_QUOTE + DOUBLE_QUOTE);
+ String result = orignal;
+ return DOUBLE_QUOTE + result + DOUBLE_QUOTE;
+ }
+
+ public static String makeCharacterConstant( String constant )
+ {
+ StringBuffer work = new StringBuffer( constant );
+ int pos = 0;
+ while ( 0 <= (pos = work.indexOf( "'", pos )) ) //$NON-NLS-1$
+ {
+ work.insert( pos, '\'' );
+ pos += 2;
+ }
+ work.insert( 0, '\'' );
+ work.append( '\'' );
+ return work.toString();
+ }
+
+ protected String getOwnerType(TableConstraint constraint){
+ return TABLE;
+ }
+
+ public static RoutineDdlBuilder getRoutineDdlBuilder(String dbProduct, String dbVersion) {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "routineDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("builder")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(!product.equals(dbProduct)) continue;
+ String version = configElements[j].getAttribute("version"); //$NON-NLS-1$
+ if(!version.equals(dbVersion)) continue;
+ try {
+ routineDdlBuilder = (RoutineDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the routine ddl builder for " + product + " "+ version, e); //$NON-NLS-1$ //$NON-NLS-2$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return routineDdlBuilder;
+ }
+
+ public boolean isImplicitPK (TableConstraint constraint) {
+ return (constraint instanceof PrimaryKey) && !constraint.isEnforced();
+ }
+
+ protected String getDefaultValue(Column column) {
+ String defaultValue = column.getDefaultValue();
+ SQLDataType type = column.getContainedType();
+ return formatDefaultValue(type, defaultValue);
+ }
+
+ protected String formatDefaultValue(SQLDataType type, String defaultValue) {
+ if (defaultValue == null || defaultValue.equals("")) return null;
+ if (type == null) return null;
+ if (type instanceof CharacterStringDataType
+ || type instanceof DateDataType || type instanceof TimeDataType) {
+ return this.getSingleQuotedString(defaultValue);
+ }
+ else
+ return defaultValue;
+ }
+
+ protected String[] getGrantString(SQLObject sqlObject,boolean quoteIdentifiers,boolean qualifyNames) {
+ Vector grantVec = new Vector();
+ Iterator iter = sqlObject.getPrivileges().iterator();
+ while (iter.hasNext()) {
+ Privilege privilege = (Privilege) iter.next();
+ String statement = this.getGrantPrivilegeStatement(privilege, quoteIdentifiers, qualifyNames);
+ if (statement != null) {
+ grantVec.add(this.getGrantPrivilegeStatement(privilege, quoteIdentifiers, qualifyNames));
+ }
+ }
+
+ String[] grantStr = new String[grantVec.size()];
+ grantVec.copyInto(grantStr);
+ return grantStr;
+ }
+
+ protected String[] getRevokeString(SQLObject sqlObject,boolean quoteIdentifiers,boolean qualifyNames) {
+ Vector revokeVec = new Vector();
+ Iterator iter = sqlObject.getPrivileges().iterator();
+ while (iter.hasNext()) {
+ Privilege privilege = (Privilege) iter.next();
+ String statement = this.getGrantPrivilegeStatement(privilege, quoteIdentifiers, qualifyNames);
+ if (statement != null) {
+ revokeVec.add(this.getRevokePrivilegeStatement(privilege, quoteIdentifiers, qualifyNames));
+ }
+ }
+
+ String[] revokeStr = new String[revokeVec.size()];
+ revokeVec.copyInto(revokeStr);
+ return revokeStr;
+ }
+
+ public String getGrantPrivilegeStatement(Privilege privilege,boolean quoteIdentifiers,boolean qualifyNames) {
+ if (this.isDDLSupressable(privilege)) return null;
+ String ret = GRANT + SPACE + privilege.getAction() + SPACE + ON + SPACE
+ + getPrivilegedObjectTypeString(privilege) + SPACE
+ + getPrivilegedObjectName(privilege, quoteIdentifiers, qualifyNames)
+ + SPACE + TO + SPACE + getGranteeSubstring(privilege.getGrantee(), quoteIdentifiers);
+ if (privilege.isGrantable()) ret += SPACE + WITH + SPACE + GRANT + SPACE + OPTION;
+ return ret;
+ }
+
+ public String getRevokePrivilegeStatement(Privilege privilege,boolean quoteIdentifiers,boolean qualifyNames) {
+ if (this.isDDLSupressable(privilege)) return null;
+ String ret = REVOKE + SPACE + privilege.getAction() + SPACE + ON + SPACE
+ + getPrivilegedObjectTypeString(privilege) + SPACE
+ + getPrivilegedObjectName(privilege, quoteIdentifiers, qualifyNames)
+ + SPACE + FROM + SPACE + getGranteeSubstring(privilege.getGrantee(), quoteIdentifiers);
+ return ret;
+ }
+
+ protected String getGranteeSubstring(AuthorizationIdentifier authId, boolean quoteIdentifiers) {
+ return getName(authId,quoteIdentifiers);
+ }
+
+ protected String getPrivilegedObjectName(Privilege privilege, boolean quoteIdentifiers, boolean qualifyNames) {
+ SQLObject obj = privilege.getObject();
+ String name = null;
+ if (obj instanceof Table) name = getName((Table)obj, quoteIdentifiers, qualifyNames);
+ if (obj instanceof Index) name = getName((Index)obj, quoteIdentifiers, qualifyNames);
+ if (obj instanceof Sequence) name = getName((Sequence)obj, quoteIdentifiers, qualifyNames);
+ if (obj instanceof Schema) name = getName((Schema)obj, quoteIdentifiers, qualifyNames);
+ if (obj instanceof Routine) name = getName((Routine)obj, quoteIdentifiers, qualifyNames);
+ if (obj instanceof UserDefinedType) name = getName((UserDefinedType)obj, quoteIdentifiers, qualifyNames);
+ if (obj instanceof Database) name = "";
+ return name;
+ }
+
+ protected String getPrivilegedObjectTypeString(Privilege privilege) {
+ SQLObject obj = privilege.getObject();
+ if (obj instanceof BaseTable) return TABLE;
+ if (obj instanceof ViewTable) return TABLE;
+ if (obj instanceof Index) return INDEX;
+ if (obj instanceof Schema) return SCHEMA;
+ if (obj instanceof Sequence) return SEQUENCE;
+ if (obj instanceof UserDefinedType) return TYPE;
+ if (obj instanceof Database) return DATABASE;
+ return EMPTY_STRING;
+ }
+
+ protected String getGrantRoleAuthorizationString(RoleAuthorization roleAuth, boolean quoteIdentifiers) {
+ String authStr = NEWLINE + GRANT + SPACE + this.getName(roleAuth.getRole(), quoteIdentifiers)
+ + SPACE + TO + this.getGranteeType(roleAuth.getGrantee()) + SPACE + this.getName(roleAuth.getGrantee(), quoteIdentifiers);
+ if (roleAuth.isGrantable()) {
+ authStr += SPACE + WITH + SPACE + GRANT + SPACE + OPTION;
+ }
+ return authStr;
+ }
+
+
+ protected String getRevokeRoleAuthorizationString(RoleAuthorization roleAuth, boolean quoteIdentifiers) {
+ String authStr = NEWLINE + REVOKE + SPACE + this.getName(roleAuth.getRole(), quoteIdentifiers)
+ + SPACE + FROM + this.getGranteeType(roleAuth.getGrantee()) + SPACE + this.getName(roleAuth.getGrantee(), quoteIdentifiers);
+ return authStr;
+ }
+
+ protected String getGranteeType(AuthorizationIdentifier authID){
+ return "";
+ }
+
+ protected String getIndexTypePrefix(Index index) {
+ if(index.isUnique()) {
+ return UNIQUE + SPACE;
+ }
+ return EMPTY_STRING;
+ }
+
+ private IEngineeringCallBack getDummyEngineeringCallBack(){
+ if (this.dummyCallback == null) this.dummyCallback = new dummyEngineeringCallBack();
+ return dummyCallback;
+ }
+
+ public class dummyEngineeringCallBack implements IEngineeringCallBack {
+ public String[] getMessages(){
+ return new String[]{};
+ }
+
+ public void writeMessage(String message) {
+ }
+ }
+
+ protected boolean isDDLSupressable(Privilege privilege) {
+ return AccessControlUtilities.isDDLSuppressable(privilege);
+ }
+
+ protected String getDeleteReferentialActionAction(ForeignKey foreignKey){
+ String statement="";
+ ReferentialActionType action = foreignKey.getOnDelete();
+ if(action != ReferentialActionType.NO_ACTION_LITERAL) {
+ statement += NEWLINE + TAB + ON + SPACE + DELETE + SPACE + getReferentialAction(action);
+ }
+ return statement;
+ }
+
+ protected String getUpdateReferentialActionAction(ForeignKey foreignKey){
+ String statement="";
+ ReferentialActionType action = foreignKey.getOnUpdate();
+ if(action != ReferentialActionType.NO_ACTION_LITERAL) {
+ statement += NEWLINE + TAB + ON + SPACE + UPDATE + SPACE + getReferentialAction(action);
+ }
+ return statement;
+ }
+
+ protected String getIncrementTypeString(IndexMember m) {
+ return TAB + TAB + m.getIncrementType().getName();
+ }
+
+ protected String getSystemGrantMessage(String action,Privilege privilege,boolean quoteIdentifiers,boolean qualifyNames) {
+ StringBuffer msg = new StringBuffer();
+ if (action.equals(GRANT)) msg.append(DdlGenerationMessages.GRANT_NOT_ALLOWED);
+ if (action.equals(REVOKE)) msg.append(DdlGenerationMessages.REVOKE_NOT_ALLOWED);
+ if (msg.length() == 0) return null;
+ msg.append(COLON + SPACE);
+ msg.append(privilege.getAction());
+ msg.append(SPACE + ON + SPACE);
+ msg.append(getPrivilegedObjectName(privilege, quoteIdentifiers, qualifyNames));
+ return msg.toString();
+ }
+
+ protected String getAttrString(AttributeDefinition attr, Schema schema,
+ boolean qualifyNames) {
+ String typeName = getDataTypeString(attr,schema,qualifyNames);
+ String statement = attr.getName() + SPACE + typeName;
+ return statement;
+ }
+
+ public String getAttrString(AttributeDefinition attr, Schema schema) {
+ return this.getAttrString(attr, schema, false);
+ }
+
+ //For certain objects, like SQL procedure, we get DDL source from catalog, which is
+ //same as what user originally specified on CREATE. This DDL can have the case that
+ //name is not qualified with schema. Per DB2 customer request, we re-parse DDL
+ //and qualify name with schema as required by Generate DDL option. So far, we only
+ //fix this for oracle SQL function and procedure when they are existing objects
+ //of the database server.
+ protected String getNameQualifiedWithSchema(String ddlSource, Routine routine, boolean quoteIdentifiers, boolean qualifyNames)
+ {
+ Schema schema = routine.getSchema();
+ String name = routine.getName();
+ if ( ddlSource == null //
+ || ddlSource.trim().isEmpty() //
+ || !( routine instanceof ICatalogObject ) //
+ || schema == null //
+ || schema.getName() == null //
+ || schema.getName().trim().isEmpty() //
+ || name == null //
+ || name.trim().isEmpty() ) {
+ return ddlSource;
+ }
+
+ String result = ddlSource;
+ if ( qualifyNames ) {
+ String schemaName = schema.getName();
+ String quotedSchemaName = this.getDoubleQuotedString(schemaName);
+ String quotedName = this.getDoubleQuotedString(name);
+ String upperCaseDdlSource = ddlSource.toUpperCase();
+ String upperCaseName = name.toUpperCase();
+ String upperCaseSchemaName = schemaName.toUpperCase();
+ String usedName = quotedName;
+
+ //first check quoted name
+ int nameIndex = ddlSource.indexOf(quotedName);
+ if ( nameIndex == -1 ) {
+ //check unquoted name
+ nameIndex = upperCaseDdlSource.indexOf(upperCaseName);
+ if ( nameIndex != -1 ) {
+ usedName = ddlSource.substring(nameIndex, nameIndex + name.length());
+ }
+ }
+ if ( nameIndex > 0 ) {
+ String pretext = ddlSource.substring(0, nameIndex);
+ //name is not qualified with quoted schema
+ if ( pretext.indexOf(quotedSchemaName) == -1 ) {
+ String upperCasePretext = pretext.toUpperCase();
+ //name is not qualified with unquoted schema
+ if ( upperCasePretext.indexOf(upperCaseSchemaName) == -1 ) {
+ if ( quoteIdentifiers ) {
+ result = ddlSource.replaceFirst(usedName, quotedSchemaName + DOT + quotedName);
+ }
+ else {
+ result = ddlSource.replaceFirst(usedName, schemaName + DOT + name);
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ //This method is not for the DDL Generation, instead used by the compare
+ public String getFullParameterString(Routine routine){
+ EList parms = routine.getParameters();
+ StringBuffer buf = new StringBuffer();
+ if (!parms.isEmpty()) {
+
+ Iterator it = parms.iterator();
+ while(it.hasNext()) {
+ buf.append("(");
+ Parameter parm = (Parameter) it.next();
+ buf.append(parm.getMode());
+ buf.append(" ");
+ buf.append(parm.getName());
+ buf.append(" ");
+ buf.append(getParameterString(parm, routine.getSchema(), false));
+ buf.append(")");
+ if(it.hasNext()) {
+ buf.append(", "); //$NON-NLS-1$
+ }
+ }
+ }
+ String result = buf.toString();
+ return result;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationMessages.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationMessages.java
new file mode 100644
index 0000000..cdd808e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationMessages.java
@@ -0,0 +1,204 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import org.eclipse.osgi.util.NLS;
+
+ /**
+ * @author chetabha
+ *
+ */
+
+public final class DdlGenerationMessages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.datatools.enablement.ibm.ddl.DdlGenerationMessages";//$NON-NLS-1$
+
+ private DdlGenerationMessages() {
+ // Do not instantiate
+ }
+
+ public static String GENERATE_FULLY_QUALIFIED_NAME;
+ public static String GENERATE_FULLY_QUALIFIED_NAME_DES;
+ public static String GENERATE_FULLY_QUALIFIED_NAME_LABEL;
+ public static String GENERATE_QUOTED_IDENTIFIER;
+ public static String GENERATE_QUOTED_IDENTIFIER_DES;
+ public static String GENERATE_QUOTED_IDENTIFIER_LABEL;
+ public static String GENERATE_DROP_STATEMENTS;
+ public static String GENERATE_DROP_STATEMENTS_DES;
+ public static String GENERATE_DROP_STATEMENTS_LABEL;
+ public static String GENERATE_CREATE_STATEMENTS;
+ public static String GENERATE_CREATE_STATEMENTS_DES;
+ public static String GENERATE_CREATE_STATEMENTS_LABEL;
+ public static String GENERATE_COMMENTS;
+ public static String GENERATE_COMMENTS_DES;
+ public static String GENERATE_COMMENTS_LABEL;
+ public static String GENERATE_LABELS;
+ public static String GENERATE_LABELS_DES;
+ public static String GENERATE_LABELS_LABEL;
+ public static String GENERATE_IN_TABLESPACE_CLAUSE;
+ public static String GENERATE_IN_TABLESPACE_CLAUSE_DES;
+ public static String GENERATE_IN_TABLESPACE_CLAUSE_LABEL;
+ public static String GENERATE_ON_FILEGROUP_CLAUSE;
+ public static String GENERATE_ON_FILEGROUP_CLAUSE_DES;
+ public static String GENERATE_ON_FILEGROUP_CLAUSE_LABEL;
+ public static String GENERATE_USE_DOMAIN_IF_EXIST;
+ public static String GENERATE_USE_DOMAIN_IF_EXIST_DES;
+ public static String GENERATE_USE_DOMAIN_IF_EXIST_LABEL;
+ public static String GENERATE_CREATE_OR_REPLACE;
+ public static String GENERATE_CREATE_OR_REPLACE_DES;
+ public static String GENERATE_CREATE_OR_REPLACE_LABEL;
+ public static String GENERATE_TABLES;
+ public static String GENERATE_TABLES_DES;
+ public static String GENERATE_TABLES_LABEL;
+ public static String GENERATE_TABLESPACES;
+ public static String GENERATE_TABLESPACES_DES;
+ public static String GENERATE_TABLESPACES_LABEL;
+ //FILEGROUPS is the same as DB2 tablespace concept for MS SQL Server.
+ public static String GENERATE_FILEGROUPS;
+ public static String GENERATE_FILEGROUPS_DES;
+ public static String GENERATE_FILEGROUPS_LABEL;
+ public static String GENERATE_DOMAIN;
+ public static String GENERATE_DOMAIN_TYPE_DES;
+ public static String GENERATE_DOMAIN_TYPE_LABEL;
+ public static String GENERATE_INDEX;
+ public static String GENERATE_INDEX_DES;
+ public static String GENERATE_INDEX_LABEL;
+ public static String GENERATE_STOREDPROCEDURE;
+ public static String GENERATE_STOREDPROCEDURE_DES;
+ public static String GENERATE_STOREDPROCEDURE_LABEL;
+ public static String GENERATE_FUNCTION;
+ public static String GENERATE_FUNCTION_DES;
+ public static String GENERATE_FUNCTION_LABEL;
+ public static String GENERATE_VIEW;
+ public static String GENERATE_VIEW_DES;
+ public static String GENERATE_VIEW_LABEL;
+ public static String GENERATE_TRIGGER;
+ public static String GENERATE_TRIGGER_DES;
+ public static String GENERATE_TRIGGER_LABEL;
+ public static String GENERATE_PK_CONSTRAINTS;
+ public static String GENERATE_PK_CONSTRAINTS_DES;
+ public static String GENERATE_PK_CONSTRAINTS_LABEL;
+ public static String GENERATE_FK_CONSTRAINTS;
+ public static String GENERATE_FK_CONSTRAINTS_DES;
+ public static String GENERATE_FK_CONSTRAINTS_LABEL;
+ public static String GENERATE_CK_CONSTRAINTS;
+ public static String GENERATE_CK_CONSTRAINTS_DES;
+ public static String GENERATE_CK_CONSTRAINTS_LABEL;
+ public static String GENERATE_SEQUENCE;
+ public static String GENERATE_SEQUENCE_DES;
+ public static String GENERATE_SEQUENCE_LABEL;
+ public static String GENERATE_ALIAS;
+ public static String GENERATE_ALIAS_DES;
+ public static String GENERATE_ALIAS_LABEL;
+ public static String GENERATE_SYNONYM;
+ public static String GENERATE_SYNONYM_DES;
+ public static String GENERATE_SYNONYM_LABEL;
+ public static String GENERATE_MQT;
+ public static String GENERATE_MQT_DES;
+ public static String GENERATE_MQT_LABEL;
+ public static String GENERATE_BUFFERPOOL;
+ public static String GENERATE_BUFFERPOOL_DES;
+ public static String GENERATE_BUFFERPOOL_LABEL;
+ public static String GENERATE_DATABASE;
+ public static String GENERATE_DATABASE_DES;
+ public static String GENERATE_DATABASE_LABEL;
+ public static String GENERATE_SCHEMA;
+ public static String GENERATE_SCHEMA_DES;
+ public static String GENERATE_SCHEMA_LABEL;
+ public static String GENERATE_PARTITIONGROUP;
+ public static String GENERATE_PARTITIONGROUP_DES;
+ public static String GENERATE_PARTITIONGROUP_LABEL;
+ public static String GENERATE_STORAGEGROUP;
+ public static String GENERATE_STORAGEGROUP_DES;
+ public static String GENERATE_STORAGEGROUP_LABEL;
+ public static String GENERATE_USER_DEFINED_TYPE;
+ public static String GENERATE_USER_DEFINED_TYPE_DES;
+ public static String GENERATE_USER_DEFINED_TYPE_LABEL;
+ public static String GENERATE_ENFORCED_CONSTRAINTS;
+ public static String GENERATE_ENFORCED_CONSTRAINTS_DES;
+ public static String GENERATE_ENFORCED_CONSTRAINTS_LABEL;
+ public static String GENERATION_OPTIONS;
+ public static String GENERATION_OPTIONS_DES;
+ public static String GENERATION_OPTIONS_LABEL;
+ public static String ADDITIONAL_ELEMENTS;
+ public static String ADDITIONAL_ELEMENTS_DES;
+ public static String ADDITIONAL_ELEMENTS_LABEL;
+ public static String GENERATE_PRIVILEGE;
+ public static String GENERATE_PRIVILEGE_DES;
+ public static String GENERATE_PRIVILEGE_LABEL;
+ public static String GENERATE_PACKAGE;
+ public static String GENERATE_PACKAGE_DES;
+ public static String GENERATE_PACKAGE_LABEL;
+ public static String GENERATE_PACKAGE_BODY;
+ public static String GENERATE_PACKAGE_BODY_DES;
+ public static String GENERATE_PACKAGE_BODY_LABEL;
+ public static String GENERATE_BACKUP_TABLE;
+ public static String GENERATE_BACKUP_TABLE_DES;
+ public static String GENERATE_BACKUP_TABLE_LABEL;
+ public static String GENERATE_STATISTICS;
+ public static String GENERATE_STATISTICS_DES;
+ public static String GENERATE_STATISTICS_LABEL;
+ public static String GENERATE_ROLE;
+ public static String GENERATE_ROLE_DES;
+ public static String GENERATE_ROLE_LABEL;
+ public static String GENERATE_USER;
+ public static String GENERATE_USER_DES;
+ public static String GENERATE_USER_LABEL;
+ public static String GENERATE_GROUP;
+ public static String GENERATE_GROUP_DES;
+ public static String GENERATE_GROUP_LABEL;
+ public static String CHECK_MODEL;
+ public static String CHECK_MODEL_DES;
+ public static String CHECK_MODEL_LABEL;
+
+ public static String GENERATE_MODULE;
+ public static String GENERATE_MODULE_DES;
+ public static String GENERATE_MODULE_LABEL;
+ public static String GENERATE_MODULE_CONDITION;
+ public static String GENERATE_MODULE_CONDITION_DES;
+ public static String GENERATE_MODULE_CONDITION_LABEL;
+ public static String GENERATE_GLOBAL_VARIABLE;
+ public static String GENERATE_GLOBAL_VARIABLE_DES;
+ public static String GENERATE_GLOBAL_VARIABLE_LABEL;
+ public static String GENERATE_HISTORY_TABLE;
+ public static String GENERATE_HISTORY_TABLE_DES;
+ public static String GENERATE_HISTORY_TABLE_LABEL;
+ public static String GENERATE_TEMPORARY_TABLE;
+ public static String GENERATE_TEMPORARY_TABLE_DES;
+ public static String GENERATE_TEMPORARY_TABLE_LABEL;
+ public static String GENERATE_XMLSCHEMA;
+ public static String GENERATE_XMLSCHEMA_DES;
+ public static String GENERATE_XMLSCHEMA_LABEL;
+ public static String GENERATE_SECURITY_POLICY;
+ public static String GENERATE_SECURITY_POLICY_DES;
+ public static String GENERATE_SECURITY_POLICY_LABEL;
+
+ public static String LOADING_PRIVILEGES_PROGRESS;
+ public static String GRANT_NOT_ALLOWED;
+ public static String REVOKE_NOT_ALLOWED;
+
+ public static String LOADING_SUBTASK;
+
+ public static String DROP_RESTRICT;
+ public static String DROP_RESTRICT_DES;
+ public static String DROP_RESTRICT_LABEL;
+ public static String GENERATE_ROW_PERMISSIONS;
+ public static String GENERATE_ROW_PERMISSIONS_DES;
+ public static String GENERATE_ROW_PERMISSIONS_LABEL;
+ public static String GENERATE_COLUMN_MASKS;
+ public static String GENERATE_COLUMN_MASKS_DES;
+ public static String GENERATE_COLUMN_MASKS_LABEL;
+ public static String FE_INVALID_MODEL;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, DdlGenerationMessages.class);
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationMessages.properties b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationMessages.properties
new file mode 100644
index 0000000..18bbe24
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationMessages.properties
@@ -0,0 +1,189 @@
+# NLS_MESSAGEFORMAT_VAR needed to handle quotes correctly
+#
+# Copyright (c) 2014 IBM Corporation and others.
+# 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:
+# IBM Corporation - initial API and implementation
+#
+
+GENERATE_FULLY_QUALIFIED_NAME = &Fully qualified names
+GENERATE_FULLY_QUALIFIED_NAME_DES = Generate fully qualified names
+GENERATE_FULLY_QUALIFIED_NAME_LABEL = Fully qualified names
+GENERATE_QUOTED_IDENTIFIER = &Quoted identifiers
+GENERATE_QUOTED_IDENTIFIER_DES = Generate quoted identifiers
+GENERATE_QUOTED_IDENTIFIER_LABEL = Quoted identifiers
+GENERATE_DROP_STATEMENTS = &DROP statements
+GENERATE_DROP_STATEMENTS_DES = Generate DROP statements
+GENERATE_DROP_STATEMENTS_LABEL = DROP statements
+GENERATE_CREATE_STATEMENTS = &CREATE statements
+GENERATE_CREATE_STATEMENTS_DES = Generate CREATE statements
+GENERATE_CREATE_STATEMENTS_LABEL = CREATE statements
+GENERATE_COMMENTS = C&OMMENT ON statements
+GENERATE_COMMENTS_DES = Generate comments
+GENERATE_COMMENTS_LABEL = COMMENT ON statements
+GENERATE_LABELS = &Label ON statements
+GENERATE_LABELS_DES = Generate labels
+GENERATE_LABELS_LABEL = Label ON statements
+GENERATE_IN_TABLESPACE_CLAUSE = &IN TABLESPACE clause
+GENERATE_IN_TABLESPACE_CLAUSE_DES = Generate IN TABLESPACE clause
+GENERATE_IN_TABLESPACE_CLAUSE_LABEL = IN TABLESPACE clause
+GENERATE_USE_DOMAIN_IF_EXIST = &Use domain if exists
+GENERATE_USE_DOMAIN_IF_EXIST_DES = Use domain if exists
+GENERATE_USE_DOMAIN_IF_EXIST_LABEL = Use domain if exists
+GENERATE_CREATE_OR_REPLACE = &OR REPLACE clause
+GENERATE_CREATE_OR_REPLACE_DES = OR REPLACE clause
+GENERATE_CREATE_OR_REPLACE_LABEL = OR REPLACE clause
+GENERATE_TABLES = &Tables
+GENERATE_TABLES_DES = Generate tables
+GENERATE_TABLES_LABEL = Tables
+GENERATE_TABLESPACES = T&ablespaces
+GENERATE_TABLESPACES_DES = Generate table spaces
+GENERATE_TABLESPACES_LABEL = Tablespaces
+GENERATE_FILEGROUPS = Filegroups
+GENERATE_FILEGROUPS_DES = Generate file groups
+GENERATE_FILEGROUPS_LABEL = Filegroups
+GENERATE_ON_FILEGROUP_CLAUSE = ON FILEGROUP clause
+GENERATE_ON_FILEGROUP_CLAUSE_DES = Generate ON FILEGROUP clause
+GENERATE_ON_FILEGROUP_CLAUSE_LABEL = ON FILEGROUP clause
+GENERATE_INDEX = Inde&xes
+GENERATE_INDEX_DES = Generate indexes
+GENERATE_INDEX_LABEL = Indexes
+GENERATE_STOREDPROCEDURE = Sto&red procedures
+GENERATE_STOREDPROCEDURE_DES = Generate stored procedures
+GENERATE_STOREDPROCEDURE_LABEL = Stored procedures
+GENERATE_FUNCTION = Funct&ions
+GENERATE_FUNCTION_DES = Generate functions
+GENERATE_FUNCTION_LABEL = Functions
+GENERATE_VIEW = &Views
+GENERATE_VIEW_DES = Generate views
+GENERATE_VIEW_LABEL = Views
+GENERATE_TRIGGER = Tri&ggers
+GENERATE_TRIGGER_DES = Generate triggers
+GENERATE_TRIGGER_LABEL = Triggers
+GENERATE_PK_CONSTRAINTS = &Primary key constraint
+GENERATE_PK_CONSTRAINTS_DES = Generate primary key constraint
+GENERATE_PK_CONSTRAINTS_LABEL = Generate primary key constraint
+GENERATE_FK_CONSTRAINTS = Foreign ke&y constraint
+GENERATE_FK_CONSTRAINTS_DES = Generate foreign key constraint
+GENERATE_FK_CONSTRAINTS_LABEL = Foreign key constraint
+GENERATE_CK_CONSTRAINTS = &Check constraint
+GENERATE_CK_CONSTRAINTS_DES = Generate check constraint
+GENERATE_CK_CONSTRAINTS_LABEL = Check constraint
+GENERATE_SEQUENCE = Se&quences
+GENERATE_SEQUENCE_DES = Generate sequences
+GENERATE_SEQUENCE_LABEL = Sequences
+GENERATE_ALIAS = Alia&ses
+GENERATE_ALIAS_DES = Generate aliases
+GENERATE_ALIAS_LABEL = Aliases
+GENERATE_SYNONYM = &Synonyms
+GENERATE_SYNONYM_DES = Generate synonyms
+GENERATE_SYNONYM_LABEL = Synonyms
+GENERATE_MQT = &MQTs
+GENERATE_MQT_DES = Generate MQTs
+GENERATE_MQT_LABEL = MQTs
+GENERATE_BUFFERPOOL = Bu&ffer pools
+GENERATE_BUFFERPOOL_DES = Generate buffer pools
+GENERATE_BUFFERPOOL_LABEL = Buffer pools
+GENERATE_DATABASE = &Database
+GENERATE_DATABASE_DES = Generate database
+GENERATE_DATABASE_LABEL = Database
+GENERATE_SCHEMA = Sc&hemas
+GENERATE_SCHEMA_DES = Generate schemas
+GENERATE_SCHEMA_LABEL = Schemas
+#GENERATE_WRAPPER = &Wrappers
+#GENERATE_WRAPPER_DES = Generate wrappers
+#GENERATE_REMOTESERVER = R&emote servers
+#GENERATE_REMOTESERVER_DES = Generate remote servers
+#GENERATE_USERMAPPING = &User mappings
+#GENERATE_USERMAPPING_DES = Generate user mappings
+#GENERATE_NICKNAME = Nic&knames
+#GENERATE_NICKNAME_DES = Generate nicknames
+GENERATE_PARTITIONGROUP = Partiti&on groups
+GENERATE_PARTITIONGROUP_DES = Generate partition groups
+GENERATE_PARTITIONGROUP_LABEL = Partition groups
+GENERATE_STORAGEGROUP = St&orage groups
+GENERATE_STORAGEGROUP_DES = Generate storage groups
+GENERATE_STORAGEGROUP_LABEL = Storage groups
+GENERATE_USER_DEFINED_TYPE = User&-defined types
+GENERATE_USER_DEFINED_TYPE_DES = Generate user-defined types
+GENERATE_USER_DEFINED_TYPE_LABEL = User-defined types
+GENERATE_DOMAIN = D&omain types
+GENERATE_DOMAIN_TYPE_DES = Generate domain types
+GENERATE_DOMAIN_TYPE_LABEL = Domain types
+GENERATE_ENFORCED_CONSTRAINTS = Enforced constr&aints
+GENERATE_ENFORCED_CONSTRAINTS_DES = Generate enforced constraints
+GENERATE_ENFORCED_CONSTRAINTS_LABEL = Enforced constraints
+GENERATION_OPTIONS = Generation options
+GENERATION_OPTIONS_DES = Options for generation
+GENERATION_OPTIONS_LABEL = Generation options
+ADDITIONAL_ELEMENTS = Additional elements
+ADDITIONAL_ELEMENTS_DES = Generate additional elements
+ADDITIONAL_ELEMENTS_LABEL = Additional elements
+GENERATE_PRIVILEGE = P&rivileges
+GENERATE_PRIVILEGE_DES = Generate grant and revoke privilege statements
+GENERATE_PRIVILEGE_LABEL = Privileges
+GENERATE_PACKAGE = Pac&kage
+GENERATE_PACKAGE_DES = Generate packages
+GENERATE_PACKAGE_LABEL = Package
+GENERATE_PACKAGE_BODY = Package &Body
+GENERATE_PACKAGE_BODY_DES = Generate package body
+GENERATE_PACKAGE_BODY_LABEL = Package Body
+GENERATE_BACKUP_TABLE = Backup Table
+GENERATE_BACKUP_TABLE_DES = Generate backup tables
+GENERATE_BACKUP_TABLE_LABEL = Backup Table
+GENERATE_STATISTICS = Update stat&istics catalog
+GENERATE_STATISTICS_DES = Generate update statistics values
+GENERATE_STATISTICS_LABEL = Update statistics catalog
+GENERATE_ROLE = Roles
+GENERATE_ROLE_DES = Generate roles
+GENERATE_ROLE_LABEL = Roles
+CHECK_MODEL = Check &model
+CHECK_MODEL_DES = Model validation
+CHECK_MODEL_LABEL = Check model
+GENERATE_MODULE = Modu&les
+GENERATE_MODULE_DES = Generate module
+GENERATE_MODULE_LABEL = Modules
+GENERATE_MODULE_CONDITION = Conditions
+GENERATE_MODULE_CONDITION_DES = Generate condition
+GENERATE_MODULE_CONDITION_LABEL = Conditions
+GENERATE_GLOBAL_VARIABLE = Global Variables
+GENERATE_GLOBAL_VARIABLE_DES = Generate Global Variables
+GENERATE_GLOBAL_VARIABLE_LABEL = Global Variables
+GENERATE_HISTORY_TABLE = &History table
+GENERATE_HISTORY_TABLE_DES = Generate History table
+GENERATE_HISTORY_TABLE_LABEL = History table
+GENERATE_TEMPORARY_TABLE = &Temporary table
+GENERATE_TEMPORARY_TABLE_DES = Generate Temporary table
+GENERATE_TEMPORARY_TABLE_LABEL = Temporary table
+GENERATE_XMLSCHEMA = &XML schemas
+GENERATE_XMLSCHEMA_DES = Generate XML schemas
+GENERATE_XMLSCHEMA_LABEL = XML schemas
+GENERATE_SECURITY_POLICY = Security pol&icies
+GENERATE_SECURITY_POLICY_DES = Generate security policies
+GENERATE_SECURITY_POLICY_LABEL = Security policies
+DROP_RESTRICT = Drop restrict
+DROP_RESTRICT_DES = Restrict on drop objects
+DROP_RESTRICT_LABEL = Drop restrict
+GENERATE_ROW_PERMISSIONS = Row p&ermissions
+GENERATE_ROW_PERMISSIONS_DES = Generate Row permissions
+GENERATE_ROW_PERMISSIONS_LABEL = Row permissions
+GENERATE_COLUMN_MASKS = Col&umn masks
+GENERATE_COLUMN_MASKS_DES = Generate Column masks
+GENERATE_COLUMN_MASKS_LABEL = Column masks
+GENERATE_USER = Users
+GENERATE_USER_DES = Generate users
+GENERATE_USER_LABEL = Users
+GENERATE_GROUP = Groups
+GENERATE_GROUP_DES = Generate groups
+GENERATE_GROUP_LABEL = Groups
+
+LOADING_PRIVILEGES_PROGRESS = Loading privileges for
+GRANT_NOT_ALLOWED = A user cannot grant a privilege to itself
+REVOKE_NOT_ALLOWED = A user cannot revoke a privilege from itself
+
+LOADING_SUBTASK = Loading
+FE_INVALID_MODEL = The model is invalid, please check the problem view to make the correction.
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationUtility.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationUtility.java
new file mode 100644
index 0000000..90f2123
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlGenerationUtility.java
@@ -0,0 +1,1545 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.Vector;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.core.rte.EngineeringOption;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.rte.EngineeringOptionCategory;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.util.EngineeringOptionCategoryID;
+import org.eclipse.datatools.enablement.ibm.util.EngineeringOptionID;
+import org.eclipse.datatools.enablement.ibm.util.ModelHelper;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.constraints.CheckConstraint;
+import org.eclipse.datatools.modelbase.sql.constraints.Index;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.constraints.UniqueConstraint;
+import org.eclipse.datatools.modelbase.sql.expressions.SearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QuerySearchCondition;
+import org.eclipse.datatools.modelbase.sql.query.QueryStatement;
+import org.eclipse.datatools.modelbase.sql.query.ValueExpressionColumn;
+import org.eclipse.datatools.modelbase.sql.query.helper.StatementHelper;
+import org.eclipse.datatools.modelbase.sql.query.helper.TableHelper;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceFormat;
+import org.eclipse.datatools.modelbase.sql.query.util.SQLQuerySourceInfo;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.datatools.sqltools.parsers.sql.postparse.PostParseProcessor;
+import org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParseResult;
+import org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserManager;
+import org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserManagerProvider;
+import org.eclipse.datatools.sqltools.parsers.sql.query.postparse.DataTypeResolver;
+import org.eclipse.datatools.sqltools.parsers.sql.query.postparse.TableReferenceResolver;
+import org.eclipse.emf.common.util.EList;
+import org.osgi.service.prefs.Preferences;
+
+ /**
+ * @author chetabha
+ *
+ */
+
+public class DdlGenerationUtility {
+ private static OlapDdlBuilder olapDdlBuilder = null;
+ private static ExtendDdlBuilder nicknameDdlBuilder = null;
+ private static ExtendDdlBuilder federatedProcedureDdlBuilder = null; // fsp - pyl
+ private static ExtendDdlBuilder remoteServerDdlBuilder = null;
+ private static ExtendDdlBuilder wrapperDdlBuilder = null;
+ private static ExtendDdlBuilder userMappingDdlBuilder = null;
+ private static TypedElementLogicalDomainProvider elementDomainProvider= null;
+ private static ModelValidationProvider modelValidationProvider = null;
+
+ public static final String QUOTE_IDENTIFIERS_DEFAULT = "quoteIdentifiersDefault" ; //$NON-NLS-1$
+ public static final String QUALIFY_NAMES_DEFAULT = "qualifyNamesDefault" ; //$NON-NLS-1$
+ public static final boolean DEFAULT_QUOTE_IDENTIFIERS_DEFAULT_VALUE = true;
+ public static final boolean DEFAULT_QUALIFY_NAMES_DEFAULT_VALUE = true;
+ protected static boolean quoteIdentifiersDefault = DEFAULT_QUOTE_IDENTIFIERS_DEFAULT_VALUE;
+ protected static boolean qualifyNamesDefault = DEFAULT_QUALIFY_NAMES_DEFAULT_VALUE;
+ public static final String SPUFI_RUNSQLSTM_FORMAT = "spufi_runsqlstm" ; //$NON-NLS-1$
+ public static final boolean SPUFI_RUNSQLSTM_FORMAT_VALUE = false;
+ protected static boolean spufi_runsqlstm_format = SPUFI_RUNSQLSTM_FORMAT_VALUE;
+
+ private final static String CREATE_STATEMENT ="CREATE";
+ private final static String DROP_STATEMENT ="DROP";
+ private final static String STATEMENT_TYPE_SEPARATOR = ";";
+ private final static String CONTEXT_SEPARATOR = ",";
+ private final static String CONTEXT_APPLY_FLAG = "?";
+ public final static String PATTERN_KEY ="codetemplate::";
+ public static String CREATE_PROLOG ="C_PRO";
+ public static String CREATE_POSTLOG ="C_POST";
+ public static String DROP_PROLOG ="D_PRO";
+ public static String DROP_POSTLOG ="D_POST";
+
+ public final static byte GENERATE_CREATE_PATTERN =2;
+ public final static byte GENERATE_DROP_PATTERN=4;
+
+ public final static String DATABASE_NAME_PROPERTY = "org.eclipse.datatools.connectivity.db.databaseName";
+
+//bgp public static Preferences instanceNode = new InstanceScope().getNode("com.ibm.datatools.core.ui"); //$NON-NLS-1$
+ public static Preferences instanceNode = InstanceScope.INSTANCE.getNode("com.ibm.datatools.core.ui"); //$NON-NLS-1$
+
+ static {
+ initDdlGenerationPreferences();
+ }
+
+ public static EngineeringOptionCategory[] createDDLGenerationOptionCategories(String product, String version) {
+
+ Vector categoryVec = new Vector();
+ categoryVec.add(new EngineeringOptionCategory(EngineeringOptionCategoryID.GENERATE_OPTIONS,DdlGenerationMessages.GENERATION_OPTIONS, DdlGenerationMessages.GENERATION_OPTIONS_DES));
+ categoryVec.add(new EngineeringOptionCategory(EngineeringOptionCategoryID.GENERATE_ELEMENTS,DdlGenerationMessages.ADDITIONAL_ELEMENTS, DdlGenerationMessages.ADDITIONAL_ELEMENTS_DES));
+//bgp categoryVec.add(new EngineeringOptionCategory(EngineeringOptionCategoryID.XMLSCHEMA_CONTROLS, EngineeringOptionCategoryID.XMLSCHEMA_CONTROLS, ""));
+
+ EngineeringOptionCategory[] categories = new EngineeringOptionCategory[categoryVec.size()];
+ categoryVec.copyInto(categories);
+ return categories;
+ }
+
+ public static Set getAllContainedDisplayableElementSetPlus(SQLObject[] elements) {
+ Set s = new HashSet();
+ for(int i=0; i<elements.length; ++i) {
+ s.add(elements[i]);
+ if (elements[i] instanceof AuthorizationIdentifier)
+ s.addAll(ContainmentServiceImpl.INSTANCE.getAllContainedElements(elements[i]));
+ else s.addAll(ContainmentServiceImpl.INSTANCE.getAllContainedDisplayableElements(elements[i]));
+ }
+ return s;
+ }
+
+ public static Set getAllContainedDisplayableElementSet(SQLObject[] elements) {
+ LinkedHashSet s = new LinkedHashSet();
+ for(int i=0; i<elements.length; ++i) {
+ s.add(elements[i]);
+ s.addAll(ContainmentServiceImpl.INSTANCE.getAllContainedDisplayableElements(elements[i]));
+ }
+ return s;
+ }
+
+ public static void initDdlGenerationPreferences() {
+ Preferences instanceNode = new InstanceScope().getNode("com.ibm.datatools.core.ui");//$NON-NLS-1$
+ quoteIdentifiersDefault = instanceNode.getBoolean(QUOTE_IDENTIFIERS_DEFAULT, DEFAULT_QUOTE_IDENTIFIERS_DEFAULT_VALUE);
+ qualifyNamesDefault = instanceNode.getBoolean(QUALIFY_NAMES_DEFAULT, DEFAULT_QUALIFY_NAMES_DEFAULT_VALUE);
+ spufi_runsqlstm_format =instanceNode.getBoolean(SPUFI_RUNSQLSTM_FORMAT, SPUFI_RUNSQLSTM_FORMAT_VALUE);
+ }
+
+ public static boolean getQualifyNamesDefault() {
+ return qualifyNamesDefault;
+ }
+
+ public static boolean getQuoteIdentifiersDefault() {
+ return quoteIdentifiersDefault;
+ }
+
+ public static void setQualifyNamesDefault(boolean newValue) {
+ qualifyNamesDefault = newValue;
+ }
+
+ public static void setQuoteIdentifiersDefault(boolean newValue) {
+ quoteIdentifiersDefault = newValue;
+ }
+
+ public static boolean getSpufiRunsqlstmFormat() {
+ return spufi_runsqlstm_format;
+ }
+
+ public static void setSpufiRunsqlstmFormat(boolean newValue) {
+ spufi_runsqlstm_format = newValue;
+ }
+
+
+ //@bd00058820gs
+ public static EngineeringOption getEngineeringOption(String id, String product, String version, EngineeringOptionCategory general_options, EngineeringOptionCategory additional_element)
+ {
+
+ try {
+ if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FULLY_QUALIFIED_NAME, DdlGenerationMessages.GENERATE_FULLY_QUALIFIED_NAME_DES,qualifyNamesDefault,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_QUOTED_IDENTIFIER, DdlGenerationMessages.GENERATE_QUOTED_IDENTIFIER_DES,quoteIdentifiersDefault,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DROP_STATEMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DROP_STATEMENTS, DdlGenerationMessages.GENERATE_DROP_STATEMENTS_DES,false,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_STATEMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CREATE_STATEMENTS, DdlGenerationMessages.GENERATE_CREATE_STATEMENTS_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PRIVILEGE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PRIVILEGE, DdlGenerationMessages.GENERATE_PRIVILEGE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COMMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_COMMENTS, DdlGenerationMessages.GENERATE_COMMENTS_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_LABELS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_LABELS, DdlGenerationMessages.GENERATE_LABELS_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_IN_TABLESPACE_CLAUSE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_IN_TABLESPACE_CLAUSE, DdlGenerationMessages.GENERATE_IN_TABLESPACE_CLAUSE_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ON_FILEGROUP_CLAUSE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ON_FILEGROUP_CLAUSE, DdlGenerationMessages.GENERATE_ON_FILEGROUP_CLAUSE_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USE_DOMAIN_IF_EXIST))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USE_DOMAIN_IF_EXIST, DdlGenerationMessages.GENERATE_USE_DOMAIN_IF_EXIST_DES,false,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_OR_REPLACE) && ModelHelper.getVersionAsFloat(version) >= 9.7f)
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CREATE_OR_REPLACE, DdlGenerationMessages.GENERATE_CREATE_OR_REPLACE_DES,false,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLES, DdlGenerationMessages.GENERATE_TABLES_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,false,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FILEGROUPS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FILEGROUPS, DdlGenerationMessages.GENERATE_FILEGROUPS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_INDICES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_INDEX, DdlGenerationMessages.GENERATE_INDEX_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STOREDPROCEDURES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STOREDPROCEDURE, DdlGenerationMessages.GENERATE_STOREDPROCEDURE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FUNCTIONS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FUNCTION, DdlGenerationMessages.GENERATE_FUNCTION_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_VIEWS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_VIEW, DdlGenerationMessages.GENERATE_VIEW_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TRIGGERS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TRIGGER, DdlGenerationMessages.GENERATE_TRIGGER_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SEQUENCES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SEQUENCE, DdlGenerationMessages.GENERATE_SEQUENCE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USER_DEFINED_TYPE, DdlGenerationMessages.GENERATE_USER_DEFINED_TYPE_DES,true,additional_element);
+ // else if(o instanceof DistinctUserDefinedType)
+ // else if (o instanceof StructuredUserDefinedType)
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PK_CONSTRAINTS, DdlGenerationMessages.GENERATE_PK_CONSTRAINTS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CK_CONSTRAINTS, DdlGenerationMessages.GENERATE_CK_CONSTRAINTS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FK_CONSTRAINTS, DdlGenerationMessages.GENERATE_FK_CONSTRAINTS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,true,additional_element);
+ // else if(id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM)
+ // setOption(new EngineeringOption(id,Messages.getString("GENERATE_SYNONYM"), Messages.getString("GENERATE_SYNONYM_DES"),true,additional_element); //$NON-NLS-1$ //$NON-NLS-2$
+ // }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DATABASE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DATABASE, DdlGenerationMessages.GENERATE_DATABASE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MQT))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MQT, DdlGenerationMessages.GENERATE_MQT_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ALIAS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ALIAS, DdlGenerationMessages.GENERATE_ALIAS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SYNONYM, DdlGenerationMessages.GENERATE_SYNONYM_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BUFFERPOOL))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_BUFFERPOOL, DdlGenerationMessages.GENERATE_BUFFERPOOL_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STORAGEGROUP))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STORAGEGROUP, DdlGenerationMessages.GENERATE_STORAGEGROUP_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PARTITIONGROUP))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PARTITIONGROUP, DdlGenerationMessages.GENERATE_PARTITIONGROUP_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SCHEMAS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SCHEMA, DdlGenerationMessages.GENERATE_SCHEMA_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_NICKNAME)) {
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(product, version);
+ if (nicknameDdlBuilder != null) {
+ return new EngineeringOption(null,nicknameDdlBuilder.getOption(),nicknameDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ //fsp - pyl
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES)) {
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(product, version);
+ if (federatedProcedureDdlBuilder != null) {
+ return new EngineeringOption(null,federatedProcedureDdlBuilder.getOption(),federatedProcedureDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_REMOTESERVER)) {
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(product, version);
+ if (remoteServerDdlBuilder != null) {
+ return new EngineeringOption(null,remoteServerDdlBuilder.getOption(),remoteServerDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_WRAPPER)) {
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(product, version);
+ if (wrapperDdlBuilder != null) {
+ return new EngineeringOption(null,wrapperDdlBuilder.getOption(),wrapperDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USERMAPPING)) {
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(product, version);
+ if (userMappingDdlBuilder != null) {
+ return new EngineeringOption(null,userMappingDdlBuilder.getOption(),userMappingDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_OLAP)) {
+ OlapDdlBuilder olapDdlBuilder = DdlGenerationUtility.getOlapDdlBuilder(product, version);
+ if (olapDdlBuilder != null) {
+ return new EngineeringOption(null,olapDdlBuilder.getOption(),olapDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PACKAGE, DdlGenerationMessages.GENERATE_PACKAGE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE_BODY)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PACKAGE_BODY, DdlGenerationMessages.GENERATE_PACKAGE_BODY_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BACKUP_TABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_BACKUP_TABLE, DdlGenerationMessages.GENERATE_BACKUP_TABLE_DES,true,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STATISTICS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STATISTICS, DdlGenerationMessages.GENERATE_STATISTICS_DES,false,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ROLE, DdlGenerationMessages.GENERATE_ROLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USER, DdlGenerationMessages.GENERATE_USER_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GROUP)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_GROUP, DdlGenerationMessages.GENERATE_GROUP_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.CHECK_MODEL)) {
+ return new EngineeringOption(id,DdlGenerationMessages.CHECK_MODEL, DdlGenerationMessages.CHECK_MODEL_DES,false,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MODULE, DdlGenerationMessages.GENERATE_MODULE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE_CONDITION)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MODULE_CONDITION, DdlGenerationMessages.GENERATE_MODULE_CONDITION_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GLOBAL_VARIABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_GLOBAL_VARIABLE, DdlGenerationMessages.GENERATE_GLOBAL_VARIABLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_HISTORY_TABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_HISTORY_TABLE, DdlGenerationMessages.GENERATE_HISTORY_TABLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TEMPORARY_TABLES)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TEMPORARY_TABLE, DdlGenerationMessages.GENERATE_TEMPORARY_TABLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_XMLSCHEMA)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_XMLSCHEMA, DdlGenerationMessages.GENERATE_XMLSCHEMA_DES,false,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME)) {
+ return new EngineeringOption(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, "");
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_DIRECTORY)) {
+ return new EngineeringOption(EngineeringOptionID.XMLSCHEMA_DIRECTORY, EngineeringOptionID.XMLSCHEMA_DIRECTORY, "");
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SECURITY_POLICY)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SECURITY_POLICY, DdlGenerationMessages.GENERATE_SECURITY_POLICY_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.DROP_RESTRICT)) {
+ return new EngineeringOption(id,DdlGenerationMessages.DROP_RESTRICT, DdlGenerationMessages.DROP_RESTRICT_DES,false,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROW_PERMISSIONS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ROW_PERMISSIONS, DdlGenerationMessages.GENERATE_ROW_PERMISSIONS_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COLUMN_MASKS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_COLUMN_MASKS, DdlGenerationMessages.GENERATE_COLUMN_MASKS_DES,true,additional_element);
+ }
+ } catch (Exception e) {
+ //The resource was not found
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public static EngineeringOption getDefaultEngineeringOption(String id, String product, String version, EngineeringOptionCategory general_options, EngineeringOptionCategory additional_element)
+ {
+
+ try {
+ if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FULLY_QUALIFIED_NAME, DdlGenerationMessages.GENERATE_FULLY_QUALIFIED_NAME_DES,qualifyNamesDefault,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_QUOTED_IDENTIFIER, DdlGenerationMessages.GENERATE_QUOTED_IDENTIFIER_DES,quoteIdentifiersDefault,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DROP_STATEMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DROP_STATEMENTS, DdlGenerationMessages.GENERATE_DROP_STATEMENTS_DES,false,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_STATEMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CREATE_STATEMENTS, DdlGenerationMessages.GENERATE_CREATE_STATEMENTS_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PRIVILEGE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PRIVILEGE, DdlGenerationMessages.GENERATE_PRIVILEGE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COMMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_COMMENTS, DdlGenerationMessages.GENERATE_COMMENTS_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_LABELS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_LABELS, DdlGenerationMessages.GENERATE_LABELS_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_IN_TABLESPACE_CLAUSE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_IN_TABLESPACE_CLAUSE, DdlGenerationMessages.GENERATE_IN_TABLESPACE_CLAUSE_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ON_FILEGROUP_CLAUSE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ON_FILEGROUP_CLAUSE, DdlGenerationMessages.GENERATE_ON_FILEGROUP_CLAUSE_DES,true,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USE_DOMAIN_IF_EXIST))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USE_DOMAIN_IF_EXIST, DdlGenerationMessages.GENERATE_USE_DOMAIN_IF_EXIST_DES,false,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_OR_REPLACE) && ModelHelper.getVersionAsFloat(version) >= 9.7f)
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CREATE_OR_REPLACE, DdlGenerationMessages.GENERATE_CREATE_OR_REPLACE_DES,false,general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLES, DdlGenerationMessages.GENERATE_TABLES_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES)){
+ if(product.equals("Oracle"))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,true,additional_element);
+ else
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,false,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FILEGROUPS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FILEGROUPS, DdlGenerationMessages.GENERATE_FILEGROUPS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_INDICES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_INDEX, DdlGenerationMessages.GENERATE_INDEX_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STOREDPROCEDURES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STOREDPROCEDURE, DdlGenerationMessages.GENERATE_STOREDPROCEDURE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FUNCTIONS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FUNCTION, DdlGenerationMessages.GENERATE_FUNCTION_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_VIEWS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_VIEW, DdlGenerationMessages.GENERATE_VIEW_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TRIGGERS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TRIGGER, DdlGenerationMessages.GENERATE_TRIGGER_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SEQUENCES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SEQUENCE, DdlGenerationMessages.GENERATE_SEQUENCE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USER_DEFINED_TYPE, DdlGenerationMessages.GENERATE_USER_DEFINED_TYPE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DOMAIN))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DOMAIN, DdlGenerationMessages.GENERATE_DOMAIN_TYPE_DES,true,additional_element);
+ // else if(o instanceof DistinctUserDefinedType)
+ // else if (o instanceof StructuredUserDefinedType)
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PK_CONSTRAINTS, DdlGenerationMessages.GENERATE_PK_CONSTRAINTS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CK_CONSTRAINTS, DdlGenerationMessages.GENERATE_CK_CONSTRAINTS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FK_CONSTRAINTS, DdlGenerationMessages.GENERATE_FK_CONSTRAINTS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,true,additional_element);
+ // else if(id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM)
+ // setOption(new EngineeringOption(id,Messages.getString("GENERATE_SYNONYM"), Messages.getString("GENERATE_SYNONYM_DES"),true,additional_element); //$NON-NLS-1$ //$NON-NLS-2$
+ // }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DATABASE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DATABASE, DdlGenerationMessages.GENERATE_DATABASE_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MQT))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MQT, DdlGenerationMessages.GENERATE_MQT_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ALIAS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ALIAS, DdlGenerationMessages.GENERATE_ALIAS_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SYNONYM, DdlGenerationMessages.GENERATE_SYNONYM_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BUFFERPOOL))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_BUFFERPOOL, DdlGenerationMessages.GENERATE_BUFFERPOOL_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STORAGEGROUP))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STORAGEGROUP, DdlGenerationMessages.GENERATE_STORAGEGROUP_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PARTITIONGROUP))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PARTITIONGROUP, DdlGenerationMessages.GENERATE_PARTITIONGROUP_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SCHEMAS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SCHEMA, DdlGenerationMessages.GENERATE_SCHEMA_DES,true,additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_NICKNAME)) {
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(product, version);
+ if (nicknameDdlBuilder != null) {
+ return new EngineeringOption(id,nicknameDdlBuilder.getOption(),nicknameDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ //fsp - pyl
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES)) {
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(product, version);
+ if (federatedProcedureDdlBuilder != null) {
+ return new EngineeringOption(id,federatedProcedureDdlBuilder.getOption(),federatedProcedureDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_REMOTESERVER)) {
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(product, version);
+ if (remoteServerDdlBuilder != null) {
+ return new EngineeringOption(id,remoteServerDdlBuilder.getOption(),remoteServerDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_WRAPPER)) {
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(product, version);
+ if (wrapperDdlBuilder != null) {
+ return new EngineeringOption(id,wrapperDdlBuilder.getOption(),wrapperDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USERMAPPING)) {
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(product, version);
+ if (userMappingDdlBuilder != null) {
+ return new EngineeringOption(id,userMappingDdlBuilder.getOption(),userMappingDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_OLAP)) {
+ OlapDdlBuilder olapDdlBuilder = DdlGenerationUtility.getOlapDdlBuilder(product, version);
+ if (olapDdlBuilder != null) {
+ return new EngineeringOption(id,olapDdlBuilder.getOption(),olapDdlBuilder.getOptionDescription(),true,additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PACKAGE, DdlGenerationMessages.GENERATE_PACKAGE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE_BODY)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PACKAGE_BODY, DdlGenerationMessages.GENERATE_PACKAGE_BODY_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BACKUP_TABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_BACKUP_TABLE, DdlGenerationMessages.GENERATE_BACKUP_TABLE_DES,true,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STATISTICS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STATISTICS, DdlGenerationMessages.GENERATE_STATISTICS_DES,false,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ROLE, DdlGenerationMessages.GENERATE_ROLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USER, DdlGenerationMessages.GENERATE_USER_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GROUP)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_GROUP, DdlGenerationMessages.GENERATE_GROUP_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.CHECK_MODEL)) {
+ return new EngineeringOption(id,DdlGenerationMessages.CHECK_MODEL, DdlGenerationMessages.CHECK_MODEL_DES,false,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MODULE, DdlGenerationMessages.GENERATE_MODULE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE_CONDITION)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MODULE_CONDITION, DdlGenerationMessages.GENERATE_MODULE_CONDITION_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GLOBAL_VARIABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_GLOBAL_VARIABLE, DdlGenerationMessages.GENERATE_GLOBAL_VARIABLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_HISTORY_TABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_HISTORY_TABLE, DdlGenerationMessages.GENERATE_HISTORY_TABLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TEMPORARY_TABLES)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TEMPORARY_TABLE, DdlGenerationMessages.GENERATE_TEMPORARY_TABLE_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_XMLSCHEMA)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_XMLSCHEMA, DdlGenerationMessages.GENERATE_XMLSCHEMA_DES,false,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME)) {
+ return new EngineeringOption(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, "");
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_DIRECTORY)) {
+ return new EngineeringOption(EngineeringOptionID.XMLSCHEMA_DIRECTORY, EngineeringOptionID.XMLSCHEMA_DIRECTORY, "");
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SECURITY_POLICY)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SECURITY_POLICY, DdlGenerationMessages.GENERATE_SECURITY_POLICY_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.DROP_RESTRICT)) {
+ return new EngineeringOption(id,DdlGenerationMessages.DROP_RESTRICT, DdlGenerationMessages.DROP_RESTRICT_DES,false,general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROW_PERMISSIONS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ROW_PERMISSIONS, DdlGenerationMessages.GENERATE_ROW_PERMISSIONS_DES,true,additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COLUMN_MASKS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_COLUMN_MASKS, DdlGenerationMessages.GENERATE_COLUMN_MASKS_DES,true,additional_element);
+ }
+ } catch (Exception e) {
+ //The resource was not found
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public static EngineeringOption getEngineeringOption(String id, String product, String version, EngineeringOptionCategory general_options, EngineeringOptionCategory additional_element, SQLObject[] elements)
+ {
+
+ try {
+ if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FULLY_QUALIFIED_NAME, DdlGenerationMessages.GENERATE_FULLY_QUALIFIED_NAME_DES,getOptionPreference(id,product,version,elements,qualifyNamesDefault),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_QUOTED_IDENTIFIER, DdlGenerationMessages.GENERATE_QUOTED_IDENTIFIER_DES,getOptionPreference(id,product,version,elements,quoteIdentifiersDefault),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DROP_STATEMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DROP_STATEMENTS, DdlGenerationMessages.GENERATE_DROP_STATEMENTS_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_STATEMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CREATE_STATEMENTS, DdlGenerationMessages.GENERATE_CREATE_STATEMENTS_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PRIVILEGE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PRIVILEGE, DdlGenerationMessages.GENERATE_PRIVILEGE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COMMENTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_COMMENTS, DdlGenerationMessages.GENERATE_COMMENTS_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_LABELS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_LABELS, DdlGenerationMessages.GENERATE_LABELS_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_IN_TABLESPACE_CLAUSE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_IN_TABLESPACE_CLAUSE, DdlGenerationMessages.GENERATE_IN_TABLESPACE_CLAUSE_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ON_FILEGROUP_CLAUSE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ON_FILEGROUP_CLAUSE, DdlGenerationMessages.GENERATE_ON_FILEGROUP_CLAUSE_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USE_DOMAIN_IF_EXIST))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USE_DOMAIN_IF_EXIST, DdlGenerationMessages.GENERATE_USE_DOMAIN_IF_EXIST_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_OR_REPLACE) && ModelHelper.getVersionAsFloat(version) >= 9.7f)
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CREATE_OR_REPLACE, DdlGenerationMessages.GENERATE_CREATE_OR_REPLACE_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLES, DdlGenerationMessages.GENERATE_TABLES_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES)){
+ if(product.equals("Oracle"))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,getOptionPreference(id,product,version,elements,false),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FILEGROUPS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FILEGROUPS, DdlGenerationMessages.GENERATE_FILEGROUPS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_INDICES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_INDEX, DdlGenerationMessages.GENERATE_INDEX_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STOREDPROCEDURES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STOREDPROCEDURE, DdlGenerationMessages.GENERATE_STOREDPROCEDURE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FUNCTIONS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FUNCTION, DdlGenerationMessages.GENERATE_FUNCTION_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_VIEWS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_VIEW, DdlGenerationMessages.GENERATE_VIEW_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TRIGGERS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TRIGGER, DdlGenerationMessages.GENERATE_TRIGGER_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SEQUENCES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SEQUENCE, DdlGenerationMessages.GENERATE_SEQUENCE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USER_DEFINED_TYPE, DdlGenerationMessages.GENERATE_USER_DEFINED_TYPE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DOMAIN))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DOMAIN, DdlGenerationMessages.GENERATE_DOMAIN_TYPE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ // else if(o instanceof DistinctUserDefinedType)
+ // else if (o instanceof StructuredUserDefinedType)
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PK_CONSTRAINTS, DdlGenerationMessages.GENERATE_PK_CONSTRAINTS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_CK_CONSTRAINTS, DdlGenerationMessages.GENERATE_CK_CONSTRAINTS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FK_CONSTRAINTS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_FK_CONSTRAINTS, DdlGenerationMessages.GENERATE_FK_CONSTRAINTS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TABLESPACES, DdlGenerationMessages.GENERATE_TABLESPACES_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ // else if(id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM)
+ // setOption(new EngineeringOption(id,Messages.getString("GENERATE_SYNONYM"), Messages.getString("GENERATE_SYNONYM_DES"),true,additional_element); //$NON-NLS-1$ //$NON-NLS-2$
+ // }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DATABASE))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_DATABASE, DdlGenerationMessages.GENERATE_DATABASE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MQT))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MQT, DdlGenerationMessages.GENERATE_MQT_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ALIAS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ALIAS, DdlGenerationMessages.GENERATE_ALIAS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SYNONYM, DdlGenerationMessages.GENERATE_SYNONYM_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BUFFERPOOL))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_BUFFERPOOL, DdlGenerationMessages.GENERATE_BUFFERPOOL_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STORAGEGROUP))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STORAGEGROUP, DdlGenerationMessages.GENERATE_STORAGEGROUP_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PARTITIONGROUP))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PARTITIONGROUP, DdlGenerationMessages.GENERATE_PARTITIONGROUP_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SCHEMAS))
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SCHEMA, DdlGenerationMessages.GENERATE_SCHEMA_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_NICKNAME)) {
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(product, version);
+ if (nicknameDdlBuilder != null) {
+ return new EngineeringOption(id,nicknameDdlBuilder.getOption(),nicknameDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ //fsp - pyl
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES)) {
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(product, version);
+ if (federatedProcedureDdlBuilder != null) {
+ return new EngineeringOption(id,federatedProcedureDdlBuilder.getOption(),federatedProcedureDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_REMOTESERVER)) {
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(product, version);
+ if (remoteServerDdlBuilder != null) {
+ return new EngineeringOption(id,remoteServerDdlBuilder.getOption(),remoteServerDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_WRAPPER)) {
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(product, version);
+ if (wrapperDdlBuilder != null) {
+ return new EngineeringOption(id,wrapperDdlBuilder.getOption(),wrapperDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USERMAPPING)) {
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(product, version);
+ if (userMappingDdlBuilder != null) {
+ return new EngineeringOption(id,userMappingDdlBuilder.getOption(),userMappingDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_OLAP)) {
+ OlapDdlBuilder olapDdlBuilder = DdlGenerationUtility.getOlapDdlBuilder(product, version);
+ if (olapDdlBuilder != null) {
+ return new EngineeringOption(id,olapDdlBuilder.getOption(),olapDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PACKAGE, DdlGenerationMessages.GENERATE_PACKAGE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE_BODY)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_PACKAGE_BODY, DdlGenerationMessages.GENERATE_PACKAGE_BODY_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BACKUP_TABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_BACKUP_TABLE, DdlGenerationMessages.GENERATE_BACKUP_TABLE_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STATISTICS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_STATISTICS, DdlGenerationMessages.GENERATE_STATISTICS_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ROLE, DdlGenerationMessages.GENERATE_ROLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_USER, DdlGenerationMessages.GENERATE_USER_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GROUP)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_GROUP, DdlGenerationMessages.GENERATE_GROUP_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.CHECK_MODEL)) {
+ return new EngineeringOption(id,DdlGenerationMessages.CHECK_MODEL, DdlGenerationMessages.CHECK_MODEL_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MODULE, DdlGenerationMessages.GENERATE_MODULE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE_CONDITION)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_MODULE_CONDITION, DdlGenerationMessages.GENERATE_MODULE_CONDITION_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GLOBAL_VARIABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_GLOBAL_VARIABLE, DdlGenerationMessages.GENERATE_GLOBAL_VARIABLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_HISTORY_TABLE)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_HISTORY_TABLE, DdlGenerationMessages.GENERATE_HISTORY_TABLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TEMPORARY_TABLES)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_TEMPORARY_TABLE, DdlGenerationMessages.GENERATE_TEMPORARY_TABLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_XMLSCHEMA)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_XMLSCHEMA, DdlGenerationMessages.GENERATE_XMLSCHEMA_DES,getOptionPreference(id,product,version,elements,false),additional_element);
+ }
+//<bgp else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME)) {
+// return new EngineeringOption(id,EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, getOptionPreference(id,product,version,elements,""));
+// }
+// else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_DIRECTORY)) {
+// return new EngineeringOption(id,EngineeringOptionID.XMLSCHEMA_DIRECTORY, EngineeringOptionID.XMLSCHEMA_DIRECTORY, getOptionPreference(id,product,version,elements,""));
+//bgp> }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SECURITY_POLICY)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_SECURITY_POLICY, DdlGenerationMessages.GENERATE_SECURITY_POLICY_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.DROP_RESTRICT)) {
+ return new EngineeringOption(id,DdlGenerationMessages.DROP_RESTRICT, DdlGenerationMessages.DROP_RESTRICT_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROW_PERMISSIONS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_ROW_PERMISSIONS, DdlGenerationMessages.GENERATE_ROW_PERMISSIONS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COLUMN_MASKS)) {
+ return new EngineeringOption(id,DdlGenerationMessages.GENERATE_COLUMN_MASKS, DdlGenerationMessages.GENERATE_COLUMN_MASKS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ } catch (Exception e) {
+ //The resource was not found
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public static EngineeringOption getEngineeringOption(String id, String product, String version, EngineeringOptionCategory general_options, EngineeringOptionCategory additional_element, SQLObject[] elements, String descriptorName)
+ {
+
+ try {
+ if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_FULLY_QUALIFIED_NAME_DES,getOptionPreference(id,product,version,elements,qualifyNamesDefault),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_QUOTED_IDENTIFIER_DES,getOptionPreference(id,product,version,elements,quoteIdentifiersDefault),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DROP_STATEMENTS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_DROP_STATEMENTS_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_STATEMENTS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_CREATE_STATEMENTS_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PRIVILEGE))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_PRIVILEGE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COMMENTS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_COMMENTS_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_LABELS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_LABELS_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_IN_TABLESPACE_CLAUSE))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_IN_TABLESPACE_CLAUSE_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ON_FILEGROUP_CLAUSE))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_ON_FILEGROUP_CLAUSE_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USE_DOMAIN_IF_EXIST))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_USE_DOMAIN_IF_EXIST_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CREATE_OR_REPLACE) && ModelHelper.getVersionAsFloat(version) >= 9.7f)
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_CREATE_OR_REPLACE_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLES))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_TABLES_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES)){
+ if(product.equals("Oracle"))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_TABLESPACES_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_TABLESPACES_DES,getOptionPreference(id,product,version,elements,false),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FILEGROUPS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_FILEGROUPS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_INDICES))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_INDEX_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STOREDPROCEDURES))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_STOREDPROCEDURE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FUNCTIONS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_FUNCTION_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_VIEWS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_VIEW_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TRIGGERS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_TRIGGER_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SEQUENCES))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_SEQUENCE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_USER_DEFINED_TYPE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ // else if(o instanceof DistinctUserDefinedType)
+ // else if (o instanceof StructuredUserDefinedType)
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PK_CONSTRAINTS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_PK_CONSTRAINTS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_CK_CONSTRAINTS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_CK_CONSTRAINTS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FK_CONSTRAINTS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_FK_CONSTRAINTS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TABLESPACES))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_TABLESPACES_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ // else if(id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM)
+ // setOption(new EngineeringOption(id,Messages.getString("GENERATE_SYNONYM"), Messages.getString("GENERATE_SYNONYM_DES"),true,additional_element); //$NON-NLS-1$ //$NON-NLS-2$
+ // }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_DATABASE))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_DATABASE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MQT))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_MQT_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ALIAS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_ALIAS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SYNONYM))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_SYNONYM_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BUFFERPOOL))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_BUFFERPOOL_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STORAGEGROUP))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_STORAGEGROUP_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PARTITIONGROUP))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_PARTITIONGROUP_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SCHEMAS))
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_SCHEMA_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_NICKNAME)) {
+ ExtendDdlBuilder nicknameDdlBuilder = DdlGenerationUtility.getNicknameDdlBuilder(product, version);
+ if (nicknameDdlBuilder != null) {
+ return new EngineeringOption(id,nicknameDdlBuilder.getOption(),nicknameDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ //fsp - pyl
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES)) {
+ ExtendDdlBuilder federatedProcedureDdlBuilder = DdlGenerationUtility.getFederatedProcedureDdlBuilder(product, version);
+ if (federatedProcedureDdlBuilder != null) {
+ return new EngineeringOption(id,federatedProcedureDdlBuilder.getOption(),federatedProcedureDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_REMOTESERVER)) {
+ ExtendDdlBuilder remoteServerDdlBuilder = DdlGenerationUtility.getRemoteServerDdlBuilder(product, version);
+ if (remoteServerDdlBuilder != null) {
+ return new EngineeringOption(id,remoteServerDdlBuilder.getOption(),remoteServerDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_WRAPPER)) {
+ ExtendDdlBuilder wrapperDdlBuilder = DdlGenerationUtility.getWrapperDdlBuilder(product, version);
+ if (wrapperDdlBuilder != null) {
+ return new EngineeringOption(id,wrapperDdlBuilder.getOption(),wrapperDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USERMAPPING)) {
+ ExtendDdlBuilder userMappingDdlBuilder = DdlGenerationUtility.getUserMappingDdlBuilder(product, version);
+ if (userMappingDdlBuilder != null) {
+ return new EngineeringOption(id,userMappingDdlBuilder.getOption(),userMappingDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_OLAP)) {
+ OlapDdlBuilder olapDdlBuilder = DdlGenerationUtility.getOlapDdlBuilder(product, version);
+ if (olapDdlBuilder != null) {
+ return new EngineeringOption(id,olapDdlBuilder.getOption(),olapDdlBuilder.getOptionDescription(),getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_PACKAGE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_PACKAGE_BODY)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_PACKAGE_BODY_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_BACKUP_TABLE)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_BACKUP_TABLE_DES,getOptionPreference(id,product,version,elements,true),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_STATISTICS)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_STATISTICS_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROLE)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_ROLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_USER)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_USER_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GROUP)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_GROUP_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.CHECK_MODEL)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.CHECK_MODEL_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_MODULE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_MODULE_CONDITION)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_MODULE_CONDITION_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_GLOBAL_VARIABLE)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_GLOBAL_VARIABLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_HISTORY_TABLE)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_HISTORY_TABLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_TEMPORARY_TABLES)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_TEMPORARY_TABLE_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_XMLSCHEMA)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_XMLSCHEMA_DES,getOptionPreference(id,product,version,elements,false),additional_element);
+ }
+//<bgp else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME)) {
+// return new EngineeringOption(id,EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, getOptionPreference(id,product,version,elements,""));
+// }
+// else if (id.equalsIgnoreCase(EngineeringOptionID.XMLSCHEMA_DIRECTORY)) {
+// return new EngineeringOption(id,EngineeringOptionID.XMLSCHEMA_DIRECTORY, EngineeringOptionID.XMLSCHEMA_DIRECTORY, getOptionPreference(id,product,version,elements,""));
+//bgp> }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_SECURITY_POLICY)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_SECURITY_POLICY_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.DROP_RESTRICT)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.DROP_RESTRICT_DES,getOptionPreference(id,product,version,elements,false),general_options);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_ROW_PERMISSIONS)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_ROW_PERMISSIONS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ else if (id.equalsIgnoreCase(EngineeringOptionID.GENERATE_COLUMN_MASKS)) {
+ return new EngineeringOption(id,descriptorName, DdlGenerationMessages.GENERATE_COLUMN_MASKS_DES,getOptionPreference(id,product,version,elements,true),additional_element);
+ }
+ } catch (Exception e) {
+ //The resource was not found
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+ //@ed00058820gs
+
+ public static boolean getOptionPreference(String id, String product, String version, SQLObject[] elements, boolean defaultValue){
+ return Boolean.parseBoolean(instanceNode.get(PreferenceConstants.PREF_GENERATE_DDL_OPTION + product + version + elements[0].eClass().getName() + id, String.valueOf(defaultValue)));
+ }
+
+ public static String getOptionPreference(String id, String product, String version, SQLObject[] elements, String defaultValue){
+ return instanceNode.get(PreferenceConstants.PREF_GENERATE_DDL_OPTION + product + version + elements[0].eClass().getName() + id, defaultValue);
+ }
+
+ public static OlapDdlBuilder getOlapDdlBuilder(String dbProduct, String dbVersion) {
+ if (olapDdlBuilder != null) return olapDdlBuilder;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "olapDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("builder")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(!product.equals(dbProduct)) continue;
+ try {
+ olapDdlBuilder = (OlapDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the olap ddl builder for " + product, e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return olapDdlBuilder;
+ }
+
+ public static ExtendDdlBuilder getNicknameDdlBuilder(String dbProduct, String dbVersion) {
+ if (nicknameDdlBuilder != null) return nicknameDdlBuilder;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "nicknameDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("builder")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(!product.equals(dbProduct)) continue;
+ try {
+ nicknameDdlBuilder = (ExtendDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the nickname ddl builder for " + product, e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return nicknameDdlBuilder;
+ }
+
+ // fsp - pyl
+ public static ExtendDdlBuilder getFederatedProcedureDdlBuilder(String dbProduct, String dbVersion) {
+ if (federatedProcedureDdlBuilder != null) return federatedProcedureDdlBuilder;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "federatedProcedureDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("builder")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(!product.equals(dbProduct)) continue;
+ try {
+ federatedProcedureDdlBuilder = (ExtendDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the federated stored procedure ddl builder for " + product, e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return federatedProcedureDdlBuilder;
+ }
+
+ public static ExtendDdlBuilder getRemoteServerDdlBuilder(String dbProduct, String dbVersion) {
+ if (remoteServerDdlBuilder != null) return remoteServerDdlBuilder;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "remoteServerDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("builder")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(!product.equals(dbProduct)) continue;
+ try {
+ remoteServerDdlBuilder = (ExtendDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the remote Server ddl builder for " + product, e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return remoteServerDdlBuilder;
+ }
+
+ public static ExtendDdlBuilder getWrapperDdlBuilder(String dbProduct, String dbVersion) {
+ if (wrapperDdlBuilder != null) return wrapperDdlBuilder;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "wrapperDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("builder")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(!product.equals(dbProduct)) continue;
+ try {
+ wrapperDdlBuilder = (ExtendDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the Wrapper ddl builder for " + product, e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return wrapperDdlBuilder;
+ }
+
+ public static ExtendDdlBuilder getUserMappingDdlBuilder(String dbProduct, String dbVersion) {
+ if (userMappingDdlBuilder != null) return userMappingDdlBuilder;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "userMappingDdlBuilder"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("builder")) { //$NON-NLS-1$
+ String product = configElements[j].getAttribute("product"); //$NON-NLS-1$
+ if(!product.equals(dbProduct)) continue;
+ try {
+ userMappingDdlBuilder = (ExtendDdlBuilder) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the User Mapping ddl builder for " + product, e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return userMappingDdlBuilder;
+ }
+
+ public static TypedElementLogicalDomainProvider getElementDomainProvider(){
+ if (elementDomainProvider != null) return elementDomainProvider;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "typedElementLogicalDomainProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("provider")) { //$NON-NLS-1$
+ try {
+ elementDomainProvider = (TypedElementLogicalDomainProvider) configElements[j].createExecutableExtension("typeProvider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the element domain provider ", e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return elementDomainProvider;
+
+ }
+
+ public static ModelValidationProvider getModelValidationProvider(){
+ if (modelValidationProvider != null) return modelValidationProvider;
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "checkModelProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ if (extensionPoint != null) {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("checkModel")) { //$NON-NLS-1$
+ try {
+ modelValidationProvider = (ModelValidationProvider) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the model validation provider ", e); //$NON-NLS-1$
+ IBMPluginActivator.getInstance().getLog().log(status);
+ }
+ break;
+ }
+ }
+ }
+ }
+ return modelValidationProvider;
+ }
+
+
+ public static Map getCodetemplatePatterns(){
+ Map patterns = new HashMap();
+ Preferences instanceNode = InstanceScope.INSTANCE.getNode("com.ibm.datatools.core.ui");//$NON-NLS-1$
+ String text="";
+ text = instanceNode.get(PreferenceConstants.CODETEMPLATE_APPLY_CONTEXT_KEY,text);
+ if (text != null && !text.equals("")) {
+ DdlGenerationUtility.getCodetemplateContext(patterns, CREATE_STATEMENT, text);
+ DdlGenerationUtility.getCodetemplateContext(patterns, DROP_STATEMENT, text);
+ }
+
+ text = instanceNode.get(PreferenceConstants.CODETEMPLATE_TABLE_PATTERN_KEY,"");
+ DdlGenerationUtility.getCodetemplatePattern(patterns, text);
+
+ text = instanceNode.get(PreferenceConstants.CODETEMPLATE_ROUTINE_PATTERN_KEY,"");
+ DdlGenerationUtility.getCodetemplatePattern(patterns, text);
+
+ text = instanceNode.get(PreferenceConstants.CODETEMPLATE_VIEW_PATTERN_KEY,"");
+ DdlGenerationUtility.getCodetemplatePattern(patterns, text);
+
+ text = instanceNode.get(PreferenceConstants.CODETEMPLATE_CONSTRAINT_PATTERN_KEY,"");
+ DdlGenerationUtility.getCodetemplatePattern(patterns, text);
+
+ return patterns;
+ }
+
+
+
+ private static void getCodetemplateContext(Map map,String statementType, String data){
+ StringTokenizer token = new StringTokenizer(data,DdlGenerationUtility.STATEMENT_TYPE_SEPARATOR);
+ while (token.hasMoreTokens()) {
+ String str = token.nextToken();
+ int pos = str.indexOf(statementType);
+ if (pos == -1) continue;
+ StringTokenizer contextToken = new StringTokenizer(str.substring(statementType.length()+1),DdlGenerationUtility.CONTEXT_SEPARATOR);
+ while (contextToken.hasMoreTokens()) {
+ String str1 = contextToken.nextToken();
+ String name =str1;
+ boolean applied = false;
+ if (str1.endsWith(DdlGenerationUtility.CONTEXT_APPLY_FLAG)) {
+ name = str1.substring(0, str1.length()-1);
+ applied = true;
+ }
+
+ CodeTemplateContextPattern context = null;
+ if (map.containsKey(name)) {
+ context = (CodeTemplateContextPattern)map.get(name);
+ }else {
+ context = new CodeTemplateContextPattern();
+ map.put(name,context);
+ }
+
+ if (applied){
+ if (statementType.equals(CREATE_STATEMENT)) {
+ context.setAppliedType(DdlGenerationUtility.GENERATE_CREATE_PATTERN);
+ } else if (statementType.equals(DROP_STATEMENT)) {
+ context.setAppliedType(DdlGenerationUtility.GENERATE_DROP_PATTERN);
+ }
+ }
+
+ }
+ }
+ }
+
+ private static void getCodetemplatePattern(Map map, String codeTemplate){
+ if (codeTemplate == null) return;
+
+ Pattern pattern = Pattern.compile(DdlGenerationUtility.PATTERN_KEY,Pattern.DOTALL);
+ String[] result = pattern.split(codeTemplate);
+ for (int i = 0; i < result.length; i++) {
+ parserPattern(map,result[i]);
+ }
+
+ }
+
+ private static void parserPattern(Map map, String pattern){
+ int pos = pattern.indexOf("::");
+ if (pos == -1 ) return;
+
+ String context = pattern.substring(0,pos);
+ String text = pattern.substring(pos+2);
+
+ if (!map.containsKey(context)) {
+ return;
+ }
+
+ CodeTemplateContextPattern contextPattern = (CodeTemplateContextPattern)map.get(context);
+ if (contextPattern == null) return;
+ pos = text.indexOf("::");
+ if (pos == -1 ) return;
+
+ String type = text.substring(0,pos);
+ if (type.equals(CREATE_PROLOG)){
+ contextPattern.setCreateProlog(text.substring(pos +2));
+ } else if (type.equals(CREATE_POSTLOG)){
+ contextPattern.setCreatePostlog(text.substring(pos +2));
+ } else if (type.equals(DROP_PROLOG)) {
+ contextPattern.setDropProlog(text.substring(pos +2));
+ } else if (type.equals(DROP_POSTLOG)) {
+ contextPattern.setDropPostlog(text.substring(pos +2));
+ }
+
+ }
+
+ private static int tableNameSuffix = 0;
+
+ private static String getTableNameSuffix() {
+ return String.valueOf(tableNameSuffix++);
+ }
+
+ private static String iterateUntilUnique(ArrayList<String> tables,String prefix) {
+ String retString = prefix + getTableNameSuffix();
+ if (tables.size() > 0) {
+ for (String table: tables) {
+ if (table.equals(retString)) return iterateUntilUnique(tables,prefix);
+ }
+ }
+ return retString;
+ }
+
+ private static String createUniqueTableName(List<Table> existing,String prefix) {
+ int prefixLength = prefix.length();
+ ArrayList<String> tableNames = new ArrayList<String>();
+ // Eliminate all the tables with different prefix first
+ Iterator<Table> it = existing.iterator();
+ while (it.hasNext()) {
+ String tableName = it.next().getName();
+ if ((tableName.length() >= prefixLength) &&
+ tableName.substring(0,prefixLength).equals(prefix)) tableNames.add(tableName);
+ }
+ // Find a unique name from the remaining index names
+ return iterateUntilUnique(tableNames,prefix);
+ }
+
+ public static String getUniqueTableName(Schema schema,String prefix) {
+ Object collection = schema.eGet(SQLSchemaPackage.eINSTANCE.getSchema_Tables());
+ if (collection instanceof EList) {
+ return createUniqueTableName((EList)collection,prefix);
+ }
+ return null;
+ }
+
+ // Determine if the unique constraint is supported by the index
+ public static boolean isSameMembership(Index o, UniqueConstraint o1) {
+ EList idxMembers = o.getMembers();
+ EList ucMembers = o1.getMembers();
+ if (idxMembers.size() != ucMembers.size()) return false;
+ for (int i=0;i<idxMembers.size();i++) {
+ if (ucMembers.get(i) != ((IndexMember)(idxMembers.get(i))).getColumn()) return false;
+ }
+ return true;
+ }
+
+ /**
+ * Get the character to use as the data object identifier delimiter
+ * (typically the double quote character).
+ * @param object
+ * @return
+ */
+ public static char getSqlIdentifierDelimiterCharacter(SQLObject object) {
+ // For now, we are always returning the default delimiter, but in the future
+ // we may want to make use of the object to tailor this to the database
+ // vendor/version or user-defined delimiter
+ SQLQuerySourceFormat sourceFormat = SQLQuerySourceFormat.copyDefaultFormat();
+ return sourceFormat.getDelimitedIdentifierQuote();
+ }
+
+ /**
+ * Get the character to use as the DDL escape character. There is currently
+ * no support for this in the SQL parser, so we assume it will be the same as
+ * the data object identifier delimiter (hence, when a delimiter character
+ * is embedded in a data object name, it will be doubled up to escape it).
+ * @param object
+ * @return
+ */
+ public static char getSqlEscapeCharacter(SQLObject object) {
+ // For now, there is no separate escape character definition, so we just
+ // return the indentifier delimiter. In future this may be implemented and
+ // dependent on vendor-version
+ return getSqlIdentifierDelimiterCharacter(object);
+ }
+
+ /**
+ * Return true if the name of the object can be used in SQL without delimiting.
+ * @param object The data object whose name is to be considered.
+ * @return
+ */
+ public static boolean isValidUnquotedDataObjectIdentifier(SQLObject object) {
+ String allowedFirstCharSymbols = "@$#";
+ String name = object.getName();
+ if (name == null || name.length() < 1) {
+ return false;
+ }
+ char firstChar = name.charAt(0);
+ if (!Character.isLetter(firstChar) &&
+ !allowedFirstCharSymbols.contains(new String(new char[] {firstChar}))) {
+ return false;
+ }
+ for (int i=1;i<name.length();i++) {
+ char c = name.charAt(i);
+ if (!Character.isLetterOrDigit(c) &&
+ !allowedFirstCharSymbols.contains(new String(new char[] {c})) &&
+ c != '_') {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static List<Integer> getConstraintColumnReferencePointers(CheckConstraint constraint,Column col) {
+ List<Integer> occurrenceIdxs = new ArrayList<Integer>();
+ if(col == null) {
+ return occurrenceIdxs;
+ }
+ String name = col.getName();
+ if(name == null || (name.length()==0)) {
+ return occurrenceIdxs;
+ }
+ SearchCondition cond = constraint.getSearchCondition();
+ if(cond == null) {
+ return occurrenceIdxs;
+ }
+ String sql = cond.getSQL();
+ if((sql==null) || (sql.length()==0)) {
+ return occurrenceIdxs;
+ }
+
+ // Looks like we have all the essentials
+ Table table = constraint.getBaseTable();
+ String tableName = table.getName();
+ Schema schema = table.getSchema();
+ String schemaName = schema.getName();
+
+ Set<ValueExpressionColumn> vECs = getConstraintValueExpressionColumns(schema,table,constraint);
+
+ // get the SQL source format options and set at least the current schema
+ // that is omited but implicit for any unqualified table references
+ // important for later resolving of table references!
+ SQLQuerySourceFormat sourceFormat = SQLQuerySourceFormat.copyDefaultFormat();
+ sourceFormat.setOmitSchema(schemaName);
+ char nameDelimiter = sourceFormat.getDelimitedIdentifierQuote();
+ String selectProlog = "SELECT * FROM " + nameDelimiter + tableName + nameDelimiter + " WHERE ";//$NON-NLS-1$ //$NON-NLS-2$
+
+ for (ValueExpressionColumn vEC:vECs) {
+ // Ignore the column references that do not reference the current
+ // column of interest
+ if (isValidUnquotedDataObjectIdentifier(col)) {
+ // Identifier does not need to be quoted - ignore case
+ if (!((ValueExpressionColumn)vEC).getName().equalsIgnoreCase(col.getName())) {
+ continue;
+ }
+ }
+ else {
+ // Identifier must be quoted - case must be respected
+ if (!((ValueExpressionColumn)vEC).getName().equals(col.getName())) {
+ continue;
+ }
+ }
+ SQLQuerySourceInfo info = ((ValueExpressionColumn)vEC).getSourceInfo();
+ int idx = info.getSpanStartOffset();
+ String snippet = info.getSourceSnippet();
+ // If the column name is delimited in the constraint expression, the
+ // index will pointing to the first delimiter instead of to the first
+ // character of the name -- so add 1 in this case to the index
+ if ((snippet.charAt(0) == nameDelimiter) &&
+ (snippet.length() > name.length())) {
+ idx = idx + 1;
+ }
+ occurrenceIdxs.add(idx - selectProlog.length());
+ }
+ return occurrenceIdxs;
+ }
+
+ public static Set<ValueExpressionColumn> getConstraintValueExpressionColumns(Schema schema,Table table,CheckConstraint constraint) {
+ Set<ValueExpressionColumn> cols = new HashSet<ValueExpressionColumn>();
+
+ SearchCondition cond = constraint.getSearchCondition();
+
+ if(cond == null) {
+ return cols;
+ }
+ String sql = cond.getSQL();
+ if((sql==null) || (sql.length()==0)) {
+ return cols;
+ }
+
+ // Looks like we have all the essentials
+ String tableName = table.getName();
+ String schemaName = schema.getName();
+ Database database = schema.getDatabase();
+
+ try {
+ // create the post parse processors
+ PostParseProcessor tableRefResolver = new TableReferenceResolver(database,schemaName);
+ PostParseProcessor dataTypeResolver = new DataTypeResolver();
+
+ // ordering is important for post parse processing! first we need to fill
+ // in the database information for table references and column types
+ List postParseProcessors = new ArrayList();
+ postParseProcessors.add(0, tableRefResolver);
+ postParseProcessors.add(1, dataTypeResolver);
+
+ // get the SQL source format options and set at least the current schema
+ // that is omited but implicit for any unqualified table references
+ // important for later resolving of table references!
+ SQLQuerySourceFormat sourceFormat = SQLQuerySourceFormat.copyDefaultFormat();
+ sourceFormat.setOmitSchema(schemaName);
+ char nameDelimiter = sourceFormat.getDelimitedIdentifierQuote();
+
+ String selectProlog = "SELECT * FROM " + nameDelimiter + tableName + nameDelimiter + " WHERE ";//$NON-NLS-1$ //$NON-NLS-2$
+ String selectStatement = selectProlog + sql; // construct a select statement
+
+ // create an instance of the ParserManager
+ SQLQueryParserManager parserManager =
+ SQLQueryParserManagerProvider.getInstance().
+ getParserManager(database.getVendor(),database.getVersion());
+ parserManager.configParser(sourceFormat,postParseProcessors);
+
+ // parse the SQL statement
+ SQLQueryParseResult parseResult = (SQLQueryParseResult) parserManager.parseQuery(selectStatement);
+
+ // get the parsed SQLQueryObject model instance
+ QueryStatement qS = parseResult.getQueryStatement();
+ QuerySearchCondition qSC = StatementHelper.getSearchCondition(qS);
+ Set colSet = TableHelper.findColumnReferencesInSearchCondition(qSC);
+ for (Object vEC:colSet) {
+ if (vEC instanceof ValueExpressionColumn) {
+ cols.add((ValueExpressionColumn)vEC);
+ }
+ }
+ }
+ catch(Exception ex) {
+ }
+ return cols;
+ }
+
+ public static Column getFirstColumnInCheckConstraintSearchCondition(Schema schema,Table table,CheckConstraint constraint) {
+ Set<ValueExpressionColumn> vECs = getConstraintValueExpressionColumns(schema,table,constraint);
+ List<Column> cols = table.getColumns();
+ for (ValueExpressionColumn vEC:vECs) {
+ for (Column col:cols) {
+ if (isValidUnquotedDataObjectIdentifier(col)) {
+ // Identifier does not need to be quoted - ignore case
+ if (!((ValueExpressionColumn)vEC).getName().equalsIgnoreCase(col.getName())) {
+ continue;
+ }
+ }
+ else {
+ // Identifier must be quoted - case must be respected
+ if (!((ValueExpressionColumn)vEC).getName().equals(col.getName())) {
+ continue;
+ }
+ }
+ // Have a match
+ return col;
+ }
+ }
+ return null;
+ }
+
+ public static String convertLineEndings(String str, String lineEnding) {
+ // Replace line endings with system line ending
+ BufferedReader reader = new BufferedReader(new StringReader(str));
+ StringBuffer buf = new StringBuffer();
+ String line;
+ try {
+ while ((line = reader.readLine()) != null) {
+ buf.append(line + lineEnding);
+ }
+ reader.close();
+ } catch (IOException e) {
+ return null;
+ }
+ return buf.toString();
+ }
+
+ public static boolean filterOutComments( String sql )
+ {
+ String[] statements = sql.split( "\n" );
+ for ( String s : statements )
+ {
+ if ( s.startsWith( "--" ) )
+ {
+ continue;
+ }
+ else if ( s.trim().length() > 0 )
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlParser.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlParser.java
new file mode 100644
index 0000000..dcd1478
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlParser.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2003,2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+
+public interface DdlParser {
+
+ public void parseView (ViewTable view,String viewText);
+ public void parseTrigger (Trigger trigger,String triggerText);
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlScript.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlScript.java
new file mode 100644
index 0000000..288e8a4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/DdlScript.java
@@ -0,0 +1,272 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import java.util.Vector;
+
+public class DdlScript {
+ public void addDropTableStatement(String statement) {
+ dropTableStatements.addElement(statement);
+ }
+
+ public void addCreateTableStatement(String statement) {
+ createTableStatements.addElement(statement);
+ }
+
+ public void addRenameTableStatement(String statement) {
+ renameTableStatements.addElement(statement);
+ }
+
+ public void addRenameColumnStatement(String statement) {
+ renameColumnStatements.addElement(statement);
+ }
+
+ public void addAlterTableStatement(String statement) {
+ alterTableStatements.addElement(statement);
+ }
+
+ public void addAlterTableAddColumnStatement(String statement) {
+ alterTableAddColumnStatements.addElement(statement);
+ }
+
+ public void addAlterTableDropColumnStatement(String statement) {
+ alterTableDropColumnStatements.addElement(statement);
+ }
+
+ public void addReorgTableStatement(String statement) {
+ reorgStatements.addElement(statement);
+ }
+
+ // Data Preservation
+ public void addBackupTableStatement(String statement) {
+ backupTableStatements.addElement(statement);
+ }
+
+ public void addPopulateTableStatement(String statement) {
+ populateTableStatements.addElement(statement);
+ }
+ public void addDropBackupTableStatement(String statement) {
+ dropBackupTableStatements.addElement(statement);
+ }
+ // End Data Presrevation
+
+ public void addDropViewStatement(String statement) {
+ dropViewStatements.addElement(statement);
+ }
+
+ public void addCreateViewStatement(String statement) {
+ createViewStatements.addElement(statement);
+ }
+
+ public void addDropUserDefinedTypeStatement(String statement) {
+ dropUserDefinedTypeStatements.addElement(statement);
+ }
+
+ public void addCreateUserDefinedTypeStatement(String statement) {
+ createUserDefinedTypeStatements.addElement(statement);
+ }
+
+ public void addDropSequenceStatement(String statement){
+ dropSequenceStatements.addElement(statement);
+ }
+
+ public void addCreateSequenceStatement(String statement){
+ createSequenceStatements.addElement(statement);
+ }
+
+ public void addDropRoutineStatement(String statement) {
+ dropRoutineStatements.addElement(statement);
+ }
+
+ public void addCreateRoutineStatement(String statement) {
+ createRoutineStatements.addElement(statement);
+ }
+
+ public void addAlterTableDropForeignKeyStatement(String statement) {
+ dropForeignKeyStatements.addElement(statement);
+ }
+
+ public void addAlterTableAddForeignKeyStatement(String statement) {
+ addForeignKeyStatements.addElement(statement);
+ }
+
+ public void addDropIndexStatement(String statement) {
+ dropIndexStatements.addElement(statement);
+ }
+
+ public void addCreateViewIndexStatement(String statement) {
+ createViewIndexStatements.addElement(statement);
+ }
+
+ public void addDropViewIndexStatement(String statement) {
+ dropViewIndexStatements.addElement(statement);
+ }
+
+ public void addCreateIndexStatement(String statement) {
+ createIndexStatements.addElement(statement);
+ }
+
+ public void addDropTriggerStatement(String statement) {
+ dropTriggerStatements.addElement(statement);
+ }
+
+ public void addCreateTriggerStatement(String statement) {
+ createTriggerStatements.addElement(statement);
+ }
+
+ public void addAlterTableDropConstraintStatement(String statement) {
+ dropConstraintStatements.addElement(statement);
+ }
+
+ public void addAlterTableAddConstraintStatement(String statement) {
+ addConstraintStatements.addElement(statement);
+ }
+
+ public void addDropSchemaStatement(String statement) {
+ dropSchemaStatements.addElement(statement);
+ }
+
+ //@bd00058820gs
+ public void addDropDatabaseStatement(String statement) {
+ dropDatabaseStatements.addElement(statement);
+ }
+ //@ed00058820gs
+
+ public void addCreateSchemaStatement(String statement) {
+ createSchemaStatements.addElement(statement);
+ }
+
+ //@bd00058820gs
+ public void addCreateDatabaseStatement(String statement) {
+ createDatabaseStatements.addElement(statement);
+ }
+ //@ed00058820gs
+
+ public void addRevokeStatement(String statement) {
+ revokeStatements.addElement(statement);
+ }
+
+ public void addGrantStatement(String statement) {
+ grantStatements.addElement(statement);
+ }
+
+ public void addCreateRoleStatement(String statement) {
+ createRoleStatements.addElement(statement);
+ }
+
+ public void addCreateUserStatement(String statement) {
+ createUserStatements.addElement(statement);
+ }
+
+ public void addCreateGroupStatement(String statement) {
+ createGroupStatements.addElement(statement);
+ }
+ public void addDropRoleStatement(String statement) {
+ dropRoleStatements.addElement(statement);
+ }
+ public void addDropUserStatement(String statement) {
+ dropUserStatements.addElement(statement);
+ }
+ public void addDropGroupStatement(String statement) {
+ dropGroupStatements.addElement(statement);
+ }
+
+ public String[] getStatements(){
+ Vector scriptVec = new Vector();
+ scriptVec.addAll(revokeStatements);
+ scriptVec.addAll(dropTriggerStatements);
+ scriptVec.addAll(dropRoutineStatements);
+ scriptVec.addAll(dropForeignKeyStatements);
+ scriptVec.addAll(dropConstraintStatements);
+ scriptVec.addAll(dropViewIndexStatements);
+ scriptVec.addAll(dropIndexStatements);
+ scriptVec.addAll(dropViewStatements);
+ scriptVec.addAll(backupTableStatements); // Data Preservation
+ scriptVec.addAll(dropTableStatements);
+ scriptVec.addAll(dropSequenceStatements);
+ scriptVec.addAll(dropUserDefinedTypeStatements);
+ scriptVec.addAll(dropSchemaStatements);
+ scriptVec.addAll(dropRoleStatements);
+ scriptVec.addAll(dropUserStatements);
+ scriptVec.addAll(dropGroupStatements);
+ scriptVec.addAll(dropDatabaseStatements); //@d00058820gs
+ scriptVec.addAll(createDatabaseStatements); //@d00058820gs
+ scriptVec.addAll(createRoleStatements);
+ scriptVec.addAll(createUserStatements);
+ scriptVec.addAll(createGroupStatements);
+ scriptVec.addAll(createSchemaStatements);
+ scriptVec.addAll(renameTableStatements);
+ scriptVec.addAll(renameColumnStatements);
+ scriptVec.addAll(createUserDefinedTypeStatements);
+ scriptVec.addAll(createSequenceStatements);
+ scriptVec.addAll(createTableStatements);
+ scriptVec.addAll(alterTableStatements);
+ scriptVec.addAll(alterTableDropColumnStatements);
+ scriptVec.addAll(alterTableAddColumnStatements);
+ scriptVec.addAll(reorgStatements);
+ scriptVec.addAll(populateTableStatements); // Data Preservation
+ scriptVec.addAll(dropBackupTableStatements); // Data Preservation
+ scriptVec.addAll(createIndexStatements);
+ scriptVec.addAll(addConstraintStatements);
+ scriptVec.addAll(addForeignKeyStatements);
+ scriptVec.addAll(createViewStatements);
+ scriptVec.addAll(createViewIndexStatements);
+ scriptVec.addAll(createRoutineStatements);
+ scriptVec.addAll(createTriggerStatements);
+ scriptVec.addAll(grantStatements);
+
+ String[] scripts = new String[scriptVec.size()];
+ scriptVec.copyInto(scripts);
+ return scripts;
+ }
+
+ protected Vector revokeStatements = new Vector();
+ protected Vector dropRoutineStatements = new Vector();
+ protected Vector dropForeignKeyStatements = new Vector();
+ protected Vector backupTableStatements = new Vector(); // Data Preservation
+ protected Vector populateTableStatements = new Vector(); // Data Preservation
+ protected Vector dropBackupTableStatements = new Vector(); // Data Preservation
+ protected Vector dropTableStatements = new Vector();
+ protected Vector renameTableStatements = new Vector();
+ protected Vector renameColumnStatements = new Vector();
+ protected Vector dropViewStatements = new Vector();
+ protected Vector dropUserDefinedTypeStatements = new Vector();
+ protected Vector dropSequenceStatements = new Vector();
+ protected Vector dropConstraintStatements = new Vector();
+ protected Vector dropTriggerStatements = new Vector();
+ protected Vector dropIndexStatements = new Vector();
+ protected Vector dropViewIndexStatements = new Vector();
+ protected Vector dropDatabaseStatements = new Vector(); //@bd00058820gs
+ protected Vector dropSchemaStatements = new Vector();
+ protected Vector dropRoleStatements = new Vector();
+ protected Vector dropUserStatements = new Vector();
+ protected Vector dropGroupStatements = new Vector();
+ protected Vector createUserDefinedTypeStatements = new Vector();
+ protected Vector createRoutineStatements = new Vector();
+ protected Vector createTableStatements = new Vector();
+ protected Vector alterTableStatements = new Vector();
+ protected Vector alterTableDropColumnStatements = new Vector();
+ protected Vector alterTableAddColumnStatements = new Vector();
+ protected Vector reorgStatements = new Vector();
+ protected Vector createViewStatements = new Vector();
+ protected Vector createSequenceStatements = new Vector();
+ protected Vector addForeignKeyStatements = new Vector();
+ protected Vector createIndexStatements = new Vector();
+ protected Vector createViewIndexStatements = new Vector();
+ protected Vector createTriggerStatements = new Vector();
+ protected Vector addConstraintStatements = new Vector();
+ protected Vector createSchemaStatements = new Vector();
+ protected Vector createDatabaseStatements = new Vector(); //@bd00058820gs
+ protected Vector grantStatements = new Vector();
+ protected Vector createRoleStatements = new Vector();
+ protected Vector createUserStatements = new Vector();
+ protected Vector createGroupStatements = new Vector();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/ExtendDdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/ExtendDdlBuilder.java
new file mode 100644
index 0000000..21d92c5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/ExtendDdlBuilder.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+
+public interface ExtendDdlBuilder {
+ // Returns a string to be added (with a checkbox) to the 'Generate DDL' wizard. When the checkbox is checked by the user the buildCreateStatement method will be subsequently called to retrieve OLAP DDL.
+ public String getOption();
+
+ //Returns a string that describes the option string returned by getOption. The string will be displayed as help for the option in the Generate DDL wizard.
+ public String getOptionDescription();
+
+ public String buildDropStatement(Object sqlobject,boolean quoteIdentifiers, boolean qualifyNames);
+ public String buildCreateStatement(Object sqlobject,boolean quoteIdentifiers, boolean qualifyNames);
+ public String buildCommentOnStatement(Object sqlobject,boolean quoteIdentifiers, boolean qualifyNames);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/ModelValidationProvider.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/ModelValidationProvider.java
new file mode 100644
index 0000000..a1164ad
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/ModelValidationProvider.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+public interface ModelValidationProvider {
+ public boolean checkModel(SQLObject[] sqlObjects);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/OlapDdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/OlapDdlBuilder.java
new file mode 100644
index 0000000..124fb65
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/OlapDdlBuilder.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+
+public interface OlapDdlBuilder {
+
+ // Returns a string to be added (with a checkbox) to the 'Generate DDL' wizard. When the checkbox is checked by the user the buildCreateStatement method will be subsequently called to retrieve OLAP DDL.
+ public String getOption();
+
+ //Returns a string that describes the option string returned by getOption. The string will be displayed as help for the option in the Generate DDL wizard.
+ public String getOptionDescription();
+
+ String [] buildCreateStatement(SQLObject[] objects,boolean quoteIdentifiers, boolean qualifyNames);
+ String [] buildDropStatement(SQLObject[] objects,boolean quoteIdentifiers, boolean qualifyNames);
+ //String [] buildCommentStatement(SQLObject[] objects,boolean quoteIdentifiers, boolean qualifyNames); //@d00058820gs
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/OrderingDdlScript.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/OrderingDdlScript.java
new file mode 100644
index 0000000..5af568f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/OrderingDdlScript.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import java.util.Vector;
+
+import org.eclipse.datatools.enablement.ibm.util.CompoundStatementsMap;
+
+public abstract class OrderingDdlScript extends DdlScript {
+
+ public void addDropTableStatements(String statement,Vector<String> statements) {
+ this.orderedDropTableStatements.put(statement,statements);
+ }
+
+ public void addDropTableStatement(String statement) {
+ addDropTableStatements(statement,null);
+ }
+
+ public void addCreateTableStatements(String statement,Vector<String> statements) {
+ this.orderedCreateTableStatements.put(statement,statements);
+ }
+
+ public void addCreateTableStatement(String statement) {
+ addCreateTableStatements(statement,null);
+ }
+
+ public void addDropViewStatements(String statement,Vector<String> statements) {
+ this.orderedDropViewStatements.put(statement,statements);
+ }
+
+ public void addDropViewStatement(String statement) {
+ addDropViewStatements(statement,null);
+ }
+
+ public void addCreateViewStatements(String statement,Vector<String> statements) {
+ this.orderedCreateViewStatements.put(statement,statements);
+ }
+
+ public void addCreateViewStatement(String statement) {
+ addCreateViewStatements(statement,null);
+ }
+
+ public void addDropRoutineStatements(String statement,Vector<String> statements) {
+ this.orderedDropRoutineStatements.put(statement,statements);
+ }
+
+ public void addDropRoutineStatement(String statement) {
+ addDropRoutineStatements(statement,null);
+ }
+
+ public void addCreateRoutineStatements(String statement,Vector<String> statements) {
+ this.orderedCreateRoutineStatements.put(statement,statements);
+ }
+
+ public void addCreateRoutineStatement(String statement) {
+ addCreateRoutineStatements(statement,null);
+ }
+
+ public void addAlterTableDropConstraintStatements(String statement,Vector<String> statements) {
+ this.orderedDropConstraintStatements.put(statement,statements);
+ }
+
+ public void addAlterTableDropConstraintStatement(String statement) {
+ addAlterTableDropConstraintStatements(statement,null);
+ }
+
+ public void addAlterTableAddConstraintStatements(String statement,Vector<String> statements) {
+ this.orderedCreateConstraintStatements.put(statement,statements);
+ }
+
+ public void addAlterTableAddConstraintStatement(String statement) {
+ addAlterTableAddConstraintStatements(statement,null);
+ }
+
+ public void addAlterTableDropForeignKeyStatements(String statement,Vector<String> statements) {
+ this.orderedDropForeignKeyStatements.put(statement,statements);
+ }
+
+ public void addAlterTableDropForeignKeyStatement(String statement) {
+ addAlterTableDropForeignKeyStatements(statement,null);
+ }
+
+ public void addAlterTableAddForeignKeyStatements(String statement,Vector<String> statements) {
+ this.orderedCreateForeignKeyStatements.put(statement,statements);
+ }
+
+ public void addAlterTableAddForeignKeyStatement(String statement) {
+ addAlterTableAddForeignKeyStatements(statement,null);
+ }
+
+ public Vector<String> combineTemplateStatements(String prolog,String statement,String postlog) {
+ Vector<String> ret = null;
+ if (prolog != null || postlog != null) {
+ ret = new Vector<String>();
+ if (prolog != null) ret.add(prolog);
+ ret.add(statement);
+ if (postlog != null) ret.add(postlog);
+ }
+ return ret;
+ }
+
+ abstract public String[] getStatements();
+
+ protected CompoundStatementsMap orderedDropTableStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedCreateTableStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedDropViewStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedCreateViewStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedDropRoutineStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedCreateRoutineStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedDropConstraintStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedCreateConstraintStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedDropForeignKeyStatements = new CompoundStatementsMap();
+ protected CompoundStatementsMap orderedCreateForeignKeyStatements = new CompoundStatementsMap();
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/PreferenceConstants.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/PreferenceConstants.java
new file mode 100644
index 0000000..f3425ae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/PreferenceConstants.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+/**
+ * @author wliu
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class PreferenceConstants {
+
+ //codetemplate
+ public static final String CODETEMPLATE_APPLY_CONTEXT_KEY ="codetemplate_apply_context";
+ public static final String CODETEMPLATE_TABLE_PATTERN_KEY ="codetemplate_table_pattern";
+ public static final String CODETEMPLATE_ROUTINE_PATTERN_KEY ="codetemplate_routine_pattern";
+ public static final String CODETEMPLATE_VIEW_PATTERN_KEY ="codetemplate_view_pattern";
+ public static final String CODETEMPLATE_CONSTRAINT_PATTERN_KEY ="codetemplate_constraint_pattern";
+
+ public static final String PREF_GENERATE_DDL_OPTION = "generateDDLOption";
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/RoutineDdlBuilder.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/RoutineDdlBuilder.java
new file mode 100644
index 0000000..d9fd79a
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/RoutineDdlBuilder.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import org.eclipse.datatools.modelbase.sql.routines.Routine;
+
+public interface RoutineDdlBuilder {
+ public String buildDropRoutineStatement(Routine routine,boolean quoteIdentifiers, boolean qualifyNames);
+ public String buildCreateRoutineStatement(Routine routine,boolean quoteIdentifiers, boolean qualifyNames);
+ public String buildCommentOnStatement(Routine routine,boolean quoteIdentifiers, boolean qualifyNames);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/TypedElementLogicalDomainProvider.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/TypedElementLogicalDomainProvider.java
new file mode 100644
index 0000000..b9a085f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/ddl/TypedElementLogicalDomainProvider.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.ddl;
+
+import org.eclipse.datatools.modelbase.sql.schema.TypedElement;
+
+public interface TypedElementLogicalDomainProvider {
+
+ public boolean hasDomain(TypedElement typeElement);
+ public String getDomainBaseType(TypedElement typeElement);
+ public String getCCSID(TypedElement typeElement);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/AccessControlUtilities.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/AccessControlUtilities.java
new file mode 100644
index 0000000..357c075
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/AccessControlUtilities.java
@@ -0,0 +1,243 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.ArrayList;
+
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentService;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.AuthorizationIdentifier;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.RoleAuthorization;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.emf.ecore.EAnnotation;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EcorePackage;
+
+public class AccessControlUtilities {
+
+ public static final String AUTH_ID_TYPE_PUBLIC_TEXT = "(PUBLIC)"; //$NON-NLS-1$
+ public static final String AUTH_ID_PUBLIC_TEXT = "PUBLIC"; //$NON-NLS-1$
+
+ protected static boolean asClauseRequested = false;
+ protected static boolean genSysGrantedRequested = false;
+ protected String product;
+ protected String version;
+
+ public static boolean isSystemGrantedPrivilege(Privilege privilege) {
+ EAnnotation eAnnotation = privilege.getEAnnotation(IBMPluginActivator.PRIVILEGE_PROPERTY);
+ if (eAnnotation != null) {
+ String detail = (String) eAnnotation.getDetails().get(IBMPluginActivator.PRIVILEGE_SYSTEM_GRANT);
+ if (detail != null) return new Boolean(detail).booleanValue();
+ }
+ ContainmentService contServ=IBMPluginActivator.getInstance().getContainmentService();
+ EObject db=privilege.getObject();
+ while (!(db instanceof Database) && null != contServ.getContainer(db)) db=contServ.getContainer(db);
+ if (db instanceof Database && ((Database)db).getVendor().equalsIgnoreCase("DB2 UDB")) //$NON-NLS-1$
+ {
+ AuthorizationIdentifier grantor=privilege.getGrantor();
+ if (null != grantor)
+ {
+ String grantorName=grantor.getName();
+ if (null != grantorName && grantorName.equalsIgnoreCase("SYSIBM")) return true; //$NON-NLS-1$
+ }
+ }
+ return false;
+ }
+
+ public static boolean isDDLSuppressable(Privilege privilege) {
+ return (isSystemGrantedPrivilege(privilege) &&
+ !isGenSysGrantedRequested());
+ }
+
+ public boolean isEditable(Privilege priv) {
+ return !isSystemGrantedPrivilege(priv);
+ }
+
+ public boolean isEditable(EClass eClazz,String action) {
+ return true;
+ }
+
+ public boolean isRoleOptionGrant() {
+ return true;
+ }
+
+ public boolean isGrantableEditable(Privilege priv) {
+ return (supportsGrantable(priv)
+ && isEditable(priv)
+ && authIdSupportsGrantable(priv.getGrantee()));
+ }
+
+ public boolean supportsGrantable(RoleAuthorization roleAuth) {
+ return true;
+ }
+
+ public boolean canRoleAdminRole() {
+ return true;
+ }
+
+ public boolean authIdSupportsGrantable(AuthorizationIdentifier authId) {
+ return true;
+ }
+
+ public boolean authIdSupportsGrantable(EClass eClazz) {
+ return true;
+ }
+
+ public boolean supportsGrantable(Privilege privilege) {
+ return true;
+ }
+
+ public boolean supportsGrantable(EClass eClazz,String action) {
+ return true;
+ }
+
+ public static boolean isAsClauseRequested() {
+ return asClauseRequested;
+ }
+
+ public static void setAsClauseRequested(boolean useAsClause) {
+ asClauseRequested = useAsClause;
+ }
+
+ public static boolean isGenSysGrantedRequested() {
+ return genSysGrantedRequested;
+ }
+
+ public static void setGenSysGrantedRequested(boolean genSysGranted) {
+ genSysGrantedRequested = genSysGranted;
+ }
+
+ public ArrayList getPublicAuthIds() {
+ ArrayList list = new ArrayList();
+ list.add(AUTH_ID_PUBLIC_TEXT);
+ return list;
+ }
+
+ public boolean isPublicAuthId(String id) {
+ if (id == null) return false;
+ ArrayList list = getPublicAuthIds();
+ return list.contains(id);
+ }
+
+ public EClass getPublicEClass() {
+ return SQLAccessControlPackage.eINSTANCE.getUser();
+ }
+
+ public Object[] getChildren(Database database,SQLObject parentObject,EClass eClass) {
+ return null;
+ }
+
+ public boolean isValidGranteePrivilegedObjectPair(EClass granteeClass,EClass privilegedObjectClass) {
+ return true;
+ }
+
+ public static boolean match(Privilege e1, Privilege e2) {
+ if (e1 == null || e2 == null) return false;
+ // Check for match of grantable
+ if (e1.isGrantable() != e2.isGrantable()) return false;
+ // Check for match of privilege action
+ String a1 = e1.getAction();
+ if (a1 == null || !a1.equals(e2.getAction())) return false;
+ // Check for match of SQLObject on which privilege granted
+ SQLObject o1 = e1.getObject();
+ SQLObject o2 = e2.getObject();
+ if (!matchSQLObjects(o1, o2)) return false;
+
+ // Check for match of Authorization Id to which privilege granted
+ AuthorizationIdentifier g1 = e1.getGrantee();
+ AuthorizationIdentifier g2 = e2.getGrantee();
+ if (g1 == null || g2 == null) return false;
+ if (g1.eClass() != g2.eClass()) return false;
+ String n1 = g1.getName();
+ if (n1 == null || !n1.equals(g2.getName())) return false;
+ return true;
+ }
+
+ private static boolean matchSQLObjects(SQLObject o1, SQLObject o2) {
+ if (o1 == null || o2 == null)
+ return false;
+ if (o1.eClass() != o2.eClass())
+ return false;
+ String n1 = o1.getName();
+ if (n1 == null || !n1.equals(o2.getName()))
+ return false;
+ // The names match. Now check the qualifiers.
+ ENamedElement c1 = getContainer(o1);
+ ENamedElement c2 = getContainer(o2);
+ if (c1 != null && c2 != null) {
+ if (c1.getName() != null && c1.getName().equals(c2.getName())) {
+ return true;
+ } else {
+ return false;
+ }
+ } else if (c1 == null && c2 != null || c1 != null && c2 == null) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * Get the container that can be treated as the qualifier of the input object.
+ * @param o The input object
+ * @return The container of the input object or null.
+ */
+ private static ENamedElement getContainer(SQLObject o) {
+ EObject c1 = ContainmentServiceImpl.INSTANCE.getContainer(o);
+ if (c1 != null) {
+ if (SQLSchemaPackage.eINSTANCE.getSchema().isSuperTypeOf(
+ c1.eClass()))
+ return (Schema) c1;
+ if (EcorePackage.eINSTANCE.getENamedElement().isSuperTypeOf(
+ c1.eClass())
+ && "ZSeriesDatabaseInstance".equals(c1.eClass().getName())) {
+ // zSeries table space is contained in ZSeriesDatabaseInstance
+ return (ENamedElement) c1;
+ }
+ EObject c2 = ContainmentServiceImpl.INSTANCE.getContainer(c1);
+ if (c2 != null) {
+ if (SQLSchemaPackage.eINSTANCE.getSchema().isSuperTypeOf(
+ c2.eClass())) {
+ // For example, index is contained in table which is
+ // contained in schema.
+ return (Schema) c2;
+ }
+ }
+ }
+ return null;
+ }
+
+ public String getSQLObjectTreeText(Object object) {
+ return ((SQLObject) object).getName();
+ }
+
+ public boolean isGrantableSupportedForPublic() {
+ return true;
+ }
+
+ /**
+ * @param superClass
+ * @param objectClass
+ * @return whether superClass is a valid superClass of objectClass.
+ */
+ public boolean isValidSupertype( EClass superClass, EClass objectClass )
+ {
+ return superClass.isSuperTypeOf( objectClass );
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientConfiguration.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientConfiguration.java
new file mode 100644
index 0000000..4878c34
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientConfiguration.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+public class ClientConfiguration
+{
+ public static final String OLE = "OLE";
+ public static final String DSE = "DSE";
+ public static final String PROPERTIES_VIEW = "PROPERTIES_VIEW";
+ public static final String COMPARE_N_SYNC = "COMPARE_N_SYNC";
+ public static final String DEFAULT = "DEFAULT";
+ public static final String CLONE_UTIL = "CLONE_UTIL";
+ public static final String PKEY = "PKEY";
+ public static final String UOM_MODEL_LOADER = "UOM_MODEL_LOADER";
+
+ private String clientConfiguration;
+
+ public ClientConfiguration(String clientConfiguration)
+ {
+ this.clientConfiguration = clientConfiguration;
+ }
+
+ public String getClientConfiguration()
+ {
+ return clientConfiguration;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyResolver.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyResolver.java
new file mode 100644
index 0000000..bf9db0f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyResolver.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.datatools.enablement.ibm.util.IQueryMap.QueryType;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class ClientStrategyResolver
+{
+ private static ClientStrategyResolver resolver;
+
+ private ClientStrategyResolver()
+ {
+ }
+
+ public static synchronized ClientStrategyResolver getInstance()
+ {
+ if (resolver == null) {
+ resolver = new ClientStrategyResolver();
+ }
+ return resolver;
+ }
+
+ @SuppressWarnings("unchecked")
+ public EList getObjects(
+ EObject object, EStructuralFeature feature, ClientConfiguration configuration)
+ throws ClientStrategyResolverException
+ {
+ Object result = getObject(object, feature, configuration);
+
+ if(result instanceof EList) {
+ return (EList)result;
+ }
+
+ throw new ClientStrategyResolverException("A list was expected, but only one object was returned");
+ }
+
+ public Object getObject(EObject object, EStructuralFeature feature, ClientConfiguration configuration)
+ {
+ IClientStrategy strategy =
+ ClientStrategyService.getInstance().getClientStrategy(object, configuration);
+ if (strategy != null) {
+ ICatalogQuery[] queries = strategy.getCatalogQueries(object, feature);
+ realizeQueries(object, queries);
+ }
+
+ return object.eGet(feature);
+ }
+
+ public void loadObject(EObject object, QueryType queryType, ClientConfiguration configuration)
+ {
+ IClientStrategy strategy =
+ ClientStrategyService.getInstance().getClientStrategy(object, configuration);
+ if (strategy == null) {
+ return;
+ }
+ ICatalogQuery[] queries = strategy.getCatalogQueries(object, queryType);
+
+ realizeQueries(object, queries);
+ }
+
+ private void realizeQueries(EObject object, ICatalogQuery[] queries)
+ {
+ if (queries != null && queries.length > 0) {
+ QueryExecutionEngine.realizeQueries(object, queries);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyResolverException.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyResolverException.java
new file mode 100644
index 0000000..17c6ad3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyResolverException.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+public class ClientStrategyResolverException extends Exception
+{
+ private static final long serialVersionUID = 1021392743395166363L;
+
+ public ClientStrategyResolverException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyService.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyService.java
new file mode 100644
index 0000000..04463fd
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientStrategyService.java
@@ -0,0 +1,119 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.emf.ecore.EObject;
+
+public class ClientStrategyService
+{
+ private final static String EXTENSION_POINT_ID = "com.ibm.datatools.core.loadStrategy";
+
+ private final static String STRATEGY = "strategy";
+ private final static String CLIENT = "clientDefinition";
+ private final static String VENDOR = "vendor";
+ private final static String DEFAULT_STRATEGY = "defaultStrategy";
+
+ private static ClientStrategyService service;
+
+ private final static int STRATEGY_MAP_SIZE = 16;
+ private final static HashMap<String, IClientStrategy> strategies = new HashMap<String, IClientStrategy>(STRATEGY_MAP_SIZE);
+
+ private ClientStrategyService()
+ {
+ }
+
+ public static synchronized ClientStrategyService getInstance()
+ {
+ if (service == null) {
+ service = new ClientStrategyService();
+ }
+ return service;
+ }
+
+ public IClientStrategy getClientStrategy(EObject object, ClientConfiguration configuration)
+ {
+ String vendor = "";
+ if (object instanceof ICatalogObject && ((ICatalogObject)object).getCatalogDatabase() != null) {
+ vendor = ((ICatalogObject)object).getCatalogDatabase().getVendor();
+ } else {
+ return null;
+ }
+ String client = "";
+ if (configuration != null) {
+ client = configuration.getClientConfiguration();
+ }
+
+ String vendorClientKey = generateVendorClientKey(vendor, client);
+ IClientStrategy strategy = strategies.get(vendorClientKey);
+
+ if (strategy == null && !strategies.containsKey(vendorClientKey)) {
+ strategy = lookupStrategyInRegistry(vendor, client);
+ }
+
+ return strategy;
+ }
+
+ private IClientStrategy lookupStrategyInRegistry(String vendor, String client)
+ {
+ String vendorClientKey = generateVendorClientKey(vendor, client);
+
+ IExtensionPoint extensionPoint =
+ Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT_ID);
+
+ IExtension[] extensions = extensionPoint.getExtensions();
+
+ for (IExtension extension : extensions) {
+ IConfigurationElement[] elements = extension.getConfigurationElements();
+
+ for (IConfigurationElement element : elements) {
+ if (element.getName().equals(STRATEGY)) {
+ try {
+ String clientDefinitionAttribute = element.getAttribute(CLIENT);
+ String vendorAttribute = element.getAttribute(VENDOR);
+ if (vendorAttribute != null &&
+ clientDefinitionAttribute != null &&
+ vendorAttribute.equals(vendor) &&
+ clientDefinitionAttribute.equals(client)) {
+
+ IClientStrategy strategy = null;
+ if (element.getAttribute(DEFAULT_STRATEGY) != null) {
+ strategy = (IClientStrategy) element.createExecutableExtension(DEFAULT_STRATEGY);
+ strategies.put(vendorClientKey, strategy);
+ }
+ // version needs to be taken into account too if provided
+ // override strategy needs to be handled here too...
+ return strategy;
+ }
+ } catch (CoreException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ // if strategy was not found, it does not exist.
+ // no need to look for it again
+ strategies.put(vendorClientKey, null);
+ return null;
+ }
+
+ private String generateVendorClientKey(String vendor, String client)
+ {
+ return vendor + "::" + client;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientUtil.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientUtil.java
new file mode 100644
index 0000000..69e7a1b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ClientUtil.java
@@ -0,0 +1,2130 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+
+/**
+ * Wraps native methods.
+ * @author Thomas Sharp
+ */
+public class ClientUtil
+{
+ /** Flag to turn on prints for debug. */
+ public static final boolean DEBUG = false;
+
+ /** Key for an arbitrary registry path and key. */
+ public static String REGISTRYVALUE = "getRegistryValue";
+ /** Key for DB2 path. */
+ public static String DB2PATH = "getDB2Path";
+ /** Key for JDK version. */
+ public static String JDKLEVEL = "getJdkLevel";
+ /** Key for the Oracle path. */
+ public static String ORACLEPATH = "getOraclePath";
+ /** Key for the DB2 client version, release, and modification in the form 08022. */
+ public static String DB2CLIENTLEVEL = "getDB2ClientLevel";
+ /** Key for the DB2 client version. */
+ public static String DB2CLIENTVERSION = "getDB2ClientVersion";
+ /** Key for the DB2 client release. */
+ public static String DB2CLIENTRELEASE = "getDB2ClientRelease";
+ /** Key for the DB2 client modification level. */
+ public static String DB2CLIENTMODIFICATION = "getDB2ClientModification";
+ /** Key for the Visual Explain path. */
+ public static String VEPATH = "getVEPath";
+ /** Key for the Visual Explain version.release.modification. */
+ public static String VELEVEL = "getVELevel";
+ /** Key for the Visual Explain version. */
+ public static String VEVERSION = "getVEVersion";
+ /** Key for the Visual Explain release. */
+ public static String VERELEASE = "getVERelease";
+ /** Key for the Visual Explain modification level. */
+ public static String VEMODIFICATION = "getVEModification";
+ /** Key for the alias count. The default value for this method is 0. */
+ public static String ALIASCOUNT = "getAliasCount";
+ /** Key for the aliases and comments. No default value exists for this method. */
+ public static String ALIASES = "getAliases";
+ /** Key for the aliases, hosts, dbnames, and ports. No default value exists for this method. */
+ public static String HOSTINFO = "getHostInfo";
+ /**
+ * Key for getting an environment variable.
+ * The full key for an override of a value is getEnv(varname),
+ * but the argument is specified with the argument property
+ * of the defaultValue or actualValue tag.
+ */
+ public static String ENVVAR = "getEnv";
+
+ /** Table of defaults. */
+ protected static HashMap defaultValues;
+ /** Table of implementation methods. */
+ protected static HashMap implMethods;
+ /** Implementations of IServicePrompt$promptValue methods. */
+ protected static HashMap promptMethods;
+ /** Table of actual values. */
+ protected static HashMap actualValues;
+
+ private static final String PATH_SEPARATOR = java.io.File.pathSeparator;
+
+ // Static section:
+ static
+ {
+ // Initialize internal default values
+ initDefaults();
+ // Override with ExternalService/defaultValue contributions
+//<bgp initOverrides();
+// // Test whether we have a local DB2 with version > 7 installed:
+// if (!hasDB2PathImpl() && getDB2ClientVersion() < 8)
+// {
+// DB2Util.setTryNative(false);
+//bgp> }
+ }
+
+//<bgp /**
+// * Registers a base name for the JNI library that implements OSUtil native functions.
+// * @param lib A base name for the JNI library that implements OSUtil native functions.
+// */
+// public static synchronized void setCutilLibrary(String lib)
+// {
+// OSUtil.setOSUtilLibrary(lib);
+// }
+//
+// /**
+// * @return The base name for the JNI library that implements OSUtil native functions.
+// */
+// public static String getCutilLibrary()
+// {
+// return OSUtil.getOSUtilLibrary();
+// }
+//
+// /**
+// * Registers a base name for the JNI library that implements DB2Util native functions.
+// * @param lib A base name for the JNI library that implements DB2Util native functions.
+// */
+// public static synchronized void setDB2UtilLibrary(String lib)
+// {
+// DB2Util.setDB2UtilLibrary(lib);
+// }
+//
+// /**
+// * @return The base name for the JNI library that implements DB2Util native functions.
+// */
+// public static String getDB2UtilLibrary()
+// {
+// return DB2Util.getDB2UtilLibrary();
+// }
+
+ /**
+ * Initializes default values.
+ */
+ protected static void initDefaults()
+ {
+ // Actual values (cache of the result during the first call)
+ actualValues = new HashMap(37);
+ // Default values
+ defaultValues = new HashMap(37);
+ // Implementation methods to be used instead of protected JNI methods
+ implMethods = new HashMap(37);
+ // Implementations of IServicePrompt$promptValue methods.
+ promptMethods = new HashMap(37);
+ // DB2Path, OraclePath
+ //if (System.getProperty("os.name").indexOf("Win") > -1)
+ //{
+ defaultValues.put(DB2PATH, "null");
+//bgp defaultValues.put(ORACLEPATH, "null");
+//bgp defaultValues.put(VEPATH, "null");
+ //}
+ //else
+ //{
+ // defaultValues.put(DB2PATH, "null");
+ // defaultValues.put(ORACLEPATH, "null");
+ // defaultValues.put(VEPATH, "null");
+ //}
+//<bgp defaultValues.put(VELEVEL, "1.0.0");
+// defaultValues.put(VEVERSION, "1");
+// defaultValues.put(VERELEASE, "0");
+//bgp> defaultValues.put(VEMODIFICATION, "0");
+ }
+
+// /**
+// * Overrides internal default values and implementations with
+// * externalService/defaultValue and implementation contributions.
+// */
+// protected static void initOverrides()
+// {
+// IExtensionRegistry reg = Platform.getExtensionRegistry();
+// if (reg != null) {
+// IConfigurationElement[] domainConfigs = reg.getConfigurationElementsFor(
+// "com.ibm.datatools.externalservices", "externalServices");
+// IConfigurationElement config;
+// //ConfigurationProperty[] properties;
+// String ename, mname, pvalue, iclass, imethod, argval;
+// for (int e = 0; e < domainConfigs.length; e++)
+// {
+// ename = domainConfigs[e].getName();
+// config = domainConfigs[e];
+// mname = config.getAttribute("methodName");
+// if (mname != null)
+// {
+// mname = mapMethodName(mname);
+// if (ename.equalsIgnoreCase("defaultValue"))
+// {
+// pvalue = config.getAttribute("value");
+// if (pvalue != null && pvalue.length() > 0)
+// {
+// if (mname.equals(ALIASCOUNT))
+// {
+// defaultValues.put(ALIASCOUNT, Integer.getInteger(pvalue));
+// }
+// else if (mname.equals(ENVVAR))
+// {
+// argval = config.getAttribute("argument");
+// defaultValues.put("getEnv(" + argval + ")", pvalue);
+// }
+// else
+// {
+// defaultValues.put(mname, pvalue);
+// }
+// }
+// }
+// else if (ename.equalsIgnoreCase("actualValue"))
+// {
+// pvalue = config.getAttribute("value");
+// if (pvalue != null && pvalue.length() > 0)
+// {
+// if (mname.equals(ALIASCOUNT))
+// {
+// actualValues.put(ALIASCOUNT, Integer.getInteger(pvalue));
+// }
+// else if (mname.equals(ENVVAR))
+// {
+// argval = config.getAttribute("argument");
+// actualValues.put("getEnv(" + argval + ")", pvalue);
+// }
+// else
+// {
+// actualValues.put(mname, pvalue);
+// }
+// }
+// }
+// else if (ename.equalsIgnoreCase("implementation"))
+// {
+// iclass = config.getAttribute("implClass");
+// imethod = config.getAttribute("implMethod");
+// if (iclass != null && imethod != null)
+// {
+// Method m = getMethod(config, iclass, imethod);
+// if (m != null)
+// {
+// implMethods.put(mname, m);
+// }
+// }
+// }
+// else if (ename.equalsIgnoreCase("prompt"))
+// {
+// pvalue = config.getAttribute("enable");
+// if (pvalue != null && pvalue.equalsIgnoreCase("true"))
+// {
+// iclass = config.getAttribute("servicePrompt");
+// if (iclass != null)
+// {
+// Object[] cm = getClassAndMethod(config, iclass, "promptValue", new Class[]{String.class, Object.class});
+// if (cm != null)
+// {
+// promptMethods.put(mname, cm);
+// }
+// }
+// }
+// else
+// {
+// promptMethods.remove(mname);
+// }
+// }
+// }
+// else if (ename.equalsIgnoreCase("oslibrary"))
+// {
+// pvalue = domainConfigs[e].getAttribute("basename");
+// setCutilLibrary(pvalue);
+// }
+// else if (ename.equalsIgnoreCase("db2library"))
+// {
+// pvalue = domainConfigs[e].getAttribute("basename");
+// setDB2UtilLibrary(pvalue);
+// }
+// }
+// }
+// }
+//
+// /**
+// * Given a methodName value from an extension,
+// * returns our method key.
+// * @param mname The methodName attribute from a contribution.
+// * @return The value of our static final String for the method.
+// */
+// protected static String mapMethodName(String mname)
+// {
+// String key = "DEFAULT";
+// if (mname.equalsIgnoreCase(REGISTRYVALUE))
+// key = REGISTRYVALUE;
+// else if (mname.equalsIgnoreCase(DB2PATH))
+// key = DB2PATH;
+// else if (mname.equalsIgnoreCase(JDKLEVEL))
+// key = JDKLEVEL;
+// else if (mname.equalsIgnoreCase(ORACLEPATH))
+// key = ORACLEPATH;
+// else if (mname.equalsIgnoreCase(VEPATH))
+// key = VEPATH;
+// else if (mname.equalsIgnoreCase(VELEVEL))
+// key = VELEVEL;
+// else if (mname.equalsIgnoreCase(VEVERSION))
+// key = VEVERSION;
+// else if (mname.equalsIgnoreCase(VERELEASE))
+// key = VERELEASE;
+// else if (mname.equalsIgnoreCase(VEMODIFICATION))
+// key = VEMODIFICATION;
+// else if (mname.equalsIgnoreCase(ALIASCOUNT))
+// key = ALIASCOUNT;
+// else if (mname.equalsIgnoreCase(ENVVAR))
+// key = ENVVAR;
+// return key;
+//bgp> }
+
+ /**
+ * Gets the default value for a method.
+ * @param methodname The name of the method whose default value we want.
+ * @return The default value of the method.
+ */
+ public static Object getDefault(String methodname)
+ {
+ return defaultValues.get(methodname);
+ }
+
+//<bgp /**
+// * Sets the default value for a method.
+// * @param methodname The name of the method whose default value we want.
+// * If the method requires an argument, give it in parentheses,
+// * such as "getEnv(HOME)."
+// * @param value The default value of the method, or null.
+// * If the value is null, the entry is cleared from the table.
+// */
+// public static synchronized void setDefault(String methodname, String value)
+// {
+// if (value == null)
+// defaultValues.remove(methodname);
+// else
+// defaultValues.put(methodname, value);
+// }
+//
+// /**
+// * Sets the actual value for a method.
+// * @param methodname The name of the method whose default value we want.
+// * If the method requires an argument, give it in parentheses,
+// * such as "getEnv(HOME)."
+// * @param value The actual value of the method, or null.
+// * If the value is null, the entry is cleared from the table.
+// */
+// public static synchronized void setActualValue(String methodname, String value)
+// {
+// if (value == null)
+// actualValues.remove(methodname);
+// else
+// actualValues.put(methodname, value);
+// }
+//
+// /**
+// * Resets the cached actual value for a method.
+// * @param methodname The name of the method whose default value we want.
+// */
+// public static synchronized void clearCache(String methodname)
+// {
+// actualValues.remove(methodname);
+// }
+//
+//
+// /**
+// * Gets the Method to implement the named method.
+// * @param methodname The name of the method whose default value we want.
+// * @return The implementation Method, or null if it is not set
+// * using setImplementation or an externalService/implementation contribution.
+// * The default implementation method in this class is not returned.
+// */
+// public static Method getImplementation(String methodname)
+// {
+// return (Method)implMethods.get(methodname);
+// }
+//
+// /**
+// * Sets the implementation Method.
+// * @param methodname The name of the method whose default value we want.
+// * @param method The implementation Method.
+// */
+// public static synchronized void setImplementation(String methodname, Method method)
+// {
+// implMethods.put(methodname, method);
+// }
+//
+// /**
+// * Gets a method in a class.
+// *
+// * @param config
+// * The ConfigurationElement for the contribution to our extension point.
+// * @param classname
+// * The class with the method to call.
+// * @param methodname
+// * The method we want to call.
+// * @return The Method for methodname in the instance of class classname.
+// */
+// protected static Method getMethod(IConfigurationElement config, String classname, String methodname)
+// {
+// return getMethod(config, classname, methodname, null);
+// }
+//
+// /**
+// * Gets a method in a class.
+// *
+// * @param config
+// * The ConfigurationElement for the contribution to our extension point.
+// * @param classname
+// * The class with the method to call.
+// * @param methodname
+// * The method we want to call.
+// * @param types
+// * An array of Class describing the types of the arguments.
+// * @return The Method for methodname in the instance of class classname.
+// */
+// protected static Method getMethod(IConfigurationElement config, String classname, String methodname, Class[] types)
+// {
+// Object[] candm = getClassAndMethod(config, classname, methodname, types);
+// return (candm == null) ? null : (Method)candm[1];
+// }
+// /**
+// * Gets a method in a class.
+// *
+// * @param config
+// * The ConfigurationElement for the contribution to our extension point.
+// * @param classname
+// * The class with the method to call.
+// * @param methodname
+// * The method we want to call.
+// * @param types
+// * An array of Class describing the types of the arguments.
+// * @return An array whose first element is the Class object and whose second is the Method.
+// */
+// protected static Object[] getClassAndMethod(IConfigurationElement config, String classname, String methodname, Class[] types)
+// {
+// Class cclass = null;
+// Method method = null;
+// try
+// {
+// cclass = ExternalServicesPlugin.getDefault().getBundle().loadClass(classname);
+// }
+// catch (ClassNotFoundException cnfe)
+// {
+// // createExecutableExtension(InternalPlatform.getDefault().getBundle(getDeclaringExtension().getNamespace()),
+// // pluginName, className, initData, this, attributeName);
+// String namespace = config.getDeclaringExtension().getNamespaceIdentifier();
+// Bundle pbundle = Platform.getBundle(namespace);
+// //String id = pbundle.getSymbolicName();
+// try {
+// cclass = pbundle.loadClass(classname);
+// } catch (Exception e1) {
+// cclass = null;
+// } catch (LinkageError e) {
+// cclass = null;
+// if (DEBUG) System.err.println("ClientUtil.getMethod ClassNotFoundException: "
+// + cnfe.getMessage());
+// }
+// }
+// if (cclass != null)
+// {
+// try
+// {
+// method = cclass.getMethod(methodname, types);
+// }
+// catch (NoSuchMethodException nsme)
+// {
+// if (DEBUG) System.err
+// .println("ClientUtil.getMethod NoSuchMethodException: "
+// + nsme.getMessage());
+// }
+// }
+// return new Object[]{cclass, method};
+//bgp> }
+
+ /**
+ * Invokes a static method with no argument and returns a String value.
+ * @param method A Method object representing a static method with no parameter
+ * that returns a String.
+ * @return The value returned by the method, or null.
+ */
+ protected static Object callMethod(Method method)
+ {
+ return callMethod(method, null, null);
+ }
+
+ /**
+ * Invokes a static method with no argument and returns a String value.
+ * @param method A Method object representing a static method with no parameter
+ * that returns a String.
+ * @param instance Null for a static method, an instance otherwize.
+ * @param args An array of values for input to the method.
+ * @return The value returned by the method, or null.
+ */
+ protected static Object callMethod(Method method, Object instance, Object[] args)
+ {
+ Object rv = null;
+ try {
+ if (method != null) {
+ // Ensure this method is static
+ // or construct an instance using the default constructor.
+ boolean isStatic = Modifier.isStatic(method.getModifiers());
+//bgp if (instance == null && !isStatic)
+//bgp instance = ReflectionUtil.dynamicInstance(method.getDeclaringClass(), null, null);
+ if (instance != null || isStatic)
+ rv = method.invoke(instance, args);
+ }
+ } catch (NullPointerException npe) {
+ if (DEBUG) System.err
+ .println("ClientUtil.callMethod NullPointerException: "
+ + npe.getMessage());
+ } catch (IllegalAccessException iae) {
+ if (DEBUG) System.err
+ .println("ClientUtil.callMethod IllegalAccessException: "
+ + iae.getMessage());
+ } catch (InvocationTargetException ite) {
+ String msg = ite.getMessage();
+ if (msg == null)
+ {
+ Throwable te = ite.getTargetException();
+ msg = te.getClass().getName() + ": " + te.getMessage();
+ }
+ if (DEBUG) System.err
+ .println("ClientUtil.callMethod InvocationTargetException: "
+ + msg);
+ } catch (IllegalArgumentException iarge) {
+ if (DEBUG) System.err
+ .println("ClientUtil.callMethod IllegalArgumentException: "
+ + iarge.getMessage());
+ }
+ return rv;
+ }
+
+ /**
+ * Gets a value from the dialog settings.
+ * This value overrides everything except an actual value.
+ * A null value means we haven't remembered anything.
+ * The value "null" means no and don't ask again.
+ * @param methodname One of the method name keys, such as DB2PATH.
+ * @param args An array of argument values.
+ * @return A value from the dialog settings, or null.
+ */
+ protected static Object getStoredValue(String methodname, Object[] args)
+ {
+ // Check the dialog settings
+ IBMPluginActivator plugin = IBMPluginActivator.getInstance();
+ String returnString = null;
+ if (plugin != null) {
+ Preferences prefStore = plugin.getPluginPreferences();
+ String prefKey = getPrefKey(methodname, args);
+ if (prefStore != null) {
+ returnString = prefStore.getString(prefKey);
+ }
+ }
+ return returnString;
+ }
+
+ /**
+ * @param methodname The name of the method whose value we are caching.
+ * @param args An array of arguments, or null.
+ * @return A String in the form: "methodname[([arg1[,arg2...])]".
+ */
+ protected static String getPrefKey(String methodname, Object[] args)
+ {
+ if (args != null)
+ {
+ StringBuffer prefKey = new StringBuffer();
+ prefKey.append(methodname).append('(');
+ int m = args.length;
+ if (m > 0)
+ {
+ prefKey.append(args[0]);
+ int a = 1;
+ while (a < m)
+ {
+ prefKey.append(',').append(args[a]);
+ a++;
+ }
+ }
+ prefKey.append(')');
+ return prefKey.toString();
+ }
+ return methodname;
+// if (methodname.equalsIgnoreCase(ENVVAR) && args != null && args.length == 1)
+// prefKey += "(" + args[0] + ")";
+// else if (methodname.equalsIgnoreCase(REGISTRYVALUE) && args != null && args.length == 2)
+// prefKey += "(" + args[0] + "," + args[1] + ")";
+// return prefKey;
+ }
+
+//<bgp /**
+// * Gets a String value from a registered implementation method
+// * or from our own JNI method.
+// * @param methodname One of the method name keys, such as DB2PATH.
+// * @param args An array of argument values.
+// */
+// protected static Object getImplValue(String methodname, Object[] args)
+// {
+// Object value = null;
+// Method m = (Method)implMethods.get(methodname);
+// if (m != null)
+// value = callMethod(m, null, args);
+// if (value == null)
+// {
+// if (methodname.equalsIgnoreCase(ENVVAR)
+// && args != null && args.length == 1 && args[0] instanceof String)
+// {
+// value = getenvJNI((String)args[0]);
+// }
+// else if (methodname.equalsIgnoreCase(REGISTRYVALUE)
+// && args != null && args.length == 2 && args[0] instanceof String && args[1] instanceof String)
+// {
+// value = getRegistryValueJNI((String)args[0], (String)args[1]);
+// }
+// else if (methodname.equalsIgnoreCase(JDKLEVEL)
+// && args != null && args.length == 1 && args[0] instanceof String)
+// {
+// value = getJdkLevelImpl((String)args[0]);
+// }
+// }
+// return value;
+//bgp> }
+
+ /**
+ * Gets a String value from a registered implementation method
+ * or from our own JNI method.
+ * @param methodname One of the method name keys, such as DB2PATH.
+ */
+ protected static Object getImplValue(String methodname)
+ {
+ Object value = null;
+ Method m = (Method)implMethods.get(methodname);
+ if (m != null)
+ value = callMethod(m);
+ if (value == null)
+ {
+ if (methodname.equalsIgnoreCase(DB2PATH))
+ value = getDB2PathJNI();
+//bgp else if (methodname.equalsIgnoreCase(DB2CLIENTVERSION))
+// value = getDB2ClientVersionImpl();
+// else if (methodname.equalsIgnoreCase(DB2CLIENTRELEASE))
+// value = getDB2ClientReleaseImpl();
+// else if (methodname.equalsIgnoreCase(DB2CLIENTMODIFICATION))
+// value = getDB2ClientModificationImpl();
+// else if (methodname.equalsIgnoreCase(ORACLEPATH))
+// value = getOraclePathJNI();
+// else if (methodname.equalsIgnoreCase(VEPATH))
+// value = getVEPathJNI();
+// else if (methodname.equalsIgnoreCase(VELEVEL))
+// {
+// StringBuffer valbuf = new StringBuffer();
+// value = getImplValue(VEVERSION);
+// if (value != null && value.toString().length() > 0)
+// {
+// valbuf.append(value);
+// value = getImplValue(VERELEASE);
+// if (value != null && value.toString().length() > 0)
+// {
+// valbuf.append('.').append(value);
+// value = getImplValue(VEMODIFICATION);
+// if (value != null && value.toString().length() > 0)
+// {
+// valbuf.append('.').append(value);
+// value = valbuf.toString();
+// }
+// else
+// {
+// value = null;
+// }
+// }
+// else
+// {
+// value = null;
+// }
+// }
+// }
+// else if (methodname.equalsIgnoreCase(VEVERSION))
+// value = getVEVersionJNI();
+// else if (methodname.equalsIgnoreCase(VERELEASE))
+// value = getVEReleaseJNI();
+// else if (methodname.equalsIgnoreCase(VEMODIFICATION))
+// value = getVEModificationJNI();
+// else if (methodname.equalsIgnoreCase(ALIASCOUNT))
+// value = new Integer(getAliasCountJNI());
+// else if (methodname.equalsIgnoreCase(ALIASES))
+// value = getAliasesNative();
+// else if (methodname.equalsIgnoreCase(HOSTINFO))
+//bgp> value = getHostInfoNative();
+ }
+ return value;
+ }
+
+ /**
+ * TODO: candidate for common
+ * Tests whether a directory or file exists.
+ * @param file The name of a directory or file.
+ * @return True if the file exists.
+ */
+ public static boolean fileExists(String file)
+ {
+ File f = new File(file);
+ return f.exists();
+ }
+
+//<bgp /**
+// * Prompts the user for a value.
+// * @param key Our method key for what to prompt for.
+// * @param value The current value.
+// * @return The new value, or null if the user declines to enter a new value.
+// */
+// protected static Object promptUser(String key, String value)
+// {
+// Object[] prompter = (Object[])promptMethods.get(key);
+// if (prompter != null)
+// {
+// Class promptclass = (Class)prompter[0];
+// Method promptmethod = (Method)prompter[1];
+// if (promptclass != null && promptmethod != null)
+// {
+// Object promptinstance = ReflectionUtil.dynamicInstance(promptclass, null, null);
+// if (promptinstance != null)
+// return callMethod(promptmethod, promptinstance,
+// new Object[]{key, value});
+// }
+// }
+// return null;
+// }
+//
+// /**
+// * Returns true if we can query the registry.
+// * @return True if we can query the registry using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasRegistryValueImpl()
+// {
+// String value = (String)getImplValue(REGISTRYVALUE, new String[]{"HARDWARE\\DEVICEMAP\\VIDEO","VgaCompatible"});
+// if (value != null && value.length() > 0)
+// {
+// return true;
+// }
+// else
+// {
+// return false;
+// }
+// }
+//
+// /**
+// * Gets a String value from the OS registry at a given path and key,
+// * such as [HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\Developer Workbench\products\com.ibm.db2.dwb]
+// * and "location"
+// * @param path The path using backslashes for Windows, forward slashes for Linux.
+// * @param key The key for the value that we want to get.
+// * @return The value from the registry, or null if the library cannot be loaded.
+// */
+// public static String getRegistryValue(String path, String key)
+// {
+// String[] args = new String[]{path, key};
+// String prefKey = getPrefKey(REGISTRYVALUE, args);
+// String value = (String)actualValues.get(prefKey);
+// if (value == null)
+// {
+// value = (String)getStoredValue(REGISTRYVALUE, args);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(REGISTRYVALUE, args);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(prefKey);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// cacheRegistryValue(path, key, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Caches a value to replace anything that may be in the OS registry.
+// * @param path The path using backslashes for Windows, forward slashes for Linux.
+// * @param key The key for the value that we want to get.
+// * @param value The value to replace the use of the registry.
+// * This value cannot be null.
+// */
+// public static void cacheRegistryValue(String path, String key, String value)
+// {
+// if (value != null)
+// {
+// String[] args = new String[]{path, key};
+// actualValues.put(getPrefKey(REGISTRYVALUE, args), value);
+// }
+// }
+//
+// /**
+// * Gets a String value from the OS registry at a given path and key
+// * @param path The path using backslashes for Windows, forward slashes for Linux.
+// * @param key The key for the value that we want to get.
+// * @return The value from the registry, or null if the library cannot be loaded.
+// */
+// public static String getRegistryValueJNI(String path, String key)
+// {
+// return OSUtil.getRegistryValue(path, key);
+// }
+//
+// /**
+// * Returns true if we can find where a local DB2 is installed.
+// * @return True if a DB2Path is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasDB2PathImpl()
+// {
+// String value = (String)getImplValue(DB2PATH);
+// if (value != null && value.length() > 0)
+// {
+// return setDB2Path(value);
+// }
+// else
+// {
+// return false;
+// }
+//bgp> }
+
+ /**
+ * Gets the path where a local DB2 is installed.
+ * @return The name of the directory where DB2 is installed.
+ */
+ public static synchronized String getDB2Path()
+ {
+ String value = (String)actualValues.get(DB2PATH);
+ if (value == null)
+ {
+ value = (String)getStoredValue(DB2PATH, null);
+ if (value == null || value.length() == 0)
+ value = (String)getImplValue(DB2PATH);
+ if (value == null || value.length() == 0)
+ value = (String)getDefault(DB2PATH);
+ if (value == null || value.equals("null"))
+ value = null;
+ else
+ setDB2Path(cleanPath(value));
+ }
+ if (value != null)
+ return cleanPath(value);
+ else
+ return null;
+ }
+
+ /**
+ * Removes a trailing path separator.
+ * @param path A path that could end in a slash or backslash.
+ * @return The same path without the trailing path separator.
+ */
+ protected static synchronized String cleanPath(String path)
+ {
+ String slash = System.getProperty("file.separator");
+ if (slash != null && slash.length() > 0)
+ {
+ int len = path.length();
+ if (len > 0 && path.charAt(len - 1) == slash.charAt(0))
+ {
+ return path.substring(0,len - 1);
+ }
+ }
+ return path;
+ }
+
+ /**
+ * Sets the path where a local DB2 is installed.
+ * @param path The name of the directory where DB2 is installed.
+ * @return True if we get a valid path.
+ */
+ public static synchronized boolean setDB2Path(String path)
+ {
+ path = cleanPath(path);
+ if (fileExists(path))
+ {
+ actualValues.put(DB2PATH, path);
+ }
+//<bgp else
+// {
+// Object result = promptUser(DB2PATH, path);
+// if (result != null
+// && result instanceof String
+// && fileExists((String)result))
+// {
+// actualValues.put(DB2PATH, (String)result);
+//bgp> }
+ else
+ {
+ actualValues.remove(DB2PATH);
+ return false;
+ }
+//bgp }
+ return true;
+ }
+
+ /**
+ * Gets the DB2 path from the Windows registry
+ * or based on a UNIX environment variable.
+ * @return The name of the directory where DB2 is installed.
+ */
+ public static String getDB2PathJNI()
+ {
+// return OSUtil.getDB2Path();
+ return null;
+ }
+
+//<bgp /**
+// * Returns true if we can find where a local Oracle is installed.
+// * @return True if a OraclePath is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasOraclePathImpl()
+// {
+// String value = (String)getImplValue(ORACLEPATH);
+// if (value != null && value.length() > 0)
+// {
+// actualValues.put(ORACLEPATH, value);
+// return true;
+// }
+// else
+// {
+// return false;
+// }
+// }
+//
+// /**
+// * Gets the path where a local Oracle is installed.
+// * @return The name of the directory where Oracle is installed.
+// */
+// public static synchronized String getOraclePath()
+// {
+// String value = (String)actualValues.get(ORACLEPATH);
+// if (value == null)
+// {
+// value = (String)getStoredValue(ORACLEPATH, null);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(ORACLEPATH);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(ORACLEPATH);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// actualValues.put(ORACLEPATH, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Gets the Oracle path from the Windows registry
+// * or the ORACLE_HOME environment variable.
+// * @return The name of the directory where Oracle is installed.
+// */
+// public static String getOraclePathJNI()
+// {
+// return OSUtil.getOraclePath();
+// }
+//
+// /**
+// * Returns true if we can find where a local Visual Explain is installed.
+// * @return True if a Visual Explain path is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasVEPathImpl()
+// {
+// String value = (String)getImplValue(VEPATH);
+// return (value != null && value.length() > 0);
+// }
+//
+// /**
+// * Gets the path where a local Visual Explain is installed.
+// * @return The name of the directory where Visual Explain is installed.
+// */
+// public static synchronized String getVEPath()
+// {
+// String value = (String)actualValues.get(VEPATH);
+// if (value == null)
+// {
+// value = (String)getStoredValue(VEPATH, null);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(VEPATH);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(VEPATH);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// actualValues.put(VEPATH, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Get the value of the install directory of VisualExplain from the Windows registry.
+// * @return The String value for VEPath
+// */
+// public static String getVEPathJNI()
+// {
+// return OSUtil.getVEPath();
+// }
+//
+// /**
+// * Returns true if we can find the version of a local Visual Explain.
+// * @return True if a Visual Explain version is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasVELevelImpl()
+// {
+// String value = (String)getImplValue(VELEVEL);
+// return (value != null && value.length() > 0);
+// }
+//
+// /**
+// * Gets the version of a local Visual Explain.
+// * @return The Visual Explain version.
+// */
+// public static synchronized String getVELevel()
+// {
+// String value = (String)actualValues.get(VELEVEL);
+// if (value == null)
+// {
+// value = (String)getStoredValue(VELEVEL, null);
+// if (value == null || value.length() == 0)
+// value = (String)getStoredValue(VELEVEL, null);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(VELEVEL);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(VELEVEL);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// actualValues.put(VELEVEL, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Returns true if we can find the version of a local Visual Explain.
+// * @return True if a Visual Explain version is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasVEVersionImpl()
+// {
+// String value = (String)getImplValue(VEVERSION);
+// return (value != null && value.length() > 0);
+// }
+//
+// /**
+// * Gets the version of a local Visual Explain.
+// * @return The Visual Explain version.
+// */
+// public static synchronized String getVEVersion()
+// {
+// String value = (String)actualValues.get(VEVERSION);
+// if (value == null)
+// {
+// value = (String)getStoredValue(VEVERSION, null);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(VEVERSION);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(VEVERSION);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// actualValues.put(VEVERSION, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Get the value of the Version of VisualExplain from the Windows registry.
+// * @return The String value for the Visual Explain version
+// */
+// public static String getVEVersionJNI()
+// {
+// return OSUtil.getVEVersion();
+// }
+//
+// /**
+// * Returns true if we can find the release of a local Visual Explain.
+// * @return True if a Visual Explain release is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasVEReleaseImpl()
+// {
+// String value = (String)getImplValue(VERELEASE);
+// return (value != null && value.length() > 0);
+// }
+//
+// /**
+// * Gets the release of a local Visual Explain.
+// * @return The Visual Explain release.
+// */
+// public static synchronized String getVERelease()
+// {
+// String value = (String)actualValues.get(VERELEASE);
+// if (value == null)
+// {
+// value = (String)getStoredValue(VERELEASE, null);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(VERELEASE);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(VERELEASE);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// actualValues.put(VERELEASE, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Get the value of the Release of Visual Explain from the Windows registry.
+// * @return The String value for the Visual Explain Release
+// */
+// public static String getVEReleaseJNI()
+// {
+// return OSUtil.getVERelease();
+// }
+//
+// /**
+// * Returns true if we can find the modification level of a local Visual Explain.
+// * @return True if a Visual Explain modification level
+// * is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasVEModificationImpl()
+// {
+// String value = (String)getImplValue(VEMODIFICATION);
+// return (value != null && value.length() > 0);
+// }
+//
+// /**
+// * Gets the modification of a local Visual Explain.
+// * @return The Visual Explain modification level.
+// */
+// public static synchronized String getVEModification()
+// {
+// String value = (String)actualValues.get(VEMODIFICATION);
+// if (value == null)
+// {
+// value = (String)getStoredValue(VEMODIFICATION, null);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(VEMODIFICATION);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(VEMODIFICATION);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// actualValues.put(VEMODIFICATION, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Gets the value of the Modification of VisualExplain from the Windows registry.
+// * @return The String value for the Visual Explain modification level.
+// */
+// public static String getVEModificationJNI()
+// {
+// return OSUtil.getVEModification();
+// }
+//
+// /**
+// * Returns true if we can find the alias count using our native implementation
+// * or overridden method.
+// * @return True if the alias count
+// * is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasAliasCountImpl()
+// {
+// Integer value = (Integer)getImplValue(ALIASCOUNT);
+// return (value != null && value.intValue() > -1);
+// }
+//
+// /**
+// * Gets the count of aliases in the client directory.
+// * @return The count.
+// */
+// public static synchronized int getAliasCount()
+// {
+// Integer value = (Integer)actualValues.get(ALIASCOUNT);
+// if (value == null)
+// {
+// // DB2DiscoveryUtil:
+// //value = DB2DiscoveryUtil.getAliasCount();
+// if (value == null)
+// {
+// // Regular override or JNI:
+// value = (Integer)getImplValue(ALIASCOUNT);
+// if (value == null) // Default:
+// value = new Integer(0);
+// }
+// actualValues.put(ALIASCOUNT, value);
+// }
+// return value.intValue();
+// }
+//
+// /**
+// * Gets the count of aliases in the client directory.
+// * @return The count.
+// */
+// public static int getAliasCountJNI()
+// {
+// return DB2Util.getAliasCount();
+// }
+//
+// /**
+// * Gets the names of the aliases in the client directory.
+// * @param alias An array of alias names (output)
+// * @param cmt An array of comments (output)
+// */
+// public static synchronized void getAliases(String[] alias, String[] cmt)
+// {
+// Object value = actualValues.get(ALIASES);
+// String[] aliases = null;
+// String[] cmts = null;
+// if (value == null)
+// {
+// // Regular override or JNI:
+// value = getImplValue(ALIASES);
+// if (value != null)
+// {
+// aliases = (String[])((Object[])value)[0];
+// cmts = (String[])((Object[])value)[1];
+// actualValues.put(ALIASES, value);
+// }
+// }
+// else // value != null
+// {
+// aliases = (String[])((Object[])value)[0];
+// cmts = (String[])((Object[])value)[1];
+// }
+// if (aliases != null)
+// {
+// int size = aliases.length;
+// for (int a = 0; a < size; a++)
+// {
+// alias[a] = aliases[a];
+// cmt[a] = cmts[a];
+// }
+// }
+// }
+//
+// /**
+// * Gets the names of the aliases in the client directory.
+// * @return An array of two String arrays:
+// * the alias names and the comments.
+// */
+// protected static Object[] getAliasesNative()
+// {
+// int count = getAliasCountJNI();
+// String[] alias = new String[count];
+// String[] cmt = new String[count];
+// if (count > 0)
+// getAliasesJNI(alias, cmt);
+// return new Object[]{alias, cmt};
+// }
+//
+// /**
+// * Gets the names of the aliases in the client directory.
+// * @param alias An array of alias names (output)
+// * @param cmt An array of comments (output)
+// */
+// public static void getAliasesJNI(String[] alias, String[] cmt)
+// {
+// DB2Util.getAliases(alias, cmt);
+// }
+//
+// /**
+// * Gets the list of hostname, port number, and db name of for a list of db aliases.
+// * For each alias in the input array, its hostname, port number, and db name can be
+// * found in the corresponding entries in the output arrays.
+// *
+// * @param alias The array of db aliases cataloged on the client.
+// * @param hostname (Output)The array of host names returned by the method.
+// * @param port (Output)The array of port numbers returned by the method.
+// * @param dbname (Output)The array of db names returned by the method.
+// */
+// public static synchronized void getHostInfo(
+// String[] alias,
+// String[] hostname,
+// String[] port,
+// String[] dbname)
+// {
+// Object value = actualValues.get(HOSTINFO);
+// String[] aliases = null;
+// //String[] cmts = null;
+// String[] hostnames = null;
+// String[] ports = null;
+// String[] dbnames = null;
+// if (value == null)
+// {
+// // Regular override or JNI:
+// value = getImplValue(HOSTINFO);
+// if (value != null)
+// {
+//
+// aliases = (String[])((Object[])value)[0];
+// hostnames = (String[])((Object[])value)[1];
+// ports = (String[])((Object[])value)[2];
+// dbnames = (String[])((Object[])value)[3];
+// actualValues.put(HOSTINFO, value);
+// }
+// }
+// else
+// {
+// aliases = (String[])((Object[])value)[0];
+// hostnames = (String[])((Object[])value)[1];
+// ports = (String[])((Object[])value)[2];
+// dbnames = (String[])((Object[])value)[3];
+// }
+// if (aliases != null)
+// {
+// int size = aliases.length;
+// for (int a = 0; a < size; a++)
+// {
+// alias[a] = aliases[a];
+// hostname[a] = hostnames[a];
+// port[a] = ports[a];
+// dbname[a] = dbnames[a];
+// }
+// }
+// }
+//
+// /**
+// * Gets the names of the aliases in the client directory.
+// * @return An array of four String arrays:
+// * the alias names, the hostnames, the ports, and the dbnames.
+// */
+// protected static Object[] getHostInfoNative()
+// {
+// int count = getAliasCountJNI();
+// String[] alias = new String[count];
+// String[] hostname = new String[count];
+// String[] port = new String[count];
+// String[] dbname = new String[count];
+// if (count > 0)
+// {
+// String[] cmt = new String[count];
+// getAliases(alias, cmt);
+// getHostInfoJNI(alias, hostname, port, dbname);
+// }
+// return new Object[]{alias, hostname, port, dbname};
+// }
+//
+// /**
+// * Gets the list of hostname, port number, and db name of for a list of db aliases.
+// * For each alias in the input array, its hostname, port number, and db name can be
+// * found in the corresponding entries in the output arrays.
+// *
+// * @param alias The array of db aliases cataloged on the client.
+// * @param hostname (Output)The array of host names returned by the method.
+// * @param port (Output)The array of port numbers returned by the method.
+// * @param dbname (Output)The array of db names returned by the method.
+// */
+// public static void getHostInfoJNI(
+// String[] alias,
+// String[] hostname,
+// String[] port,
+// String[] dbname)
+// {
+// DB2Util.getHostInfo(alias, hostname, port, dbname);
+// }
+//
+// /**
+// * Execute a command in the current OS environment .
+// * @param cmd The command to execute
+// * @param emsg The error messages in the first element (output)
+// * @return If successful, 0; otherwise, a negative number
+// */
+// public static int executeEnvJNI(
+// String cmd,
+// String workDir,
+// String javaHome,
+// Object[] emsg)
+// {
+// return OSUtil.executeEnv(cmd, workDir, javaHome, emsg);
+// }
+//
+// /**
+// * Runs a command using the JDK level in a given connection
+// * in a given working directory.
+// public static String runit(String cmd, String workDir, int[] rc)
+// {
+// return runit(null, cmd, workDir, rc);
+// }
+// */
+// /**
+// * Runs a command in a given working directory.
+// * Caller must make sure the javaHome value is set by calling the setJavaHome method.
+// * <p>
+// * @param connection The connection object against which the command will run.
+// * @param cmd The command string to be executed.
+// * @param workDir The working directory to be used by the command execution.
+// * @param rc A array of int for the result of the execution.
+// public synchronized static String runit(
+// RLDBConnection connection,
+// String cmd,
+// String workDir,
+// int[] rc)
+// {
+// if (connection != null)
+// {
+// //String jdkLevel = connection.getJdkLevel();
+// //((BaseOptionsMgr)ComponentMgr.getInstance().getObjMgr(BaseOptionsMgr.OPTIONS_MGR)).getJavaHome(jdkLevel);
+// String sep = System.getProperty("file.separator");
+// StringBuffer jdkbuf = new StringBuffer(256);
+// if (javaHome != null && javaHome.length() != 0)
+// {
+// jdkbuf.append(javaHome);
+// if (!javaHome.endsWith(sep))
+// jdkbuf.append(sep);
+// jdkbuf.append("bin");
+// }
+// javaHome = jdkbuf.toString();
+// }
+// //System.out.println("ClientUtil.runit javaHome: " + javaHome);
+// Object messages[] = new Object[1];
+// rc[0] = executeEnvJNI(cmd, workDir, javaHome, messages);
+// String exemsg = (String) messages[0];
+// if (exemsg != null && exemsg.equals(""))
+// {
+// return null;
+// }
+// else
+// {
+// return exemsg;
+// }
+// }
+// */
+//
+// /**
+// * Returns true if we can find an environment variable implementation.
+// * @return True if getEnv("HOME") can be found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasEnvImpl()
+// {
+// String value = (String)getImplValue(ENVVAR, new Object[]{"HOME"});
+// return (value != null && value.length() > 0);
+// }
+//
+// /**
+// * Gets the value of an environment variable.
+// *
+// * @param evName The environment variable's name
+// * @return The value contained in the environment variable
+// */
+// public static synchronized String getEnv(String evName)
+// {
+// String key = ENVVAR +"(" + evName + ")";
+// String value = (String)actualValues.get(key);
+// if (value == null)
+// {
+// Object[] args = new Object[]{evName};
+// value = (String)getStoredValue(ENVVAR, args);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(ENVVAR, args);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(key);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// actualValues.put(key, value);
+// }
+// return value;
+// }
+//
+// /**
+// * Gets the value of an environment variable.
+// *
+// * @return The value contained in the environment variable
+// */
+// public static String getenvJNI(String evName)
+// {
+// return OSUtil.getEnv(evName);
+// }
+//
+// /**
+// * Given a host, port, and database name (on the host),
+// * returns a matching DB2 alias, or null if none can be found.
+// * @param myHostName The host name or TCP/IP address of the database server.
+// * @param myPort The DB2 server's connection port.
+// * @param myDBName The name of the database on the server.
+// * @return The alias name or null if none match.
+// */
+// public static String findAlias(String myHostName, String myPort, String myDBName)
+// {
+// int count = ClientUtil.getAliasCount();
+// if (count > -1)
+// {
+// String[] alias = new String[count];
+// String[] hostname = new String[count];
+// String[] port = new String[count];
+// String[] dbname = new String[count];
+// ClientUtil.getHostInfo(alias, hostname, port, dbname);
+// for (int x = 0; x < count; x++)
+// {
+// //System.out.println("DbUtil - alias[x], cmt[x], hostname[x], port[x], dbname[x] " +
+// // alias[x] + " " + hostname[x] + " " + port[x] + " " + dbname[x]);
+// if (hostname[x].trim().equalsIgnoreCase(myHostName.trim())
+// && port[x].trim().equalsIgnoreCase(myPort.trim())
+// && dbname[x].trim().equalsIgnoreCase(myDBName.trim()))
+// return alias[x];
+// }
+// }
+// return null;
+// }
+//
+// /**
+// * Clears the caches for ALIASCOUNT, ALIASES, and HOSTINFO,
+// * resulting in a fresh snapshot of the DB2 client information.
+// * This can be used when aliases haave been created or removed.
+// */
+// public static void cleanAliases()
+// {
+// ClientUtil.clearCache(ClientUtil.ALIASCOUNT);
+// ClientUtil.clearCache(ClientUtil.ALIASES);
+// ClientUtil.clearCache(ClientUtil.HOSTINFO);
+//bgp> }
+
+ /**
+ * This method uses an algorithm specifically for zSeries since
+ * zSeries connections require the zSeries license jar.
+ */
+ public static String getDB2zSeriesUniversalDriverClientJarsPath()
+ {
+ // RATLC01124570 (Should pick jcc jar files from RAD directory, not from sqllib)
+ // Look to pick up Universal driver jars from the RAD installation first. Theoretically,
+ // the program should never get to pick up the jars from DB2 because the RAD installation will
+ // always be there (picking up the jars from the DB2 installation is kept just in case...) rm
+ StringBuffer db2DriverPath = new StringBuffer();
+ StringBuffer db2zSeriesLicensePath = new StringBuffer();
+ StringBuffer fullPath = new StringBuffer();
+ db2DriverPath = new StringBuffer();
+ db2zSeriesLicensePath = new StringBuffer();
+ String path = null;
+
+ // locate plug-in driver
+ try {
+ path = FileLocator.resolve(
+ Platform.getBundle("com.ibm.datatools.db2").getEntry( //$NON-NLS-1$
+ "/")).getPath(); //$NON-NLS-1$
+
+ db2DriverPath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc.jar"); //$NON-NLS-1$
+ db2zSeriesLicensePath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc_license_cisuz.jar"); //$NON-NLS-1$
+ File driverJar = new File(db2DriverPath.toString());
+ File licenseJar = new File(db2zSeriesLicensePath.toString());
+ if (driverJar.exists() && licenseJar.exists()) {
+ fullPath.append(driverJar.getAbsolutePath()).append(PATH_SEPARATOR)
+ .append(licenseJar.getAbsolutePath());
+ }
+ } catch (Exception e) {
+ // if there is an exception, then assume the driver is not found
+ }
+
+ if (fullPath.toString().equals("")) { //$NON-NLS-1$
+ path = ClientUtil.getDB2Path();
+ if (path != null && !path.equals("")) {
+ db2DriverPath.append(path).append(File.separator)
+ .append("java").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc.jar"); //$NON-NLS-1$
+
+ db2zSeriesLicensePath.append(path).append(File.separator)
+ .append("java").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc_license_cisuz.jar"); //$NON-NLS-1$
+ // If this jar exists here, we have a client DB2 V8 or later.
+ File driverJar = new File(db2DriverPath.toString());
+ File licenseJar = new File(db2zSeriesLicensePath.toString());
+ if (driverJar.exists() && licenseJar.exists()) {
+ fullPath.append(db2DriverPath.toString()).append(PATH_SEPARATOR)
+ .append(db2zSeriesLicensePath.toString());
+ }
+ }
+ }
+ return fullPath.toString();
+ }
+
+ /**
+ * This method uses an algorithm specifically for zSeries since
+ * zSeries connections require the zSeries license jar.
+ */
+ public static String getDB2zSeriesUniversalDriverJDBC4ClientJarsPath()
+ {
+ // RATLC01124570 (Should pick jcc jar files from RAD directory, not from sqllib)
+ // Look to pick up Universal driver jars from the RAD installation first. Theoretically,
+ // the program should never get to pick up the jars from DB2 because the RAD installation will
+ // always be there (picking up the jars from the DB2 installation is kept just in case...) rm
+ StringBuffer db2DriverPath = new StringBuffer();
+ StringBuffer db2zSeriesLicensePath = new StringBuffer();
+ StringBuffer fullPath = new StringBuffer();
+ db2DriverPath = new StringBuffer();
+ db2zSeriesLicensePath = new StringBuffer();
+ String path = null;
+
+ // locate plug-in driver
+ try {
+ path = FileLocator.resolve(
+ Platform.getBundle("com.ibm.datatools.db2").getEntry( //$NON-NLS-1$
+ "/")).getPath(); //$NON-NLS-1$
+
+ db2DriverPath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc4.jar"); //$NON-NLS-1$
+ db2zSeriesLicensePath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc_license_cisuz.jar"); //$NON-NLS-1$
+ File driverJar = new File(db2DriverPath.toString());
+ File licenseJar = new File(db2zSeriesLicensePath.toString());
+ if (driverJar.exists() && licenseJar.exists()) {
+ fullPath.append(driverJar.getAbsolutePath()).append(PATH_SEPARATOR)
+ .append(licenseJar.getAbsolutePath());
+ }
+ } catch (Exception e) {
+ // if there is an exception, then assume the driver is not found
+ }
+
+ return fullPath.toString();
+ }
+
+ public static String getDB2iSeriesJT400ClientJarsPath()
+ {
+
+ /* RATLC01371512: The jt400.jar driver file is shipped with the product
+ * Hence we should pick the jar from the iseries plugin and not from the
+ * DB2 installation */
+ try {
+ String path = FileLocator.resolve(
+ Platform.getBundle("com.ibm.datatools.db2.iseries") //$NON-NLS-1$
+ .getEntry("driver/jt400.jar")).getPath(); //$NON-NLS-1$
+ if (new File(path).exists())
+ return new File(path).getAbsolutePath();
+
+ /* If the driver is not found in the iseries plugin,
+ * try to locate in in the DB2 installation. This will
+ * only work if there is a local DB2 installation present
+ */
+ String db2Path = ClientUtil.getDB2Path();
+ if (db2Path != null && !db2Path.equals("")) {
+ StringBuffer db2DriverPath = new StringBuffer();
+ db2DriverPath.append(db2Path).append(File.separator)
+ .append("tools").append(File.separator) //$NON-NLS-1$
+ .append("jt400.jar"); //$NON-NLS-1$
+ File driverJar = new File(db2DriverPath.toString());
+ if (driverJar.exists())
+ return db2DriverPath.toString();
+ }
+
+ } catch (Exception e) {
+ // if there is an exception, then assume the driver is not found
+ }
+
+ return "";
+
+ }
+
+ /**
+ * This method uses an algorithm specifically for non-zSeries servers since
+ * non-zSeries connections do not require the zSeries license jar.
+ */
+ public static String getDB2UniversalDriverClientJarsPath()
+ {
+ // RATLC01124570 (Should pick jcc jar files from RAD directory, not from sqllib)
+ // Look to pick up Universal driver jars from the RAD installation first. Theoretically,
+ // the program should never get to pick up the jars from DB2 because the RAD installation will
+ // always be there (picking up the jars from the DB2 installation is kept just in case...) rm
+ StringBuffer db2DriverPath = new StringBuffer();
+ StringBuffer db2LicensePath = new StringBuffer();
+ StringBuffer db2zSeriesLicensePath = new StringBuffer();
+ StringBuffer fullPath = new StringBuffer();
+ db2DriverPath = new StringBuffer();
+ db2zSeriesLicensePath = new StringBuffer();
+ String path = null;
+
+ // locate plug-in driver
+ try {
+ path = FileLocator.resolve(
+ Platform.getBundle("com.ibm.datatools.db2").getEntry( //$NON-NLS-1$
+ "/")).getPath(); //$NON-NLS-1$
+
+ db2DriverPath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc.jar"); //$NON-NLS-1$
+ db2zSeriesLicensePath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc_license_cisuz.jar"); //$NON-NLS-1$
+ File driverJar = new File(db2DriverPath.toString());
+ File licenseJar = new File(db2zSeriesLicensePath.toString());
+ if (driverJar.exists() && licenseJar.exists()) {
+ fullPath.append(driverJar.getAbsolutePath()).append(PATH_SEPARATOR)
+ .append(licenseJar.getAbsolutePath());
+ }
+ } catch (Exception e) {
+ // if there is an exception, then assume the driver is not found
+ }
+
+ if (fullPath.toString().equals("")) { //$NON-NLS-1$
+ path = ClientUtil.getDB2Path();
+ if (path != null && !path.equals("")) {
+ db2DriverPath.append(path).append(File.separator)
+ .append("java").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc.jar"); //$NON-NLS-1$
+
+ db2LicensePath.append(path).append(File.separator)
+ .append("java").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc_license_cu.jar"); //$NON-NLS-1$
+
+ db2zSeriesLicensePath.append(path).append(File.separator)
+ .append("java").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc_license_cisuz.jar"); //$NON-NLS-1$
+
+ // If this jar exists here, we have a client DB2 V8 or later.
+ File driverJar = new File(db2DriverPath.toString());
+ File licenseJar = new File(db2LicensePath.toString());
+ File zSeriesLicenseJar = new File(db2zSeriesLicensePath.toString());
+ if (driverJar.exists() && zSeriesLicenseJar.exists()) {
+ fullPath.append(db2DriverPath.toString()).append(PATH_SEPARATOR)
+ .append(db2zSeriesLicensePath.toString());
+ } else if (driverJar.exists() && licenseJar.exists()) {
+ fullPath.append(db2DriverPath.toString()).append(PATH_SEPARATOR)
+ .append(db2LicensePath.toString());
+ }
+ }
+ }
+
+ return fullPath.toString();
+ }
+
+
+ /**
+ * This method uses an algorithm specifically for non-zSeries servers since
+ * non-zSeries connections do not require the zSeries license jar.
+ */
+ public static String getDB2UniversalDriverJDBC4ClientJarsPath()
+ {
+ // RATLC01124570 (Should pick jcc jar files from RAD directory, not from sqllib)
+ // Look to pick up Universal driver jars from the RAD installation first. Theoretically,
+ // the program should never get to pick up the jars from DB2 because the RAD installation will
+ // always be there (picking up the jars from the DB2 installation is kept just in case...) rm
+ StringBuffer db2DriverPath = new StringBuffer();
+ StringBuffer db2zSeriesLicensePath = new StringBuffer();
+ StringBuffer fullPath = new StringBuffer();
+ db2DriverPath = new StringBuffer();
+ db2zSeriesLicensePath = new StringBuffer();
+ String path = null;
+
+ // locate plug-in driver
+ try {
+ path = FileLocator.resolve(
+ Platform.getBundle("com.ibm.datatools.db2").getEntry( //$NON-NLS-1$
+ "/")).getPath(); //$NON-NLS-1$
+
+ db2DriverPath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc4.jar"); //$NON-NLS-1$
+ db2zSeriesLicensePath.append(path).append(File.separator)
+ .append("driver").append(File.separator) //$NON-NLS-1$
+ .append("db2jcc_license_cisuz.jar"); //$NON-NLS-1$
+ File driverJar = new File(db2DriverPath.toString());
+ File licenseJar = new File(db2zSeriesLicensePath.toString());
+ if (driverJar.exists() && licenseJar.exists()) {
+ fullPath.append(driverJar.getAbsolutePath()).append(PATH_SEPARATOR)
+ .append(licenseJar.getAbsolutePath());
+ }
+ } catch (Exception e) {
+ // if there is an exception, then assume the driver is not found
+ }
+
+ return fullPath.toString();
+ }
+
+//<bgp /**
+// * This method uses an algorithm specifically for DB2 Alias support
+// * in the Database Explorer.
+// */
+// public static String getDB2AliasSupportClientJarsPath()
+// {
+// StringBuffer db2DriverPath = new StringBuffer();
+// StringBuffer db2zSeriesLicensePath = new StringBuffer();
+// StringBuffer fullPath = new StringBuffer();
+// String path = ClientUtil.getDB2Path();
+// if (path != null && !path.equals("")) {
+// db2DriverPath.append(path).append(File.separator)
+// .append("java").append(File.separator) //$NON-NLS-1$
+// .append("db2jcc.jar"); //$NON-NLS-1$
+//
+// db2zSeriesLicensePath.append(path).append(File.separator)
+// .append("java").append(File.separator) //$NON-NLS-1$
+// .append("db2jcc_license_cisuz.jar"); //$NON-NLS-1$
+// // If this jar exists here, we have a client DB2 V8 or later;
+// // otherwise, we test for sqlj.zip; then at leat we have a client
+// // DB2.
+// File driverJar = new File(db2DriverPath.toString());
+// File licenseJar = new File(db2zSeriesLicensePath.toString());
+// if (driverJar.exists() && licenseJar.exists()) {
+// fullPath.append(db2DriverPath.toString()).append(PATH_SEPARATOR)
+// .append(db2zSeriesLicensePath.toString());
+// }
+// }
+// return fullPath.toString();
+// }
+//
+// /**
+// * This method locates the DB2 APP driver zip of an installed DB2 client.
+// * This method is provided as legacy application support for AST.
+// */
+// public static String getDB2AppDriverClientZipPath()
+// {
+// StringBuffer db2DriverPath = new StringBuffer();
+// StringBuffer fullPath = new StringBuffer();
+// String path = ClientUtil.getDB2Path();
+// if (path != null && !path.equals("")) {
+// db2DriverPath.append(path).append(File.separator)
+// .append("java").append(File.separator) //$NON-NLS-1$
+// .append("db2java.zip"); //$NON-NLS-1$
+//
+// File driverJar = new File(db2DriverPath.toString());
+// if (driverJar.exists()) {
+// fullPath.append(db2DriverPath.toString());
+// }
+// }
+// return fullPath.toString();
+// }
+//
+// /**
+// * Returns the Java version for a given JDK home directory.
+// * @param jdkHome A JDK home directory, such as "c:\sqllib\java."
+// * @return The result from the "java -version" command.
+// * Returns null if the process fails.
+// *
+// * TODO: ClientUtil APIs can be extended.
+// */
+// public static synchronized String getJdkLevel(String jdkHome)
+// {
+// String[] jdkarg = new String[]{jdkHome};
+// String value = (String)actualValues.get(getPrefKey(JDKLEVEL, jdkarg));
+// if (value == null)
+// {
+// value = (String)getStoredValue(JDKLEVEL, jdkarg);
+// if (value == null || value.length() == 0)
+// value = (String)getImplValue(JDKLEVEL, jdkarg);
+// if (value == null || value.length() == 0)
+// value = (String)getDefault(JDKLEVEL);
+// if (value == null || value.equals("null"))
+// value = null;
+// else
+// setActualValue(JDKLEVEL, value);
+// }
+// return value;
+// }
+// /**
+// * Our implementation of getJdkLevel(String).
+// */
+// public static String getJdkLevelImpl(String jdkHome) {
+// String cmd = null;
+// if (jdkHome.length() > 0) {
+// StringBuffer sb;
+// if (-1 != jdkHome.indexOf(" ") && -1 == jdkHome.indexOf("\"")){
+// sb = new StringBuffer("\"" + jdkHome);
+// sb.append(File.separatorChar).append("bin") //$NON-NLS-1$
+// .append(File.separatorChar).append("java\" -version"); //$NON-NLS-1$
+// }else{
+// sb = new StringBuffer(jdkHome);
+// sb.append(File.separatorChar).append("bin") //$NON-NLS-1$
+// .append(File.separatorChar).append("java -version"); //$NON-NLS-1$
+// }
+// cmd = sb.toString();
+// } else {
+// cmd = "java -version"; //$NON-NLS-1$
+// }
+// try {
+// Process p = Runtime.getRuntime().exec(cmd);
+// InputStream istream = p.getInputStream();
+// InputStream estream = p.getErrorStream();
+// // int rc =
+// p.waitFor();
+// byte[] lbytes = new byte[250];
+// int c = istream.read(lbytes);
+// if (c < 0)
+// c = estream.read(lbytes);
+// if (c > 0) {
+// String output = new String(lbytes, 0, c);
+// int pos = output.indexOf("\""); //$NON-NLS-1$
+// if (pos < 0)
+// return null;
+// output = output.substring(pos + 1);
+// pos = output.indexOf("\""); //$NON-NLS-1$
+// output = output.substring(0, pos);
+// return output;
+// }
+// return null;
+// } catch (Exception e) {
+// // System.out.println(e.getMessage());
+// return null;
+// }
+// }
+//
+// /**
+// * Returns the translated output stream from the db2level command.
+// */
+// public static String getDb2levelOutput()
+// {
+// try
+// {
+// String cmd = "db2level";
+// Process p = Runtime.getRuntime().exec(cmd);
+// InputStream istream = p.getInputStream();
+// //int rc =
+// p.waitFor();
+// byte[] lbytes = new byte[250];
+// int c = istream.read(lbytes);
+// return new String(lbytes, 0, c);
+// }
+// catch (Exception e)
+// {
+// //System.out.println(e.getMessage());
+// return null;
+// }
+// }
+//
+// /**
+// * Returns the DB2 level, such as "08022" for 8.2.2.
+// */
+// public static String getDB2ClientLevel()
+// {
+// String level = (String)actualValues.get(DB2CLIENTLEVEL);
+// if (level == null)
+// {
+// String outstr = getDb2levelOutput();
+// if (outstr != null)
+// {
+// int p = outstr.indexOf("\"SQL");
+// if (p > -1)
+// {
+// level = outstr.substring(p+4, p+9);
+// actualValues.put(DB2CLIENTLEVEL, level);
+// }
+// else
+// {
+// // dump out the string for now since there is no error handling.... cwu
+// System.out.println( "Unexpected output from db2level: " + outstr );
+// }
+// }
+// }
+// return level;
+// }
+//
+// /**
+// * Returns the DB2 client version, such as 8.
+// */
+// public static int getDB2ClientVersion()
+// {
+// Integer actualValue = (Integer)actualValues.get(DB2CLIENTVERSION);
+//
+// if (actualValue == null)
+// {
+// String storedValue = null;
+// if (Platform.getExtensionRegistry() != null)
+// storedValue = (String)getStoredValue(DB2CLIENTVERSION, null);
+//
+// if (storedValue == null || storedValue.equals (""))
+// // note that getImplValue returns type Integer for key = DB2CLIENTVERSION (see code)
+// actualValue = (Integer)getImplValue(DB2CLIENTVERSION);
+//
+// if (actualValue == null || actualValue.intValue() == 0) {
+// // FIXME Currently, it doesn't look like setDefault is ever called with the key DB2CLIENTVERSION!
+// String defaultValue = (String)getDefault(DB2CLIENTVERSION);
+//
+// if (defaultValue != null)
+// actualValue = new Integer (defaultValue);
+// }
+// }
+// if (actualValue == null)
+// return 0;
+// else
+// return actualValue.intValue();
+// }
+// /**
+// * Returns the DB2 client version, such as 8.
+// */
+// public static Integer getDB2ClientVersionImpl()
+// {
+// Integer version = null;
+// String level = getDB2ClientLevel();
+// if (level != null && level.length() > 1)
+// {
+// String ver = level.substring(0,2);
+// try
+// {
+// version = Integer.valueOf(ver, 10);
+// actualValues.put(DB2CLIENTVERSION, version);
+// }
+// catch (NumberFormatException e) {}
+// }
+// return version;
+// }
+//
+// /**
+// * Returns true if we can find the modification level of a local DB2 client.
+// * @return True if a DB2 client modification level
+// * is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasDB2ClientVersionImpl()
+// {
+// Integer value = (Integer)getImplValue(DB2CLIENTVERSION);
+// return (value != null && value.intValue() > 0);
+// }
+//
+// /**
+// * Returns the DB2 client release, such as 2.
+// */
+// public static int getDB2ClientRelease()
+// {
+// Integer value = (Integer)actualValues.get(DB2CLIENTRELEASE);
+// if (value == null)
+// {
+//// value = (Integer)getStoredValue(DB2CLIENTRELEASE, null);
+//// if (value == null || value.intValue() == 0)
+//// value = (Integer)getImplValue(DB2CLIENTRELEASE);
+//// if (value == null || value.intValue() == 0)
+//// value = (Integer)getDefault(DB2CLIENTRELEASE);
+//
+// String storedValue = null;
+// if (Platform.getExtensionRegistry() != null)
+// storedValue = (String)getStoredValue(DB2CLIENTRELEASE, null);
+//
+// if (storedValue == null || storedValue.equals (""))
+// value = (Integer)getImplValue(DB2CLIENTRELEASE);
+//
+// if (value == null || value.intValue() == 0)
+// {
+// String defaultValue = (String)getDefault(DB2CLIENTRELEASE);
+//
+// if (defaultValue != null)
+// value = new Integer (defaultValue);
+// }
+// }
+//
+// if (value == null)
+// return 0;
+// else
+// return value.intValue();
+// }
+//
+// /**
+// * Returns the DB2 client release, such as 2.
+// */
+// public static Integer getDB2ClientReleaseImpl()
+// {
+// Integer release = null;
+// String level = getDB2ClientLevel();
+// if (level != null && level.length() > 3)
+// {
+// String rel = level.substring(2,4);
+// try
+// {
+// release = Integer.valueOf(rel, 10);
+// actualValues.put(DB2CLIENTRELEASE, release);
+// }
+// catch (NumberFormatException e) {}
+// }
+// return release;
+// }
+//
+// /**
+// * Returns true if we can find the modification level of a local DB2 client.
+// * @return True if a DB2 client modification level
+// * is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasDB2ClientReleaseImpl()
+// {
+// Integer value = (Integer)getImplValue(DB2CLIENTRELEASE);
+// return (value != null && value.intValue() > 0);
+// }
+//
+// /**
+// * Returns the DB2 client modification, such as 2.
+// */
+// public static int getDB2ClientModification()
+// {
+// Integer value = (Integer)actualValues.get(DB2CLIENTMODIFICATION);
+// if (value == null)
+// {
+// String valueStr = (String)getStoredValue(DB2CLIENTMODIFICATION, null);
+// if ((valueStr != null) && (valueStr.length() > 0)) {
+// try {
+// value = Integer.parseInt(valueStr);
+// } catch (NumberFormatException e) {
+// }
+// }
+// if (value == null || value.intValue() == 0)
+// value = (Integer)getImplValue(DB2CLIENTMODIFICATION);
+// if (value == null || value.intValue() == 0)
+// value = (Integer)getDefault(DB2CLIENTMODIFICATION);
+// }
+// if (value == null)
+// return 0;
+// else
+// return value.intValue();
+// }
+// /**
+// * Returns the DB2 client modification, such as 2.
+// */
+// public static Integer getDB2ClientModificationImpl()
+// {
+// Integer modification = null;
+// String level = getDB2ClientLevel();
+// if (level != null && level.length() > 4)
+// {
+// String mod = level.substring(4);
+// try
+// {
+// modification = Integer.valueOf(mod, 10);
+// actualValues.put(DB2CLIENTMODIFICATION, modification);
+// }
+// catch (NumberFormatException e) {}
+// }
+// return modification;
+// }
+//
+// /**
+// * Returns true if we can find the modification level of a local DB2 client.
+// * @return True if a DB2 client modification level
+// * is found using a given implementation
+// * or native JNI call; false otherwise.
+// */
+// public static synchronized boolean hasDB2ClientModificationImpl()
+// {
+// Integer value = (Integer)getImplValue(DB2CLIENTMODIFICATION);
+// return (value != null && value.intValue() > 0);
+//bgp> }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CloneUtil.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CloneUtil.java
new file mode 100644
index 0000000..556bbac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CloneUtil.java
@@ -0,0 +1,1225 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentService;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.Privilege;
+import org.eclipse.datatools.modelbase.sql.accesscontrol.SQLAccessControlPackage;
+import org.eclipse.datatools.modelbase.sql.constraints.PrimaryKey;
+import org.eclipse.datatools.modelbase.sql.constraints.SQLConstraintsPackage;
+import org.eclipse.datatools.modelbase.sql.datatypes.CharacterStringDataType;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLSchemaPackage;
+import org.eclipse.emf.common.util.EMap;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.ENamedElement;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.EStringToStringMapEntryImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EObjectEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMapUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+public class CloneUtil {
+
+ static private Hashtable packages = getProviders();
+
+ static private Hashtable requiredFeatures = getRequiredFeatures();
+
+ private static ClientConfiguration client = new ClientConfiguration(ClientConfiguration.CLONE_UTIL);
+
+ public static EObject[] clone(EObject targetContainer, EObject obj) {
+ return cloneWithElementMap(targetContainer, obj, new HashMap());
+ }
+
+ public static EObject[] clone(EObject[] targetContainers, EObject[] objs) {
+ return cloneWithElementMap(targetContainers, objs, new HashMap());
+ }
+
+ public static EObject[] cloneWithElementMap(final EObject targetContainer, final EObject obj, final Map map)
+ {
+ return cloneWithElementMap(targetContainer, obj, map, false, true);
+ }
+
+ //This is the one used by Compare and Sync.
+ public static EObject[] cloneWithElementMap(final EObject targetContainer, final EObject obj, final Map map, boolean cloneCrossModelExternalReferenced)
+ {
+ return cloneWithElementMap(targetContainer, obj, map, false, true, cloneCrossModelExternalReferenced);
+ }
+
+ public static EObject[] cloneWithElementMap(final EObject[] targetContainers, final EObject[] objs, final Map map) {
+ return cloneWithElementMap(targetContainers,objs,map,false,true);
+ }
+
+ public static EObject[] cloneWithElementMap(final EObject targetContainer, final EObject obj, final Map map, final boolean isCut, final boolean cloneExternalReferenced)
+ {
+ final List result = new ArrayList(1);
+//<bgp DB2PluginActivator.getInstance().getCommandManager().runCommand(new Runnable()
+// {
+// public void run()
+// {
+// result.add(cloneWithElementMap2(new EObject[] {targetContainer}, new EObject[] {obj}, map, new LinkedList(), new LinkedList(),isCut, cloneExternalReferenced, true));
+// }
+//bgp> });
+ return (EObject[]) result.toArray(new Object[1])[0];
+ }
+
+ public static EObject[] cloneWithElementMap(final EObject targetContainer, final EObject obj, final Map map, final boolean isCut, final boolean cloneExternalReferenced, final boolean cloneCrossModelExternalReferenced)
+ {
+ final List result = new ArrayList(1);
+//<bgp DB2PluginActivator.getInstance().getCommandManager().runCommand(new Runnable()
+// {
+// public void run()
+// {
+// result.add(cloneWithElementMap2(new EObject[] {targetContainer}, new EObject[] {obj}, map, new LinkedList(),new LinkedList(),isCut, cloneExternalReferenced, cloneCrossModelExternalReferenced));
+// }
+//bgp> });
+ return (EObject[]) result.toArray(new Object[1])[0];
+ }
+
+ public static EObject[] cloneWithElementMap(final EObject[] targetContainers, final EObject[] objs, final Map map, final boolean isCut, final boolean cloneExternalReferenced)
+ {
+ final List result = new ArrayList(1);
+//<bgp DB2PluginActivator.getInstance().getCommandManager().runCommand(new Runnable()
+// {
+// public void run()
+// {
+// result.add(cloneWithElementMap2(targetContainers, objs, map, isCut, cloneExternalReferenced));
+// }
+//bgp> });
+ return (EObject[]) result.toArray(new Object[1])[0];
+ }
+
+ public static EObject[] cloneWithElementMap(final EObject targetContainer, final EObject obj, final Map map, final Collection containmentExclusion, final Collection externalExclusion, final boolean isCut, final boolean cloneExternalReferenced, final boolean cloneCrossModelExternalReferenced)
+ {
+ final List result = new ArrayList(1);
+//<bgp DB2PluginActivator.getInstance().getCommandManager().runCommand(new Runnable()
+// {
+// public void run()
+// {
+// result.add(cloneWithElementMap2(new EObject[] {targetContainer}, new EObject[] {obj}, map, containmentExclusion, externalExclusion ,isCut, cloneExternalReferenced, cloneCrossModelExternalReferenced));
+// }
+//bgp> });
+ return (EObject[]) result.toArray(new Object[1])[0];
+ }
+
+ public static EObject[] cloneWithElementMap(final EObject targetContainer, final EObject obj, final Map map, final Collection containmentExclusion, final boolean isCut, final boolean cloneExternalReferenced, final boolean cloneCrossModelExternalReferenced)
+ {
+ final List result = new ArrayList(1);
+//<bgp DB2PluginActivator.getInstance().getCommandManager().runCommand(new Runnable()
+// {
+// public void run()
+// {
+// result.add(cloneWithElementMap2(new EObject[] {targetContainer}, new EObject[] {obj}, map, containmentExclusion, new LinkedList(),isCut, cloneExternalReferenced, cloneCrossModelExternalReferenced));
+// }
+//bgp> });
+ return (EObject[]) result.toArray(new Object[1])[0];
+ }
+
+ public static void updateReferencesToCloned(EObject[] clonedObjects, ResourceSet resourceSet) {
+ for(int i=0; i<clonedObjects.length; i++) {
+ EObject anObj = clonedObjects[i];
+ Collection affectedObjs = EcoreUtil.UsageCrossReferencer.find(anObj, resourceSet);
+ Iterator itor = affectedObjs.iterator();
+ while (itor.hasNext()) {
+ try {
+ EStructuralFeature.Setting setting = (EStructuralFeature.Setting) itor.next();
+ EObject referencingEObject = setting.getEObject();
+ EStructuralFeature eStructuralFeature = setting.getEStructuralFeature();
+ // Containment relationship is taken care of by reParent(). Performance??
+ if (underContainer(anObj, referencingEObject) || underContainer(referencingEObject, anObj)) {
+ continue;
+ }
+
+ if (eStructuralFeature.isChangeable()) {
+ if(!eStructuralFeature.isMany()) {
+ referencingEObject.eSet(eStructuralFeature, anObj);
+ }
+ }
+ } catch (Exception e) {
+ //e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ private static EObject[] cloneWithElementMap2(EObject[] targetContainers, EObject[] objs, Map originalMap, Collection containmentExclusion, Collection externalExclusion, boolean isCut, boolean cloneExternalReferenced, boolean cloneCrossModelExternalReferenced) {
+ LinkedHashMap map = new LinkedHashMap(originalMap);
+ List sourceContainers = new ArrayList();
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ for(int i=0; i<targetContainers.length; ++i) {
+ final EObject targetContainer = targetContainers[i];
+ final EObject source = objs[i];
+ final EObject sourceContainer = service.getContainer(source);
+ sourceContainers.add(sourceContainer);
+ final EObject targetRoot = (targetContainer == null)? null : service.getRootElement(targetContainer);
+ final EObject sourceRoot = service.getRootElement(source);
+ if(targetContainer == null || targetRoot.eClass() != sourceRoot.eClass()) {
+ if (isCut) {
+ map.put(source,source);
+ } else {
+ Collection exclude = findAllObjectsWithRequiredExternalReference(source);
+ Map containmentMap = cloneContainmentHierarchy(source, exclude);
+ map.putAll(containmentMap);
+ }
+ }
+ else {
+ EObject commonContainer = getLeastCommonContainer(sourceContainer, targetContainer);
+ if (isCut) { //if cut/paste don't clone the object and containment
+ map.put(source,source);
+ } else {
+ Map containmentMap = cloneContainmentHierarchy(source, containmentExclusion);
+ map.putAll(containmentMap);
+ }
+ if (commonContainer == null && !map.containsKey(sourceRoot)) {
+ map.put(sourceRoot, targetRoot);
+ }
+ mapContainers(sourceContainer, targetContainer, map);
+ }
+ }
+
+ List containers = new LinkedList();
+ if (cloneExternalReferenced) { //clone referenced element, like copy from SE to PE
+ for(int i=0; i<targetContainers.length; ++i) {
+ final EObject targetContainer = targetContainers[i];
+ final EObject source = objs[i];
+ final EObject sourceContainer = service.getContainer(source);
+ final EObject targetRoot = (targetContainer == null)? null : service.getRootElement(targetContainer);
+ final EObject sourceRoot = service.getRootElement(source);
+ final EObject commonContainer = getLeastCommonContainer(sourceContainer, targetContainer);
+
+ if(targetContainer != null && targetRoot.eClass() == sourceRoot.eClass()) {
+ if(targetContainer != null && targetRoot.eClass() == sourceRoot.eClass()) {
+ Iterator it = findAllRequiredExternalReferencedObjects(source, map).iterator();
+ while(it.hasNext()) {
+ EObject o = (EObject) it.next();
+ if (!cloneCrossModelExternalReferenced && isCrossModelObject(o,source)) continue; //do not clone the cross model referenced obj
+ if (externalExclusion.contains(o)) continue;
+ if(commonContainer == null || underContainer(o, commonContainer)) {
+ findOrCloneExternalObject(o, targetRoot, containers, map);
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ //if cut/paste then do not copy its reference.
+ if (isCut) {
+ for(int i=0; i<targetContainers.length; ++i) {
+ final EObject targetContainer = targetContainers[i];
+ final EObject source = objs[i];
+ final EObject sourceContainer = service.getContainer(source);
+ if(targetContainer != null) {
+ reParent(source,sourceContainer,targetContainer,map);
+ }
+ }
+ } else {
+ Set exclusion = new HashSet(containmentExclusion);
+ exclusion.addAll(externalExclusion);
+ List keySet = new LinkedList(map.keySet());
+ Iterator it = keySet.iterator();
+ while(it.hasNext()) {
+ EObject obj = (EObject) it.next();
+ if (sourceContainers.contains(obj)) continue;
+ //ODA also calls this method with a non-empty map. The change has caused regression
+ //in their test cases. Comment out the change for now.
+ //(JYEH)WSDBU00261140 Sev 2 Core:SVT - commands generated contain stmts not selected to be copied
+ //If this method is called from a compare and sync copy operation, the originalMap is not empty.
+ //We should only consider calling the copyReference for those objects drawn into the map
+ //so far during the invocation of this method.
+ //Or we may end up calling the copyReference for those unrelated objects and
+ //seeing the weird result as described in the defect.
+
+ //if (originalMap.containsKey(obj)) continue;
+ copyReference(map, obj,exclusion,!cloneExternalReferenced || !cloneCrossModelExternalReferenced);
+ }
+ }
+
+ for(int i=objs.length-1; i>=0; --i) {
+ EObject cloned = (EObject) map.get(objs[i]);
+ containers.add(0, cloned);
+
+ //source obj is a root object which has no parent
+ EStructuralFeature feature = service.getContainmentFeature(objs[i]);
+ if (feature == null && underContainer(cloned, targetContainers[i])) {
+ continue;
+ }
+ if(feature == null) {
+ }
+ else if(feature.isMany()){
+ Collection l = (Collection) targetContainers[i].eGet(feature);
+ if (!l.contains(cloned)) {
+ l.add(cloned);
+ }
+ }
+ else {
+ targetContainers[i].eSet(feature,cloned);
+ }
+ }
+
+ originalMap.putAll(map);
+ EObject[] r = new EObject[containers.size()];
+ containers.toArray(r);
+
+ // modify namespace if LDM model
+ IPostprocessProvider exe =
+ PostProcessingRegistryReader.getInstance().getPostProcessingExecutable();
+ if (exe != null)
+ {
+ exe.postProcess(r);
+ }
+
+ return r;
+ }
+
+ private static EObject[] cloneWithElementMap2(EObject[] targetContainers, EObject[] objs, Map map, boolean isCut, boolean cloneExternalReferenced) {
+ return cloneWithElementMap2(targetContainers, objs, map, new LinkedList(), new LinkedList(), isCut, cloneExternalReferenced, true);
+ }
+
+ public static Collection findAllObjectsWithRequiredExternalReference(EObject container) {
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ Set internal = new HashSet();
+ internal.add(container);
+ internal.addAll(service.getAllContainedElements(container));
+
+ Set goodObjects = new HashSet();
+ Set badObjects = new HashSet();
+ Set visited = new HashSet();
+ Iterator it = internal.iterator();
+ while(it.hasNext()) {
+ EObject e = (EObject) it.next();
+ if(!visited.contains(e)) {
+ hasRequiredExternalReference(e, internal, goodObjects, badObjects, visited);
+ }
+ }
+
+ return badObjects;
+ }
+
+ public static EObject findMappedElement(EObject x, Map map) {
+ if(map.containsKey(x)) return (EObject) map.get(x);
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ List containers = service.getAllContainers(x);
+ containers.add(x);
+ Iterator it = containers.iterator();
+ EObject current = null;
+ EObject currentTarget = null;
+ while ((currentTarget == null) && it.hasNext()) {
+ current = (EObject) it.next();
+ currentTarget = (EObject) map.get(current);
+ }
+ if(currentTarget == null) return null;
+ while(it.hasNext()) {
+ current = (EObject) it.next();
+ EObject like = (EObject) map.get(current);
+
+ if(like == null) {
+ like = findChildLike(currentTarget, current);
+ if(like != null) {
+ map.put(current, like);
+ }
+ }
+
+ if(like == null) {
+ return null;
+ }
+ else {
+ currentTarget = like;
+ }
+ }
+ return currentTarget;
+ }
+
+ public static Collection findAllRequiredExternalReferencedObjects(EObject container, Map map) {
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ Set internal = new HashSet();
+ Set external = new HashSet();
+ internal.add(container);
+ internal.addAll(service.getAllContainedElements(container));
+
+ Iterator it = internal.iterator();
+ while(it.hasNext()) {
+ EObject e = (EObject) it.next();
+ boolean useClientStrategy = false;
+ if (e instanceof Privilege) {
+ useClientStrategy = true;
+ }
+ findRequiredExternalReferencedObjects(e, internal, external, map, useClientStrategy);
+ }
+
+ return external;
+ }
+
+ private static void findRequiredExternalReferencedObjects(EObject obj, Collection internal, Collection external, Map map, boolean useClientStrategy)
+ {
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ Iterator it = obj.eClass().getEAllReferences().iterator();
+ while(it.hasNext()) {
+ EReference reference = (EReference) it.next();
+ if(isRequired(reference) || isRequired(reference,obj)) {
+ if(reference.isMany()) {
+ Object collection = null;
+ if (useClientStrategy) {
+ try {
+ collection = (Collection) ClientStrategyResolver.getInstance().getObjects(obj, reference, client);
+ } catch (ClientStrategyResolverException exception) {
+ collection = (Collection) obj.eGet(reference);
+ }
+ } else {
+ collection = (Collection) obj.eGet(reference);
+ }
+ Iterator refs = ((Collection) collection).iterator();
+ while(refs.hasNext()) {
+ EObject referenced = (EObject) refs.next();
+ if(internal.contains(referenced)) continue;
+ if(external.contains(referenced)) continue;
+ external.add(referenced);
+ if(findMappedElement(referenced, map) == null) {
+ findRequiredExternalReferencedObjects(referenced, internal, external, map, useClientStrategy);
+ }
+ Iterator containers = service.getAllContainers(referenced).iterator();
+ while(containers.hasNext()) {
+ EObject container = (EObject) containers.next();
+ if(!external.contains(container)) {
+ external.add(container);
+ if(findMappedElement(container, map) == null) {
+ findRequiredExternalReferencedObjects(container, internal, external, map, useClientStrategy);
+ }
+ }
+ }
+ }
+ }
+ else {
+ EObject referenced = null;
+ if (useClientStrategy) {
+ referenced = (EObject) ClientStrategyResolver.getInstance().getObject(obj, reference, client);
+ }
+ if (referenced == null) {
+ referenced = (EObject) obj.eGet(reference);
+ }
+ if(referenced != null) {
+ if(internal.contains(referenced)) continue;
+ if(external.contains(referenced)) continue;
+ external.add(referenced);
+ if(findMappedElement(referenced, map) == null) {
+ findRequiredExternalReferencedObjects(referenced, internal, external, map, useClientStrategy);
+ }
+ Iterator containers = service.getAllContainers(referenced).iterator();
+ while(containers.hasNext()) {
+ EObject container = (EObject) containers.next();
+ if(!external.contains(container)) {
+ external.add(container);
+ if(findMappedElement(container, map) == null) {
+ findRequiredExternalReferencedObjects(container, internal, external, map, useClientStrategy);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public static EObject findOrCloneExternalObject(EObject x, EObject targetRoot, Collection addedContainers, Map clonedMap) {
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ List containers = service.getAllContainers(x);
+ containers.add(x);
+ //comment out the following line so that there is a chance to clone x in the target
+ //even though x does not have a logical container. (10/3/2013)
+ //if(containers.size() == 1) return targetRoot;
+ Iterator it = containers.iterator();
+// EObject current = (EObject) it.next();
+ EObject current = null;
+ EObject currentTarget = targetRoot;
+ while(it.hasNext()) {
+ current = (EObject) it.next();
+ EObject like = (EObject) clonedMap.get(current);
+
+ if(like == null) {
+ like = findChildLike(currentTarget, current);
+ if(like != null) {
+ clonedMap.put(current, like);
+ }
+ }
+
+ if(like == null) {
+ /* Get the cloning information provider, if there is
+ * one, for the current source object. */
+ ICloningInfoProvider cip = getProvider(current);
+
+ /* If there is a cloning info provider and it indicates
+ * the objects containment hierarchy should be cloned
+ * when the object is externally referenced then clone
+ * the hierarchy. */
+ if (cip != null &&
+ cip.cloneContainmentHierarchyOnExtRef(current)) {
+ Map containmentMap = cloneContainmentHierarchy(current, new LinkedList());
+ clonedMap.putAll(containmentMap);
+ currentTarget = (EObject)containmentMap.get(current);
+ addedContainers.add(currentTarget);
+ }
+ else {
+ EObject cloned = cloneSingleObject(current);
+ clonedMap.put(current, cloned);
+ currentTarget = cloned;
+ addedContainers.add(cloned);
+ }
+
+ }
+ else {
+ currentTarget = like;
+ }
+ }
+
+ return currentTarget;
+ }
+
+ public static EObject findChildLike(EObject container, EObject like) {
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ EStructuralFeature feature = service.getContainmentFeature(like);
+ if ( feature != null && !feature.getContainerClass().isAssignableFrom(container.getClass())) return null;
+ if(feature == null) {
+ Iterator it = service.getContainedElements(container).iterator();
+ while(it.hasNext()) {
+ EObject child = (EObject) it.next();
+ if(service.getContainmentFeature(child) == null) {
+ if(match(child, like)) return child;
+ }
+ }
+ }
+ else if(feature.isMany()){
+ Iterator it = ((Collection) container.eGet(feature)).iterator();
+ while(it.hasNext()) {
+ EObject child = (EObject) it.next();
+ if(match(child, like)) return child;
+ }
+ it = service.getContainedElements(container).iterator();
+ while(it.hasNext()) {
+ EObject child = (EObject) it.next();
+ if(match(child, like)) return child;
+ }
+ }
+ else {
+ EObject child = (EObject) container.eGet(feature);
+ return child;
+ }
+ return null;
+ }
+
+ private static boolean match(EObject e1, EObject e2) {
+ if(e1.eClass() != e2.eClass()) return false;
+ if (SQLAccessControlPackage.eINSTANCE.getPrivilege().isSuperTypeOf(e1.eClass()))
+ return AccessControlUtilities.match((Privilege)e1,(Privilege)e2);
+
+ if (SQLConstraintsPackage.eINSTANCE.getPrimaryKey().isSuperTypeOf(e1.eClass())) {
+ if (((PrimaryKey)e1).getMembers().size() == ((PrimaryKey)e2).getMembers().size()) return true;
+ }
+
+ //(JYEH)do the same thing for logical data model primary keys
+ //except comparing the member sizes.
+ if ("com.ibm.db.models.logical.PrimaryKey".equals(e1.eClass().getInstanceClassName())) {
+ return true;
+ }
+
+ if (SQLSchemaPackage.eINSTANCE.getDependency().isSuperTypeOf(e1.eClass())) {
+ return matchDependency((Dependency)e1, ((Dependency)e2));
+ }
+
+ if(e1 instanceof ENamedElement) {
+ String name1 = ((ENamedElement) e1).getName();
+ String name2 = ((ENamedElement) e2).getName();
+ if(name1 != null) return name1.equals(name2);
+ if(name2 != null) return name2.equals(name1);
+ }
+
+
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ EStructuralFeature feature = service.getContainmentFeature(e1);
+ if(feature.isMany()) {
+ Object v1 = service.getContainer(e1).eGet(feature);
+ Object v2 = service.getContainer(e2).eGet(feature);
+ if(v1 instanceof List) {
+ return ((List) v1).indexOf(e1) == ((List) v2).indexOf(e2);
+ }
+ return true;
+ }
+ else {
+ return true;
+ }
+ }
+
+ private static boolean matchDependency(Dependency d1, Dependency d2) {
+
+ EObject e1 = d1.getTargetEnd();
+ EObject e2 = d2.getTargetEnd();
+
+ if (e1.eClass() != e2.eClass())
+ return false;
+ if (e1 instanceof ENamedElement) {
+ String name1 = ((ENamedElement) e1).getName();
+ String name2 = ((ENamedElement) e2).getName();
+ if (name1 != null)
+ return name1.equals(name2);
+ if (name2 != null)
+ return name2.equals(name1);
+ }
+
+ return false;
+ }
+
+ public static EObject getLeastCommonContainer(EObject obj1, EObject obj2) {
+ if(obj1 == null || obj2 == null) return null;
+ if(obj1 == obj2) return obj1;
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ EObject common = null;
+ List containers1 = service.getAllContainers(obj1);
+ List containers2 = service.getAllContainers(obj2);
+ Iterator i1 = containers1.iterator();
+ Iterator i2 = containers2.iterator();
+ while(i1.hasNext() && i2.hasNext()) {
+ Object c1 = i1.next();
+ Object c2 = i2.next();
+ if(c1 == c2) {
+ common = (EObject) c1;
+ }
+ }
+ return common;
+ }
+
+ public static boolean underContainer(EObject obj, EObject container) {
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ return service.getAllContainers(obj).contains(container);
+ }
+
+ public static void mapContainers(EObject srcContainer, EObject tgtContainer, Map map) {
+ if(srcContainer == null || tgtContainer == null) return;
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ List srcContainers = service.getAllContainers(srcContainer);
+ srcContainers.add(srcContainer);
+ List tgtContainers = service.getAllContainers(tgtContainer);
+ tgtContainers.add(tgtContainer);
+ if(srcContainers.size() == tgtContainers.size()) {
+ Iterator src = srcContainers.iterator();
+ Iterator tgt = tgtContainers.iterator();
+ while(src.hasNext()) {
+ map.put(src.next(), tgt.next());
+ }
+ } else {
+
+ //Fix for issue wsdbu00696928
+ //When copy a entity and paste to its parent package, can not reach the map statement
+// if (!srcContainers.contains(tgtContainer)) {
+ //Fix defect 23607
+ if (!map.containsKey(srcContainer)) {
+ map.put(srcContainer,tgtContainer);
+ }
+ }
+ }
+
+ private static boolean hasRequiredExternalReference(EObject obj, Collection internals, Collection goodObjects, Collection badObjects, Collection visited) {
+ visited.add(obj);
+ Iterator it = obj.eClass().getEAllReferences().iterator();
+ while(it.hasNext()) {
+ EReference reference = (EReference) it.next();
+ if(isRequired(reference) || isRequired(reference,obj)) {
+ if(reference.isMany()) {
+ Iterator refs = ((Collection) obj.eGet(reference)).iterator();
+ while(refs.hasNext()) {
+ EObject referenced = (EObject) refs.next();
+ if(badObjects.contains(referenced)) return true;
+ if(goodObjects.contains(referenced)) continue;
+ if(visited.contains(referenced)) continue;
+ if(internals.contains(referenced)) {
+ boolean good = hasRequiredExternalReference(referenced, internals, goodObjects, badObjects, visited);
+ if(good) continue;
+ }
+ badObjects.add(obj);
+ return true;
+ }
+ }
+ else {
+ EObject referenced = (EObject) obj.eGet(reference);
+ if(referenced != null) {
+ if(badObjects.contains(referenced)) return true;
+ if(goodObjects.contains(referenced)) continue;
+ if(visited.contains(referenced)) continue;
+ if(internals.contains(referenced)) {
+ boolean good = hasRequiredExternalReference(referenced, internals, goodObjects, badObjects, visited);
+ if(good) continue;
+ }
+ badObjects.add(obj);
+ return true;
+ }
+ }
+ }
+ }
+ goodObjects.add(obj);
+ return false;
+ }
+
+ public static void copyReference(Map map, EObject src, boolean keepOriginalReference) {
+ copyReference(map,src,new HashSet(),keepOriginalReference);
+ }
+
+ public static void copyReference(Map map, EObject src,Collection exclude, boolean keepOriginalReference) {
+ copyReference(map,src,new HashSet(),keepOriginalReference, null);
+ }
+
+ /*
+ * This overloaded version of the copyReference method was created to handle
+ * a special case issue in which privileges of data objects outside the
+ * scope of a copy operation should not be accessed. Outside of compare
+ * synchronization operations, this method should not be directly called
+ * without careful consideration.
+ */
+ public static void copyReference(Map map, EObject src,Collection exclude, boolean keepOriginalReference, EObject[] copiedObjects) {
+ Iterator it = src.eClass().getEAllStructuralFeatures().iterator();
+ EObject cloned = (EObject) map.get(src);
+ while(it.hasNext()) {
+ EStructuralFeature reference = (EStructuralFeature) it.next();
+ if (!isRequired(reference) && !isRequired(reference,src)) continue;
+ if(!reference.isChangeable()) continue;
+ if(reference.isDerived()) continue;
+
+ // Only copy privileges references which pertain to the selected objects to be
+ // copied.
+ if (copiedObjects != null &&
+ copiedObjects.length != 0 &&
+ reference.equals(SQLSchemaPackage.eINSTANCE.getSQLObject_Privileges())) {
+ boolean bypass = true;
+ for (EObject obj:copiedObjects) {
+ if (obj == src) {
+ bypass = false;
+ continue;
+ }
+ }
+ if (bypass) continue;
+ }
+
+ if(reference instanceof EReference) {
+ if(reference.isMany()) {
+ Collection srcCollection = (Collection) src.eGet(reference);
+ if(srcCollection.size() > 0) {
+ if (srcCollection instanceof EObjectEList) {
+ EObject srcContainer =(( EObjectEList)srcCollection).getEObject();
+ Collection targetCollection = (Collection) cloned.eGet(reference);
+ EObject targetContainer =(( EObjectEList)targetCollection).getEObject();
+ if (!targetContainer.getClass().isAssignableFrom(srcContainer.getClass())) {
+ continue;
+ }
+ Vector elements = new Vector();
+ if(targetCollection.size() == 0) {
+ Iterator refs = srcCollection.iterator();
+ while(refs.hasNext()) {
+ Object srcReference = refs.next();
+ if (exclude.contains(srcReference)) continue;
+ if(map.containsKey(srcReference) && srcReference != map.get(srcReference)) {
+ elements.add(map.get(srcReference));
+ }
+ else if(isRequired(reference) || isRequired(reference,src)) {
+ EObject mapped = findMappedElement((EObject) srcReference, map);
+ //Use Case: the src object is copy/pasted into the same container.
+ //For instance, a LUWPartitionGroupImpl is copy/pasted into the
+ //same database and reference is tableSpaces. A table space
+ //referenced from src is mapped to itself by the findMappedElement
+ //method.
+ //As soon as we add the table space from srcCollection into targetCollection,
+ //the table space will be gone from the srcCollection. This is not desirable.
+ //Another use case would be tables and their privileges.
+ //if(mapped != null) {
+ if(mapped != null && mapped != srcReference) {
+ elements.add(map.get(srcReference));
+ }
+ }
+ }
+
+ for (int i = 0; i <elements.size(); i++ ) {
+ targetCollection.add(elements.elementAt(i));
+ }
+ }
+ }
+ else if (srcCollection instanceof EMap &&
+ ((EMap)srcCollection).get(0) instanceof EStringToStringMapEntryImpl) {
+ // Copy EMaps which contain String keys and values
+ // This was added to support EAnnotation.details,
+ // specifically for CharacterStringDataType length semantics
+ EMap targetCollection = (EMap) cloned.eGet(reference);
+ Set<String> keys = ((EMap)srcCollection).keySet();
+ Iterator<String> keyIter = keys.iterator();
+ for (String key:keys) {
+ targetCollection.put(key,((EMap)srcCollection).get(key));
+ }
+ }
+ }
+ }
+ else {
+ EObject srcReference = (EObject) src.eGet(reference);
+ if(srcReference != null) {
+ if (exclude.contains(srcReference)) continue;
+ Object targetReference = cloned.eGet(reference);
+ if(targetReference == null ) {
+ if(map.containsKey(srcReference)) {
+ cloned.eSet(reference, map.get(srcReference));
+ }
+ else if(isRequired(reference)) {
+ EObject mapped = findMappedElement((EObject) srcReference, map);
+ if(mapped != null) {
+ cloned.eSet(reference, mapped);
+ } else if (isShallowCopyRecommended(src, reference, keepOriginalReference)){
+ cloned.eSet(reference, srcReference);
+ }
+ }
+ }
+ }
+ }
+ }
+ else if (FeatureMapUtil.isFeatureMap(reference)) {
+ FeatureMap featureMap = (FeatureMap)src.eGet(reference);
+ FeatureMap copyFeatureMap = (FeatureMap) cloned.eGet(reference);
+ Iterator k = featureMap.iterator();
+ while(k.hasNext()) {
+ FeatureMap.Entry featureMapEntry = (FeatureMap.Entry)k.next();
+ EStructuralFeature feature = featureMapEntry.getEStructuralFeature();
+ if(feature instanceof EReference) {
+ Object referencedEObject = featureMapEntry.getValue();
+ Object copyReferencedEObject = map.get(referencedEObject);
+ copyFeatureMap.add(feature, copyReferencedEObject == null ? referencedEObject : copyReferencedEObject);
+ }
+ else {
+ copyFeatureMap.add(featureMapEntry);
+ }
+ }
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+ // Made this public for use in SynchronizationCloneUtilities - rdr 06/24/2011
+ /**
+ * This method should only be called from the copyReference method for the purpose of determining
+ * whether the shallow copy of a reference is recommended when the referenced object
+ * is not mapped to the target yet.
+ * @param src The source object whose references are being copied over to the corresponding object
+ * in the target.
+ * @param reference The particular reference under consideration.
+ * @param keepOriginalReference The default recommendation.
+ * @return
+ */
+ public static boolean isShallowCopyRecommended(EObject src, EStructuralFeature reference, boolean keepOriginalReference) {
+ if (!keepOriginalReference) return false;
+
+ //A conservative implementation.
+ boolean isRequired = true;
+ if ("Column".equals(reference.getEContainingClass().getName())) { //$NON-NLS-1$
+ if("identitySpecifier".equals(reference.getName())) { //$NON-NLS-1$
+ //It does not make sense to have the corresponding column reference the identitySpecifier that
+ //is referenced by the source column.
+ isRequired = false;
+ }
+ }
+ return isRequired;
+ //Here is an alternative solution that makes sense but may have broader impacts.
+ //From my understanding, the shallow copy of the reference makes sense only when
+ //the referenced object is in a different model.
+// EObject srcReference = (EObject) src.eGet(reference);
+// return isCrossModelObject(srcReference, src);
+ }
+
+ public static Map cloneContainmentHierarchy(EObject obj, Collection exclude) {
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ Map map = new LinkedHashMap();
+
+ if(exclude.contains(obj)) return map;
+ EObject cloned = cloneSingleObject(obj);
+ map.put(obj, cloned);
+ Iterator it = service.getContainedElements(obj).iterator();
+ Set children = new HashSet();
+ while(it.hasNext()) {
+ Object o = it.next();
+ if(!exclude.contains(o)) {
+ children.add(o);
+ }
+ }
+ while(!children.isEmpty()) {
+ EObject child = (EObject) children.iterator().next();
+ EStructuralFeature feature = service.getContainmentFeature(child);
+ if(feature != null && feature.getContainerClass().isAssignableFrom(obj.getClass())) {
+ if(feature.isMany()) {
+ Collection l = (Collection) cloned.eGet(feature);
+ it = ((Collection) obj.eGet(feature)).iterator();
+ Vector childrenVec = new Vector();
+ while(it.hasNext()) {
+ EObject c = (EObject) it.next();
+ if(children.contains(c)) {
+ childrenVec.add(c);
+ }
+ }
+ for (int iVec = 0; iVec < childrenVec.size();iVec++ ){
+ EObject c = (EObject) childrenVec.get(iVec);
+ children.remove(c);
+ map.putAll(cloneContainmentHierarchy(c, exclude));
+ l.add(map.get(c));
+
+ }
+ }
+ else {
+ map.putAll(cloneContainmentHierarchy(child, exclude));
+ cloned.eSet(feature, map.get(child));
+ children.remove(child);
+ }
+ }
+ else {
+ children.remove(child);
+ }
+ }
+ return map;
+ }
+
+ public static EObject cloneSingleObject(EObject src) {
+ EClass c = src.eClass();
+ EObject target = c.getEPackage().getEFactoryInstance().create(c);
+ Iterator it = c.getEAllAttributes().iterator();
+ while(it.hasNext()) {
+ EAttribute a = (EAttribute) it.next();
+ if(a.isChangeable() && !a.isDerived()) copyAttribute(a, src, target);
+ }
+
+ return target;
+ }
+
+ private static void copyAttribute(EAttribute attribute, EObject src, EObject target) {
+ if(src.eIsSet(attribute)) {
+ if (FeatureMapUtil.isFeatureMap(attribute)) {
+ FeatureMap srcFeatureMap = (FeatureMap) src.eGet(attribute);
+ FeatureMap tgtFeatureMap = (FeatureMap) src.eGet(attribute);
+ Iterator i = srcFeatureMap.iterator();
+ while(i.hasNext()) {
+ FeatureMap.Entry entry = (FeatureMap.Entry)i.next();
+ EStructuralFeature feature = entry.getEStructuralFeature();
+ if(!(feature instanceof EReference)) {
+ tgtFeatureMap.add(entry);
+ }
+ }
+ }
+ else if(attribute.isMany()) {
+ ((Collection)target.eGet(attribute)).addAll((Collection) src.eGet(attribute));
+ }
+ else {
+ String attrType = attribute.getName();
+ if (!("namespace".equalsIgnoreCase(attrType) || "namespaceSupported".equalsIgnoreCase(attrType))) //$NON-NLS-1$
+ {
+ target.eSet(attribute, src.eGet(attribute));
+ }
+ }
+ }
+ }
+
+ // Made this public for use in SynchronizationCloneUtilities - rdr 06/24/2011
+ public static boolean isRequired(EStructuralFeature feature) {
+ //This method is a hot spot in the performance profile. The code has been enhanced
+ //using a hash table mechanism. From now on, exceptions should be added through the
+ //new extension point, requiredFeature.
+ Hashtable featureNames = (Hashtable)requiredFeatures.get(feature.getEContainingClass().getName());
+ if (featureNames != null) {
+ Boolean booleanObj = (Boolean)featureNames.get(feature.getName());
+ if (booleanObj != null) return booleanObj.booleanValue();
+ }
+
+ if (feature.isRequired())
+ return true;
+ if (!feature.isMany()) {
+ if (feature instanceof EReference) {
+ EReference ref = (EReference) feature;
+ EReference opposite = ref.getEOpposite();
+ if (opposite == null)
+ return true;
+ if (opposite.isMany())
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ // This method was added specifically to allow the length semantics to be copied for
+ // character string data types. If other applications are found for this method, it
+ // may improve performance to use an extension-point, as with isRequired(EStructuralFeature)
+ // This method was used instead of the requiredFeatures extension-point because that
+ // extension-point only allows the qualification of the feature by its defining
+ // container (in the eAnnotations case, that is EModelElement, which would make ALL
+ // eAnnotations "required"). We still rely on the requiredFeatures extension-point
+ // to make the details feature of EAnnotation required.
+ public static boolean isRequired(EStructuralFeature feature,EObject obj) {
+ if (feature != null &&
+ obj instanceof CharacterStringDataType &&
+ feature.getName().equals("eAnnotations")) { //$NON-NLS-1$
+ return true;
+ }
+ return false;
+ }
+
+ private static void reParent(EObject obj,EObject sourceContainer, EObject targetContainer,Map map){
+ if (targetContainer == null) return;
+ EObject sourceObj = obj;
+ EObject cloned = (EObject) map.get(sourceObj);
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ EStructuralFeature feature = service.getContainmentFeature(obj);
+ if(feature == null) {
+ return;
+ }
+ else if(feature.isMany()){
+ Collection l = (Collection) targetContainer.eGet(feature);
+ if (!l.contains(cloned)) {
+ l.add(cloned);
+ }
+ }
+ else {
+ targetContainer.eSet(feature,cloned);
+ }
+
+ if (sourceContainer == null || targetContainer == null ) return;
+ //resource the srcObject and cloned if sourceContainer and targetContainer are in different resource file when cut/paste
+ Resource srcResource = sourceContainer.eResource();
+ Resource targetResource = targetContainer.eResource();
+
+ if (srcResource != null && targetResource != null) {
+ if (srcResource != targetResource) {
+ if (cloned.eContainer() != targetContainer ) {
+ // keep src object ID for the cloned
+ String srcID = null;
+ if ((srcResource instanceof XMLResourceImpl) && (targetResource instanceof XMLResourceImpl)){
+ XMLResourceImpl srcXmlResource = (XMLResourceImpl) srcResource;
+ srcID = srcXmlResource.getID(sourceObj);
+ if(srcID != null) {
+ XMLResourceImpl targetXmlResource = (XMLResourceImpl) targetResource;
+ targetXmlResource.setID(cloned, srcID);
+ }
+ }
+ targetResource.getContents().add(cloned);
+ srcResource.getContents().remove(sourceObj);
+ }
+ reResource(cloned);
+ }
+ }
+ }
+
+ public static void reResource(EObject obj){
+ final ContainmentService service = ContainmentServiceImpl.INSTANCE;
+ Resource targetResource = obj.eResource();
+ Iterator it = service.getContainedElements(obj).iterator();
+ while (it.hasNext()) {
+ EObject child = (EObject)it.next();
+ if (obj.eContents().contains(child)) {
+ reResource((EObject)child);
+ continue;
+ }
+ if (!targetResource.getContents().contains(child)) {
+ targetResource.getContents().add(child);
+ reResource((EObject)child);
+ }
+
+ }
+ }
+
+ public static boolean isCrossModelObject(EObject obj1, EObject obj2){
+ //Note: objects from the database explorer may not have a resource associated with them
+ Resource srcResource = obj1.eResource();
+ Resource targetResource = obj2.eResource();
+ return (srcResource != null && targetResource != null && srcResource != targetResource);
+
+ }
+ private static Hashtable getProviders()
+ {
+ Hashtable packages = new Hashtable();
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "CloningInfoProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("cloning")) { //$NON-NLS-1$
+ String packageURI = configElements[j].getAttribute("package"); //$NON-NLS-1$
+ String className = configElements[j].getAttribute("class"); //$NON-NLS-1$
+ ICloningInfoProvider provider = null;
+ try {
+ provider = (ICloningInfoProvider) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ IStatus status = new Status(IStatus.ERROR, RDBCorePlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR,
+ "The error was detected when creating the cloning info provider for " + className + " in "+ packageURI, //$NON-NLS-1$ //$NON-NLS-2$
+ e);
+ RDBCorePlugin.getDefault().getLog().log(status);
+ continue;
+ }
+
+ if(packages.containsKey(packageURI)) {
+ ((Hashtable) packages.get(packageURI)).put(className, provider);
+ }
+ else {
+ Hashtable classNames = new Hashtable();
+ classNames.put(className, provider);
+ packages.put(packageURI, classNames);
+ }
+ }
+ }
+ }
+ return packages;
+ }
+
+ private static ICloningInfoProvider getProvider(EObject eObj) {
+ EClass clazz = (EClass) eObj.eClass();
+ String uri = clazz.getEPackage().getNsURI();
+ if(packages.containsKey(uri)) {
+ Hashtable classNames = (Hashtable) packages.get(uri);
+ if(classNames.containsKey(clazz.getName())) {
+ return (ICloningInfoProvider) classNames.get(clazz.getName());
+ }
+ }
+ return null;
+ }
+
+ private static Hashtable getRequiredFeatures()
+ {
+ Hashtable features = new Hashtable();
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "requiredFeature"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("featureInfo")) { //$NON-NLS-1$
+ String containingClass = configElements[j].getAttribute("containingClass"); //$NON-NLS-1$
+ String featureName = configElements[j].getAttribute("featureName"); //$NON-NLS-1$
+ String isRequired = configElements[j].getAttribute("isRequired"); //$NON-NLS-1$
+ if(features.containsKey(containingClass)) {
+ ((Hashtable) features.get(containingClass)).put(featureName, new Boolean(isRequired));
+ }
+ else {
+ Hashtable featureNames = new Hashtable();
+ featureNames.put(featureName, new Boolean(isRequired));
+ features.put(containingClass, featureNames);
+ }
+ }
+ }
+ }
+ return features;
+ }
+
+ /**
+ * This API is added for use by ReferenceItemCloneCommand.
+ * This method will clone u in d2 with the exceptions as specified by the
+ * two exclusion collections as follows:
+ * The containmentExclusion is to exclude those contained within d2.
+ * The externalExclusion is to exclude those externally referenced objects from the containment hierarchy of d2.
+ *
+ * @param d2
+ * @param u
+ * @param map
+ * @param containmentExclusion
+ * @param externalExclusion
+ * @param cloneCrossModelReference
+ * @return
+ */
+ public static EObject[] cloneWithElementMap(final EObject d2, final EObject u,
+ final Map map, final Collection containmentExclusion, final Collection externalExclusion,
+ final boolean cloneCrossModelReference) {
+ final List result = new ArrayList(1);
+//<bgp DB2PluginActivator.getInstance().getCommandManager().runCommand(new Runnable()
+// {
+// public void run()
+// {
+// result.add(cloneWithElementMap2(new EObject[] {d2}, new EObject[] {u}, map, containmentExclusion , externalExclusion, false, true, cloneCrossModelReference));
+// }
+//bgp> });
+ return (EObject[]) result.toArray(new Object[1])[0];
+ }
+
+
+ /**
+ * This is a special version of the clone method that does not use a command.
+ * This is used by Compare and Sync when creating a snapshot of catalog objects.
+ * @param targetContainer
+ * @param obj
+ * @return
+ */
+ public static EObject[] clone2Target(EObject targetContainer,
+ EObject obj) {
+ final List result = new ArrayList(1);
+ boolean isCut = false;
+ boolean cloneExternalReferenced = true;
+ result.add(cloneWithElementMap2(
+ new EObject[] { targetContainer }, new EObject[] { obj },
+ new HashMap(), new LinkedList(), new LinkedList(), isCut,
+ cloneExternalReferenced, true));
+ return (EObject[]) result.toArray(new Object[1])[0];
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CommonOptions.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CommonOptions.java
new file mode 100644
index 0000000..eb0e0fc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CommonOptions.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.Vector;
+
+public class CommonOptions
+{
+ protected Vector vConfigMessage = null;
+ protected Vector vConfigVariable = null;
+
+ /**
+ * Create a structure to hold the <common_options> element in the xml config file.
+ *
+ * @param aConfigMessages A vector of ConfigMessage objects.
+ * @param aConfigVariables A vector of ConfigVariable objects.
+ */
+ public CommonOptions(Vector aConfigMessages, Vector aConfigVariables) {
+ vConfigMessage = aConfigMessages;
+ vConfigVariable= aConfigVariables;
+ }
+
+ /**
+ * Get the configMessages objects.
+ *
+ * @return Vector A vector of ConfigMessage objects.
+ */
+ public Vector getConfigMessages() {
+ return vConfigMessage;
+ }
+
+ /**
+ * Get the configVariables objects.
+ *
+ * @return Vector A vector of ConfigVariable objects.
+ */
+ public Vector getConfigVariables() {
+ return vConfigVariable;
+ }
+
+ /**
+ * Set the configVariables objects.
+ *
+ * @param aConfigVariables A vector of ConfigVariable objects.
+ */
+ public void setConfigVariables(Vector aConfigVariables) {
+ vConfigVariable= aConfigVariables;
+ }
+
+ /**
+ * Set the configMessages objects.
+ *
+ * @param aConfigMessages A vector of ConfigMessage objects.
+ */
+ public void setConfigMessages(Vector aConfigMessages) {
+ vConfigMessage = aConfigMessages;
+ }
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CompoundStatementsMap.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CompoundStatementsMap.java
new file mode 100644
index 0000000..9d06917
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/CompoundStatementsMap.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.Iterator;
+import java.util.TreeMap;
+import java.util.Vector;
+
+/**
+ * This class should be used when a requested action will result in multiple
+ * DDL statements which must retain their relative ordering. This class extends
+ * The TreeMap class, and requires a Key of type String, and a Value of type
+ * Vector<String>. The key will be used to sort the Vectors of compound DDL
+ * statements relative to each other. The statements within each Vector will
+ * not be sorted, but will retain the order in which they were added to the
+ * Vector.
+ * If the Value is null, the retrieval behavior of the getAll() method will
+ * assume the Value is equivalent to a Vector with a single String element
+ * equal to its Key.
+ *
+ * @author DonClare
+ *
+ */
+public class CompoundStatementsMap extends TreeMap<String,Vector<String>>
+ implements IPreorderedStatementList {
+
+ public Vector<String> getAll() {
+ Vector<String> all = new Vector<String>();
+ Iterator<String> it = keySet().iterator();
+ while (it.hasNext()) {
+ String key = it.next();
+ if (get(key) == null) all.add(key);
+ else all.addAll(get(key));
+ }
+// Iterator<Vector<String>> it = values().iterator();
+// while (it.hasNext()) {
+// all.addAll((Vector<String>)it.next());
+// }
+ return all;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConfigMessage.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConfigMessage.java
new file mode 100644
index 0000000..70ec34f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConfigMessage.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+public class ConfigMessage
+{
+ protected String msgText = null;
+ protected String platform = null;
+
+ /**
+ * Create a structure to hold the <message> element in the xml config file.
+ *
+ * @param aMsgText The msg.
+ * @param aPlatform The platform attribute.
+ */
+ public ConfigMessage(String aMsgText, String aPlatform) {
+ msgText = aMsgText;
+ platform = aPlatform;
+ }
+
+ /**
+ * Get the msg text.
+ *
+ * @return String The msg text.
+ */
+ public String getMsgText() {
+ return msgText;
+ }
+
+ /**
+ * Get the platform text.
+ *
+ * @return String The platform attribute.
+ */
+ public String getPlatform() {
+ return platform;
+ }
+
+ /**
+ * Set the msg text.
+ *
+ * @param String The msg attribute.
+ */
+ public void setMsgText(String aMsgText) {
+ msgText = aMsgText;
+ }
+
+ /**
+ * Set the platform text.
+ *
+ * @param String The platform attribute.
+ */
+ public void setPlatform(String aPlatform) {
+ platform = aPlatform;
+ }
+}
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConnectionProfileApp.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConnectionProfileApp.java
new file mode 100644
index 0000000..30e79d2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConnectionProfileApp.java
@@ -0,0 +1,292 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.jobs.IJobChangeListener;
+import org.eclipse.datatools.connectivity.ICategory;
+import org.eclipse.datatools.connectivity.IConfigurationType;
+import org.eclipse.datatools.connectivity.IConnectListener;
+import org.eclipse.datatools.connectivity.IConnection;
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.IConnectionProfileProvider;
+import org.eclipse.datatools.connectivity.IManagedConnection;
+import org.eclipse.datatools.connectivity.IPropertySetListener;
+import org.eclipse.datatools.connectivity.internal.ConnectionProfileProvider;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+
+/**
+ * Impements IConnectionProfile because ConnectionProfile cannot be subclassed
+ * to avoid depending on the plug-in registry. This class must work
+ * outside of the Eclipse plug-in environment, such as for DeployTask.
+ * <p>
+ * The following classes do not work in a Java application,
+ * but require the Eclipse plug-in environment:
+ * <ul>
+ * <li>org.eclipse.datatools.connectivity.drivers.DriverManager
+ * <li>DatabaseDefinitionRegistry
+ * </ul>
+ *
+ * @author Thomas Sharp, sharpt@us.ibm.com
+ */
+public class ConnectionProfileApp implements IConnectionProfile
+{
+ protected ConnectionInfo ciApp;
+ protected String loadingPath;
+ protected Properties baseProperties;
+ /** The connected state. */
+ protected int state = IConnectionProfile.DISCONNECTED_STATE;
+
+ private ConnectionProfileApp() {}
+
+ public ConnectionProfileApp(ConnectionInfo conInfo)
+ {
+ ciApp = conInfo;
+ }
+
+ public ConnectionInfo getConnectionInfo()
+ {
+ return ciApp;
+ }
+
+ public String getLoadingPath() {
+ return loadingPath;
+ }
+
+ public void setLoadingPath(String path) {
+ loadingPath = path;
+ }
+
+ public void addConnectListener(IConnectListener listener)
+ {
+ // Do nothing
+ }
+
+ public void addPropertySetListener(IPropertySetListener listener)
+ {
+ // Do nothing
+ }
+
+ public boolean arePropertiesComplete()
+ {
+ return false;
+ }
+
+ public boolean arePropertiesComplete(String type)
+ {
+ return false;
+ }
+
+ public boolean canWorkOffline()
+ {
+ return false;
+ }
+
+ public IStatus connect()
+ {
+ return null;
+ }
+
+ public void connect(IJobChangeListener listener)
+ {
+ // do nothing
+ }
+
+ public IStatus connectWithoutJob()
+ {
+ return null;
+ }
+
+ public IConnection createConnection(String factoryId, String uid, String pwd)
+ {
+ ConnectionProfileProvider cp = new ConnectionProfileProvider("silent.provider");
+ return cp.getConnectionFactory("java.sql.Connection").createConnection(this, uid, pwd);
+
+ }
+
+ public IConnection createConnection(String factory)
+ {
+ ConnectionProfileProvider cp = new ConnectionProfileProvider("silent.provider");
+ return cp.getConnectionFactory(factory).createConnection(this);
+ }
+
+ public IStatus disconnect()
+ {
+ return null;
+ }
+
+ public void disconnect(IJobChangeListener listener)
+ {
+ // do nothing
+ }
+
+ public Properties getBaseProperties()
+ {
+ return baseProperties;
+ }
+
+ public ICategory getCategory()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public IConfigurationType getConfigurationType()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * @return @return the connection state of this profile. One of:
+ * IConnectionProfile.CONNECTED_STATE
+ * or IConnectionProfile.DISCONNECTED_STATE.
+ * This does not currently support IConnectionProfile.WORKING_OFFLINE_STATE.
+ * By default, this returns the disconnected state.
+ */
+ public int getConnectionState()
+ {
+ return state;
+ }
+
+ /**
+ * Sets the connection state.
+ */
+ public void setConnectionState(int state)
+ {
+ this.state = state;
+ }
+
+ public String getDescription()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getInstanceID()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public IManagedConnection getManagedConnection(String type)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getName()
+ {
+ return ciApp.getName();
+ }
+
+ public IConnectionProfile getParentProfile()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Map getProfileExtensions()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Properties getProperties(String type)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public IConnectionProfileProvider getProvider()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getProviderId()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getProviderName()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean isAutoConnect()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean isConnected()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void removeConnectListener(IConnectListener listener)
+ {
+ // do nothing
+ }
+
+ public void removePropertySetListener(IPropertySetListener listener)
+ {
+ // do nothing
+ }
+
+ public IStatus saveWorkOfflineData()
+ {
+ return null;
+ }
+
+ public void saveWorkOfflineData(IJobChangeListener listener)
+ {
+ // do nothing
+ }
+
+ public void setBaseProperties(Properties props)
+ {
+ baseProperties = props;
+ }
+
+ public void setConnected(boolean connected)
+ {
+ // do nothing
+ }
+
+ public void setProperties(String type, Properties props)
+ {
+ // do nothing
+ }
+
+ public boolean supportsWorkOfflineMode()
+ {
+ return false;
+ }
+
+ public IStatus workOffline()
+ {
+ return null;
+ }
+
+ public void workOffline(IJobChangeListener listener)
+ {
+ // do nothing
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConnectionProfileUtility.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConnectionProfileUtility.java
new file mode 100644
index 0000000..d18b072
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ConnectionProfileUtility.java
@@ -0,0 +1,1022 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.sql.Connection;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.datatools.connectivity.ConnectionProfileConstants;
+import org.eclipse.datatools.connectivity.IConnection;
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.IConnectionProfileProvider;
+import org.eclipse.datatools.connectivity.IManagedConnection;
+import org.eclipse.datatools.connectivity.drivers.DriverInstance;
+import org.eclipse.datatools.connectivity.drivers.DriverManager;
+import org.eclipse.datatools.connectivity.drivers.IDriverMgmtConstants;
+import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCConnectionProfileConstants;
+import org.eclipse.datatools.connectivity.drivers.jdbc.IJDBCDriverDefinitionConstants;
+import org.eclipse.datatools.connectivity.internal.ManagedConnection;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinitionRegistry;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.internal.core.util.ConnectionUtil;
+import org.eclipse.datatools.connectivity.sqm.internal.core.util.DatabaseProviderHelper;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+/**
+ * Utility methods for extracting information associated with a connection profile.
+ *
+ * @author Thomas Sharp, sharpt@us.ibm.com
+ *
+ * <p>Other profile properties:
+ * <ul>
+ * <li>IZSeriesDriverDefinitionConstants.FILTER_ON_TBCREATOR_PROPERTY_ID
+ * <li>String nameValuePairs = props.getProperty(IDBConnectionProfileConstants.CONNECTION_PROPERTIES_PROP_ID);
+ * </ul>
+ */
+public class ConnectionProfileUtility
+{
+ public static final String TRUE_VALUE = "true"; //$NON-NLS-1$
+ public static final String FALSE_VALUE = "false"; //$NON-NLS-1$
+
+ public static final String GENERIC_JDBC = "Generic JDBC"; //$NON-NLS-1$
+ public static final String GENERIC_JDBC_VERSION = "1.0"; //$NON-NLS-1$
+ public static final String ALIAS_PROPERTY = "com.ibm.datatools.db2.ui.alias.aliasName"; //$NON-NLS-1$
+ public static final String VERSON_INFO = "org.eclipse.datatools.connectivity.versionInfo"; //$NON-NLS-1$
+
+ // From public interface IOracleDriverDefinitionConstants {
+ public static final String CATALOG_TYPE_PROPERTY_ID = "org.eclipse.datatools.enablement.oracle.catalogType"; //$NON-NLS-1$
+ public static final String CATALOG_TYPE_VALUE_ALL = "ALL"; //$NON-NLS-1$
+ public static final String CATALOG_TYPE_VALUE_DBA = "DBA"; //$NON-NLS-1$
+ public static final String CATALOG_TYPE_VALUE_USER = "USER"; //$NON-NLS-1$
+ //}
+
+ private static final char[] OS_INVALID_CHARACTERS = {'\\', '/', ':', '*', '?', '"', '<', '>', '|'};
+ private static Map<Character, String> mappedSubstitutionCharacters;
+
+ private static Map<Character, String> getSubstitutionMap()
+ {
+ if (mappedSubstitutionCharacters == null) {
+ mappedSubstitutionCharacters = new HashMap<Character, String>();
+ for (int i = 0; i < OS_INVALID_CHARACTERS.length; i++) {
+ mappedSubstitutionCharacters.put(OS_INVALID_CHARACTERS[i], "_" + i); //$NON-NLS-1$
+ }
+ }
+ return mappedSubstitutionCharacters;
+ }
+
+ public static String getSafeProfileFileName(String profileName)
+ {
+ profileName = escapeProfileName(profileName);
+
+ StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < profileName.length(); i++) {
+ char current = profileName.charAt(i);
+ String substitution = getSubstitutionMap().get(current);
+ if (substitution != null) {
+ builder.append(substitution);
+ } else {
+ builder.append(current);
+ }
+ }
+ return builder.toString();
+ }
+
+ private static String escapeProfileName(String profileName)
+ {
+ Collection<String> reservedCharacters = getSubstitutionMap().values();
+ for (String reserved : reservedCharacters) {
+ profileName = escapeCharacter(reserved, profileName);
+ }
+
+ return profileName;
+ }
+
+ private static String escapeCharacter(String reservedCharacter, String profileName)
+ {
+ StringBuilder builder = new StringBuilder();
+ String[] pieces = profileName.split(reservedCharacter);
+
+ int count = 0;
+ for (String piece : pieces) {
+ builder.append(piece);
+ if (count != pieces.length - 1) {
+ builder.append("_" + reservedCharacter); //$NON-NLS-1$
+ }
+ count++;
+ }
+
+ if (profileName.endsWith(reservedCharacter)) {
+ builder.append("_" + reservedCharacter); //$NON-NLS-1$
+ }
+
+ return builder.toString();
+ }
+
+ /**
+ * Determines if a database is connected.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return True if the database is connected.
+ */
+ public static boolean isConnected(IConnectionProfile profile)
+ {
+ if (profile == null)
+ return false;
+ else
+ return (profile.getConnectionState() == IConnectionProfile.CONNECTED_STATE);
+ }
+
+ /**
+ * Determines if a database is cached to let you work offline.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return True if the database is in "working offline" state.
+ */
+ public static boolean isWorkingOffline(IConnectionProfile profile)
+ {
+ if (profile == null)
+ return false;
+ else
+ return (profile.getConnectionState() == IConnectionProfile.WORKING_OFFLINE_STATE);
+ }
+
+ /**
+ * Given a profile, returns the ConnectionInfo, if available.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ */
+ public static ConnectionInfo getConnectionInfo(IConnectionProfile profile)
+ {
+ return getConnectionInfo(profile, true);
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, returns the corresponding <code>ConnectionInfo</code>,
+ * if available. This is not available unless the database is either connected or working offline.
+ * To allow a connection, specify true for <code>okToConnect</code>.
+ *
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @param okToConnect True if it is OK to connect to obtain the ConnectionInfo.
+ * @return The <code>ConnectionInfo</code> corresponding to the given profile.
+ */
+ public static ConnectionInfo getConnectionInfo(IConnectionProfile profile, boolean okToConnect)
+ {
+ if (profile != null)
+ {
+ if (profile instanceof ConnectionProfileApp)
+ return ((ConnectionProfileApp)profile).getConnectionInfo();
+
+ boolean haveCon = false;
+ if (okToConnect && !isConnected(profile))
+ {
+ if (arePropertiesComplete(profile))
+ {
+ IStatus status = profile.connectWithoutJob();
+ haveCon = status.isOK();
+ }
+ }
+ else if (isConnected(profile) ||
+ ConnectionProfileUtility.isWorkingOffline(profile))
+ {
+ haveCon = true;
+ }
+ // If we were able to connect (or were already connected),
+ // then get the connection info object.
+ if (haveCon)
+ {
+ Map factories = null;
+ if (profile.getProvider() != null)
+ factories = profile.getProvider().getConnectionFactories();
+ if (factories != null && factories.containsKey(Connection.class.getName()))
+ {
+ IManagedConnection managedConnection = profile.getManagedConnection(ConnectionUtil.CONNECTION_TYPE);
+ if (managedConnection == null)
+ {
+ String conName = profile.getName();
+ managedConnection = new ManagedConnection(profile, conName);
+ }
+ if (managedConnection != null)
+ {
+ IConnection iconn = managedConnection.getConnection();
+ // If no IConnection, then no ConnectionInfo.
+ if (iconn != null)
+ {
+ Object rawCon = iconn.getRawConnection();
+ if (rawCon instanceof ConnectionInfo) {
+ // Thomas: Removed DatabaseProviderHelper().setDatabase
+ // because the DatabaseProviderHelper creates a new Database
+ // instance, which invalidates anyone's existing Database object.
+ return (ConnectionInfo)rawCon;
+ }
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the vendor and version.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The product and version strings.
+ */
+ public static String[] getVendorVersion(IConnectionProfile profile)
+ {
+ String[] vendorVersion = new String[2];
+ // Properties versionInfo = getVersionInfo(profile);
+ // if (versionInfo != null && versionInfo.size() > 0)
+ // {
+ // String serverName = versionInfo.getProperty("server.name"); //$NON-NLS-1$
+ // // Produces the display name, for example, "DB2 for z/OS V9 (New-Function Mode)"
+ // // parse the server name?
+ // }
+ try
+ {
+ Properties properties = profile.getBaseProperties();
+ vendorVersion[0] = (String)properties.getProperty(IJDBCDriverDefinitionConstants.DATABASE_VENDOR_PROP_ID);
+ vendorVersion[1] = (String)properties.getProperty(IJDBCDriverDefinitionConstants.DATABASE_VERSION_PROP_ID);
+ if (vendorVersion[0] == null)
+ {
+ properties = profile.getProperties(ConnectionProfileConstants.VERSION_INFO_PROFILE_EXTENSION_ID);
+ if (properties != null)
+ vendorVersion[0] = properties.getProperty(ConnectionProfileConstants.PROP_SERVER_VERSION);
+ }
+ if (vendorVersion[1] == null)
+ {
+ properties = profile.getProperties(ConnectionProfileConstants.VERSION_INFO_PROFILE_EXTENSION_ID);
+ if (properties != null)
+ vendorVersion[1] = properties.getProperty(ConnectionProfileConstants.PROP_SERVER_NAME);
+ }
+ if (vendorVersion[0] == null)
+ vendorVersion[0] = "DB2 UDB"; //$NON-NLS-1$
+ if (vendorVersion[1] == null)
+ vendorVersion[1] = "V9.5"; //$NON-NLS-1$
+ }
+ catch (Exception e)
+ {
+ vendorVersion[0] = GENERIC_JDBC;
+ vendorVersion[1] = GENERIC_JDBC_VERSION;
+ }
+ return vendorVersion;
+ }
+
+ /**
+ * These are set after connecting.
+ * @since Version 2.1.0 of this plug-in.
+ */
+ public static Properties getVersionInfo(IConnectionProfile profile)
+ {
+ if (profile != null)
+ return profile.getProperties(VERSON_INFO);
+ else
+ return null;
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine whether we need to prompt
+ * for profile properties.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return True if we need to prompt.
+ */
+ public static boolean arePropertiesComplete(IConnectionProfile profile)
+ {
+ boolean isComplete = false;
+ String providerID = ConnectionProfileUtility.getProviderID(profile);
+ if (providerID != null)
+ isComplete = profile.arePropertiesComplete(providerID);
+ else
+ isComplete = profile.arePropertiesComplete();
+ if (!isComplete)
+ {
+ DatabaseDefinition dbDef = ConnectionProfileUtility.getDatabaseDefinition(profile);
+ if (DBVersion.isDBCloudscape(dbDef))
+ {
+ // To check if only the user ID and password are missing
+ // we get them, check if they are missing, fill them in with dummy values,
+ // then test arePropertiesComplete again.
+ boolean nouid = false, nopwd = false;
+ String[] up = getUidPwd(profile);
+ if (up[0] == null || up[0].length() == 0)
+ {
+ nouid = true;
+ setUID(profile, "dummy"); //$NON-NLS-1$
+ }
+ if (up[1] == null || up[1].length() == 0)
+ {
+ nopwd = true;
+ setPassword(profile, "dummy"); //$NON-NLS-1$
+ }
+ if (providerID != null)
+ isComplete = profile.arePropertiesComplete(providerID);
+ else
+ isComplete = profile.arePropertiesComplete();
+ if (nouid)
+ setUID(profile, ""); //$NON-NLS-1$
+ if (nopwd)
+ setPassword(profile, ""); //$NON-NLS-1$
+ }
+ }
+ return isComplete;
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine whether the profile
+ * is configured for using client authentication.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return True if we are using client authentication.
+ */
+ public static boolean useClientAuthentication(IConnectionProfile profile)
+ {
+ String url = getURL(profile);
+ return (url.indexOf("securityMechanism=4") > -1); //$NON-NLS-1$
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the user ID and password.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The user ID and password strings
+ */
+ public static String[] getUidPwd(IConnectionProfile profile)
+ {
+ String[] uidPwd = new String[2];
+ try
+ {
+ Properties properties = profile.getBaseProperties();
+ uidPwd[0] = (String)properties.getProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID);
+ uidPwd[1] = (String)properties.getProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID);
+ if (uidPwd[0] == null || uidPwd[0].length() == 0 || uidPwd[1] == null || uidPwd[1].length() == 0)
+ {
+ DriverInstance driverInstance = getDriverInstance(profile);
+ if (driverInstance != null)
+ {
+ if(uidPwd[0] == null || uidPwd[0].length() == 0)
+ uidPwd[0] = driverInstance.getProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID);
+ if(uidPwd[1] == null || uidPwd[1].length() == 0)
+ uidPwd[1] = driverInstance.getProperty(IJDBCDriverDefinitionConstants.PASSWORD_PROP_ID);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ uidPwd[0] = System.getProperty("user.name"); //$NON-NLS-1$
+ uidPwd[1] = null;
+ }
+ return uidPwd;
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the user ID.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The user ID.
+ */
+ public static String getUID(IConnectionProfile profile)
+ {
+ String uid = null;
+ try
+ {
+ Properties properties = profile.getBaseProperties();
+ uid = (String)properties.getProperty(ConnectionProfileConstants.PROP_UID);
+ if (uid == null || uid.length() == 0)
+ uid = (String)properties.getProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID);
+ if (uid == null || uid.length() == 0)
+ {
+ DriverInstance driverInstance = ConnectionProfileUtility.getDriverInstance(profile);
+ if (driverInstance != null)
+ {
+ uid = driverInstance.getProperty(IJDBCDriverDefinitionConstants.USERNAME_PROP_ID);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ uid = System.getProperty("user.name"); //$NON-NLS-1$
+ }
+ return uid;
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, set the user ID.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @param uid The user ID.
+ */
+ public static void setUID(IConnectionProfile profile, String uid)
+ {
+ Properties properties = profile.getBaseProperties();
+ properties.setProperty(ConnectionProfileConstants.PROP_UID, uid);
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, set the password.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @param pwd The password.
+ */
+ public static void setPassword(IConnectionProfile profile, String pwd)
+ {
+ Properties properties = profile.getBaseProperties();
+ properties.setProperty(ConnectionProfileConstants.PROP_PWD, pwd);
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the connection URL.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The connection URL.
+ */
+ public static String getURL(IConnectionProfile profile)
+ {
+ String url = null;
+ try
+ {
+ Properties properties = profile.getBaseProperties();
+ url = (String)properties.getProperty(IJDBCDriverDefinitionConstants.URL_PROP_ID);
+ }
+ catch (Exception e)
+ {
+ url = ""; //$NON-NLS-1$
+ }
+ return url;
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the driver definition ID.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The driver definition ID.
+ */
+ public static String getDriverDefinitionID(IConnectionProfile profile)
+ {
+ Properties properties = profile.getBaseProperties();
+ return (String)properties.getProperty(ConnectionProfileConstants.PROP_DRIVER_DEFINITION_ID);
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the driver class name.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The driver class name.
+ */
+ public static String getDriverClass(IConnectionProfile profile)
+ {
+ Properties properties = profile.getBaseProperties();
+ return (String)properties.getProperty(IJDBCDriverDefinitionConstants.DRIVER_CLASS_PROP_ID);
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the connection profile provider ID.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The connection profile provider ID.
+ */
+ public static String getProviderID(IConnectionProfile profile)
+ {
+ String id = null;
+ IConnectionProfileProvider provider = profile.getProvider();
+ if (provider != null)
+ id = provider.getId();
+ return id;
+ }
+
+ /**
+ * Gets the driver template.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The driver definition type.
+ */
+ public static String getDriverDefinitionType(IConnectionProfile profile)
+ {
+ return profile.getBaseProperties().getProperty(IDriverMgmtConstants.PROP_DEFN_TYPE);
+ }
+
+ /**
+ * Gets the option to save the password.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return true if the password is to be saved in the connection profile.
+ */
+ public static String getSavePassword(IConnectionProfile profile)
+ {
+ String save = profile.getBaseProperties().getProperty(IJDBCConnectionProfileConstants.SAVE_PASSWORD_PROP_ID);
+ if (save == null)
+ return FALSE_VALUE;
+ else
+ return save;
+ }
+
+ /**
+ * Gets the option to save the password.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return True if the option is checked; false otherwise.
+ */
+ public static boolean isPasswordSaved(IConnectionProfile profile)
+ {
+ String opt = getSavePassword(profile);
+ return opt.equals(TRUE_VALUE);
+ }
+ /**
+ * Gets the other properties for a connection profile.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The properties (I think as a comma-separated list).
+ */
+ public static String getConnectionProperties(IConnectionProfile profile)
+ {
+ return profile.getBaseProperties().getProperty(IJDBCConnectionProfileConstants.CONNECTION_PROPERTIES_PROP_ID);
+ }
+
+ /**
+ * Gets the catalog type for an Oracle connection.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The catalog type: USER, DBA, or ALL (see constants in this class or in IOracleDriverDefinitionConstants).
+ */
+ public static String getOracleConnectionType(IConnectionProfile profile)
+ {
+ return profile.getBaseProperties().getProperty(CATALOG_TYPE_PROPERTY_ID);
+ }
+
+ /**
+ * Gets the default schema for the connection.
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The default schema in catalog format, or null.
+ */
+ public static String getDefaultSchema(IConnectionProfile profile)
+ {
+ return profile.getBaseProperties().getProperty(IJDBCConnectionProfileConstants.DEFAULT_SCHEMA_PROP_ID);
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the path for loading the driver.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The loading path.
+ */
+ public static String getDriverPath(IConnectionProfile profile)
+ {
+ String driverPath = null;
+ if (profile instanceof ConnectionProfileApp)
+ {
+ driverPath = ((ConnectionProfileApp)profile).getLoadingPath();
+ }
+ if (driverPath == null)
+ {
+ DriverInstance driverInstance = ConnectionProfileUtility.getDriverInstance(profile);
+ if (driverInstance != null)
+ {
+ driverPath = driverInstance.getJarList();
+ }
+ }
+ if (driverPath == null)
+ {
+ driverPath = profile.getBaseProperties().getProperty(IDriverMgmtConstants.PROP_DEFN_JARLIST);
+ }
+ return driverPath;
+ }
+
+ /**
+ * Get the driver instance, which has properties of its own, given an <code>IConnectionProfile</code>.
+ * <p>
+ * @param profile An <code>IConnectionProfile</code> that describes the database.
+ * @return The driver instance
+ */
+ public static DriverInstance getDriverInstance(IConnectionProfile profile)
+ {
+ DriverInstance driverInstance = null;
+ if (!(profile instanceof ConnectionProfileApp))
+ {
+ String driverID = (String)profile.getBaseProperties().getProperty(ConnectionProfileConstants.PROP_DRIVER_DEFINITION_ID);
+ if (driverID != null)
+ {
+ try { // Required for running outside of Eclipse
+ driverInstance = DriverManager.getInstance().getDriverInstanceByID(driverID);
+ } catch (Throwable e) {
+ // Do nothing
+ }
+ }
+ }
+ return driverInstance;
+ }
+
+ /**
+ * Given an <code>ConnectionInfo</code>, determine the <code>DatabaseDefinition</code>.
+ * <p>
+ * @param conInfo The <code>ConnectionInfo</code> that the project is associated with.
+ * @return The <code>DatabaseDefinition</code> for the product and version.
+ */
+ public static DatabaseDefinition getDatabaseDefinition(ConnectionInfo info)
+ {
+ return info.getDatabaseDefinition();
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the <code>DatabaseDefinition</code>.
+ * <p>
+ * @param profile The profile that the project is associated with.
+ * @return The DatabaseDefinition for the product and version.
+ */
+ public static DatabaseDefinition getDatabaseDefinition(IConnectionProfile profile)
+ {
+ if (profile instanceof ConnectionProfileApp)
+ {
+ ConnectionInfo conInfo = ((ConnectionProfileApp)profile).getConnectionInfo();
+ return conInfo.getDatabaseDefinition();
+ }
+ else
+ {
+ String[] vendorVersion = getVendorVersion(profile);
+ RDBCorePlugin rdbc = RDBCorePlugin.getDefault();
+ DatabaseDefinitionRegistry defRegistry = null;
+ if (rdbc != null)
+ defRegistry = RDBCorePlugin.getDefault().getDatabaseDefinitionRegistry();
+ DatabaseDefinition dbDef = null;
+ if (defRegistry != null)
+ dbDef = defRegistry.getDefinition(vendorVersion[0], vendorVersion[1]);
+ if (dbDef == null && defRegistry != null)
+ {
+ dbDef = defRegistry.getDefinition(GENERIC_JDBC, GENERIC_JDBC_VERSION);
+ if( dbDef == null ){
+ //in the RCP case, the defect GERNRIC_JDBC doesn't be configed, then it will leads NPE
+ vendorVersion[0] = "DB2 UDB"; //$NON-NLS-1$
+ vendorVersion[1] = "V9.5"; //$NON-NLS-1$
+ dbDef = defRegistry.getDefinition(vendorVersion[0], vendorVersion[1]);
+ }
+ }
+ return dbDef;
+ }
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the delimiter.
+ * <p>
+ * @param profile The profile that the project is associated with.
+ * @return The DatabaseDefinition for the product and version.
+ */
+ public static char getDelimiter(IConnectionProfile profile)
+ {
+ DatabaseDefinition dbDef = ConnectionProfileUtility.getDatabaseDefinition(profile);
+ return SQLIdentifier.getDelimiter(dbDef);
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the Database.
+ * <p>
+ * @param profile The profile that the project is associated with.
+ * @return The name of the Database for the product and version.
+ */
+ public static String getDatabaseName(IConnectionProfile profile)
+ {
+ String databaseName = null;
+ try
+ {
+ Properties properties = profile.getBaseProperties();
+ databaseName = (String)properties.getProperty(IJDBCDriverDefinitionConstants.DATABASE_NAME_PROP_ID);
+ }
+ catch (Exception e)
+ {
+ databaseName = null;
+ }
+ if (databaseName == null || databaseName.trim().length() == 0)
+ {
+ if (profile != null)
+ databaseName = profile.getName();
+ }
+ return databaseName;
+ }
+
+ /**
+ * Given an <code>IConnectionProfile</code>, determine the alias, if any.
+ * A profile has been given an alias if it corresponds to a DB2 database alias
+ * in local DB2 client. (These can be created by DB2AiasManager.)
+ * <p>
+ * @param profile The profile that the project is associated with.
+ * @return The DB2 database alias. If none is set, then returns null.
+ * @since Version 2.1.0 of this plug-in.
+ */
+ public static String getAlias(IConnectionProfile profile)
+ {
+ String alias = null;
+ try
+ {
+ Properties properties = profile.getBaseProperties();
+ alias = (String)properties.getProperty(ALIAS_PROPERTY);
+ }
+ catch (Exception e)
+ {
+ alias = null;
+ }
+ return alias;
+ }
+
+ /**
+ * Given an <code>ConnectionProfile</code>, determine the <code>Database</code>.
+ * <p>
+ * @param profile The profile that the project is associated with.
+ * @return The <code>Database</code> for the product and version.
+ */
+ public static Database getDatabase(IConnectionProfile profile)
+ {
+ Database db = null;
+ // String databaseName = getDatabaseName(profile);
+ //return getDatabasebByName(profile, databaseName, getDatabaseDefinition(profile));
+ ConnectionInfo conInfo = ConnectionProfileUtility.getConnectionInfo(profile);
+ if (conInfo != null)
+ {
+ db = conInfo.getSharedDatabase();
+ if (db == null)
+ db = conInfo.getCachedDatabase();
+ }
+ return db;
+ }
+
+ /**
+ * Given an <code>ConnectionProfile</code>, return the default value for
+ * the CURRENT PATH register.
+ * @param profile The profile that the project is associated with.
+ * @return The default <code>CURRENT PATH</code> for the product and version.
+ */
+ public static String getDefaultPath(IConnectionProfile profile){
+ StringBuffer defaultPath = new StringBuffer();
+ DBVersion version = DBVersion.getSharedInstance(profile);
+ String userId = ConnectionProfileUtility.getUID(profile);
+ if (userId == null || userId.length() == 0)
+ userId = System.getProperty("user.name"); //$NON-NLS-1$
+ DatabaseDefinition dbdef = getDatabaseDefinition(profile);
+ userId = SQLIdentifier.toCatalogFormat(userId, dbdef);
+ //TODO check for database version numbers too
+ if (version.isUNO()){
+ defaultPath.append("SYSIBM,SYSFUN,SYSPROC,SYSIBMADM"); //$NON-NLS-1$
+ }
+ else if (version.isDB390()){
+ defaultPath.append("SYSIBM,SYSFUN,SYSPROC"); //$NON-NLS-1$
+ }
+ else if (version.isDB400()){
+ defaultPath.append("QSYS,QSYS2,SYSPROC,SYSIBMADM"); //$NON-NLS-1$
+ }
+ if (defaultPath.length() > 0)
+ defaultPath.append(',');
+ defaultPath.append(userId);
+ return defaultPath.toString();
+ }
+
+ /**
+ * Given an <code>ConnectionProfile</code>, return the keywords that can
+ * be used to set the value of the CURRENT PATH register.
+ * @param profile The profile that the project is associated with.
+ * @return An array with all the keywords.
+ */
+ public static String[] getPathKeywordSuggestions(IConnectionProfile profile){
+ String[] keywords = null;
+ DBVersion version = DBVersion.getSharedInstance(profile);
+ //TODO check for database version numbers too
+ if (version.isUNO()) {
+ keywords = new String[]{"\"SYSTEM PATH\"","USER","CURRENT_PATH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ "\"CURRENT PATH\"","\"CURRENT PACKAGE PATH\""}; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else if (version.isDB390()) {
+ keywords = new String[]{"\"SYSTEM PATH\"","SESSION_USER","USER","PATH", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "\"CURRENT PATH\"","\"CURRENT PACKAGE PATH\""}; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ else if (version.isDB400()) {
+ keywords = new String[]{"\"SYSTEM PATH\"","SESSION_USER","USER","SYSTEM_USER", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ "PATH","\"CURRENT PATH\"","\"CURRENT FUNCTION PATH\"", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ "CURRENT_PATH"}; //$NON-NLS-1$
+ }
+ return keywords;
+ }
+
+ /**
+ * Connect if needed and test the connection by obtaining the value of the
+ * CURRENT TIMESTAMP special register.
+ * @param coninfo The ConnectionInfo.
+ * @param msg A buffer for an error message, used when we return false;
+ * @return True if we can connect and use the connection.
+ */
+ public static boolean testConnection(ConnectionInfo coninfo, StringBuffer msg)
+ {
+ boolean ok = true;
+ if (coninfo != null)
+ {
+ Connection testConn = coninfo.getSharedConnection();
+ if (testConn == null)
+ {
+ try
+ {
+ IConnectionProfile profile = coninfo.getConnectionProfile();
+ IStatus status = profile.connectWithoutJob();
+ if (!status.isOK())
+ {
+ //msg.append(failed.to.connect);
+ ok = false;
+ }
+ else
+ {
+ testConn = coninfo.getSharedConnection();
+ if (testConn != null)
+ {
+ String dbname = ConnectionProfileUtility.getDatabaseName(profile);
+ new DatabaseProviderHelper().setDatabase(testConn, coninfo, dbname);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ msg.append(e.getMessage());
+ ok = false;
+ }
+ }
+ // if (testConn == null && Utility.isIDS(coninfo) )
+ // return true;
+ }
+ return ok;
+ }
+
+ /**
+ * Determines if we are connected or working offline.
+ * @param coninfo The ConnectionInfo.
+ * @return True if we are connected.
+ */
+ public static boolean isInConnectedState(ConnectionInfo conInfo)
+ {
+ IConnectionProfile profile = conInfo.getConnectionProfile();
+ return ConnectionProfileUtility.isConnected(profile)
+ || ConnectionProfileUtility.isWorkingOffline(profile);
+ }
+
+
+ // /**
+ // * Determines if we are able to connect, prompts the user if needed,
+ // * reconstructs connection information in the Server Explorer if needed,
+ // * and reconnects, if possible. If not possible, and isLiveConnectionRequired
+ // * is false, determines if we can switch to working offline.
+ // * <p>You may call this method from Server Explorer.
+ // * <p>
+ // * @param profile The ConnectionProfile.
+ // * @param isSQLJ True if the checking is for a SQLJ.
+ // * @param isLiveConnectionRequired True if we must not use the offline cache.
+ // * @param shell the parent Shell
+ // * @return True if we are able to connect or work offline.
+ // */
+ // public static boolean reestablishConnection(IConnectionProfile profile, boolean isSQLJ,
+ // boolean isLiveConnectionRequired, Shell shell)
+ // {
+ // return reestablishConnection(profile, isSQLJ, isLiveConnectionRequired, false, shell);
+ // }
+
+ /**
+ * Returns the java.sql.Connection associated with the connection profile.
+ * @param profile the connection profile
+ * @return Connection
+ */
+ public static Connection getConnection(IConnectionProfile profile){
+ Connection conn = null;
+ if (profile.getConnectionState() != IConnectionProfile.CONNECTED_STATE){
+ profile.connect();
+ }
+ IManagedConnection managedConnection = profile.getManagedConnection(ConnectionUtil.CONNECTION_TYPE);
+ if (managedConnection != null){
+ ConnectionInfo cInfo = (ConnectionInfo)managedConnection.getConnection().getRawConnection();
+ conn = cInfo.getSharedConnection();
+ }
+ return conn;
+ }
+
+ /**
+ * Parses the database connection URL into
+ * protocol, subprotocol, host, port, database name, and properties.
+ * A URL is either type 4 or type 2:
+ * <dl>
+ * <dt>Type 4 <dd>protocol:subprotocol://host:port/dbname:property1=value1;property2=value2;...
+ * <dt>Type 2 <dd>protocol:subprotocol:alias:property1=value1;property2=value2;...
+ * </dl>
+ * For a type 2 URL, the host and port are returned as empty strings.
+ * If no properties are given, the last element is also returned as an empty string.
+ * The special callback TCP/IP address 127.0.0.1 is returned as "localhost."
+ * @param A database connection URL.
+ * @return An array of String, as follows:
+ * <ol>
+ * <li>protocol
+ * <li>subprotocol
+ * <li>host
+ * <li>port
+ * <li>database name
+ * <li>properties
+ * </ol>
+ * If the input URL is null, returns null.
+ */
+ public static String[] parseURL(String url)
+ {
+ if (url != null)
+ {
+ String[] elements = new String[]{
+ null, // 0: protocol
+ null, // 1: subprotocol
+ null, // 2: host
+ null, // 3: port
+ null, // 4: database name
+ null // 5: properties
+ };
+ try {
+ int colon = url.indexOf(':');
+ elements[0] = url.substring(0, colon);
+ String remainingURL = url.substring(colon + 1);
+ colon = remainingURL.indexOf(':');
+ elements[1] = remainingURL.substring(0, colon);
+ remainingURL = remainingURL.substring(colon + 1);
+ if (remainingURL.startsWith("//")) //$NON-NLS-1$
+ remainingURL = remainingURL.substring(2);
+ int slash = remainingURL.indexOf('/');
+ if (slash > -1)
+ {
+ elements[2] = remainingURL.substring(0, slash);
+ if (elements[2].indexOf('[') > -1 && elements[2].indexOf("]:") > -1) {
+ elements[3] = elements[2].substring(elements[2].indexOf("]:") + 2);
+ elements[2] = elements[2].substring(1, elements[2].indexOf("]:"));
+ } else if (elements[2].indexOf(':') > -1) {
+ elements[3] = elements[2].substring(elements[2].indexOf(':') + 1);
+ elements[2] = elements[2].substring(0, elements[2].indexOf(':'));
+ }
+ remainingURL = remainingURL.substring(slash + 1);
+ }
+ if (!elements[1].equalsIgnoreCase("db2")) //$NON-NLS-1$
+ {
+ int semi = remainingURL.indexOf(';');
+ if (semi > -1)
+ {
+ elements[2] = remainingURL.substring(0, semi);
+ elements[5] = remainingURL.substring(semi + 1);
+ }
+ else
+ {
+ elements[2] = remainingURL;
+ }
+ }
+ else
+ {
+ colon = remainingURL.indexOf(':');
+ if (colon > -1) {
+ elements[4] = remainingURL.substring(0, colon);
+ remainingURL = remainingURL.substring(colon + 1);
+ elements[5] = remainingURL;
+ } else {
+ elements[4] = remainingURL;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ // ignore
+ }
+ for (int i = 0; i < 6; i++)
+ {
+ if (elements[i] == null)
+ elements[i] = ""; //$NON-NLS-1$
+ }
+ if (elements[2].equals("127.0.0.1")) //$NON-NLS-1$
+ elements[2] = "localhost"; //$NON-NLS-1$
+ return elements;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+
+ /**
+ * Given a <code>version</code>, <code>currentSchema</code>, return the default value for
+ * the CURRENT PATH register.
+ * @param version db2 version
+ * @param currentSchema current schema for the connection
+ * @return The default <code>CURRENT PATH</code> for the product and version.
+ */
+ public static String getDefaultPath(DBVersion version, String currentSchema){
+ StringBuffer defaultPath = new StringBuffer();
+ if (version.isUNO()){
+ defaultPath.append("SYSIBM,SYSFUN,SYSPROC,SYSIBMADM"); //$NON-NLS-1$
+ }
+ else if (version.isDB390()){
+ defaultPath.append("SYSIBM,SYSFUN,SYSPROC"); //$NON-NLS-1$
+ }
+ else if (version.isDB400()){
+ defaultPath.append("QSYS,QSYS2,SYSPROC,SYSIBMADM"); //$NON-NLS-1$
+ }
+ if (defaultPath.length() > 0)
+ defaultPath.append(',');
+ defaultPath.append(currentSchema);
+ return defaultPath.toString();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DBReverseProvider.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DBReverseProvider.java
new file mode 100644
index 0000000..f43306f
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DBReverseProvider.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.ecore.EObject;
+
+public interface DBReverseProvider {
+
+ public void reverseEngineer(Database database, int options,EObject[] objectsToRE,IProgressMonitor monitor);
+ public void prepareLoader(Database database, int options,EObject[] objectsToRE);
+ public void removeNeedlessObjects(EObject[] clonedObjects,int options);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DBVersion.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DBVersion.java
new file mode 100644
index 0000000..2a20178
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DBVersion.java
@@ -0,0 +1,1344 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.StringTokenizer;
+
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.datatools.enablement.ibm.util.ConnectionProfileUtility;
+import org.eclipse.datatools.enablement.ibm.util.ReuseStringBuffer;
+import org.eclipse.datatools.enablement.ibm.util.SQLIdentifier;
+
+/**
+ * Abstracts a database version consisting of a product name and three integers: version,
+ * release, and mod level. It supports comparisons between versions, as
+ * well as comparisons against precisely specified version, release, and/or
+ * mod levels.
+ * <p>
+ * This class also provides a shared set of unique DBVersion instances,
+ * which you may construct and access using the getSharedInstance methods,
+ * instead of using the constructors directly.
+ * Additional methods could be added for contributing a sharable instance
+ * and for removing them when they are not needed.
+ */
+public class DBVersion
+{
+ public static final String PRODUCT_DB2 = "DB2"; //$NON-NLS-1$
+ public static final String DB2FAMILY = "DB2 Family"; //$NON-NLS-1$
+ public static final String DB2390 = "DB2"; //$NON-NLS-1$
+
+ public static final String DB2400 = "AS"; //$NON-NLS-1$
+ public static final String DB2400SQL = "DB2/400 SQL"; // AS/400 Toolbox JDBC //$NON-NLS-1$
+ public static final String DB2400UDB = "DB2 UDB for AS/400"; // AS/400 Toolbox JDBC version V4R4 after drivers //$NON-NLS-1$
+
+ public static final String DB2ISERIES = "DB2 UDB iSeries"; //$NON-NLS-1$
+ public static final String IBMCLOUDSCAPE = "IBM Cloudscape"; //$NON-NLS-1$
+ public static final String APACHE_DERBY = "Apache Derby"; // returned by DatabaseMetaData for Derby //$NON-NLS-1$
+ public static final String DERBY = "Derby"; //$NON-NLS-1$
+ public static final String DB2UDB = "DB2 UDB"; //$NON-NLS-1$
+ public static final String DB2ZSERIES = "DB2 UDB zSeries"; //$NON-NLS-1$
+ public static final String IDS = "Informix"; //$NON-NLS-1$
+ public static final String IDS_ALIAS = "IDS"; //$NON-NLS-1$
+ public static final String ORACLE = "Oracle"; //$NON-NLS-1$
+ public static final String SYBASE= "Sybase"; //$NON-NLS-1$
+ public static final String DB2ALIAS = "DB2 ALIAS"; //$NON-NLS-1$
+ public static final String POSTGRES = "Postgres"; //$NON-NLS-1$
+
+ public static final String DB2NT = "DB2/NT"; //$NON-NLS-1$
+ public static final String DB2NT64 = "DB2/NT64"; //$NON-NLS-1$
+ public static final String DB2Windows95 = "DB2/Windows 95"; //$NON-NLS-1$
+ public static final String DB26000 = "DB2/6000"; //$NON-NLS-1$
+ public static final String DB2AIX64 = "DB2/AIX64"; //$NON-NLS-1$
+ public static final String DB26000PE = "DB2/6000 PE"; //$NON-NLS-1$
+ public static final String DB2HPUX = "DB2/HPUX"; //$NON-NLS-1$
+ public static final String DB2HPUX64 = "DB2/HP64"; //$NON-NLS-1$
+ public static final String DB2SUN = "DB2/SUN"; //$NON-NLS-1$
+ public static final String SUN64 = "DB2/SUN64"; //$NON-NLS-1$
+ public static final String LINUX = "DB2/LINUX"; //$NON-NLS-1$
+ public static final String DYNIX = "DB2/PTX"; // Sequent (NUMA-Q) //$NON-NLS-1$
+ public static final String DB22 = "DB2/2"; //$NON-NLS-1$
+ public static final String WORKSTATION = "WORKSTATION"; //$NON-NLS-1$
+ public static final String AS400 = "AS400"; //$NON-NLS-1$
+ public static final String DB2LINUX390 = "DB2/LINUX390"; //$NON-NLS-1$
+ public static final String IMS = "IMS"; //$NON-NLS-1$
+
+// DB2 versions
+
+ public static final int DB_VERSION_4 = 4;
+ public static final int DB_VERSION_5 = 5;
+ public static final int DB_VERSION_6 = 6;
+ public static final int DB_VERSION_7 = 7;
+ public static final int DB_VERSION_8 = 8;
+ //
+ public static final int DB_VERSION_9 = 9;
+ public static final int DB_VERSION_10 = 10;
+ public static final double DB_SDK_VERSION_6 = 6.1;
+ public static final double DB_SDK_VERSION_7 = 7.0;
+ public static final double DB_SDK_VERSION_8 = 8.0;
+ public static final double DB_VERSION_5_REL_1 = 5.1;
+ public static final double DB_VERSION_5_REL_2 = 5.2;
+ public static final double DB_VERSION_5_REL_3 = 5.3;
+
+ private static final int[] SUPPORTS_SKIP_LEVEL_COMPAT_MODE = { 10 };
+
+// DB2 versions (String format)
+
+ public static final String DB_VER_4 = "V4"; //$NON-NLS-1$
+ public static final String DB_VER_5 = "V5"; //$NON-NLS-1$
+ public static final String DB_VER_6 = "V6"; //$NON-NLS-1$
+ public static final String DB_VER_7 = "V7"; //$NON-NLS-1$
+ public static final String DB_VER_8 = "V8"; //$NON-NLS-1$
+ public static final String DB_VER_9 = "V9"; //$NON-NLS-1$
+ public static final String DB_VER_5_REL_1 = "V5.1"; //$NON-NLS-1$
+ public static final String DB_VER_5_REL_2 = "V5.2"; //$NON-NLS-1$
+ public static final String DB_VER_5_REL_3 = "V5.3"; //$NON-NLS-1$
+ // DB version String literals extracted from extensions to ext pt.
+ // com.ibm.datatools.core.databaseDefinition
+ /** @deprecated */
+ public static final String DB_ZSERIES_VERSION_6 = "V6"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_7 = "V7"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_8_COMPAT = "V8 (Compatibility Mode)"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_8_NEWFUN = "V8 (New-Function Mode)"; //$NON-NLS-1$
+ // RATLC001118919 and wsdbu00057906
+ //public static final String DB_ZSERIES_VERSION_9 = "V9"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_9_COMPAT = "V9 (Compatibility Mode)"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_9_NEWFUN = "V9 (New-Function Mode)"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_10_COMPAT = "V10 (Conversion Mode)"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_10_NEWFUN = "V10 (New-Function Mode)";//$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_11_COMPAT = "V11 (Conversion Mode)"; //$NON-NLS-1$
+ public static final String DB_ZSERIES_VERSION_11_NEWFUN = "V11 (New-Function Mode)";//$NON-NLS-1$
+
+ public static final String DB_VERSION_8_REL_1 = "V8.1"; //$NON-NLS-1$
+ public static final String DB_VERSION_8_REL_2 = "V8.2"; //$NON-NLS-1$
+ public static final String DB_UDB_VERSION_9 = "V9.1"; //$NON-NLS-1$
+ public static final String DB_UDB_VERSION_9_5 = "V9.5"; //$NON-NLS-1$
+ public static final String DB_UDB_VERSION_9_7 = "V9.7"; //$NON-NLS-1$
+ public static final String DB_UDB_VERSION_10_1 = "V10.1";//$NON-NLS-1$
+ public static final String DB_UDB_VERSION_10_5 = "V10.5";//$NON-NLS-1$
+ /** @deprecated */
+ public static final String DB_ISERIES_VERSION_5_REL_1 = "V5R1"; //$NON-NLS-1$
+ /** @deprecated */
+ public static final String DB_ISERIES_VERSION_5_REL_2 = "V5R2"; //$NON-NLS-1$
+ public static final String DB_ISERIES_VERSION_5 = "5"; //$NON-NLS-1$
+ public static final String DB_ISERIES_VERSION_5_REL_3 = "5R3"; //$NON-NLS-1$
+ /** @deprecated */
+ public static final String DB_ISERIES_VERSION_5_REL_3_NEW = "V05R03"; //$NON-NLS-1$
+ public static final String DB_ISERIES_VERSION_5_REL_4 = "5R4"; //$NON-NLS-1$
+ /** @deprecated */
+ public static final String DB_ISERIES_VERSION_5_REL_4_NEW = "V05R04"; //$NON-NLS-1$
+ public static final String DB_CLOUDSCAPE_VERSION_10_REL_0 = "10.0"; //$NON-NLS-1$
+ public static final String DB_CLOUDSCAPE_VERSION_10_REL_1 = "10.1"; //$NON-NLS-1$
+ public static final String DB_CLOUDSCAPE_VERSION_10_REL_2 = "10.2"; //$NON-NLS-1$
+ public static final String DB_CLOUDSCAPE_VERSION_10_REL_3 = "10.3"; //$NON-NLS-1$
+ public static final String DB_CLOUDSCAPE_VERSION_10_REL_4 = "10.4"; //$NON-NLS-1$
+ public static final String DB_CLOUDSCAPE_VERSION_10_REL_5 = "10.5"; //$NON-NLS-1$
+ public static final String DB_CLOUDSCAPE_VERSION_10_REL_6 = "10.6"; //$NON-NLS-1$
+ public static final String DB_IDS_VERSION_10_REL_0 = "10.00"; //$NON-NLS-1$
+ public static final String DB_IDS_VERSION_9_REL_5 = "9.50"; //$NON-NLS-1$
+ public static final String DB_IDS_VERSION_9_REL_4 = "9.40"; //$NON-NLS-1$
+ public static final String DB_IDS_VERSION_9_REL_3 = "9.30"; //$NON-NLS-1$
+ public static final String DB_IDS_VERSION_9_REL_2 = "9.20"; //$NON-NLS-1$
+
+
+ //Oracle versions
+ public static final String ORACLE_VERSION_10 = "10"; //$NON-NLS-1$
+ public static final String ORACLE_VERSION_11 = "11"; //$NON-NLS-1$
+
+ public static final String SYBASE_VERSION_12 = "12.0";
+ public static final String SYBASE_VERSION_12_REL_5 = "12.5";
+ public static final String SYBASE_VERSION_12_REL_X = "12.x";
+ public static final String SYBASE_VERSION_15 = "15.0";
+
+
+ /** Database product. */
+ protected String product = null;
+ /** Database version. */
+ protected int version = 0;
+ /** Database release. */
+ protected int release = 0;
+ /** Database modification. */
+ protected int mod = 0;
+ /** Database delimiter, defaults to a double-quotation mark. */
+ protected char delim = '"';
+ /* True if we have confirmed the delimiter from the connection. *
+ protected boolean delimOK = false;
+ */
+
+ /** Shared instance of the default version. */
+ protected static DBVersion sharedDefault;
+ /** Reusable DBVersion instances. */
+ protected static ArrayList<DBVersion> sharedInstances = new ArrayList<DBVersion>();
+
+ /** LUWO: Linux, UNIX, Windows, and OS/2. */
+ public static final int PLATFORM_LUWO = 0x1;
+ /** OS/390, z/OS. */
+ public static final int PLATFORM_390 = 0x2;
+ /** OS/400, iSeries. */
+ public static final int PLATFORM_400 = 0x4;
+ /** LUWO, 390, and 400 */
+ public static final int PLATFORM_ALL = 0x7;
+ /** Any other platform. */
+ public static final int PLATFORM_OTHER = 0x10;
+
+ private static final String ZOS_NEW_FUNCTION = "New-Function Mode"; //$NON-NLS-1$
+
+ /**
+ * Gets a shared DBVersion, and returns null if it doesn't exist.
+ * @param product The product name.
+ * @param version The version.
+ * @param release The release
+ * @param mod The modification level.
+ * @return A shared DBVersion.
+ */
+ protected static DBVersion findSharedInstance(String product, int version, int release, int mod)
+ {
+ Iterator<DBVersion> i = sharedInstances.iterator();
+ DBVersion dbversion;
+ while (i.hasNext())
+ {
+ dbversion = i.next();
+ if (product.equals(dbversion.getProduct())
+ && version == dbversion.getVersion()
+ && release == dbversion.getRelease()
+ && mod == dbversion.getMod())
+ return dbversion;
+ }
+ // Didn't find one; return null:
+ return null;
+ }
+
+ /**
+ * Gets a shared DBVersion, and creates one if it doesn't already exist.
+ * @param product The product name.
+ * @param version The version.
+ * @param release The release
+ * @param mod The modification level.
+ * @return A shared DBVersion.
+ */
+ public static DBVersion getSharedInstance(String product, int version, int release, int mod)
+ {
+ if (product == null)
+ product = WORKSTATION;
+ DBVersion dbversion = findSharedInstance(product, version, release, mod);
+ if (dbversion == null) // Didn't find one; create one:
+ {
+ dbversion = new DBVersion(product, version, release, mod);
+ sharedInstances.add(dbversion);
+ }
+ return dbversion;
+ }
+
+ /**
+ * Gets a shared DBVersion, and creates one if it doesn't already exist.
+ * @param product The product name.
+ * @param productVersion The version string (with version, release, and possibly modification)
+ * @return A shared DBVersion.
+ */
+ public static DBVersion getSharedInstance(String product, String productVersion)
+ {
+ int[] v = getVersionArray(productVersion);
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+
+ /**
+ * Gets a shared DBVersion, and creates one if it doesn't already exist.
+ * @param myConnection An RLDBConnection.
+ * @return A shared DBVersion.
+ */
+ public static DBVersion getSharedInstance(ConnectionInfo myConnection)
+ {
+ if (myConnection == null)
+ return getDefault();
+
+ /* obtain version from the connection info
+ * or when not set, from the DatabaseDefinition
+ */
+ DatabaseDefinition dbDef = myConnection.getDatabaseDefinition();
+ String productVersion = myConnection.getDatabaseProductVersion();
+ if (productVersion == null)
+ {
+ Connection con = myConnection.getSharedConnection();
+ if (con != null)
+ {
+ try
+ {
+ DatabaseMetaData dbmd = con.getMetaData();
+ productVersion = dbmd.getDatabaseProductVersion();
+ }
+ catch (SQLException sqle)
+ {
+ productVersion = null;
+ }
+ }
+ }
+ if(isSybase(dbDef)){
+ productVersion = dbDef.getVersion();
+ } else if (isIMS(dbDef)){
+ productVersion = dbDef.getVersion();
+ }
+ boolean isOracleDatabase = dbDef.getProduct().equalsIgnoreCase(ORACLE) ? true : false;
+ if (productVersion == null || isOracleDatabase)
+ {
+ productVersion = dbDef.getVersion();
+ }
+ String product = dbDef.getProduct();
+
+ if (productVersion!= null && productVersion.length() > 0) {
+ int[] v = getVersionArray(productVersion);
+ if (v== null)
+ v = new int []{0,0,0};
+ else if(isIDS(dbDef)) {
+ //only the first digit in the IDS release represents the real release number
+ //for example 11.70 represent version 11 release 7. This change is
+ //made to be consistent with informix database definition
+ if(v[1]>=10)
+ v[1]=v[1]/10;
+ }
+
+
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+ else {
+ int[] v = getVersionArray(myConnection.getDatabaseDefinition().getVersion());
+ if (v== null)
+ v = new int []{0,0,0};
+
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+ }
+
+ /**
+ * Gets a shared DBVersion, and creates one if it doesn't already exist.
+ * @param profile IConnectionProfile
+ * @return A shared DBVersion.
+ */
+ public static DBVersion getSharedInstance(IConnectionProfile profile)
+ {
+ if (profile == null)
+ return getDefault();
+ ConnectionInfo conInfo = ConnectionProfileUtility.getConnectionInfo(profile, false);
+ if (conInfo != null)
+ return getSharedInstance(conInfo);
+ DatabaseDefinition dbDef = ConnectionProfileUtility.getDatabaseDefinition(profile);
+ return getSharedInstance(dbDef);
+ }
+
+ /**
+ * Gets a shared DBVersion, and creates one if it doesn't already exist.
+ * @param dbDef A database definition.
+ * @return A shared DBVersion.
+ */
+ public static DBVersion getSharedInstance(DatabaseDefinition dbDef)
+ {
+ if (dbDef == null)
+ return getDefault();
+
+ /* obtain version from the connection info
+ * or when not set, from the DatabaseDefinition
+ */
+ String version = dbDef.getVersion();
+ String product = dbDef.getProduct();
+
+ int[] v = getVersionArray(version);
+ if (v == null)
+ v = new int []{0,0,0};
+
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+
+ /**
+ * Gets a shared DBVersion, and creates one if it doesn't already exist.
+ * @param connection A Connection.
+ * @return A shared DBVersion.
+ */
+ public static DBVersion getSharedInstance(Connection connection)
+ {
+ String versionString = null;
+ String product;
+ try
+ {
+ product = connection.getMetaData().getDatabaseProductName();
+ versionString = connection.getMetaData().getDatabaseProductVersion();
+ }
+ catch (SQLException sqle)
+ {
+ product = WORKSTATION;
+ versionString = "8.2.0"; //$NON-NLS-1$
+ }
+ int[] v = getVersionArray(versionString);
+ if (v== null)
+ v = new int []{0,0,0};
+ return getSharedInstance(product, v[0], v[1], v[2]);
+ }
+
+ /**
+ * The Universal JDBC driver formats the version string with a cookie ccc
+ * with the format <code>cccvvrrm</code>.
+ */
+ protected static String SQLCookies = "SQL QSQ DSN"; //$NON-NLS-1$
+
+ public DBVersion(Connection connection)
+ {
+ String versionString = null;
+ try
+ {
+ product = connection.getMetaData().getDatabaseProductName();
+ versionString = connection.getMetaData().getDatabaseProductVersion();
+ }
+ catch (SQLException sqle)
+ {
+ product = WORKSTATION;
+ versionString = "8.2.0"; //$NON-NLS-1$
+ }
+ setVersion(versionString);
+ }
+
+ public DBVersion(String product, String versionString)
+ {
+ this.product = product;
+ setVersion(versionString);
+ }
+
+ public DBVersion(String versionString)
+ {
+ product = WORKSTATION;
+ setVersion(versionString);
+ }
+
+ public DBVersion(int version, int release, int mod)
+ {
+ product = WORKSTATION;
+ setVersion(version, release, mod);
+ }
+
+ public DBVersion(String prod, int version, int release, int mod)
+ {
+ product = prod;
+ setVersion(version, release, mod);
+ }
+
+ public DBVersion(DBVersion copyme)
+ {
+ if (copyme != null)
+ {
+ product = copyme.getProduct();
+ version = copyme.getVersion();
+ release = copyme.getRelease();
+ mod = copyme.getMod();
+ //setDelimiter(copyme.getDelimiter());
+ }
+ }
+
+ public DBVersion(IConnectionProfile profile)
+ {
+ String[] vv = ConnectionProfileUtility.getVendorVersion(profile);
+ setVersion(vv[1]);
+ }
+
+ public DBVersion(ConnectionInfo conInfo)
+ {
+ if (conInfo != null)
+ {
+ /* obtain version from the connection info
+ * or when not set, from the DatabaseDefinition
+ */
+ IConnectionProfile profile = conInfo.getConnectionProfile();
+ DatabaseDefinition dbDef = conInfo.getDatabaseDefinition();
+ String productVersion = dbDef.getVersion();
+ product = dbDef.getProduct();
+
+ if (ConnectionProfileUtility.isConnected(profile))
+ {
+ try
+ {
+ Connection jdbcConn = conInfo.getSharedConnection();
+ productVersion = jdbcConn.getMetaData().getDatabaseProductVersion();
+ product = jdbcConn.getMetaData().getDatabaseProductName();
+ }
+ catch(Exception ex)
+ {
+ // ignore
+ }
+ }
+ setVersion(productVersion);
+ }
+ }
+
+ /**
+ * Gets a shared instance for a DatabaseDefinition.
+ * <p>
+ * @param The shared instance.
+ */
+ public DBVersion(DatabaseDefinition dbDef)
+ {
+ product = dbDef.getProduct();
+ setVersion(dbDef.getVersion());
+ }
+
+ /**
+ * Gets the default shared instance, which is a new DBVersion(WORKSTATION,8,2,0).
+ * <p>
+ * @param The default shared instance of DBVersion.
+ */
+ public static DBVersion getDefault()
+ {
+ if (sharedDefault == null)
+ sharedDefault = new DBVersion(WORKSTATION,8,2,0);
+ return sharedDefault;
+ }
+
+ /**
+ * @deprecated Use SQLIdentifier.getDelimiter(ConnectionInfo).
+ * Gets the delimiter for an SQL identifier
+ * which should be obtained from the JDBC database metadata.
+ * <p>
+ * @return A delimiter char.
+ */
+ public char getDelimiter()
+ {
+ return delim;
+ }
+
+ /**
+ * @deprecated
+ * Sets the delimiter for an SQL identifier,
+ * which should be obtained from the JDBC database metadata.
+ * <p>
+ * @param A delimiter char.
+ */
+ public void setDelimiter(char d)
+ {
+ delim = d;
+ }
+
+ public void setProduct(String prod)
+ {
+ product = prod;
+ }
+
+ public String getProduct()
+ {
+ return product;
+ }
+
+ public boolean isDB2Alias(){
+ return(product != null && DB2ALIAS.equals(product));
+ }
+ /**
+ * Determines if an SQLVendor represents a DB2 product.
+ * @return True if the vendor is DB2.
+ */
+ public boolean isDB2()
+ {
+ return isUNO() || isDB400() || isDB390();
+ }
+
+ public boolean isDB390()
+ {
+ if (product != null // false by default
+ && (DB2390.equals(product)
+ || DB2ZSERIES.equals(product)))
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * Returns true for "AS400", "AS", "DB2/400 SQL", "DB2 UDB for AS/400"
+ */
+ public boolean isDB400()
+ {
+ if (product != null // false by default
+ && (AS400.equals(product)
+ || DB2400.equals(product)
+ || DB2400SQL.equals(product)
+ || DB2400UDB.equals(product)
+ || DB2ISERIES.equals(product)))
+ return true;
+ else
+ return false;
+ }
+
+ public boolean isIBMCloudscape()
+ {
+ // Since product is different depending on the
+ // dbDefintion files used, we check for all
+ // variations
+ if (product != null // false by default
+ && (IBMCLOUDSCAPE.equals(product)
+ || APACHE_DERBY.equals(product)
+ || DERBY.equals(product)))
+ return true;
+ else
+ return false;
+ }
+
+ public boolean isDerby()
+ {
+ // Since product is different depending on the
+ // dbDefintion files used, we check for all
+ // variations
+ if (product != null // false by default
+ && (DERBY.equals(product)
+ || APACHE_DERBY.equals(product)
+ || IBMCLOUDSCAPE.equals(product)))
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * Returns true for the rest of the database product names belong to UNO:
+ * <pre>
+ * DB2NT = "DB2/NT"
+ * DB2NT64 = "DB2/NT64"
+ * DB2Windows95 = "DB2/Windows 95"
+ * DB26000 = "DB2/6000"
+ * DB2AIX64 = "DB2/AIX64"
+ * DB26000PE = "DB2/6000 PE"
+ * DB2HPUX = "DB2/HPUX"
+ * DB2HPUX64 = "DB2/HP64"
+ * DB2SUN = "DB2/SUN"
+ * SUN64 = "DB2/SUN64"
+ * LINUX = "DB2/LINUX"
+ * DYNIX = "DB2/PTX" * Sequent (NUMA-Q)
+ * DB22 = "DB2/2"
+ * </pre>
+ */
+ public boolean isUNO()
+ {
+ if (product == null || WORKSTATION.equals(product) || DB2NT.equals(product)
+ || ( product.startsWith(PRODUCT_DB2)
+ && !isDB390() && !isDB400() && !isIBMCloudscape()))
+ return true;
+ else
+ return false;
+ }
+ public boolean isIDS()
+ {
+ if (product != null && (product.startsWith(IDS)||product.startsWith( IDS_ALIAS )))
+ return true;
+ else
+ return false;
+ }
+ public boolean isOracle()
+ {
+ if (product != null && (product.equalsIgnoreCase(ORACLE) || product.startsWith(ORACLE)))
+ return true;
+ else
+ return false;
+ }
+
+ public boolean isPostgres()
+ {
+ if (product != null && (product.equalsIgnoreCase(POSTGRES) || product.startsWith(POSTGRES)))
+ return true;
+ else
+ return false;
+ }
+
+ public boolean isSybase()
+ {
+ if(product != null && (product.equalsIgnoreCase(SYBASE)))
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * Returns the SQLIdentifier code for the DB2 platform.
+ * <p>
+ * @return The platform code; one of the constants:
+ * <dl>
+ * <dt>SQLIdentifier.PLATFORM_LUWO <dd>DB2 UDB for Linux, UNIX, Windows, and OS/2
+ * <dt>SQLIdentifier.PLATFORM_390 <dd>DB2 UDB for OS/390 (and z/OS)
+ * <dt>SQLIdentifier.PLATFORM_400 <dd>DB2 UDB for OS/400 (and iSeries)
+ * <dt>SQLIdentifier.PLATFORM_OTHER <dd>Not DB2
+ * </dl>
+ * @see SQLIdentifier
+ */
+ public int getSQLIdentifierPlatform()
+ {
+ if (isDB390())
+ return PLATFORM_390;
+ else if (isDB400())
+ return PLATFORM_400;
+ else if (WORKSTATION.equals(product)
+ || (product != null // OTHER by default
+ && product.startsWith(PRODUCT_DB2)))
+ return PLATFORM_LUWO;
+ else
+ return PLATFORM_OTHER;
+ }
+
+ /**
+ * Determines if an SQLVendor represents a DB2 product.
+ * @return True if the vendor is DB2.
+ */
+ public static boolean isDB2(DatabaseDefinition definition)
+ {
+ return isDB2UDB(definition) || isDB2AS400(definition) || isDB2OS390(definition) || isDB2Alias(definition);
+ }
+ /**
+ * Determines if an SQLVendor represents a DB2 product
+ * for the workstation.
+ * @return True if the vendor is DB2.
+ */
+ public static boolean isDB2UDB(DatabaseDefinition definition)
+ {
+ return isProductSupported (definition, DB2UDB);
+ }
+ /**
+ * Determines if an SQLVendor represents a DB2 product
+ * for z/OS.
+ * @return True if the vendor is DB2.
+ */
+ public static boolean isDB2OS390(DatabaseDefinition definition)
+ {
+ return isProductSupported (definition, DB2ZSERIES);
+ }
+ /**
+ * Determines if an SQLVendor represents a DB2 product
+ * for iSeries.
+ * @return True if the vendor is DB2.
+ */
+ public static boolean isDB2AS400(DatabaseDefinition definition)
+ {
+ return isProductSupported (definition, DB2ISERIES);
+ }
+
+ public static boolean isDBCloudscape(DatabaseDefinition definition)
+ {
+ // Since product is different depending on the
+ // dbDefintion files used, we check for all
+ // variations
+ // No need to check for APACHE_DERBY, since that only comes from
+ // connection DatabaseMetaData
+ return isProductSupported (definition, IBMCLOUDSCAPE) ||
+ isProductSupported (definition, DERBY);
+ }
+
+ /**
+ * Determines if an SQLVendor represents an IDS product for the workstation.
+ * <p>
+ * @return <code>True</code> if the vendor is IDS.
+ */
+ public static boolean isIDS(DatabaseDefinition definition) {
+ return isProductSupported (definition, IDS);
+ }
+
+ public static boolean isSybase(DatabaseDefinition definition) {
+ return isProductSupported (definition, SYBASE);
+ }
+
+ public static boolean isIMS(DatabaseDefinition definition) {
+ boolean retVal = false;
+ String prodStr = definition.getProductDisplayString();
+ if (prodStr != null && IMS.equals(prodStr)) {
+ retVal = true;
+ }
+
+ return retVal;
+ }
+
+ /**
+ * Determines if an SQLVendor represents an Oracle product for the workstation.
+ * <p>
+ * @return <code>True</code> if the vendor is Oracle.
+ */
+ public static boolean isOracle(DatabaseDefinition definition) {
+ return isProductSupported (definition, ORACLE);
+ }
+
+ /**
+ * Determines if an SQLVendor represents a DB2 alias
+ * @param definition
+ * @return true if the vendor is a DB2 alias
+ */
+public static boolean isDB2Alias(DatabaseDefinition definition){
+
+ return isProductSupported(definition, DB2ALIAS);
+ }
+
+ private static boolean isProductSupported (DatabaseDefinition definition, String product)
+ {
+ if (definition == null)
+ {
+ return false;
+ }
+ else
+ {
+ return definition.getProduct().equalsIgnoreCase(product) ? true : false;
+ }
+ }
+
+ /**
+ * Parses the versionString and returns the version, release, and mod ints in an array.
+ * @return An array of version, release, and mod ints.
+ */
+ public static int[] getVersionArray(String versionString)
+ {
+ int[] v = new int[3];
+ if (versionString == null || versionString.length() == 0)
+ {
+ v[0] = 8;
+ v[1] = -1;
+ v[2] = -1;
+ }
+ else
+ {
+ // try to figure out what kind of versionString we have
+ // been passed
+ int clen = 3;
+ int cookieIdx = -1;
+ if (versionString.length() >= clen) {
+ String cookie = versionString.substring(0, clen);
+ cookieIdx = SQLCookies.indexOf(cookie);
+ if(cookieIdx == -1 && cookie.equals("IFX")) cookieIdx = 0;
+ }
+
+ if (cookieIdx > -1)
+ v = parseSQLVersion(versionString.substring(clen));
+ else
+ v = parseNumericVersion(versionString);
+ }
+ return v;
+ }
+
+ /**
+ * Parses the versionString and sets the version, release, and mod ints.
+ */
+ public void setVersion(String versionString)
+ {
+ int v[] = getVersionArray(versionString);
+ if (v != null)
+ {
+ setVersion(v[0], v[1], v[2]);
+ }
+ }
+
+ public void setVersion(int version, int release, int mod)
+ {
+ this.version = version;
+ this.release = release;
+ this.mod = mod;
+ }
+
+ /**
+ * Note: DB2 LUW FP level update:
+ *
+ * The architecture of product and version information ( Product ID)
+ * for DB2 LUW client and server is in the form PPPVVRRM, where:
+ * PPP
+ * is SQL ( DB2 LUW Product Identifier)
+ * VV
+ * identifies a 2-digit version number (with high-order 0 in the case of a 1-digit version)
+ * RR
+ * identifies a 2-digit release number (with high-order 0 in the case of a 1-digit release)
+ * M
+ * identifies a 1-character modification level (0-9 or A-Z) ( or fixpack level)
+ *
+ * @param String, representing the numeric portion of the version, such as
+ * 09074 or 0901A
+ *
+ * @return int[], representing the version, release, and mod (fixpack) level
+ * If the mod level is a letter, i.e. > 9, the letter will be mapped back to an integer
+ * A=10, B=11, etc.
+ *
+ * In the future, this can be refactored to return the actual mod level if
+ * callers need it
+ *
+ * */
+ protected static int[] parseSQLVersion(String s)
+ {
+ int tmpversion = 0;
+ int tmprelease = 0;
+ int tmpmod = 0;
+ // Get values according to substring:
+ try {
+ tmpversion = Integer.parseInt(s.substring(0,2));
+ tmprelease = Integer.parseInt(s.substring(2,4));
+
+ String mod = s.substring(4);
+ // this character may be a letter for DB2 LUW
+ if (Character.isLetter(mod.charAt(0))) {
+ //assume the character is a valid uppercase letter, otherwise set mod level to 0
+ tmpmod = Math.max(0, mod.charAt(0) - 'A' + 10);
+ } else {
+ tmpmod = Integer.parseInt(s.substring(4));
+ }
+ } catch(NumberFormatException nfe) {
+ return null;
+ }
+
+ return new int[]{tmpversion, tmprelease, tmpmod};
+ }
+
+ protected static int[] parseNumericVersion(String s)
+ {
+ int tmpversion = 0;
+ int tmprelease = 0;
+ int tmpmod = 0;
+ // tokenize:
+ StringTokenizer st = new StringTokenizer(s, "VRM .\t\n\r\f", false); //$NON-NLS-1$
+ try
+ {
+ if (st.hasMoreTokens())
+ {
+ tmpversion = Integer.parseInt(st.nextToken());
+ }
+ if (st.hasMoreTokens())
+ {
+ tmprelease = Integer.parseInt(st.nextToken());
+ }
+ if (st.hasMoreTokens())
+ {
+ tmpmod = Integer.parseInt(st.nextToken());
+ }
+ }
+ // catch runtime exceptions; could be nosuchelement or numberformat..
+ catch(NumberFormatException rte)
+ {
+ // return major version if already successfully parsed.
+ if (tmpversion == 0)
+ return null;
+ else if (tmpversion >= 8)
+ {
+ if (s.indexOf(ZOS_NEW_FUNCTION) > -1)
+ {
+ tmprelease = 1;
+ tmpmod = 5;
+ }
+ }
+ }
+ catch(java.util.NoSuchElementException nse)
+ {
+ // return major version if already successfully parsed.
+ if (tmpversion == 0)
+ return null;
+ else if (tmpversion >= 8)
+ {
+ if (s.indexOf(ZOS_NEW_FUNCTION) > -1)
+ {
+ tmprelease = 1;
+ tmpmod = 5;
+ }
+ }
+ }
+
+ // must be OK
+ return new int[]{tmpversion, tmprelease, tmpmod};
+ }
+
+ /**
+ * Parses the SQLVendor type to return the version and release.
+ * SQLVendor doesn't return the version
+ * except in the domain type literal, which doesn't have dots,
+ * so we treat the first character after "_V" as the version
+ * and the second as the release.
+ * @param An SQLVendorType.toString().
+ * @return An int array with version,release,0.
+ */
+ public static int[] parseSQLVendorType(String domain)
+ {
+ int tmpversion = 0;
+ int tmprelease = 1;
+ // tokenize:
+ int vpos = domain.indexOf("_V") + 2; //$NON-NLS-1$
+ try
+ {
+ tmpversion = Integer.parseInt(domain.substring(vpos, vpos + 1));
+ if (vpos + 1 <= domain.length() - 1)
+ tmprelease = Integer.parseInt(domain.substring(vpos + 1, vpos + 2));
+ }
+ catch (NumberFormatException nfe)
+ {
+ // return zeros
+ }
+ return new int[]{tmpversion, tmprelease, 0};
+ }
+
+ public int getVersion() { return version; }
+ public int getRelease() { return release; }
+ public int getMod() { return mod; }
+
+ public boolean isZSeriesV10CM8()
+ {
+ if (isDB390() && (isExactly(10, 1, 0) || isExactly(10, 0, 0))) {
+ return true;
+ }
+ return false;
+ }
+
+ public boolean isAtLeast(int version)
+ {
+ int currentVersion = version;
+ if (isZSeriesV10CM8()) {
+ currentVersion = 8;
+ }
+ return currentVersion >= version;
+ }
+
+ public boolean isAtLeast(int version, int release)
+ {
+ if (this.version > version)
+ return true;
+ if (this.version == version)
+ return this.release >= release;
+ return false;
+ }
+
+ /**
+ * Tests the version, release, and modification levels.
+ * For example:
+ * <pre>
+ * 9,0,5 isAtLeast 9,0,5
+ * 9,1,0 isAtLeast 9,0,5 -- Therefore, if you want 9 NFM, use -1 for the release:
+ * 9,-1,5 isAtLeast 9,0,5
+ * </pre>
+ */
+ public boolean isAtLeast(int version, int release, int mod)
+ {
+ int currentVersion = this.version;
+ if (isDB390() && isZSeriesSkipLevelCompatMode()) {
+ currentVersion -= 1;
+ }
+
+ if (currentVersion > version) {
+ return true;
+ }
+
+ if (currentVersion == version)
+ {
+ if (release < 0)
+ {
+ return this.mod >= mod;
+ }
+ else
+ {
+ if (this.release > release)
+ return true;
+ if (this.release == release)
+ return this.mod >= mod;
+ }
+ }
+ return false;
+ }
+
+ private boolean isZSeriesSkipLevelCompatMode()
+ {
+ if (version < DB_VERSION_10) {
+ return false;
+ }
+
+ boolean supportsSkipLevelCompatMode = false;
+ for (int candidateVersion : SUPPORTS_SKIP_LEVEL_COMPAT_MODE) {
+ if (candidateVersion == version) {
+ supportsSkipLevelCompatMode = true;
+ break;
+ }
+ }
+
+ if (supportsSkipLevelCompatMode && mod < 2) {
+ return true;
+ }
+
+ return false;
+ }
+
+ public boolean isExactly(int version)
+ {
+ return this.version == version;
+ }
+
+ public boolean isExactly(int version, int release)
+ {
+ return this.version == version
+ && this.release == release;
+ }
+
+ public boolean isExactly(int version, int release, int mod)
+ {
+ return this.version == version
+ && this.release == release
+ && this.mod == mod;
+ }
+
+ public boolean isAtMost(int version)
+ {
+ return this.version <= version;
+ }
+
+ public boolean isAtMost(int version, int release)
+ {
+ if (this.version < version)
+ return true;
+ if (this.version == version)
+ return this.release <= release;
+ return false;
+ }
+
+ /**
+ * Determines if the target is no later than the given v,r,m.
+ * To test for compatibility mode, call, isAtMost(v,-1,4).
+ */
+ public boolean isAtMost(int version, int release, int mod)
+ {
+ if (this.version < version)
+ return true;
+ if (this.version == version)
+ {
+ if (release < 0)
+ {
+ return this.mod <= mod;
+ }
+ else
+ {
+ if (this.release < release)
+ return true;
+ if (this.release == release)
+ return this.mod <= mod;
+ }
+ }
+ return false;
+ }
+
+ public String toString()
+ {
+ StringBuffer str = new StringBuffer();
+ if (product == null)
+ str.append("DB2Version "); //$NON-NLS-1$
+ else
+ str.append(product).append(' ');
+ str.append(version).append('.').append(release).append('.').append(mod);
+ return str.toString();
+ }
+
+ /**
+ * If this database type, and the one represented by the argument are of
+ * the same server platform, return <code>true</code>.
+ * <p>
+ * @param aVer Database to compare against
+ * @return <code>true</code> if the databases are of the same server type.
+ */
+ public boolean isSameServerType(DBVersion aVer) {
+ boolean isSameType = false;
+ if (aVer != null) {
+ // wsdbu098517; V9 NFM to V9 CM or V8 either NFM or CM is considered unlike for sql procedures
+ //V10 NFM to V10 CM or V10 NFM to V9 should be considered unlike
+ if ( aVer.isDB390() && this.isDB390() ) {
+// if ((aVer.isAtMost(8) && this.isAtLeast(9,-1,5)) ||
+// (aVer.isAtMost(9,-1,4) && this.isAtLeast(9,-1,5)) ||
+// (aVer.isAtMost(9)) && this.isAtLeast(10,-1,5) ||
+// (aVer.isAtMost(10,-1,4) && this.isAtLeast(10,-1,5)))
+// isSameType = false;
+// else
+ isSameType = true;
+ }
+ if ((aVer.isUNO() && this.isUNO()) ||
+ //(aVer.isDB390() && this.isDB390()) ||
+ (aVer.isDB400() && this.isDB400()) ||
+ // Removed test for IBMCloudscape, since isDerby also
+ // checks for IBMCloudscape string
+ (aVer.isDerby() && this.isDerby()))
+ {
+ isSameType = true;
+ }
+ if (aVer.isOracle() && this.isOracle())
+ {
+ isSameType = true;
+ }
+ if (aVer.isIDS() && this.isIDS()){
+ isSameType = true;
+ }
+ if (aVer.isSybase() && this.isSybase())
+ {
+ isSameType = true;
+ }
+ }
+ return isSameType;
+ }
+
+ /**
+ * Normalizes the product and version names to match the keys
+ * in our DatabaseDefinition xmi files.
+ * @return An array whose first element is the product key
+ * and whose second element is the version key.
+ */
+ public String[] normalizeDatabaseDefinitionKeys()
+ {
+ String[] dbDefKeys = new String[]{"",""}; //$NON-NLS-1$ //$NON-NLS-2$
+ if (isUNO()) {
+ dbDefKeys[0] = DBVersion.DB2UDB;
+ switch (getVersion())
+ {
+ case 10:
+ switch (getRelease())
+ {
+ case 1: dbDefKeys[1] = DB_UDB_VERSION_10_5; break;
+ default: dbDefKeys[1] = DB_UDB_VERSION_10_1;
+ }
+ break;
+ case 9:
+ switch (getRelease())
+ {
+ case 1: dbDefKeys[1] = DB_UDB_VERSION_9_5; break;
+ default: dbDefKeys[1] = DB_UDB_VERSION_9;
+ }
+ break;
+ default:
+ switch (getRelease())
+ {
+ case 1: dbDefKeys[1] = DB_VERSION_8_REL_1; break;
+ default: dbDefKeys[1] = DB_VERSION_8_REL_2;
+ }
+ }
+ }
+ else if (isDB390())
+ {
+ dbDefKeys[0] = DBVersion.DB2ZSERIES;
+ switch (getVersion())
+ {
+ case 7: dbDefKeys[1] = DB_ZSERIES_VERSION_7; break;
+ case 8: if (getMod() < 5)
+ dbDefKeys[1] = DB_ZSERIES_VERSION_8_COMPAT;
+ else
+ dbDefKeys[1] = DB_ZSERIES_VERSION_8_NEWFUN;
+ break;
+ case 9: if (getMod() < 5)
+ dbDefKeys[1] = DB_ZSERIES_VERSION_9_COMPAT;
+ else
+ dbDefKeys[1] = DB_ZSERIES_VERSION_9_NEWFUN;
+ break;
+ case 10: if (getMod() < 5)
+ dbDefKeys[1] = DB_ZSERIES_VERSION_10_COMPAT;
+ else
+ dbDefKeys[1] = DB_ZSERIES_VERSION_10_NEWFUN;
+ break;
+ case 11: if (getMod() < 5)
+ dbDefKeys[1] = DB_ZSERIES_VERSION_11_COMPAT;
+ else
+ dbDefKeys[1] = DB_ZSERIES_VERSION_11_NEWFUN;
+ break;
+ default: dbDefKeys[1] = DB_ZSERIES_VERSION_8_NEWFUN;
+ }
+ }
+ else if (isDB400())
+ {
+ dbDefKeys[0] = DBVersion.DB2ISERIES;
+ if (isAtLeast(5))
+ {
+ switch (getRelease())
+ {
+ case 3: dbDefKeys[1] = DB_ISERIES_VERSION_5_REL_3; break;
+ case 4: dbDefKeys[1] = DB_ISERIES_VERSION_5_REL_4; break;
+ default: dbDefKeys[1] = DB_ISERIES_VERSION_5_REL_4;
+ }
+ }
+ }
+ else if (isIBMCloudscape() || isDerby())
+ {
+ dbDefKeys[0] = DBVersion.IBMCLOUDSCAPE;
+ if (isExactly(10))
+ dbDefKeys[1] = DB_CLOUDSCAPE_VERSION_10_REL_0;
+ }
+ return dbDefKeys;
+ }
+
+ /**
+ * Normalizes the product and version to match the name
+ * of the DatabaseDefinition xmi files.
+ * @return A name in the form: "product_version.zmi."
+ */
+ public String normalizeDatabaseDefinitionName()
+ {
+ ReuseStringBuffer dbDefName = ReuseStringBuffer.getBuffer();
+ if (isUNO())
+ {
+ dbDefName.append(DBVersion.DB2UDB).append('_');
+ switch (getVersion())
+ {
+ case 9:
+ switch (getRelease())
+ {
+ case 1: dbDefName.append("9.5"); break; //$NON-NLS-1$
+ default: dbDefName.append("9.1"); //$NON-NLS-1$
+ }
+ break;
+ default: // 8
+ switch (getRelease())
+ {
+ case 1: dbDefName.append("8.1"); break; //$NON-NLS-1$
+ default: dbDefName.append("8.2"); //$NON-NLS-1$
+ }
+ }
+ }
+ else if (isDB390())
+ {
+ dbDefName.append(DBVersion.DB2ZSERIES).append('_');
+ switch (getVersion())
+ {
+ case 7: dbDefName.append("7"); break; //$NON-NLS-1$
+ case 8: if (getMod() < 5)
+ dbDefName.append("8 (Compatibility Mode)"); //$NON-NLS-1$
+ else
+ dbDefName.append("8 (New-Function Mode)"); //$NON-NLS-1$
+ break;
+ case 9: if (getMod() < 5)
+ dbDefName.append(DB_ZSERIES_VERSION_9_COMPAT);
+ else
+ dbDefName.append(DB_ZSERIES_VERSION_9_NEWFUN);
+ break;
+ case 10: if (getMod() < 5)
+ dbDefName.append(DB_ZSERIES_VERSION_10_COMPAT);
+ else
+ dbDefName.append(DB_ZSERIES_VERSION_10_NEWFUN);
+ break;
+ case 11: if (getMod() < 5)
+ dbDefName.append(DB_ZSERIES_VERSION_11_COMPAT);
+ else
+ dbDefName.append(DB_ZSERIES_VERSION_11_NEWFUN);
+ break;
+ }
+ }
+ else if (isDB400())
+ {
+ dbDefName.append(DBVersion.DB2ISERIES).append('_');
+ if (isAtLeast(5))
+ {
+ switch (getRelease())
+ {
+ case 3: dbDefName.append(DB_ISERIES_VERSION_5_REL_3); break;
+ // there is no 5R4 .xmi file
+// case 4: dbDefName.append(DB_ISERIES_VERSION_5_REL_4); break;
+ default: dbDefName.append(DB_ISERIES_VERSION_5_REL_3);
+ }
+ }
+ }
+ else if (isIBMCloudscape() || isDerby())
+ {
+ dbDefName.append(DBVersion.IBMCLOUDSCAPE).append('_');
+ if (isExactly(10))
+ dbDefName.append(DB_CLOUDSCAPE_VERSION_10_REL_0);
+ }
+
+ dbDefName.append(".xmi"); //$NON-NLS-1$
+ return ReuseStringBuffer.toString(dbDefName);
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DdlParser.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DdlParser.java
new file mode 100644
index 0000000..e5a9bf3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DdlParser.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.datatools.modelbase.sql.tables.Trigger;
+import org.eclipse.datatools.modelbase.sql.tables.ViewTable;
+
+public interface DdlParser {
+
+ public void parseView (ViewTable view,String viewText);
+ public void parseTrigger (Trigger trigger,String triggerText);
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactAnalyst.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactAnalyst.java
new file mode 100644
index 0000000..0792aae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactAnalyst.java
@@ -0,0 +1,775 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentService;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentServiceImpl;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.catalog.IDatabaseObject;
+import org.eclipse.datatools.enablement.ibm.ddl.DdlGenerationMessages;
+import org.eclipse.datatools.modelbase.sql.constraints.ForeignKey;
+import org.eclipse.datatools.modelbase.sql.schema.Dependency;
+import org.eclipse.datatools.modelbase.sql.schema.SQLObject;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+
+public class DependencyImpactAnalyst {
+ public static DependencyImpactAnalyst getInstance() {
+ if(DependencyImpactAnalyst.INSTANCE == null) {
+ DependencyImpactAnalyst.INSTANCE = new DependencyImpactAnalyst();
+ }
+ return DependencyImpactAnalyst.INSTANCE;
+ }
+
+ public DependencyImpactDescription[] getDirectDependencies(EObject obj) {
+ List dependencies = new ArrayList();
+ Set excluded = this.getAllContainedObjects(obj);
+
+ // extensions
+ Iterator it = this.dependencyProviders.iterator();
+ while(it.hasNext()) {
+ DependencyProvider provider = (DependencyProvider) it.next();
+ try {
+ DependencyImpactDescription[] deps = provider.getDependencies(obj);
+ if(deps != null) {
+ for(int i=0; i<deps.length; ++i) {
+ // minimum check on the desc
+ if(deps[i].getSource()[0] != null && deps[i].getTarget() != null) {
+ excluded.add(deps[i].getTarget());
+ dependencies.add(deps[i]);
+ }
+ }
+ }
+ }
+ catch(Exception e) {
+ //TODO log the error
+ it.remove();
+ }
+ }
+
+ dependencies.addAll(getDirectDependenciesInternal(obj, excluded));
+
+ // convert to an array
+ return (DependencyImpactDescription[]) dependencies.toArray(new DependencyImpactDescription[dependencies.size()]);
+ }
+
+ private List getDirectDependenciesInternal (EObject obj, Set excluded) {
+ List dependencies = new ArrayList();
+ excluded.addAll(this.getAllContainers(obj));
+ excluded.add(obj);
+
+ // modeled dependecies
+ if(obj instanceof SQLObject) {
+ Iterator it = ((SQLObject) obj).getDependencies().iterator();
+ while(it.hasNext()) {
+ Dependency dep = ((Dependency) it.next());
+ dependencies.add(this.constructDependencyImpactDescription(new EObject[] {obj}, dep.getDependencyType(), dep.getTargetEnd()));
+ excluded.add(dep.getTargetEnd());
+ }
+ }
+
+ // references
+ if(!(obj instanceof Dependency)) {
+ List vec= this.getAllReferenceDependencies(obj, excluded);
+ dependencies.addAll(vec);
+ }
+
+ return dependencies;
+ }
+
+ public DependencyImpactDescription[] getAggregateDependencies(EObject obj) {
+ Set contained = this.getAllContainedObjects(obj);
+ ArrayList dependencies = new ArrayList();
+ DependencyImpactDescription[] desc = this.getDirectDependencies(obj);
+ for(int i=0; i<desc.length; ++i) {
+ dependencies.add(desc[i]);
+ }
+
+ Iterator it = contained.iterator();
+ while(it.hasNext()) {
+ desc = this.getDirectDependencies((EObject) it.next());
+ for(int i=0; i<desc.length; ++i) {
+ if ( !contained.contains(desc[i].getTarget()) )
+ {
+ dependencies.add(desc[i]);
+ }
+ }
+ }
+
+ DependencyImpactDescription[] r = new DependencyImpactDescription[dependencies.size()];
+ it = dependencies.iterator();
+ int i = 0;
+ while(it.hasNext()) {
+ r[i++] = (DependencyImpactDescription) it.next();
+ }
+ return r;
+ }
+
+ public DependencyImpactDescription[] getDirectDependencies(EObject obj, int recursionDepth) {
+ ArrayList dependencies = new ArrayList();
+ Set excluded = this.getAllContainedObjects(obj);
+ excluded.addAll(this.getAllContainers(obj));
+ DependencyImpactDescription[] d = getDirectDependencies(obj);
+ for(int i=0; i<d.length; ++i) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getDirectDependencies(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+
+ return (DependencyImpactDescription[]) dependencies.toArray(new DependencyImpactDescription[dependencies.size()]);
+ }
+
+ public DependencyImpactDescription[] getAggregateDependencies(EObject obj, int recursionDepth) {
+ ArrayList dependencies = new ArrayList();
+ Set excluded = this.getAllContainedObjects(obj);
+ excluded.addAll(this.getAllContainers(obj));
+ DependencyImpactDescription[] d = getAggregateDependencies(obj);
+ for(int i=0; i<d.length; ++i) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getAggregateDependencies(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+
+ return (DependencyImpactDescription[]) dependencies.toArray(new DependencyImpactDescription[dependencies.size()]);
+ }
+
+ public DependencyImpactDescription[] getDirectImpacted(final EObject obj) {
+ //buildDependencyMap(obj);
+ buildDependencyMapForAll(obj);
+ //this.dumpDependencyMap();
+ DependencyImpactDescription[] r = getDirectImpactedInternal(obj);
+ clearDependencyMap();
+ return r;
+ }
+
+ public DependencyImpactDescription[] getDirectImpacted2(final EObject obj) {
+ buildDependencyMapForAll(obj);
+ DependencyImpactDescription[] r = getDirectImpactedInternal(obj);
+ return r;
+ }
+
+ private void buildDependencyMapForAll(final EObject selectedObj) {
+ if(this.dependencyMap != null) return;
+ this.dependencyMap = new HashMap();
+ if(selectedObj instanceof ICatalogObject) {
+ return;
+ }
+//<bgp else {
+// ResourceSet rs = IBMPluginActivator.getInstance().getResourceSet();
+// try {
+// Iterator rsItor = rs.getResources().iterator();
+// while(rsItor.hasNext()) {
+// Resource r = (Resource)rsItor.next();
+// EList contents = r.getContents();
+// if(contents.size() > 0) {
+// Object obj = contents.get(0);
+// //(JYEH) added this check for compare and sync which creates a resource for
+// //catalog objects and the resource will show up in the list of resources
+// if (obj instanceof ICatalogObject) continue;
+// if(obj instanceof SQLObject) {
+// buildDependencyMap((EObject)obj);
+// }
+// }
+// }
+// }
+// catch (ConcurrentModificationException e) {
+// // When copying changes in the compare editor, it is
+// // possible to incur this exception, which will result
+// // in a failure to copy the complete set of changes.
+// // Catch this and suppress it to prevent copy errors.
+// }
+//bgp> }
+ }
+
+ private void buildDependencyMap(final EObject obj) {
+
+ EObject root = ContainmentServiceImpl.INSTANCE.getRootElement(obj);
+ Set elements = this.getAllContainedObjects(root);
+ elements.add(root);
+ Iterator i = elements.iterator();
+ while(i.hasNext()) {
+ EObject o = (EObject) i.next();
+ //Set excluded = this.getAllContainedObjects(o);
+ Set excluded = new HashSet();
+ Iterator depIterator = this.getDirectDependenciesInternal(o, excluded).iterator();
+ while(depIterator.hasNext()) {
+ DependencyImpactDescription desc = (DependencyImpactDescription) depIterator.next();
+ EObject target = desc.getTarget();
+ ArrayList impacted;
+ if(this.dependencyMap.containsKey(target)) {
+ impacted = (ArrayList) this.dependencyMap.get(target);
+ }
+ else {
+ impacted = new ArrayList();
+ this.dependencyMap.put(target, impacted);
+ }
+ EObject[] source = desc.getSource();
+ String type = desc.getType();
+ for(int k=0; k<source.length; ++k) {
+ impacted.add(this.constructDependencyImpactDescription(new EObject[] {target}, type, source[k]));
+ }
+
+ }
+ }
+ }
+
+ public void clearDependencyMap() {
+ this.dependencyMap = null;
+ }
+
+ private DependencyImpactDescription[] getDirectImpactedInternal(final EObject obj) {
+ ArrayList impactedVector = new ArrayList();
+
+ if(obj instanceof IDatabaseObject) {
+ //Database objects
+ IDatabaseObject dbObj = (IDatabaseObject)obj;
+ ICatalogObject[] objs = dbObj.getImpacted();
+ int len = objs.length;
+ ArrayList impacted = new ArrayList();
+ for(int i=0; i<len; i++) {
+ EObject target = (EObject)objs[i];
+ // If the impacted object is FK, use its owner table
+ if(target instanceof ForeignKey) {
+ target = ((ForeignKey)target).getBaseTable();
+ }
+ impactedVector.add(this.constructDependencyImpactDescription(new EObject[] {obj},
+ DependencyImpactMessages.DependencyImpactAnalyst_REFERENCE,
+ target));
+ }
+ }
+ else {
+ //model objects
+ // extensions
+ Iterator it = this.impactProviders.iterator();
+ while(it.hasNext()) {
+ ImpactProvider provider = (ImpactProvider) it.next();
+ try {
+ DependencyImpactDescription[] impacted = provider.getImpacted(obj);
+ if(impacted != null) {
+ for(int m=0; m<impacted.length; ++m) {
+ // minimum check on the desc
+ if(impacted[m].getSource()[0] != null && impacted[m].getTarget() != null) {
+ impactedVector.add(impacted[m]);
+ }
+ }
+ }
+ }
+ catch(Exception e) {
+ it.remove();
+ IBMPluginActivator.getInstance().writeLog(IStatus.ERROR, 0, e.getMessage(), e);
+ }
+ }
+
+ Object c = this.dependencyMap.get(obj);
+ if(c != null) {
+ impactedVector.addAll((ArrayList) c);
+ }
+ }
+
+ return (DependencyImpactDescription[]) impactedVector.toArray(new DependencyImpactDescription[impactedVector.size()]);
+ }
+
+ public DependencyImpactDescription[] getAggregateImpacted(final EObject obj) {
+ //buildDependencyMap(obj);
+ buildDependencyMapForAll(obj);
+
+ Set contained = this.getAllContainedObjects(obj);
+ // Use lists to handle duplicate targets
+ ArrayList keys = new ArrayList();
+ ArrayList values = new ArrayList();
+ DependencyImpactDescription[] desc = this.getDirectImpactedInternal(obj);
+ for(int i=0; i<desc.length; ++i) {
+ keys.add(desc[i].getTarget());
+ values.add(desc[i]);
+ }
+
+ Iterator it = contained.iterator();
+ while(it.hasNext()) {
+ desc = this.getDirectImpactedInternal((EObject) it.next());
+ for(int i=0; i<desc.length; ++i) {
+ if(!contained.contains(desc[i].getTarget())) {
+ keys.add(desc[i].getTarget());
+ values.add(desc[i]);
+ }
+ }
+ }
+
+ DependencyImpactDescription[] r = new DependencyImpactDescription[keys.size()];
+ it = values.iterator();
+ int i = 0;
+ while(it.hasNext()) {
+ r[i++] = (DependencyImpactDescription) it.next();
+ }
+
+ clearDependencyMap();
+
+ return r;
+ }
+
+ public DependencyImpactDescription[] getDirectImpacted(final EObject obj, int recursionDepth) {
+ //buildDependencyMap(obj);
+ buildDependencyMapForAll(obj);
+ // test
+ //this.dumpDependencyMap();
+
+ ArrayList dependencies = new ArrayList();
+ Set excluded = this.getAllContainedObjects(obj);
+ excluded.addAll(this.getAllContainers(obj));
+ DependencyImpactDescription[] d = getDirectImpactedInternal(obj);
+ for(int i=0; i<d.length; ++i) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getDirectImpacted(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+
+ DependencyImpactDescription[] r= (DependencyImpactDescription[]) dependencies.toArray(new DependencyImpactDescription[dependencies.size()]);
+
+ clearDependencyMap();
+
+ return r;
+ }
+
+ public DependencyImpactDescription[] getAggregateImpacted(final EObject obj, int recursionDepth) {
+ //buildDependencyMap(obj);
+ buildDependencyMapForAll(obj);
+ // test
+ //this.dumpDependencyMap();
+
+ ArrayList dependencies = new ArrayList();
+ Set excluded = this.getAllContainedObjects(obj);
+ excluded.addAll(this.getAllContainers(obj));
+ DependencyImpactDescription[] d = getAggregateImpacted(obj);
+ for(int i=0; i<d.length; ++i) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getAggregateImpacted(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+
+
+ DependencyImpactDescription[] r= (DependencyImpactDescription[]) dependencies.toArray(new DependencyImpactDescription[dependencies.size()]);
+
+ clearDependencyMap();
+
+ return r;
+ }
+
+ private Set getAllContainedObjects(EObject obj) {
+ Set children = new HashSet();
+ ContainmentService service = IBMPluginActivator.getInstance().getContainmentService();
+ Iterator it = service.getContainedDisplayableElements(obj).iterator();
+ while(it.hasNext()) {
+ EObject child = (EObject) it.next();
+ if(child instanceof SQLObject) {
+ children.add(child);
+ children.addAll(this.getAllContainedObjects(child));
+ }
+ }
+ return children;
+ }
+
+ private Set getAllContainers(EObject obj) {
+ Set containers = new HashSet();
+ containers.addAll(ContainmentServiceImpl.INSTANCE.getAllContainers(obj));
+ return containers;
+ }
+
+ private ArrayList getAllReferenceDependencies(EObject obj, Set excluded) {
+ ArrayList deps = this.getReferenceDependencies(obj, excluded, obj);
+ Iterator it = this.getAllInvisibleChildren(obj).iterator();
+ while(it.hasNext()) {
+ EObject child = (EObject) it.next();
+ if(child instanceof SQLObject) {
+ deps.addAll(this.getReferenceDependencies(child, excluded, obj));
+ }
+ }
+ return deps;
+ }
+
+ private ArrayList getReferenceDependencies(EObject obj, Set excluded, EObject source) {
+ ContainmentService service = IBMPluginActivator.getInstance().getContainmentService();
+ ArrayList deps = new ArrayList();
+
+ EClass eClass = obj.eClass();
+ Iterator references = eClass.getEAllReferences().iterator();
+ while(references.hasNext()) {
+ EReference reference = (EReference) references.next();
+ //if(!reference.isContainment()) {//??
+ if(reference.getEOpposite() == null) { // directional
+ if(reference.isMany()) {
+ Iterator it = ((Collection) obj.eGet(reference)).iterator();
+ while(it.hasNext()) {
+ Object t = it.next();
+ if(t instanceof Dependency) {
+ // obj doesn't reference Dependency itself, it reference the target end of Dependency
+ t = ((Dependency)t).getTargetEnd();
+ }
+ if(t instanceof SQLObject && !excluded.contains(t)) {
+ EObject target = (EObject) t;
+ EObject container = service.getContainer(target);
+ if(/*container != null &&*/ service.isDisplayableElement(target)) {
+ excluded.add(target);
+ deps.add(this.constructDependencyImpactDescription(new EObject[] {source}, DependencyImpactMessages.DependencyImpactAnalyst_REFERENCE, target));
+ }
+ }
+ }
+ }
+ else {
+ Object t = obj.eGet(reference);
+ if(t instanceof SQLObject && !excluded.contains(t)) {
+ EObject target = (EObject) t;
+ EObject container = service.getContainer(target);
+ if(/*container != null &&*/ service.isDisplayableElement(target)) {
+ excluded.add(target);
+ deps.add(this.constructDependencyImpactDescription(new EObject[] {source}, DependencyImpactMessages.DependencyImpactAnalyst_REFERENCE, target));
+ }
+ }
+ }
+ }
+ else { // bidirectional
+ if(!reference.isMany()) {
+ // use impact extension to replace these
+// Object t = obj.eGet(reference);
+// if(t instanceof EObject && !excluded.contains(t)) {
+// if( (obj instanceof ForeignKey) ||
+// (isLogicalGeneralization(obj)) ||
+// (isLogicalRelationshipEnd(obj))) {
+// // handle relationship, generalization and FK special cases
+// EObject target = (EObject) t;
+// EObject container = service.getContainer(target);
+// EObject objContainer = service.getContainer(obj);
+// if(container != null
+// && service.isDisplayableElement(target)
+// && (!target.equals(objContainer))
+// && (!((source instanceof ForeignKey) && (target instanceof BaseTable) && (!objContainer.equals(target))))) {// remove FK to Parent table reference
+// excluded.add(target);
+// EObject displayedSource = service.getContainer(source);
+// EObject displayedTarget;
+// if(target instanceof PrimaryKey) {
+// displayedTarget = service.getContainer(target);
+// }
+// else
+// displayedTarget = target;
+// deps.add(this.constructDependencyImpactDescription(new EObject[] {displayedSource}, Messages.DependencyImpactAnalyst_REFERENCE, displayedTarget));
+// //deps.add(this.constructDependencyImpactDescription(new EObject[] {displayedTarget}, Messages.getString("DependencyImpactAnalyst.REFERENCE"), displayedSource)); //$NON-NLS-1$
+// }
+// }
+// }
+ }
+ if(reference.isMany()) {// bidirectional many
+ if(!reference.isMany()) {
+ Object t = obj.eGet(reference);
+ if(t instanceof EObject && !excluded.contains(t)) {
+ EObject target = (EObject) t;
+ EObject container = service.getContainer(target);
+ if(container != null && service.isDisplayableElement(target)) {
+ excluded.add(target);
+ deps.add(this.constructDependencyImpactDescription(new EObject[] {source}, DependencyImpactMessages.DependencyImpactAnalyst_REFERENCE, target));
+ }
+ }
+ }
+// Iterator it = ((Collection) obj.eGet(reference)).iterator();
+// while(it.hasNext()) {
+// Object t = it.next();
+// if(t instanceof SQLObject && !excluded.contains(t)) {
+// EObject target = (EObject) t;
+// EObject container = service.getContainer(target);
+// if(/*container != null &&*/ service.isDisplayableElement(target) &&
+// (!((source instanceof PrimaryKey) && (target instanceof ForeignKey))) && //need to remove PK to FK dependency
+// (!((source instanceof BaseTable) && (target instanceof ForeignKey) && (!container.equals(source)))) ) {//need to remove Parent table to FK reference as dependency
+// excluded.add(target);
+// deps.add(this.constructDependencyImpactDescription(new EObject[] {source}, Messages.getString("DependencyImpactAnalyst.REFERENCE"), target)); //$NON-NLS-1$
+// }
+// }
+// }
+ }
+ }
+ //}
+ }
+ return deps;
+ }
+
+ // Since the dependency to Logical model can NOT be introduced, use the getMethod to identify the types
+ private boolean isLogicalRelationshipEnd(EObject obj) {
+ try {
+ Method m = obj.getClass().getMethod("getVerbPhrase", null);
+ if(m != null)
+ return true;
+ }
+ catch(NoSuchMethodException exp) {
+ }
+ return false;
+ }
+
+ private boolean isLogicalGeneralization(EObject obj) {
+ try {
+ Method m = obj.getClass().getMethod("getSupertype", null);
+ if(m != null)
+ return true;
+ }
+ catch(NoSuchMethodException exp) {
+ }
+ return false;
+ }
+
+ private ArrayList getAllInvisibleChildren(EObject obj) {
+ ArrayList children = this.getInvisibleChildren(obj);
+ int size = children.size();
+ for(int i=0; i<size; ++i) {
+ children.addAll(this.getAllInvisibleChildren((EObject) children.get(i)));
+ }
+ return children;
+ }
+
+ private ArrayList getInvisibleChildren(EObject obj) {
+ ArrayList children = new ArrayList();
+ ContainmentService service = IBMPluginActivator.getInstance().getContainmentService();
+ Set excluded = new HashSet();
+ excluded.addAll(service.getContainedDisplayableElements(obj));
+
+ Iterator it = service.getContainedElements(obj).iterator();
+ while(it.hasNext()) {
+ Object child = it.next();
+ if(!excluded.contains(child)) {
+ children.add(child);
+ }
+ }
+ return children;
+ }
+
+ private DependencyImpactDescription constructDependencyImpactDescription(final EObject[] source, final String type, final EObject target) {
+ return new DependencyImpactDescription() {
+ public EObject getTarget() {
+ return target;
+ }
+
+ public EObject[] getSource() {
+ return source;
+ }
+
+ public String getType() {
+ return type;
+ }
+ };
+ }
+
+ private ArrayList getDirectDependencies(final EObject obj, int recursionDepth, Set excluded) {
+ ArrayList dependencies = new ArrayList();
+ ArrayList excludedDependencies = new ArrayList();
+ if(recursionDepth-- == 0) return dependencies;
+
+ DependencyImpactDescription[] d = this.getDirectDependencies(obj);
+ for(int i=0; i<d.length; ++i) {
+ if(!excluded.contains(d[i].getTarget())) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+ else {
+ excludedDependencies.add(d[i]);
+ }
+ }
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getDirectDependencies(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+ dependencies.addAll(excludedDependencies);
+
+ return dependencies;
+ }
+
+ private ArrayList getAggregateDependencies(final EObject obj, int recursionDepth, Set excluded) {
+ ArrayList dependencies = new ArrayList();
+ ArrayList excludedDepencencies = new ArrayList();
+ if(recursionDepth-- == 0) return dependencies;
+
+ DependencyImpactDescription[] d = this.getAggregateDependencies(obj);
+ for(int i=0; i<d.length; ++i) {
+ if(!excluded.contains(d[i].getTarget())) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+ else {
+ excludedDepencencies.add(d[i]);
+ }
+ }
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getAggregateDependencies(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+ dependencies.addAll(excludedDepencencies);
+
+ return dependencies;
+ }
+
+ private ArrayList getDirectImpacted(final EObject obj, int recursionDepth, Set excluded) {
+ ArrayList dependencies = new ArrayList();
+ ArrayList excludedDepencencies = new ArrayList();
+ if(recursionDepth-- == 0) return dependencies;
+
+ DependencyImpactDescription[] d = this.getDirectImpactedInternal(obj);
+ for(int i=0; i<d.length; ++i) {
+ if(!excluded.contains(d[i].getTarget())) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+ else {
+ excludedDepencencies.add(d[i]);
+ }
+ }
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getDirectImpacted(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+ dependencies.addAll(excludedDepencencies);
+
+ return dependencies;
+ }
+
+ private ArrayList getAggregateImpacted(final EObject obj, int recursionDepth, Set excluded) {
+ ArrayList dependencies = new ArrayList();
+ ArrayList excludedDependencies = new ArrayList();
+ if(recursionDepth-- == 0) return dependencies;
+
+ DependencyImpactDescription[] d = this.getAggregateImpacted(obj);
+ for(int i=0; i<d.length; ++i) {
+ if(!excluded.contains(d[i].getTarget())) {
+ dependencies.add(d[i]);
+ excluded.add(d[i].getTarget());
+ }
+ else {
+ excludedDependencies.add(d[i]);
+ }
+ }
+ int size = dependencies.size();
+ for(int i=0; i<size; ++i) {
+ dependencies.addAll(this.getAggregateImpacted(((DependencyImpactDescription) dependencies.get(i)).getTarget(), recursionDepth, excluded));
+ }
+ dependencies.addAll(excludedDependencies);
+
+ return dependencies;
+ }
+
+ private void initProviders() {
+ IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "dependencyExtension"); //$NON-NLS-1$ //$NON-NLS-2$
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("dependency")) { //$NON-NLS-1$
+ DependencyProvider provider = null;
+ try {
+ provider = (DependencyProvider) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ continue;
+ }
+ this.dependencyProviders.add(provider);
+ }
+ }
+ }
+
+ extensionPoint = pluginRegistry.getExtensionPoint("com.ibm.datatools.core", "impactExtension"); //$NON-NLS-1$ //$NON-NLS-2$
+ extensions = extensionPoint.getExtensions();
+ for(int i=0; i<extensions.length; ++i) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+ for(int j=0; j<configElements.length; ++j) {
+ if(configElements[j].getName().equals("impact")) { //$NON-NLS-1$
+ ImpactProvider provider = null;
+ try {
+ provider = (ImpactProvider) configElements[j].createExecutableExtension("provider"); //$NON-NLS-1$
+ }
+ catch(CoreException e) {
+ continue;
+ }
+ this.impactProviders.add(provider);
+ }
+ }
+ }
+ }
+
+ private DependencyImpactAnalyst() {
+ this.initProviders();
+ }
+
+ private void dumpDependencyMap() {
+ Set keySet = dependencyMap.keySet();
+ Iterator keyItor = keySet.iterator();
+ Object keyObj;
+ ArrayList values;
+ while(keyItor.hasNext()) {
+ keyObj = keyItor.next();
+ System.out.println("key = " + ((SQLObject)keyObj).eClass().getName() + " " + ((SQLObject)keyObj).getName());
+ values = (ArrayList)dependencyMap.get(keyObj);
+ Iterator valItor = values.iterator();
+ while(valItor.hasNext()) {
+ DependencyImpactDescription d = (DependencyImpactDescription)valItor.next();
+ EObject eVal = d.getTarget();
+ if(eVal instanceof SQLObject) {
+ SQLObject val = (SQLObject)eVal;
+ System.out.println("\t" + "target = " + val.eClass().getName() + " " + val.getName());
+ }
+ else {
+ System.out.println("\t" + "target = " + eVal.getClass().getName());
+ }
+ Object[] srcs = d.getSource();
+ for(int i=0; i<srcs.length; i++) {
+ Object src = srcs[i];
+ if(src instanceof SQLObject) {
+ System.out.println("\t" + "source = " + ((SQLObject)src).eClass().getName() + " " + ((SQLObject)src).getName());
+ }
+ else {
+ System.out.println("\t" + "source = " + ((SQLObject)src).getClass().getName());
+ }
+ }
+ }
+ }
+ }
+
+ private static DependencyImpactAnalyst INSTANCE = null;
+ private ArrayList dependencyProviders = new ArrayList();
+ private ArrayList impactProviders = new ArrayList();
+ private Map dependencyMap = null;
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactDescription.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactDescription.java
new file mode 100644
index 0000000..b1fb4a5
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactDescription.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.emf.ecore.EObject;
+
+public interface DependencyImpactDescription {
+ public static final DependencyImpactDescription[] EMPTY_DESCS = new DependencyImpactDescription[] {};
+ public EObject getTarget();
+ public EObject[] getSource();
+ public String getType();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactMessages.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactMessages.java
new file mode 100644
index 0000000..3335122
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactMessages.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.osgi.util.NLS;
+
+public final class DependencyImpactMessages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.datatools.enablement.ibm.uti.DependencyImpactMessages";//$NON-NLS-1$
+
+ private DependencyImpactMessages() {
+ // Do not instantiate
+ }
+
+ public static String DependencyImpactAnalyst_REFERENCE;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, DependencyImpactMessages.class);
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactMessages.properties b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactMessages.properties
new file mode 100644
index 0000000..07013ca
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyImpactMessages.properties
@@ -0,0 +1,3 @@
+# NLS_MESSAGEFORMAT_VAR needed to handle quotes correctly
+
+DependencyImpactAnalyst_REFERENCE=Reference
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyProvider.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyProvider.java
new file mode 100644
index 0000000..7007991
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/DependencyProvider.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.emf.ecore.EObject;
+
+public interface DependencyProvider {
+ public DependencyImpactDescription[] getDependencies(EObject object);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/EngineeringOptionCategoryID.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/EngineeringOptionCategoryID.java
new file mode 100644
index 0000000..d722cac
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/EngineeringOptionCategoryID.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 20011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+public class EngineeringOptionCategoryID extends org.eclipse.datatools.connectivity.sqm.internal.core.rte.EngineeringOptionCategoryID {
+
+ public final static String XMLSCHEMA_CONTROLS = "XMLSCHEMA_CONTROLS"; //$NON-NLS-1$
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/EngineeringOptionID.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/EngineeringOptionID.java
new file mode 100644
index 0000000..24a7cb2
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/EngineeringOptionID.java
@@ -0,0 +1,469 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.Set;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.EngineeringOption;
+
+ /**
+ * @author chetabha
+ *
+ */
+
+public class EngineeringOptionID extends org.eclipse.datatools.connectivity.sqm.core.definition.EngineeringOptionID {
+ public final static String GENERATE_LABELS = "GENERATE_LABELS"; //$NON-NLS-1$
+ public final static String GENERATE_SYNONYM = "GENERATE_SYNONYM"; //$NON-NLS-1$
+ public final static String GENERATE_DATABASE = "GENERATE_DATABASE"; //$NON-NLS-1$
+ public final static String GENERATE_MQT = "GENERATE_MQT"; //$NON-NLS-1$
+ public final static String GENERATE_ALIAS = "GENERATE_ALIAS"; //$NON-NLS-1$
+ public final static String GENERATE_CK_CONSTRAINTS = "GENERATE_CK_CONSTRAINTS"; //$NON-NLS-1$
+ public final static String GENERATE_BUFFERPOOL = "GENERATE_BUFFERPOOL"; //$NON-NLS-1$
+ public final static String GENERATE_PARTITIONGROUP = "GENERATE_PARTITIONGROUP"; //$NON-NLS-1$
+ public final static String GENERATE_STORAGEGROUP = "GENERATE_STORAGEGROUP"; //$NON-NLS-1$
+ public final static String GENERATE_SCHEMAS = "GENERATE_SCHEMAS"; //$NON-NLS-1$
+ public final static String GENERATE_WRAPPER = "GENERATE_WRAPPER"; //$NON-NLS-1$
+ public final static String GENERATE_REMOTESERVER = "GENERATE_REMOTESERVER"; //$NON-NLS-1$
+ public final static String GENERATE_USERMAPPING = "GENERATE_USERMAPPING"; //$NON-NLS-1$
+ public final static String GENERATE_NICKNAME = "GENERATE_NICKNAME"; //$NON-NLS-1$
+ public final static String GENERATE_OLAP = "GENERATE_OLAP"; //$NON-NLS-1$
+ // fsp - pyl
+ public final static String GENERATE_FEDERATEDPROCEDURES = "GENERATE_FEDERATEDPROCEDURES"; //$NON-NLS-1$
+ public final static String GENERATE_PACKAGE = "GENERATE_PACKAGE"; //$NON-NLS-1$
+ public final static String GENERATE_PACKAGE_BODY = "GENERATE_PACKAGE_BODY"; //$NON-NLS-1$
+ public final static String GENERATE_BACKUP_TABLE = "GENERATE_BACKUP_TABLE"; //$NON-NLS-1$
+ public final static String GENERATE_STATISTICS = "GENERATE_STATISTICS"; //$NON-NLS-1$
+ public final static String GENERATE_ROLE = "GENERATE_ROLE"; //$NON-NLS-1$
+ public final static String GENERATE_USER = "GENERATE_USER"; //$NON-NLS-1$
+ public final static String GENERATE_GROUP = "GENERATE_GROUP"; //$NON-NLS-1$
+ public final static String GENERATE_XMLSCHEMA = "GENERATE_XMLSCHEMA"; //$NON-NLS-1$
+ public final static String XMLSCHEMA_CONNECTION_NAME = "XMLSCHEMA_CONNECTION_NAME"; //$NON-NLS-1$
+ public final static String XMLSCHEMA_DIRECTORY = "XMLSCHEMA_DIRECTORY"; //$NON-NLS-1$
+ public final static String GENERATE_SECURITY_POLICY = "GENERATE_SECURITY_POLICY"; //$NON-NLS-1$
+
+ public final static String GENERATE_FULLY_QUALIFIED_NAME = "GENERATE_FULLY_QUALIFIED_NAME"; //$NON-NLS-1$
+ public final static String GENERATE_QUOTED_IDENTIFIER = "GENERATE_QUOTED_IDENTIFIER"; //$NON-NLS-1$
+ public final static String GENERATE_DROP_STATEMENTS = "GENERATE_DROP_STATEMENTS"; //$NON-NLS-1$
+ public final static String GENERATE_CREATE_STATEMENTS = "GENERATE_CREATE_STATEMENTS"; //$NON-NLS-1$
+ public final static String GENERATE_COMMENTS = "GENERATE_COMMENTS"; //$NON-NLS-1$
+ public final static String GENERATE_IN_TABLESPACE_CLAUSE = "GENERATE_IN_TABLESPACE_CLAUSE"; //$NON-NLS-1$
+ public final static String GENERATE_ON_FILEGROUP_CLAUSE = "GENERATE_ON_FILEGROUP_CLAUSE"; //$NON-NLS-1$
+ public final static String GENERATE_USE_DOMAIN_IF_EXIST = "USE_DOMAIN_IF_EXIST"; //$NON-NLS-1$
+ public final static String GENERATE_CREATE_OR_REPLACE = "CREATE_OR_REPLACE"; //$NON-NLS-1$
+ public final static String GENERATE_TABLES = "GENERATE_TABLES"; //$NON-NLS-1$
+ public final static String GENERATE_TABLESPACES = "GENERATE_TABLESPACES"; //$NON-NLS-1$
+ public final static String GENERATE_FILEGROUPS = "GENERATE_FILEGROUPS"; //$NON-NLS-1$
+ public final static String GENERATE_INDICES = "GENERATE_INDICES"; //$NON-NLS-1$
+ public final static String GENERATE_STOREDPROCEDURES = "GENERATE_STOREDPROCEDURES"; //$NON-NLS-1$
+ public final static String GENERATE_FUNCTIONS = "GENERATE_FUNCTIONS"; //$NON-NLS-1$
+ public final static String GENERATE_VIEWS = "GENERATE_VIEWS"; //$NON-NLS-1$
+ public final static String GENERATE_TRIGGERS = "GENERATE_TRIGGERS"; //$NON-NLS-1$
+ public final static String GENERATE_SEQUENCES = "GENERATE_SEQUENCES"; //$NON-NLS-1$
+ public final static String GENERATE_USER_DEFINED_TYPE = "GENERATE_USER_DEFINED_TYPE"; //$NON-NLS-1$
+ public final static String GENERATE_ENFORCED_CONSTRAINTS = "GENERATE_ENFORCED_CONSTRAINTS"; //$NON-NLS-1$
+ public final static String GENERATE_PK_CONSTRAINTS = "GENERATE_PK_CONSTRAINTS"; //$NON-NLS-1$
+ public final static String GENERATE_FK_CONSTRAINTS = "GENERATE_FK_CONSTRAINTS"; //$NON-NLS-1$
+ public final static String GENERATE_PRIVILEGE = "GENERATE_PRIVILEGE"; //$NON-NLS-1$
+ public final static String CHECK_MODEL = "CHECK_MODEL"; //$NON-NLS-1$
+ public final static String GENERATE_MODULE = "GENERATE_MODULE"; //$NON-NLS-1$
+ public final static String GENERATE_MODULE_CONDITION = "GENERATE_CONDITION"; //$NON-NLS-1$
+ public final static String GENERATE_GLOBAL_VARIABLE = "GENERATE_GLOBAL_VARIABLE"; //$NON-NLS-1$
+ public final static String GENERATE_HISTORY_TABLE = "GENERATE_HISTORY_TABLE"; //$NON-NLS-1$
+ public final static String DROP_RESTRICT = "DROP_RESTRICT"; //$NON-NLS-1$
+ public final static String GENERATE_ROW_PERMISSIONS = "GENERATE_ROW_PERMISSIONS"; //$NON-NLS-1$
+ public final static String GENERATE_COLUMN_MASKS = "GENERATE_COLUMN_MASKS"; //$NON-NLS-1$
+ public final static String GENERATE_TEMPORARY_TABLES = "GENERATE_TEMPORARY_TABLES"; //$NON-NLS-1$
+ public final static String GENERATE_DOMAIN = "GENERATE_DOMAIN"; //$NON-NLS-1$
+
+ public static boolean checkModel(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.CHECK_MODEL, options);
+ }
+
+ public static boolean generateDropStatement(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_DROP_STATEMENTS, options);
+ }
+
+ public static boolean generateTemporaryTables(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_TEMPORARY_TABLES, options);
+ }
+
+ // Data Preservation
+ public static boolean generateBackupStatement(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_BACKUP_TABLE, options);
+ }
+ // End Data Preservation
+
+ public static boolean generateCreateStatement(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_CREATE_STATEMENTS, options);
+ }
+
+ public static boolean generateCommentStatement(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_COMMENTS, options);
+ }
+
+ public static boolean generateLabelStatement(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_LABELS, options);
+ }
+
+ public static boolean generateGrantStatement(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_PRIVILEGE, options);
+ }
+
+ public static boolean generateRevokeStatement(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_PRIVILEGE, options);
+ }
+
+ public static boolean generateDatabase(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_DATABASE, options);
+ }
+
+ public static boolean generateSchemas(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_SCHEMAS, options);
+ }
+
+ public static boolean generateInTablespaceClause(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_IN_TABLESPACE_CLAUSE, options);
+ }
+
+ public static boolean generateOnFileGroupClause(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_ON_FILEGROUP_CLAUSE, options);
+ }
+
+ public static boolean useDomain(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_USE_DOMAIN_IF_EXIST, options);
+ }
+
+ public static boolean generateCreateOrReplace(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_CREATE_OR_REPLACE, options);
+ }
+
+ public static boolean generateQuotedIdentifiers(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_QUOTED_IDENTIFIER, options);
+ }
+
+ public static boolean generateFullyQualifiedNames(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.GENERATE_FULLY_QUALIFIED_NAME, options);
+ }
+
+ public static boolean generatePartitionGroup(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_PARTITIONGROUP, options);
+ }
+
+ public static boolean generateStorageGroups(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_STORAGEGROUP, options);
+ }
+
+ public static boolean generateBufferPool(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_BUFFERPOOL, options);
+ }
+
+ public static boolean generateAliases(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_ALIAS, options);
+ }
+
+ public static boolean generateSynonyms(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_SYNONYM, options);
+ }
+
+ public static boolean generateTables(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_TABLES, options);
+ }
+
+ public static boolean generateMQTs(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_MQT, options);
+ }
+
+ public static boolean generateTablespaces(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_TABLESPACES, options);
+ }
+ public static boolean generateFileGroups(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_FILEGROUPS, options);
+ }
+
+ public static boolean generateIndexes(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_INDICES, options);
+ }
+
+ public static boolean generateStoredProcedures(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_STOREDPROCEDURES, options);
+ }
+
+ // fsp - pyl
+ public static boolean generateFederatedProcedures(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES, options);
+ }
+
+ public static boolean generateViews(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_VIEWS, options);
+ }
+
+ public static boolean generateTriggers(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_TRIGGERS, options);
+ }
+
+ public static boolean generateSequences(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_SEQUENCES, options);
+ }
+
+ public static boolean generateFunctions(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_FUNCTIONS, options);
+ }
+
+ public static boolean generateUserDefinedTypes(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE, options);
+ }
+
+ public static boolean generateDomains(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_DOMAIN, options);
+ }
+
+ public static boolean generateCKConstraints(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_CK_CONSTRAINTS, options);
+ }
+ public static boolean generatePKConstraints(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_PK_CONSTRAINTS, options);
+ }
+ public static boolean generateFKConstraints(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_FK_CONSTRAINTS, options);
+ }
+ public static boolean generatePacakges(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_PACKAGE, options);
+ }
+ public static boolean generatePacakgeBodys(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_PACKAGE_BODY, options);
+ }
+ public static boolean generateStatistics(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_STATISTICS, options);
+ }
+ public static boolean generateRoles(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_ROLE, options);
+ }
+ public static boolean generateUsers(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_USER, options);
+ }
+ public static boolean generateGroups(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_GROUP, options);
+ }
+ public static boolean generateModules(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_MODULE, options);
+ }
+ public static boolean generateModuleConditions(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_MODULE_CONDITION, options);
+ }
+ public static boolean generateGlobalVariables(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_GLOBAL_VARIABLE, options);
+ }
+ public static boolean generateHistoryTable(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_HISTORY_TABLE, options);
+ }
+ public static boolean generateXMLSchema(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_XMLSCHEMA, options);
+ }
+ public static String xmlSchemaConnectionName(EngineeringOption[] options){
+ return getStringOptionByName(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME, options);
+ }
+ public static String xmlSchemaDirectory(EngineeringOption[] options){
+ return getStringOptionByName(EngineeringOptionID.XMLSCHEMA_DIRECTORY, options);
+ }
+ public static boolean generateSecurityPolicy(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_SECURITY_POLICY, options);
+ }
+ public static boolean dropRestrict(EngineeringOption[] options) {
+ return getOptionValueByID(EngineeringOptionID.DROP_RESTRICT, options);
+ }
+ public static boolean generateRowPermissions(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_ROW_PERMISSIONS, options);
+ }
+ public static boolean generateColumnMasks(EngineeringOption[] options){
+ return getOptionValueByID(EngineeringOptionID.GENERATE_COLUMN_MASKS, options);
+ }
+ public static String getStringOptionByName(String optionName, EngineeringOption[] options) {
+ String ret = null;
+ for (int i = 0; i < options.length; i++){
+ EngineeringOption option = options[i];
+ if (option != null && option.getOptionName().equals(optionName)) {
+ ret = option.getString();
+ break;
+ }
+ }
+ return ret;
+ }
+
+ public static boolean getOptionValue(String optionName, EngineeringOption[] options){
+ boolean ret = false;
+ for (int i = 0; i < options.length; i++){
+ EngineeringOption option = (EngineeringOption) options[i];
+ if (option != null && option.getOptionName().equals(optionName)) { //@d00058820gs
+ ret = option.getBoolean();
+ break;
+ }
+ }
+ return ret;
+ }
+
+ public static final long DATABASE = 1;
+ public static final long TABLE = 2;
+ public static final long NICKNAME = 4;
+ public static final long SERVER = 8;
+ public static final long WRAPPER = 16;
+ public static final long USER_MAPPING = 32;
+ public static final long OLAP_OBJECT = 64;
+ public static final long TABLESPACE = 128;
+ public static final long INDEX = 256;
+ public static final long PROCEDURE = 512;
+ public static final long USER_DEFINED_FUNCTION = 1024;
+ public static final long VIEW = 2048;
+ public static final long TRIGGER = 4096;
+ public static final long SEQUENCE = 8192;
+ public static final long USER_DEFINED_TYPE = 16384;
+ public static final long UNIQUE_CONSTRAINT = 32768;
+ public static final long MATERIALIZED_QUERY_TABLE = 65536;
+ public static final long ALIAS = 131072;
+ public static final long CHECK_CONSTRAINT = 262144;
+ public static final long FOREIGN_KEY = 524288;
+ public static final long BUFFER_POOL = 1048576;
+ public static final long PARTITION_GROUP = 2097152;
+ public static final long SCHEMA = 4194304;
+ public static final long DISTINCT_USER_DEFINED_TYPE = 8388608;
+ public static final long STRUCTURED_USER_DEFINED_TYPE = 16777216;
+ public static final long SYNONYM = 33554432;
+ public static final long STORAGE_GROUP = 67108864;
+ public static final long PRIVILEGE = 134217728;
+ public static final long FEDERATEDPROCEDURE = 268435456; // fsp - pyl
+ public static final long PACKAGE = 536870912;
+ public static final long PACKAGE_BODY = 1073741824;
+ public static final long BACKUP_TABLE = new Long("2147483648").longValue(); // Data Preservation
+ public static final long COLUMN = new Long("4294967296").longValue();
+ public static final long STATISTICS = new Long("8589934592").longValue();
+ public static final long ROLE = new Long("17179869184").longValue();
+ public static final long MODULE = new Long("34359738368").longValue();
+ public static final long MODULE_CONDITION = new Long("68719476736").longValue();
+ public static final long GLOBAL_VARIABLE = new Long("137438953472").longValue();
+ public static final long HISTORY_TABLE = new Long("274877906944").longValue();
+ public static final long XMLSCHEMA = new Long("549755813888").longValue();
+ public static final long FILEGROUP = new Long("1099511627776").longValue();
+ public static final long SECURITY_POLICY = new Long("2199023255552").longValue();
+ public static final long ROW_PERMISSIONS = new Long("4398046511104").longValue();
+ public static final long COLUMN_MASKS = new Long("8796093022208").longValue();
+ public static final long USER = new Long("17592186044416").longValue();
+ public static final long GROUP = new Long("35184372088832").longValue();
+ public static final long TEMPORARY_TABLE = new Long("70368744177664").longValue();
+ public static final long DOMAIN = new Long("140737488355328").longValue();
+
+ /**
+ * @param s
+ * @param mask
+ */
+ public static void populateOptions(Set s, long mask) {
+ if ((mask & EngineeringOptionID.DATABASE) == EngineeringOptionID.DATABASE)
+ s.add(EngineeringOptionID.GENERATE_DATABASE);
+ if ((mask & EngineeringOptionID.TABLE) == EngineeringOptionID.TABLE)
+ s.add(EngineeringOptionID.GENERATE_TABLES);
+ if ((mask & EngineeringOptionID.NICKNAME) == EngineeringOptionID.NICKNAME)
+ s.add(EngineeringOptionID.GENERATE_NICKNAME);
+ // fsp - pyl
+ if ((mask & EngineeringOptionID.FEDERATEDPROCEDURE) == EngineeringOptionID.FEDERATEDPROCEDURE)
+ s.add(EngineeringOptionID.GENERATE_FEDERATEDPROCEDURES);
+ if ((mask & EngineeringOptionID.SERVER) == EngineeringOptionID.SERVER)
+ s.add(EngineeringOptionID.GENERATE_REMOTESERVER);
+ if ((mask & EngineeringOptionID.WRAPPER) == EngineeringOptionID.WRAPPER)
+ s.add(EngineeringOptionID.GENERATE_WRAPPER);
+ if ((mask & EngineeringOptionID.USER_MAPPING) == EngineeringOptionID.USER_MAPPING)
+ s.add(EngineeringOptionID.GENERATE_USERMAPPING);
+ if ((mask & EngineeringOptionID.OLAP_OBJECT) == EngineeringOptionID.OLAP_OBJECT)
+ s.add(EngineeringOptionID.GENERATE_OLAP);
+ if ((mask & EngineeringOptionID.TABLESPACE) == EngineeringOptionID.TABLESPACE)
+ s.add(EngineeringOptionID.GENERATE_TABLESPACES);
+ if ((mask & EngineeringOptionID.FILEGROUP) == EngineeringOptionID.FILEGROUP) {
+ s.add(EngineeringOptionID.GENERATE_FILEGROUPS);
+ }
+ if ((mask & EngineeringOptionID.INDEX) == EngineeringOptionID.INDEX)
+ s.add(EngineeringOptionID.GENERATE_INDICES);
+ if ((mask & EngineeringOptionID.PROCEDURE) == EngineeringOptionID.PROCEDURE)
+ s.add(EngineeringOptionID.GENERATE_STOREDPROCEDURES);
+ if ((mask & EngineeringOptionID.USER_DEFINED_FUNCTION) == EngineeringOptionID.USER_DEFINED_FUNCTION)
+ s.add(EngineeringOptionID.GENERATE_FUNCTIONS);
+ if ((mask & EngineeringOptionID.VIEW) == EngineeringOptionID.VIEW)
+ s.add(EngineeringOptionID.GENERATE_VIEWS);
+ if ((mask & EngineeringOptionID.TRIGGER) == EngineeringOptionID.TRIGGER)
+ s.add(EngineeringOptionID.GENERATE_TRIGGERS);
+ if ((mask & EngineeringOptionID.SEQUENCE) == EngineeringOptionID.SEQUENCE)
+ s.add(EngineeringOptionID.GENERATE_SEQUENCES);
+ if ((mask & EngineeringOptionID.USER_DEFINED_TYPE) == EngineeringOptionID.USER_DEFINED_TYPE)
+ s.add(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE);
+ if ((mask & EngineeringOptionID.DOMAIN) == EngineeringOptionID.DOMAIN)
+ s.add(EngineeringOptionID.GENERATE_DOMAIN);
+ if ((mask & EngineeringOptionID.UNIQUE_CONSTRAINT) == EngineeringOptionID.UNIQUE_CONSTRAINT)
+ s.add(EngineeringOptionID.GENERATE_PK_CONSTRAINTS);
+ if ((mask & EngineeringOptionID.MATERIALIZED_QUERY_TABLE) == EngineeringOptionID.MATERIALIZED_QUERY_TABLE)
+ s.add(EngineeringOptionID.GENERATE_MQT);
+ if ((mask & EngineeringOptionID.ALIAS) == EngineeringOptionID.ALIAS)
+ s.add(EngineeringOptionID.GENERATE_ALIAS);
+ if ((mask & EngineeringOptionID.CHECK_CONSTRAINT) == EngineeringOptionID.CHECK_CONSTRAINT)
+ s.add(EngineeringOptionID.GENERATE_CK_CONSTRAINTS);
+ if ((mask & EngineeringOptionID.FOREIGN_KEY) == EngineeringOptionID.FOREIGN_KEY)
+ s.add(EngineeringOptionID.GENERATE_FK_CONSTRAINTS);
+ if ((mask & EngineeringOptionID.BUFFER_POOL) == EngineeringOptionID.BUFFER_POOL)
+ s.add(EngineeringOptionID.GENERATE_BUFFERPOOL);
+ if ((mask & EngineeringOptionID.SCHEMA) == EngineeringOptionID.SCHEMA)
+ s.add(EngineeringOptionID.GENERATE_SCHEMAS);
+ if ((mask & EngineeringOptionID.DISTINCT_USER_DEFINED_TYPE) == EngineeringOptionID.DISTINCT_USER_DEFINED_TYPE)
+ s.add(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE);
+ if ((mask & EngineeringOptionID.STRUCTURED_USER_DEFINED_TYPE) == EngineeringOptionID.STRUCTURED_USER_DEFINED_TYPE)
+ s.add(EngineeringOptionID.GENERATE_USER_DEFINED_TYPE);
+ if ((mask & EngineeringOptionID.SYNONYM) == EngineeringOptionID.SYNONYM)
+ s.add(EngineeringOptionID.GENERATE_SYNONYM);
+ if ((mask & EngineeringOptionID.PARTITION_GROUP) == EngineeringOptionID.PARTITION_GROUP)
+ s.add(EngineeringOptionID.GENERATE_PARTITIONGROUP);
+ if ((mask & EngineeringOptionID.STORAGE_GROUP) == EngineeringOptionID.STORAGE_GROUP)
+ s.add(EngineeringOptionID.GENERATE_STORAGEGROUP);
+ if ((mask & EngineeringOptionID.PACKAGE) == EngineeringOptionID.PACKAGE)
+ s.add(EngineeringOptionID.GENERATE_PACKAGE);
+ if ((mask & EngineeringOptionID.PACKAGE_BODY) == EngineeringOptionID.PACKAGE_BODY)
+ s.add(EngineeringOptionID.GENERATE_PACKAGE_BODY);
+ if ((mask & EngineeringOptionID.BACKUP_TABLE) == EngineeringOptionID.BACKUP_TABLE)
+ s.add(EngineeringOptionID.GENERATE_BACKUP_TABLE); // Data Preservation
+ if ((mask & EngineeringOptionID.STATISTICS) == EngineeringOptionID.STATISTICS)
+ s.add(EngineeringOptionID.GENERATE_STATISTICS);
+ if ((mask & EngineeringOptionID.ROLE) == EngineeringOptionID.ROLE)
+ s.add(EngineeringOptionID.GENERATE_ROLE);
+ if ((mask & EngineeringOptionID.USER) == EngineeringOptionID.USER)
+ s.add(EngineeringOptionID.GENERATE_USER);
+ if ((mask & EngineeringOptionID.GROUP) == EngineeringOptionID.GROUP)
+ s.add(EngineeringOptionID.GENERATE_GROUP);
+ if ((mask & EngineeringOptionID.PRIVILEGE) == EngineeringOptionID.PRIVILEGE)
+ s.add(EngineeringOptionID.GENERATE_PRIVILEGE);
+ if ((mask & EngineeringOptionID.MODULE) == EngineeringOptionID.MODULE)
+ s.add(EngineeringOptionID.GENERATE_MODULE);
+ if ((mask & EngineeringOptionID.MODULE_CONDITION) == EngineeringOptionID.MODULE_CONDITION)
+ s.add(EngineeringOptionID.GENERATE_MODULE_CONDITION);
+ if ((mask & EngineeringOptionID.GLOBAL_VARIABLE) == EngineeringOptionID.GLOBAL_VARIABLE)
+ s.add(EngineeringOptionID.GENERATE_GLOBAL_VARIABLE);
+ if ((mask & EngineeringOptionID.HISTORY_TABLE) == EngineeringOptionID.HISTORY_TABLE)
+ s.add(EngineeringOptionID.GENERATE_HISTORY_TABLE);
+ if ((mask & EngineeringOptionID.XMLSCHEMA) == EngineeringOptionID.XMLSCHEMA) {
+ s.add(EngineeringOptionID.GENERATE_XMLSCHEMA);
+ s.add(EngineeringOptionID.XMLSCHEMA_CONNECTION_NAME);
+ s.add(EngineeringOptionID.XMLSCHEMA_DIRECTORY);
+ }
+ if ((mask & EngineeringOptionID.SECURITY_POLICY) == EngineeringOptionID.SECURITY_POLICY)
+ s.add(EngineeringOptionID.GENERATE_SECURITY_POLICY);
+ if ((mask & EngineeringOptionID.ROW_PERMISSIONS) == EngineeringOptionID.ROW_PERMISSIONS)
+ s.add(EngineeringOptionID.GENERATE_ROW_PERMISSIONS);
+ if ((mask & EngineeringOptionID.COLUMN_MASKS) == EngineeringOptionID.COLUMN_MASKS)
+ s.add(EngineeringOptionID.GENERATE_COLUMN_MASKS);
+ if ((mask & EngineeringOptionID.TEMPORARY_TABLE) == EngineeringOptionID.TEMPORARY_TABLE)
+ s.add(EngineeringOptionID.GENERATE_TEMPORARY_TABLES);
+
+ }
+}
+
+
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IClientStrategy.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IClientStrategy.java
new file mode 100644
index 0000000..8ff24d3
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IClientStrategy.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.datatools.enablement.ibm.util.IQueryMap.QueryType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public interface IClientStrategy
+{
+ /**
+ * The IClientStrategy has insider knowledge on the type of query to
+ * construct given the database and feature.
+ *
+ * It is responsible for setting the appropriate filters as required by the
+ * implementing strategy. The filter will be used for the WHERE clause
+ *
+ * @param object, calling object initiating the loading operation
+ * @param feature, mapping to specific feature to be loaded
+ * @return, array of objects representing the queries to be executed
+ */
+ public ICatalogQuery[] getCatalogQueries(EObject object, EStructuralFeature feature);
+
+ /**
+ *
+ * @param object, calling object initiating the loading operation
+ * @param queryType, QueryType for an adhoc item to be loaded that is not associated
+ * with a feature
+ * @return, array of objects representing the queries to be executed
+ */
+ public ICatalogQuery[] getCatalogQueries(EObject object, QueryType queryType);
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ICloningInfoProvider.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ICloningInfoProvider.java
new file mode 100644
index 0000000..32b763d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ICloningInfoProvider.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.emf.ecore.EObject;
+
+public interface ICloningInfoProvider
+{
+ /* Returns a boolean which indicates whether the object
+ * passed in should have its containment hierarchy also cloned
+ * when the object itself is being cloned becuase it is externally
+ * referenced by another object that is being cloned. */
+ public boolean cloneContainmentHierarchyOnExtRef(EObject obj);
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IConnectionFilter.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IConnectionFilter.java
new file mode 100644
index 0000000..a4ce824
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IConnectionFilter.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionFilter;
+
+public interface IConnectionFilter extends ConnectionFilter{
+
+ public static final String PROPS_FILTER_TAG = "[Props]";
+
+ public static final String DATABASE_INSTANCE_FILTER = "DatatoolsDatabaseInstanceFilterPredicate"; //$NON-NLS-1$
+ public static final String TABLESPACE_FILTER = "DatatoolsTablespaceFilterPredicate"; //$NON-NLS-1$
+ public static final String FEDERATED_STORED_PROCEDURE_FILTER = "DatatoolsFSPFilterPredicate"; //$NON-NLS-1$
+ public static final String SYNONYM_FILTER = "DatatoolsSynonymFilterPredicate"; //$NON-NLS-1$
+ public static final String PACKAGE_FILTER = "DatatoolsPackageFilterPredicate"; //$NON-NLS-1$
+ public static final String MODULE_FILTER = "DatatoolsModuleFilterPredicate"; //$NON-NLS-1$
+ public static final String PLSQL_PACKAGE_FILTER = "DatatoolsPlsqlPacakgeFilterPredicate"; //$NON-NLS-1$
+ public static final String TRIGGER_FILTER = "DatatoolsTriggerFilterPredicate"; //$NON-NLS-1$
+ public static final String INDEX_FILTER = "DatatoolsIndexFilterPredicate"; //$NON-NLS-1$
+ public static final String CONSTRAINT_FILTER = "DatatoolsConstraintFilterPredicate"; //$NON-NLS-1$
+
+
+ public static final String TABLES_REQUIRED_LIST = "DatatoolsTablesRequiredList"; //$NON-NLS-1$
+ public static final String VIEWS_REQUIRED_LIST = "DatatoolsViewsRequiredList"; //$NON-NLS-1$
+ public static final String MQTS_REQUIRED_LIST = "DatatoolsMQTsRequiredList"; //$NON-NLS-1$
+ public static final String ALIASES_REQUIRED_LIST = "DatatoolsAliasesRequiredList"; //$NON-NLS-1$
+ public static final String TRIGGERS_REQUIRED_LIST = "DatatoolsTriggersRequiredList"; //$NON-NLS-1$
+ public static final String STOREDPROCS_REQUIRED_LIST = "DatatoolsStoredProcsRequiredList"; //$NON-NLS-1$
+ public static final String UDFS_REQUIRED_LIST = "DatatoolsUDFsRequiredList"; //$NON-NLS-1$
+ public static final String UDTS_REQUIRED_LIST = "DatatoolsUDTsRequiredList"; //$NON-NLS-1$
+ public static final String PACKAGES_REQUIRED_LIST = "DatatoolsPackagesRequiredList"; //$NON-NLS-1$
+ public static final String SEQUENCE_REQUIRED_LIST = "DatatoolsSequencesRequiredList"; //$NON-NLS-1$
+ public static final String SYNONYM_REQUIRED_LIST = "DatatoolsSynonymRequiredList"; //$NON-NLS-1$
+ public static final String SCHEMA_REQUIRED_LIST = "DatatoolsSchemaRequiredList"; //$NON-NLS-1$
+ public static final String INDEX_REQUIRED_LIST = "DatatoolsIndexRequiredList"; //$NON-NLS-1$
+ public static final String CONSTRAINT_REQUIRED_LIST = "DatatoolsConstraintRequiredList"; //$NON-NLS-1$
+ public static final String TABLESPACE_REQUIRED_LIST = "DatatoolsTableSpaceRequiredList"; //$NON-NLS-1$
+ public static final String XMLSCHEMA_REQUIRED_LIST = "DatatoolsXMLSchemaRequiredList"; //$NON-NLS-1$
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IPostprocessProvider.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IPostprocessProvider.java
new file mode 100644
index 0000000..9286539
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IPostprocessProvider.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.emf.ecore.EObject;
+
+public interface IPostprocessProvider
+{
+ /**
+ * Namespace post processing for EMF EObjects.
+ * Extension providers must perform any post processing on the provided objects if it is
+ * determined that post processing is required. Modified EObjects, if any, will be be done
+ * on same array passed in.
+ * @param objs array of EObjects to process
+ * @return true if post processing is done, false if not
+ */
+ public boolean postProcess(EObject[] objs);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IPreorderedStatementList.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IPreorderedStatementList.java
new file mode 100644
index 0000000..d2b1bb4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IPreorderedStatementList.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.Vector;
+
+/**
+ * A collection of statements which have been ordered.
+ *
+ */
+public interface IPreorderedStatementList {
+
+ /**
+ * Retrieves the ordered statements.
+ * @return Vector<String> The ordered statements returned as a Vector of Strings.
+ */
+ public Vector<String> getAll();
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IQueryMap.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IQueryMap.java
new file mode 100644
index 0000000..96100bf
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IQueryMap.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public interface IQueryMap
+{
+ public enum QueryType {
+ TABLE__CONSTRAINT_QUERY,
+ TABLE__ROW_COUNT,
+ TABLE__MAIN_QUERY,
+ VIEW__MAIN_QUERY,
+ MQT__MAIN_QUERY,
+ ALIAS__MAIN_QUERY,
+ TRIGGER__MAIN_QUERY,
+ STOREDPROC__MAIN_QUERY,
+ UDF__MAIN_QUERY,
+ UDT__MAIN_QUERY,
+ PACKAGE__MAIN_QUERY,
+ SEQUENCE__MAIN_QUERY,
+ SYNONYM__MAIN_QUERY,
+ SCHEMA__MAIN_QUERY,
+ INDEX__MAIN_QUERY,
+ CONSTRAINT__MAIN_QUERY,
+ TABLESPACE__MAIN_QUERY,
+ XMLSCHEMA__MAIN_QUERY;
+ };
+
+ /**
+ *
+ * @param feature, used to lookup queries in map
+ * @return array of ICatalogQuery objects for given feature
+ */
+ public ICatalogQuery[] get(EStructuralFeature feature);
+
+ /**
+ *
+ * @param queryType, String used to map to an adhoc query not
+ * defined by a feature
+ * @return array of ICataloqQuery objects for given String
+ */
+ public ICatalogQuery[] get(QueryType queryType);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IRowCountCache.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IRowCountCache.java
new file mode 100644
index 0000000..16f2216
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/IRowCountCache.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+public interface IRowCountCache {
+
+ public String getRowCountString();
+ public void setRowCountString(String count);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ImpactProvider.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ImpactProvider.java
new file mode 100644
index 0000000..770e1ae
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ImpactProvider.java
@@ -0,0 +1,17 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.emf.ecore.EObject;
+
+public interface ImpactProvider {
+ public DependencyImpactDescription[] getImpacted(EObject object);
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelHelper.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelHelper.java
new file mode 100644
index 0000000..28f5b3b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelHelper.java
@@ -0,0 +1,263 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+//bgp import org.eclipse.datatools.enablement.ibm.db2.util.DataModelResource;
+import org.eclipse.datatools.enablement.ibm.util.ModelVersion;
+import org.eclipse.datatools.modelbase.sql.constraints.IncrementType;
+import org.eclipse.datatools.modelbase.sql.constraints.IndexMember;
+import org.eclipse.datatools.modelbase.sql.schema.Catalog;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.datatools.modelbase.sql.schema.Schema;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.datatools.modelbase.sql.tables.Table;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+public class ModelHelper {
+
+ public static final float DB2LUW_V97 = 9.7f;
+ public static final float DB2LUW_V10_1 = 10.1f;
+ public static final float DB2LUW_V10_5 = 10.5f;
+
+ public static Database getDatabase(Schema schema) {
+ if (schema != null) {
+ if (schema.getCatalog() != null) {
+ return schema.getCatalog().getDatabase();
+ }
+ else if (schema.getDatabase() != null) {
+ return schema.getDatabase();
+ }
+ }
+
+ return null;
+ }
+
+ public static List<Schema> getSchemas (Database database)
+ {
+ if (database == null) throw new IllegalArgumentException();
+ List <Schema> schemaList = new ArrayList<Schema> ();
+
+ schemaList.addAll(database.getSchemas());
+ for (Object o : database.getCatalogs())
+ {
+ Catalog c = (Catalog) o;
+ List <Schema> schemas = c.getSchemas();
+ if (!schemas.isEmpty())
+ {
+ schemaList.addAll(schemas);
+ }
+ }
+ return schemaList;
+ }
+
+ public static float getVersionAsFloat(String versionString)
+ {
+ float version = 8.0f;
+
+ try {
+ version = Float.parseFloat(versionString.substring(1));
+ }
+ catch ( NumberFormatException e ) {
+ }
+ return version;
+ }
+
+ public static float getZseriesVersionAsFloat(String versionString)
+ {
+ float version = 8.0f;
+
+ try
+ {
+ if ( versionString.length() >= 3 )
+ {
+ version = Float.parseFloat(versionString.substring(1,3).trim());
+ }
+ else
+ {
+ version = Float.parseFloat(versionString.substring(1,2).trim());
+ }
+ }
+ catch ( NumberFormatException e ) {
+ }
+ return version;
+ }
+
+ public static boolean isSupportPL_SQL(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product) && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V97) {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isSupportSecure(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product) && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V10_1) {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isSupportModule(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product) && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V97) {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isSupportGlobalVariable(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product) && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V97) {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isSupportArrayDataType(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product) && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V97) {
+ return true;
+ } else if ("Oracle".equals(product)) {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isSupportRowDataType(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product) && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V97) {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isSupportRandomIndex(DatabaseDefinition dbDef) {
+
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product)
+ && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V10_5) {
+ return true;
+ }
+ if ("DB2 UDB zSeries".equals(product)) {
+ String version = dbDef.getVersion();
+ if (version.compareTo("V9 (New-Function Mode)") == 0 //
+ || getZseriesVersionAsFloat(version) > 9) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static boolean isSupportColumnStore(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product)
+ && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V10_5) {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isSupportInlineFunction(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB zSeries".equals(product) //
+ && getZseriesVersionAsFloat(dbDef.getVersion()) >= 10 )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Gets the model version of the resource
+ * @param modelResource the model resource
+ * @return the model version of the resource, or UNKNOWN if not a
+ * DataModelResource or version not known
+ */
+ public static ModelVersion getModelVersion(XMLResource modelResource)
+ {
+ ModelVersion version = ModelVersion.UNKNOWN;
+//bgp if (modelResource instanceof DataModelResource)
+// {
+// version = ((DataModelResource)modelResource).getVersion();
+//bgp }
+ return version;
+ }
+
+ /**
+ * Determines whether or not the model resource version is the same
+ * as the current version
+ * @param resource the resource to check
+ * @return true if the version is the current version, false if not
+ */
+ public static boolean isCurrentModelVersion(XMLResource resource)
+ {
+ boolean current = false;
+ ModelVersion version = ModelHelper.getModelVersion(resource);
+ if (ModelVersion.CURRENT_VERSION.equals(version))
+ {
+ current = true;
+ }
+ return current;
+ }
+
+ public static boolean isSupportPartitionedIndex(DatabaseDefinition dbDef){
+ String product = dbDef.getProduct();
+ if ("DB2 UDB".equals(product) && getVersionAsFloat(dbDef.getVersion()) >= DB2LUW_V97) {
+ return true;
+ }
+ return false;
+ }
+
+ public static Column getColumn(Table table, String colname)
+ {
+ EList<Column> columns = table.getColumns();
+ for ( Column currentCol: columns )
+ {
+ if ( currentCol.getName().equals(colname) )
+ {
+ return currentCol;
+ }
+ }
+ return null;
+ }
+
+ public static boolean isEqual(IndexMember member1, IndexMember member2) {
+ if (member1.getColumn() != null &&
+ member2.getColumn() != null) {
+ Column column1 = member1.getColumn();
+ IncrementType incType1 = member1.getIncrementType();
+ Column column2 = member2.getColumn();
+ IncrementType incType2 = member2.getIncrementType();
+ if (column1 == column2 && incType1.getValue() == incType2.getValue()) {
+ return true;
+ }
+ }
+ else if (member1.getExpression() != null &&
+ member2.getExpression() != null) {
+ String sql1 = member1.getExpression().getSql();
+ IncrementType incType1 = member1.getIncrementType();
+ String sql2 = member2.getExpression().getSql();
+ IncrementType incType2 = member2.getIncrementType();
+ if (sql1 != null &&
+ sql1.equals(sql2) &&
+ incType1.getValue() == incType2.getValue()) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelVersion.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelVersion.java
new file mode 100644
index 0000000..bc8f415
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelVersion.java
@@ -0,0 +1,359 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.datatools.enablement.ibm.util.ModelVersionUtil;
+
+/**
+ * Enum for file version numbers. Version are presented as
+ * major.minor.service.modifier, where each segment represents a integer.
+ *
+ * @author Mike Kwong
+ *
+ */
+public enum ModelVersion {
+
+ /**
+ * Represents an UNKNOWN, unrecognized version of the model. Likely an
+ * error. First in the list of Enums to be treated inferior in comparison
+ * to any of the recognized model versions.
+ */
+ UNKNOWN(ModelVersionUtil.DATAMODEL_PREFIX, "-1", "0", "0", "0"),
+
+ /**
+ * Represents RDA 7.0.0.x
+ */
+ WTP("7", "0", "0", "0"),
+
+ /**
+ * Represents RDA 7.5 and IDA 7.5.1
+ */
+ DTP_75("7", "5", "0", "0"),
+
+ /**
+ * Represents IDA 7.5.1.1
+ */
+ DTP_7511("7", "5", "1", "1"),
+
+ /**
+ * Represents IDA 7.5.2.0
+ */
+ DTP_752("7", "5", "2", "0"),
+
+ /**
+ * Represents special version for InfoSphere Discovery delivery
+ * (corresponds to IDA 7.5.2.1)
+ */
+ DISCOVERY_2009_10(ModelVersionUtil.DATAMODEL_PREFIX, "1", "0", "0", "0"),
+
+ /**
+ * Represents IDA 7.5.2.1 and DS 2.2.1 (Nov 2009 release)
+ */
+ DTP_2009_11(ModelVersionUtil.DATAMODEL_PREFIX, "1", "0", "0", "1"),
+
+ /**
+ * Represents IDA 7.5.2.2 and DS 2.2.2.1 (Mar 2010 release)
+ */
+ DTP_2010_03(ModelVersionUtil.DATAMODEL_PREFIX, "1", "1", "0", "0"),
+
+ /**
+ * Represents IDA 7.5.3/ODS 2.2.3/ODA 2.2.3 and DS 2.3 (Oct 2010 release)
+ */
+ DTP_2010_10(ModelVersionUtil.DATAMODEL_PREFIX, "1", "2", "0", "0"),
+
+ /**
+ * Represents IDA 7.5.3.1/ODS 2.2.3.1/ODA 2.2.3.1 (DS 2011-1Q release)
+ */
+ DTP_2011_1Q(ModelVersionUtil.DATAMODEL_PREFIX, "1", "2", "1", "0"),
+
+ /**
+ * Represents IDA 7.6/ODS 2.3 (DS 2011-4Q release)
+ */
+ DTP_2011_4Q(ModelVersionUtil.DATAMODEL_PREFIX, "1", "3", "0", "0"),
+
+ /**
+ * Represents IDA 7.6 Patch
+ */
+ DTP_2011_4Q_PATCH(ModelVersionUtil.DATAMODEL_PREFIX, "1", "3", "0", "1"),
+
+ /**
+ * Represents IDA 8.1/DS 3.1.1 (DS 2012-1H release)
+ */
+ DTP_2012_1H(ModelVersionUtil.DATAMODEL_PREFIX, "1", "4", "0", "0"),
+
+ /**
+ * Represents IDA 8.5(DS 2012-2H release)
+ */
+ DTP_2012_2H(ModelVersionUtil.DATAMODEL_PREFIX, "1", "5", "0", "0"),
+
+ /**
+ * Represents IDA 9.1(DS 2013-2Q release)
+ */
+ DTP_2013_2Q(ModelVersionUtil.DATAMODEL_PREFIX, "1", "6", "0", "0"),
+
+ /**
+ * Represents IDA 9.1.1(DS 2013-2H release)
+ */
+ DTP_2013_2H(ModelVersionUtil.DATAMODEL_PREFIX, "1", "7", "0", "0"),
+
+
+ /**
+ * Represents a version namespace URI that conforms the correct pattern (
+ * {@link ModelVersionUtil#MODEL_URI_PATTERN}. Usually refers to a future
+ * version of the model. Note: reading in a model created with a newer
+ * version of the product than the current one can cause data loss.
+ * Restriction: does not currently contain information about the actual
+ * version for the model. TODO: Future enhancement.
+ */
+ VALID_PATTERN(ModelVersionUtil.DATAMODEL_PREFIX, "100000", "0", "0", "0");
+
+ public static ModelVersion CURRENT_VERSION = ModelVersion.DTP_2013_2H;
+
+ private String major;
+ private String minor;
+ private String service;
+ private String modifier;
+ private String prefix;
+ private String uriString;
+
+ ModelVersion(String major, String minor, String service, String modifier) {
+ this.major = major;
+ this.minor = minor;
+ this.service = service;
+ this.modifier = modifier;
+ this.prefix = ModelVersionUtil.PREFIX;
+ this.uriString = prefix + major + "." + minor + "." + service + "." + modifier;
+ ModelVersionUtil.add(this.uriString, this);
+ }
+
+ /**
+ * @param prefix {@link ModelVersionUtil#PREFIX} or {@link ModelVersionUtil#DATAMODEL_PREFIX}
+ * @param major
+ * @param minor
+ * @param service
+ * @param modifier
+ */
+ ModelVersion(String prefix, String major, String minor, String service, String modifier) {
+ this.major = major;
+ this.minor = minor;
+ this.service = service;
+ this.modifier = modifier;
+ this.prefix = prefix;
+ this.uriString = prefix + major + "." + minor + "." + service + "." + modifier;
+ ModelVersionUtil.add(this.uriString, this);
+ }
+
+ /**
+ * @return uri string appropriate for the version namespace for the model
+ * file
+ */
+ public String getURIString() {
+ return uriString;
+ }
+
+ /**
+ * Major number should be incremented if the model format has changed in an
+ * incompatible manner.
+ *
+ * @return string containing the major version; should represent an integer
+ */
+ public String getMajor() {
+ return major;
+ }
+
+ /**
+ * Major number should be incremented if the model format has changed in an
+ * incompatible manner.
+ *
+ * @return integration representing the major version
+ */
+ public Integer getMajorNumber() {
+ return Integer.parseInt(major);
+ }
+
+ /**
+ * Minor number should be incremented if the model format has changed in a
+ * backwards compatible manner to accommodate significant new function.
+ *
+ * @return string containing the minor version; should represent an integer
+ */
+ public String getMinor() {
+ return minor;
+ }
+
+ /**
+ * Minor number should be incremented if the model format has changed in a
+ * backwards compatible manner to accommodate significant new function.
+ *
+ * @return integer representing the minor version
+ */
+ public Integer getMinorNumber() {
+ return Integer.parseInt(minor);
+ }
+
+ /**
+ * Service number should be incremented if the model format has changed in
+ * any way.
+ *
+ * @return string containing the service version; should represent an
+ * integer
+ */
+ public String getService() {
+ return service;
+ }
+
+ /**
+ * Service number should be incremented if the model format has changed in
+ * any way.
+ *
+ * @return integer representing the service version
+ */
+ public Integer getServiceNumber() {
+ return Integer.parseInt(service);
+ }
+
+ /**
+ * Modifier number should be incremented for all official fix packs and
+ * releases. This can be used to catch unexpected bugs.
+ *
+ * @return string containing the modifier version; should represent an
+ * integer
+ */
+ public String getModifier() {
+ return modifier;
+ }
+
+ /**
+ * Modifier number should be incremented for all official fix packs and
+ * releases. This can be used to catch unexpected bugs.
+ *
+ * @return integer representing the modifier version
+ */
+ public Integer getModifierNumber() {
+ return Integer.parseInt(modifier);
+ }
+
+ /**
+ * @return the prefix used to construct the corresponding namespace URI
+ */
+ public String getPrefix() {
+ return prefix;
+ }
+
+ /**
+ * Compares this version to version to determine which is newer. Only the
+ * namespace prefix, major, minor and service are treated as significant.
+ * Modifier differences are ignored for comparison purposes.
+ *
+ * @param version
+ * @return -1 if this version if older than version being compared; 0 if
+ * they are equal; 1 if this version is newer
+ * @see Comparable#compareTo(Object)
+ */
+ public int compareToIgnoresModifier(ModelVersion version) {
+ if (version == null) {
+ return 1;
+ }
+ String myNamespacePrefix = this.getPrefix();
+ String theirNamespacePrefix = version.getPrefix();
+ int myMajor = getMajorNumber();
+ int theirMajor = version.getMajorNumber();
+ int myMinor = getMinorNumber();
+ int theirMinor = version.getMinorNumber();
+ int myService = getServiceNumber();
+ int theirService = version.getServiceNumber();
+
+ return compareVersionComponents(myNamespacePrefix, myMajor, myMinor,
+ myService, theirNamespacePrefix, theirMajor, theirMinor,
+ theirService);
+ }
+
+ /**
+ * Compares this version to a version string to determine which is newer. Only the
+ * namespace prefix, major, minor and service are treated as significant.
+ * Modifier differences are ignored for comparison purposes.
+ *
+ * @param version
+ * @return -1 if this version if older than version being compared; 0 if
+ * they are equal; 1 if this version is newer
+ * @see Comparable#compareTo(Object)
+ */
+ public int compareToIgnoresModifier(String versionNamespace) {
+ String[] components = ModelVersionUtil
+ .parseVersionNamespace(versionNamespace);
+ if (components == null) {
+ // Should not get to this point
+ throw new IllegalArgumentException();
+ }
+ return compareVersionComponents(getPrefix(), Integer
+ .parseInt(getMajor()), Integer.parseInt(getMinor()), Integer
+ .parseInt(getService()), components[0], Integer
+ .parseInt(components[1]), Integer.parseInt(components[2]),
+ Integer.parseInt(components[3]));
+ }
+
+ /**
+ * Compares version 1 with version 2 to determine which is newer.
+ *
+ * @param namespacePrefix1 namespace prefix of version 1
+ * @param major1 major number of version 1
+ * @param minor1
+ * @param service1
+ * @param namespacePrefix2
+ * @param major2
+ * @param minor2
+ * @param service2
+ * @return -1 if version 1 if older than version 2; 0 if
+ * they are equal; 1 if version 2 is newer
+ */
+ public static int compareVersionComponents(String namespacePrefix1,
+ int major1, int minor1, int service1,
+ String namespacePrefix2, int major2, int minor2,
+ int service2) {
+ if (namespacePrefix1 == null) {
+ // Should not get here
+ throw new IllegalArgumentException();
+ }
+ if (!namespacePrefix1.equals(namespacePrefix2)) {
+ if (namespacePrefix1.equals(ModelVersionUtil.PREFIX)
+ && namespacePrefix2
+ .equals(ModelVersionUtil.DATAMODEL_PREFIX)) {
+ return -1;
+ } else if (namespacePrefix1
+ .equals(ModelVersionUtil.DATAMODEL_PREFIX)
+ && namespacePrefix2.equals(ModelVersionUtil.PREFIX)) {
+ return 1;
+ } else {
+ // Should not get here
+ throw new IllegalArgumentException();
+ }
+ } else {
+ int majorDifference = major1 - major2;
+ int minorDifference = minor1 - minor2;
+ int serviceDifference = service1 - service2;
+ if (majorDifference < 0) {
+ return -1;
+ } else if (majorDifference > 0) {
+ return 1;
+ } else if (minorDifference < 0) {
+ return -1;
+ } else if (minorDifference > 0) {
+ return 1;
+ } else if (serviceDifference < 0) {
+ return -1;
+ } else if (serviceDifference > 0) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelVersionUtil.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelVersionUtil.java
new file mode 100644
index 0000000..9fd870d
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ModelVersionUtil.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Utilities for managing {@link ModelVersion} enums
+ * @author Mike Kwong
+ *
+ */
+public class ModelVersionUtil {
+ // url prefix to use for IDA 7.5.1.1 and 7.5.2
+ public static final String PREFIX = "http://www.ibm.com/com.ibm.datatools.core/model/";
+ // url prefix to use for IDA 7.5.2+
+ public static final String DATAMODEL_PREFIX = "http://www.ibm.com/com.ibm.datatools.core/model/data/";
+ // uri pattern to use for IDA 7.5.2.1 and beyond
+ public static final Pattern MODEL_URI_PATTERN = Pattern.compile(DATAMODEL_PREFIX + "(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
+ public static final Pattern OLD_MODEL_URI_PATTERN = Pattern.compile(PREFIX + "(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)");
+
+ private static Map<String, ModelVersion> map;
+
+ static Map<String, ModelVersion> getMap() {
+ if (map == null) {
+ map = new HashMap<String, ModelVersion>();
+ ModelVersion dummy = ModelVersion.CURRENT_VERSION; // Force ModelVersion to load and populate map
+ if (dummy != null) {
+ // Needed null check, to handle the case when one of the Model_Version enum constants (e.g. WTP)
+ // is accessed before getMap() is called. This would cause getMap to be invoked without
+ // CURRENT_VERSION being initialized. This is harmless, as CURRENT_VERSION would be
+ // initialized soon after, as long as we don't try to access dummy.toString
+ // DataToolsPlugin.getDefault().getLog().log(new Status(IStatus.INFO, DataToolsPlugin.getPluginID(), "Current Version is " + dummy.toString()));
+ }
+ }
+ return map;
+ }
+
+ /**
+ * Register version object and associate with specified URI
+ * @param uri
+ * @param version
+ */
+ public static void add(String uri, ModelVersion version) {
+ getMap().put(uri, version);
+ }
+
+ /**
+ * @param uri
+ * @return version object associated with specified URI,
+ * {@link ModelVersion#VALID_PATTERN} if the namespace conforms to the
+ * correct pattern, {@link ModelVersion#UNKNOWN} if the namespace
+ * does not conform to the correct pattern, or null if the version
+ * string is missing
+ */
+ public static ModelVersion uriToModelVersion(String uri) {
+ if (uri == null) {
+ // Missing version
+ return null;
+ }
+ // Look up uri to find corresponding version
+ ModelVersion version = getMap().get(uri);
+ if (version != null) {
+ // Known uri with corresponding version
+ return version;
+ } else {
+ Matcher matcher = MODEL_URI_PATTERN.matcher(uri);
+ if (matcher.matches()) {
+ // Conforms to MODEL_URI_PATTERN
+ return ModelVersion.VALID_PATTERN;
+ } else {
+ // Does not conform to MODEL_URI_PATTERN
+ return ModelVersion.UNKNOWN;
+ }
+ }
+ }
+
+ /**
+ * @param versionNamespace
+ * string containing the namespace string indicating the version
+ * @return string array containing the namespace prefix, major, minor,
+ * service and modifier components; or null if the string is not a
+ * valid version namespace
+ */
+ public static String[] parseVersionNamespace(String versionNamespace) {
+ Matcher matcher = MODEL_URI_PATTERN.matcher(versionNamespace);
+ Matcher oldMatcher = OLD_MODEL_URI_PATTERN.matcher(versionNamespace);
+ if (matcher.matches()) {
+ return new String[] { DATAMODEL_PREFIX, matcher.group(1),
+ matcher.group(2), matcher.group(3), matcher.group(4) };
+ } else if (oldMatcher.matches()) {
+ return new String[] { PREFIX, oldMatcher.group(1),
+ oldMatcher.group(2), oldMatcher.group(3),
+ oldMatcher.group(4) };
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSDatabaseLoader.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSDatabaseLoader.java
new file mode 100644
index 0000000..46c5197
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSDatabaseLoader.java
@@ -0,0 +1,444 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+public class PRSDatabaseLoader extends PersistentResultSetData
+{
+ private class QueryDescriptor
+ {
+ String queryText;
+
+ /**
+ * Strategies do not necessarily cache all the data at once. This API
+ * will allow caching to occur as needed by clients.
+ */
+ public QueryDescriptor( ICatalogQuery query )
+ {
+ if ( query.useOnDemandQuery() )
+ {
+ this.queryText = query.generateOnDemandQuery( getDatabase() );
+ }
+ else
+ {
+ this.queryText = query.generateUpFrontQuery( getDatabase() );
+ }
+ }
+ }
+
+ private final PRSQueryInfo qinfo;
+ private QueryDescriptor queryDesc;
+
+ private boolean processingStarted = false;
+ private boolean processingComplete = false;
+ private int rowsProcessed = 0;
+
+ static int nextqnum = 0;
+ static final int QSIZE = 128;
+ static int[] rowcount = new int[ QSIZE ];
+ static PRSDatabaseLoader[] runningQueries = new PRSDatabaseLoader[ QSIZE ];
+ public final int qnum = nextqnum++;
+
+ private static final int CHAR_CONVERSION_EXCEPTION = -4220;
+
+ public PRSDatabaseLoader( PRSQueryInfo qinfo, ICatalogQuery query )
+ {
+ this.qinfo = qinfo;
+ this.queryDesc = new QueryDescriptor( query );
+ }
+
+ public void initiateQuery( Connection connection )
+ {
+ try
+ {
+ processQuery( connection );
+
+ if ( this.processingComplete )
+ {
+ this.qinfo.loadFinished( this );
+ }
+ }
+ catch (SQLException e)
+ {
+ this.qinfo.setException( e );
+ }
+ }
+
+ public int getRawRowCount()
+ {
+ return this.rowsProcessed;
+ }
+
+ public Database getDatabase()
+ {
+ return this.qinfo.getQueryCache().getDatabase();
+ }
+
+ public ICatalogQuery getQuery()
+ {
+ return this.qinfo.getQuery();
+ }
+
+ private PRSMetadata getMetadata()
+ {
+ return this.qinfo.getMetadata();
+ }
+
+ public synchronized boolean isComplete()
+ {
+ return this.processingComplete;
+ }
+
+ public synchronized void close()
+ {
+ this.processingComplete = true;
+ }
+
+ private void processQuery( Connection connection ) throws SQLException
+ {
+ synchronized (this)
+ {
+ if ( this.processingStarted || this.processingComplete )
+ {
+ return;
+ }
+
+ if ( this.queryDesc.queryText == null )
+ {
+ this.processingComplete = true;
+
+ return;
+ }
+
+ this.processingStarted = true;
+ }
+
+ PRSDebug.debugQueryDelay();
+
+ Statement s = null;
+ ResultSet r = null;
+
+ try
+ {
+ s = connection.createStatement();
+ s.setFetchDirection( ResultSet.FETCH_FORWARD );
+ s.setFetchSize( 1000 );
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "PRS: Running query db=" + getDatabase().getName() ); //$NON-NLS-1$
+ PRSDebug.trace( queryDesc.queryText );
+ }
+
+ if ( PRSDebug.traceQueries )
+ {
+ runningQueries[ qnum % QSIZE ] = this;
+
+ System.out.println( "\n" //$NON-NLS-1$
+ + PRSDebug.timestamp() //
+ + " Running query " + qnum + "\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + queryDesc.queryText );
+
+ traceActiveQueries();
+ }
+
+ r = s.executeQuery( queryDesc.queryText );
+
+ PRSMetadata metadata = this.qinfo.getMetadata();
+
+ if ( metadata == null )
+ {
+ this.qinfo.setMetadata( new PRSMetadata( r ) );
+ }
+ }
+ catch (SQLException e)
+ {
+ CatalogLoadUtil.safeClose( s, r );
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "Error executing query" ); //$NON-NLS-1$
+ PRSDebug.trace( queryDesc.queryText );
+ PRSDebug.trace( e.toString() );
+ }
+
+ synchronized (this)
+ {
+ this.processingComplete = true;
+ }
+
+ this.qinfo.quitOnError( this );
+
+ throw e;
+ }
+
+ final Statement fs = s;
+ final ResultSet fr = r;
+
+ Thread processRowsWorker = new Thread( new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ processRows( fr );
+ }
+ finally
+ {
+ CatalogLoadUtil.safeClose( fs, fr );
+ }
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "PRS: Query worker finished" ); //$NON-NLS-1$
+ }
+ }
+ } );
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "PRS: Query worker thread id=" //$NON-NLS-1$
+ + processRowsWorker.getId() );
+ }
+
+ processRowsWorker.start();
+ }
+
+ private void processRows( ResultSet r )
+ {
+ try
+ {
+ while ( !isComplete() && r.next() )
+ {
+ processRow( r );
+ }
+ }
+ catch (SQLException e)
+ {
+ this.qinfo.setException( e );
+ this.qinfo.quitOnError( this );
+
+ IBMPluginActivator.log( e );
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "Error processing rows for query: count=" + this.rowsProcessed ); //$NON-NLS-1$
+ PRSDebug.trace( queryDesc.queryText );
+ PRSDebug.trace( e.toString() );
+ }
+ }
+ finally
+ {
+ this.qinfo.loadFinished( this );
+
+ synchronized (this)
+ {
+ runningQueries[ qnum % QSIZE ] = null;
+
+ if ( PRSDebug.traceQueries )
+ {
+ System.out.println( PRSDebug.timestamp() //
+ + " FINISH query#" + qnum //$NON-NLS-1$
+ + " row#" + rowcount[ qnum % QSIZE ] ); //$NON-NLS-1$
+ }
+
+ traceActiveQueries();
+
+ this.processingComplete = true;
+ this.processingStarted = false;
+
+ notifyAll();
+ }
+ }
+ }
+
+ private void processRow( ResultSet r ) throws SQLException
+ {
+ ++this.rowsProcessed;
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "PRS: processing row " + this.rowsProcessed ); //$NON-NLS-1$
+ }
+
+ PRSDebug.debugRowDelay();
+
+ int colcount = getMetadata().getColumnCount();
+
+ Object[] row = new Object[ colcount + 1 ];
+
+ for ( int ii = 1; ii <= colcount; ++ii )
+ {
+ row[ ii - 1 ] = getResultValue( r, ii );
+ }
+
+ if ( PRSDebug.traceQueries )
+ {
+ ++rowcount[ qnum % QSIZE ];
+ }
+
+ this.qinfo.addRow( row, this );
+
+ // TODO GLD nobody waits on this class, so this notify is misplaced
+ synchronized (this)
+ {
+ notifyAll();
+ }
+ }
+
+ private Object getResultValue( ResultSet rs, int ii ) throws SQLException
+ {
+ Object o = null;
+
+ switch (getMetadata().columnInfo[ ii - 1 ].columnType)
+ {
+ case PRSMetadata.TYPE_CHAR:
+ case PRSMetadata.TYPE_VARCHAR:
+ case PRSMetadata.TYPE_CLOB:
+ try {
+ o = rs.getObject( ii );
+
+ if ( (o != null) && !(o instanceof String) ) {
+ o = rs.getString( ii );
+ }
+ } catch (Exception e) {
+ if (e instanceof SQLException && ((SQLException)e).getErrorCode() == CHAR_CONVERSION_EXCEPTION) {
+ o = " ";
+ } else {
+ throw new SQLException( "Error getting value for index " + ii, e ); //$NON-NLS-1$
+ }
+ }
+ break;
+
+ case PRSMetadata.TYPE_BINARY:
+ case PRSMetadata.TYPE_VARBINARY:
+ o = rs.getObject( ii );
+ break;
+
+ case PRSMetadata.TYPE_INTEGER:
+ case PRSMetadata.TYPE_SMALLINT:
+ case PRSMetadata.TYPE_BIGINT:
+ o = Long.valueOf( rs.getLong( ii ) );
+ break;
+
+ case PRSMetadata.TYPE_FLOAT:
+ case PRSMetadata.TYPE_DOUBLE:
+ o = Double.valueOf( rs.getDouble( ii ) );
+ break;
+
+ case PRSMetadata.TYPE_DECIMAL:
+ o = rs.getBigDecimal( ii );
+ break;
+
+ case PRSMetadata.TYPE_TIMESTAMP:
+ o = rs.getTimestamp( ii );
+ break;
+
+ default:
+ o = rs.getString( ii );
+ break;
+ }
+
+ if ( o instanceof String )
+ {
+ o = StringCache.getUniqueString( (String)o );
+ }
+
+ return o;
+ }
+
+ public synchronized void waitForRow()
+ {
+ if ( isComplete() )
+ {
+ return;
+ }
+
+ // TODO Wait for a brief minimum period - this avoids a timing issue in
+ // the JUnit test suite that does not manifest with normal usage of
+ // the product. This needs to be diagnosed and fixed...
+ // Then the following code can be replaced with just
+ // wait( 1000 );
+ long deadline1 = System.currentTimeMillis() + 10;
+
+ // We still will return after a longer delay so the caller can log trace
+ // messages, check conditions, etc.
+ long deadline2 = System.currentTimeMillis() + 1000;
+
+ // Remember whether our return condition has been satisfied so we can
+ // return once the first deadline has passed.
+ boolean awakened = false;
+
+ for ( ;; )
+ {
+ long now = System.currentTimeMillis();
+
+ // Return if the second deadline passes, unconditionally -
+ // Or when the first deadline is past and we have been awakened
+ if ( (deadline2 <= now) || (awakened && (deadline1 <= now)) )
+ {
+ return;
+ }
+
+ long waittime = (deadline1 > now)
+ ? deadline1 - now
+ : deadline2 - now;
+
+ try
+ {
+ wait( waittime );
+ }
+ catch (InterruptedException e)
+ {
+ // Eat it
+ }
+
+ // Somebody woke us up - we can return as soon as deadline1 passes
+ awakened = true;
+ }
+ }
+
+ private void traceActiveQueries()
+ {
+ if ( !PRSDebug.traceQueries )
+ {
+ return;
+ }
+
+ System.out.print( " Active queries: " ); //$NON-NLS-1$
+
+ for ( int ii = 0; ii < QSIZE; ++ii )
+ {
+ int idx = ii + nextqnum - QSIZE;
+
+ if ( (idx < 0) || (runningQueries[ idx % QSIZE ] == null) )
+ {
+ continue;
+ }
+
+ int qid = runningQueries[ idx % QSIZE ].qnum;
+ int rows = rowcount[ idx % QSIZE ];
+
+ System.out.print( Integer.toString( qid ) + "(" + rows + ")" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ System.out.println();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSDebug.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSDebug.java
new file mode 100644
index 0000000..f7a8f26
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSDebug.java
@@ -0,0 +1,150 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Random;
+import java.util.TimeZone;
+
+/** tracing and statistics gathering */
+public class PRSDebug
+{
+ public static boolean enableTracing = false;
+
+ // TODO clean these two flags up
+ public static boolean enableFileCache = false;
+ public static boolean noFileCache = true;
+ public static boolean traceQueries = false;
+
+ /** DEBUG Time when this class is loaded */
+ private static final long zerotime = System.currentTimeMillis();
+
+ /** DEBUG Trace file */
+ private static PrintStream traceout = null;
+
+ /** DEBUG Sequence number for trace statements */
+ private static int tracecount = 0;
+
+ /** DEBUG Add a fixed delay (ms) for each query */
+ public static int QUERY_DELAY = 0;
+
+ /** DEBUG Add a fixed delay (ms) for each row returned from the query */
+ public static int ROW_DELAY = 0;
+
+ /** DEBUG Count the number of rows processed */
+ public static int rowcount = 0;
+
+ static
+ {
+ try
+ {
+ if (PRSDebug.enableTracing) {
+ String highLevelQualifier = "persistentResultSet";
+ File traceFile = null;
+
+ String tempDir = System.getProperty( "java.io.tmpdir" );
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
+ sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
+ Random rnd = new Random(System.currentTimeMillis());
+ StringBuffer rndStr = new StringBuffer(4);
+ for(int i = 0; i < 4; i++) {
+ rndStr.append( (char) (rnd.nextInt( (int) ('z' - 'a') ) + 'a') );
+ }
+ String uniqueQualifier = sdf.format(new Date(System.currentTimeMillis())) + "-" + rndStr;
+ String filePath = tempDir + File.separator + "dsTrace." + highLevelQualifier + "." + uniqueQualifier;
+ traceFile = new File(filePath);
+ System.out.println(traceFile.getAbsolutePath());
+
+ FileOutputStream fos = new FileOutputStream( traceFile, true ); //$NON-NLS-1$
+
+ PRSDebug.traceout = new PrintStream( fos );
+
+ PRSDebug.trace( "Tracing engaged" ); //$NON-NLS-1$
+ }
+ }
+ catch (FileNotFoundException e)
+ {
+ // Eat it
+ }
+ }
+
+ public static void debugQueryDelay()
+ {
+ PRSDebug.debugDelay( QUERY_DELAY );
+ }
+
+ public static void debugRowDelay()
+ {
+ PRSDebug.debugDelay( ROW_DELAY );
+ ++rowcount;
+ }
+
+ public static void debugDelay( int delay )
+ {
+ try
+ {
+ if ( delay > 0 )
+ {
+ Thread.sleep( delay );
+ }
+ }
+ catch (InterruptedException e)
+ {
+ // Eat it
+ }
+ }
+
+ /** Print a debug message */
+ public static void trace( String msg )
+ {
+ if ( !PRSDebug.enableTracing )
+ {
+ return;
+ }
+
+ long tid = Thread.currentThread().getId();
+ int relativetime = (int)(System.currentTimeMillis() - zerotime);
+ String pattern = "%1$04d %2$04d.%3$03d %4$03d"; //$NON-NLS-1$
+
+ String ts = String.format( pattern, //
+ Long.valueOf( tid ), //
+ Integer.valueOf( relativetime / 1000 ), //
+ Integer.valueOf( relativetime % 1000 ), //
+ Integer.valueOf( tracecount++ % 1000 ) );
+
+ if ( traceout != null )
+ {
+ traceout.println( ts + ": " + msg ); //$NON-NLS-1$
+ }
+
+ System.out.println( ts + ": " + msg ); //$NON-NLS-1$
+ }
+
+ public static String timestamp()
+ {
+ long diff = System.currentTimeMillis() - zerotime;
+
+ int ms = (int)(diff % 1000);
+ int secs = (int)(diff / 1000);
+ int mins = secs / 60;
+ secs = secs % 60;
+
+ return String.format( "%d:%02d.%03d", //$NON-NLS-1$
+ new Object[] {
+ Integer.valueOf( mins ), Integer.valueOf( secs ), Integer.valueOf( ms )
+ } );
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSMetadata.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSMetadata.java
new file mode 100644
index 0000000..c695223
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSMetadata.java
@@ -0,0 +1,457 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.PrintWriter;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+import java.util.IdentityHashMap;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+/** Cache the metadata for the ResultSet we are capturing */
+public class PRSMetadata implements ResultSetMetaData
+{
+ public static final int TYPE_BIT = -7;
+ public static final int TYPE_TINYINT = -6;
+ public static final int TYPE_BIGINT = -5;
+ public static final int TYPE_LONGVARBINARY = -4;
+ public static final int TYPE_VARBINARY = -3;
+ public static final int TYPE_BINARY = -2;
+ public static final int TYPE_LONGVARCHAR = -1;
+ public static final int TYPE_NULL = 0;
+ public static final int TYPE_CHAR = 1;
+ public static final int TYPE_NUMERIC = 2;
+ public static final int TYPE_DECIMAL = 3;
+ public static final int TYPE_INTEGER = 4;
+ public static final int TYPE_SMALLINT = 5;
+ public static final int TYPE_FLOAT = 6;
+ public static final int TYPE_REAL = 7;
+ public static final int TYPE_DOUBLE = 8;
+ public static final int TYPE_VARCHAR = 12;
+ public static final int TYPE_DATE = 91;
+ public static final int TYPE_TIME = 92;
+ public static final int TYPE_TIMESTAMP = 93;
+ public static final int TYPE_CLOB = 2005;
+ public static final int TYPE_OTHER = 1111;
+
+ /** Info about a ResultSet column - values from ResultSetMetadata */
+ public static class MetadataForColumn
+ {
+ public String catalogName;
+ public String columnClassName;
+ public String columnName;
+ public int columnType;
+ public String columnTypeName;
+ public int precision;
+ public int scale;
+ public String schemaName;
+ public String tableName;
+ public boolean isAutoIncrement;
+ public boolean isCaseSensitive;
+ public boolean isCurrency;
+ public boolean isDefinitelyWritable;
+ public int isNullable;
+ public boolean isReadOnly;
+ public boolean isSearchable;
+ public boolean isSigned;
+ public boolean isWritable;
+
+ public void save( PrintWriter pw )
+ {
+ pw.println( toPrintString() );
+ }
+
+ public String toPrintString()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ PRSPersistenceUtility.append( sb, this.catalogName );
+ PRSPersistenceUtility.append( sb, this.columnClassName );
+ PRSPersistenceUtility.append( sb, this.columnName );
+ PRSPersistenceUtility.append( sb, this.columnType );
+ PRSPersistenceUtility.append( sb, this.columnTypeName );
+ PRSPersistenceUtility.append( sb, this.precision );
+ PRSPersistenceUtility.append( sb, this.scale );
+ PRSPersistenceUtility.append( sb, this.schemaName );
+ PRSPersistenceUtility.append( sb, this.tableName );
+ PRSPersistenceUtility.append( sb, this.isAutoIncrement );
+ PRSPersistenceUtility.append( sb, this.isCaseSensitive );
+ PRSPersistenceUtility.append( sb, this.isCurrency );
+ PRSPersistenceUtility.append( sb, this.isDefinitelyWritable );
+ PRSPersistenceUtility.append( sb, this.isNullable );
+ PRSPersistenceUtility.append( sb, this.isReadOnly );
+ PRSPersistenceUtility.append( sb, this.isSearchable );
+ PRSPersistenceUtility.append( sb, this.isSigned );
+ PRSPersistenceUtility.append( sb, this.isWritable );
+
+ return sb.toString();
+ }
+
+ public void fromPrintString( String s )
+ {
+ StringTokenizer toker = new StringTokenizer( s, "|" ); //$NON-NLS-1$
+
+ this.catalogName = PRSPersistenceUtility.getStringToken( toker );
+ this.columnClassName = PRSPersistenceUtility.getStringToken( toker );
+ this.columnName = PRSPersistenceUtility.getStringToken( toker );
+ this.columnType = PRSPersistenceUtility.getIntToken( toker );
+ this.columnTypeName = PRSPersistenceUtility.getStringToken( toker );
+ this.precision = PRSPersistenceUtility.getIntToken( toker );
+ this.scale = PRSPersistenceUtility.getIntToken( toker );
+ this.schemaName = PRSPersistenceUtility.getStringToken( toker );
+ this.tableName = PRSPersistenceUtility.getStringToken( toker );
+ this.isAutoIncrement = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isCaseSensitive = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isCurrency = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isDefinitelyWritable = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isNullable = PRSPersistenceUtility.getIntToken( toker );
+ this.isReadOnly = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isSearchable = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isSigned = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isWritable = PRSPersistenceUtility.getBooleanToken( toker );
+ }
+ }
+
+ /** SQL Type ID */
+ public static final int OTHER = 0;
+ public static final int STRING = 1;
+
+ private int columnCount;
+ public MetadataForColumn[] columnInfo;
+
+ /** This accelerates repeated column look up by identical name (typical) */
+ private final Map<String, int[]> columnmap = new IdentityHashMap<String, int[]>();
+
+ public PRSMetadata()
+ {
+ // do nothing
+ }
+
+ public PRSMetadata( ResultSet rs ) //
+ throws SQLException
+ {
+ extractMetadataFromResults( rs );
+ }
+
+ public static PRSMetadata loadSavedMetadata( LineNumberReader lr ) //
+ throws NumberFormatException, IOException
+ {
+ String line = lr.readLine();
+
+ if ( line == null )
+ {
+ return null;
+ }
+
+ PRSMetadata metadata = new PRSMetadata();
+
+// int count = Integer.parseInt( line );
+ StringTokenizer toker = new StringTokenizer( line, "|" ); //$NON-NLS-1$
+
+ int count = PRSPersistenceUtility.getIntToken( toker );
+
+ metadata.columnCount = count;
+ metadata.columnInfo = new MetadataForColumn[ count ];
+
+ for ( int ii = 0; ii < count; ++ii )
+ {
+ line = lr.readLine();
+ if ( line == null )
+ {
+ break;
+ }
+
+ MetadataForColumn colinfo = new MetadataForColumn();
+ colinfo.fromPrintString( line );
+
+ metadata.columnInfo[ ii ] = colinfo;
+ }
+
+ return metadata;
+ }
+
+ /** Convert an array of column names to the corresponding column indexes */
+ public int[] convertColumnNames( String[] colnames )
+ {
+ int[] colnums = new int[ colnames.length ];
+
+ int ii = 0;
+
+ for ( String name : colnames )
+ {
+ try
+ {
+ colnums[ ii ] = findColumn( name );
+ }
+ catch (SQLException e)
+ {
+ colnums[ ii ] = 0;
+ }
+
+ ++ii;
+ }
+
+ return colnums;
+ }
+
+ /** Look through the data items for one with a certain name */
+ public int findColumn( String columnName ) throws SQLException
+ {
+ int[] idx = this.columnmap.get( columnName );
+
+ if ( idx != null )
+ {
+ return idx[ 0 ];
+ }
+
+ int count = getColumnCount();
+
+ for ( int ii = 1; ii <= count; ++ii )
+ {
+ if ( getColumnName( ii ).equals( columnName ) )
+ {
+ this.columnmap.put( columnName, new int[] {
+ ii
+ } );
+
+ return ii;
+ }
+ }
+
+ throw new SQLException( "Can't find column named \"" //$NON-NLS-1$
+ + columnName + "\"" ); //$NON-NLS-1$
+ }
+
+ private void extractMetadataFromResults( ResultSet rs ) throws SQLException
+ {
+ ResultSetMetaData md = rs.getMetaData();
+
+ this.columnCount = md.getColumnCount();
+
+ this.columnInfo = new MetadataForColumn[ this.columnCount ];
+
+ for ( int ii = 1; ii <= this.columnCount; ++ii )
+ {
+ MetadataForColumn mdc = new MetadataForColumn();
+
+ this.columnInfo[ ii - 1 ] = mdc;
+
+ mdc.catalogName = StringCache.getUniqueString( md.getCatalogName( ii ) );
+ mdc.columnClassName = StringCache.getUniqueString( md.getColumnClassName( ii ) );
+ mdc.columnName = StringCache.getUniqueString( md.getColumnLabel( ii ) );
+ mdc.columnType = md.getColumnType( ii );
+ mdc.columnTypeName = StringCache.getUniqueString( md.getColumnTypeName( ii ) );
+ mdc.precision = md.getPrecision( ii );
+ mdc.scale = md.getScale( ii );
+ mdc.schemaName = md.getSchemaName( ii );
+ mdc.tableName = StringCache.getUniqueString( md.getTableName( ii ) );
+ mdc.isAutoIncrement = md.isAutoIncrement( ii );
+ mdc.isCaseSensitive = md.isCaseSensitive( ii );
+ mdc.isCurrency = md.isCurrency( ii );
+ mdc.isDefinitelyWritable = md.isDefinitelyWritable( ii );
+ mdc.isNullable = md.isNullable( ii );
+ mdc.isReadOnly = md.isReadOnly( ii );
+ mdc.isSearchable = md.isSearchable( ii );
+ mdc.isSigned = md.isSigned( ii );
+ mdc.isWritable = md.isWritable( ii );
+ }
+ }
+
+ public void save( File saveFile )
+ {
+ if ( PRSDebug.noFileCache || saveFile == null ) {
+ return;
+ }
+
+ PrintWriter pw = PRSPersistenceUtility.openFileForAppend( saveFile );
+
+ if (pw == null) {
+ return;
+ }
+
+ pw.print( toPrintString() );
+
+ pw.close();
+ }
+
+ public String toPrintString()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ PRSPersistenceUtility.append( sb, this.columnCount );
+ PRSPersistenceUtility.newline( sb );
+
+ for ( MetadataForColumn colinfo : this.columnInfo )
+ {
+ PRSPersistenceUtility.addLine( sb, colinfo.toPrintString() );
+ }
+
+ return sb.toString();
+ }
+
+ public String getColumnClassName( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].columnClassName;
+ }
+
+ public int getColumnCount() throws SQLException
+ {
+ return this.columnCount;
+ }
+
+ public String getCatalogName( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].catalogName;
+ }
+
+ public int getColumnDisplaySize( int column ) throws SQLException
+ {
+ return 0;
+ }
+
+ public String getColumnLabel( int column ) throws SQLException
+ {
+ return null;
+ }
+
+ public String getColumnName( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].columnName;
+ }
+
+ public int getColumnType( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].columnType;
+ }
+
+ public String getColumnTypeName( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].columnTypeName;
+ }
+
+ public int getPrecision( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].precision;
+ }
+
+ public int getScale( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].scale;
+ }
+
+ public String getSchemaName( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].schemaName;
+ }
+
+ public String getTableName( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].tableName;
+ }
+
+ public boolean isAutoIncrement( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isAutoIncrement;
+ }
+
+ public boolean isCaseSensitive( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isCaseSensitive;
+ }
+
+ public boolean isCurrency( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isCurrency;
+ }
+
+ public boolean isDefinitelyWritable( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isDefinitelyWritable;
+ }
+
+ public int isNullable( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isNullable;
+ }
+
+ public boolean isReadOnly( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isReadOnly;
+ }
+
+ public boolean isSearchable( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isSearchable;
+ }
+
+ public boolean isSigned( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isSigned;
+ }
+
+ public boolean isWritable( int column ) throws SQLException
+ {
+ return this.columnInfo[ column - 1 ].isWritable;
+ }
+
+ public boolean isWrapperFor( Class<?> iface ) throws SQLException
+ {
+ return false;
+ }
+
+ public <T> T unwrap( Class<T> iface ) throws SQLException
+ {
+ return null;
+ }
+}
+
+class PRSMetadataTest
+{
+ @SuppressWarnings ("nls")
+ public static void main( String[] args )
+ {
+ PRSMetadata.MetadataForColumn m4c = new PRSMetadata.MetadataForColumn();
+ PRSMetadata.MetadataForColumn m4c2 = new PRSMetadata.MetadataForColumn();
+
+ m4c.catalogName = "foo";
+ m4c.columnClassName = "|foo|bar|";
+ m4c.columnName = "foo||bar";
+ m4c.columnTypeName = "\u1111foo\u2222bar\u3333";
+ m4c.schemaName = "foo\u1111\u2222bar";
+ m4c.tableName = null;
+ m4c.columnType = 0;
+ m4c.precision = 2;
+ m4c.scale = -1;
+ m4c.isNullable = 0;
+ m4c.isAutoIncrement = false;
+ m4c.isCaseSensitive = true;
+ m4c.isCurrency = false;
+ m4c.isDefinitelyWritable = true;
+ m4c.isReadOnly = false;
+ m4c.isSearchable = true;
+ m4c.isSigned = false;
+ m4c.isWritable = true;
+
+ String s = m4c.toPrintString();
+ System.out.println( "printString='" + s + "'" );
+
+ m4c2.fromPrintString( s );
+
+ System.out.println( "Result=" + ((m4c2.toPrintString().equals( s ))
+ ? "success"
+ : "fail") );
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSPersistenceUtility.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSPersistenceUtility.java
new file mode 100644
index 0000000..fe557a0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSPersistenceUtility.java
@@ -0,0 +1,344 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.LineNumberReader;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.util.StringTokenizer;
+
+public class PRSPersistenceUtility
+{
+ public static final String LINESEP = System.getProperty( "line.separator" ); //$NON-NLS-1$
+ private static final String STR_HASH = "#"; //$NON-NLS-1$
+
+ private static final char MARKER_NULL = 'N';
+ private static final char MARKER_STRING = '"';
+ private static final char MARKER_CHAR = 'c';
+ private static final char MARKER_INT = 'i';
+ private static final char MARKER_LONG = 'l';
+ private static final char MARKER_DOUBLE = 'd';
+ private static final char MARKER_BOOLEAN = 'b';
+ private static final char MARKER_DECIMAL = 'D';
+ private static final char MARKER_TIMESTAMP = 'T';
+
+ public static LineNumberReader openFileForRead( File file )
+ {
+ Reader rdr;
+
+ try
+ {
+ rdr = new FileReader( file );
+ }
+ catch (FileNotFoundException e)
+ {
+ return null;
+ }
+
+ return new LineNumberReader( rdr );
+ }
+
+ public static PrintWriter openFileForAppend( File file )
+ {
+ return openFileForWrite( file, true );
+ }
+
+ public static PrintWriter openFileForCreate( File file )
+ {
+ return openFileForWrite( file, false );
+ }
+
+ private static PrintWriter openFileForWrite( File file, boolean append )
+ {
+ if (file == null) {
+ return null;
+ }
+ OutputStream os;
+
+ try
+ {
+ os = new FileOutputStream( file, append );
+ }
+ catch (FileNotFoundException e)
+ {
+ return null;
+ }
+
+ return new PrintWriter( os );
+ }
+
+ public static void addLine( StringBuilder sb, String line )
+ {
+ sb.append( line );
+ newline( sb );
+ }
+
+ public static void newline( StringBuilder sb )
+ {
+ sb.append( LINESEP );
+ }
+
+ public static void append( StringBuilder sb, Object o )
+ {
+ if ( o == null )
+ {
+ appendNull( sb );
+ return;
+ }
+
+ if ( o instanceof String )
+ {
+ append( sb, (String)o );
+ }
+ else if ( o instanceof Long )
+ {
+ append( sb, ((Long)o).longValue() );
+ }
+ else if ( o instanceof Double )
+ {
+ append( sb, ((Double)o).doubleValue() );
+ }
+ else if ( o instanceof BigDecimal )
+ {
+ append( sb, (BigDecimal)o );
+ }
+ else if ( o instanceof Timestamp )
+ {
+ append( sb, (Timestamp)o );
+ }
+ else
+ {
+ append( sb, o.toString() );
+ }
+ }
+
+ public static void appendNull( StringBuilder sb )
+ {
+ sb.append( MARKER_NULL );
+ sb.append( "|" ); //$NON-NLS-1$
+ }
+
+ public static void append( StringBuilder sb, String s )
+ {
+ if ( s == null )
+ {
+ appendNull( sb );
+
+ return;
+ }
+
+ sb.append( MARKER_STRING );
+ sb.append( encodeString( s ) );
+ sb.append( '|' );
+ }
+
+ public static String encodeString( String s )
+ {
+ if ( s == null )
+ {
+ return ""; //$NON-NLS-1$
+ }
+
+ int len = s.length();
+
+ StringBuilder sb = new StringBuilder();
+
+ for ( int ii = 0; ii < len; ++ii )
+ {
+ sb.append( encodeChar( s.charAt( ii ) ) );
+ }
+
+ return sb.toString();
+ }
+
+ private static String encodeChar( char ch )
+ {
+ return ((ch >= 32) && (ch < 127) && (ch != '|') && (ch != '#'))
+ ? "" + ch //$NON-NLS-1$
+ : String.format( "#%04x", Integer.valueOf( ch & 0xFFFF ) ); //$NON-NLS-1$
+ }
+
+ public static void append( StringBuilder sb, int i )
+ {
+ sb.append( MARKER_INT );
+ sb.append( i );
+ sb.append( '|' );
+ }
+
+ public static void append( StringBuilder sb, long l )
+ {
+ sb.append( MARKER_LONG );
+ sb.append( l );
+ sb.append( '|' );
+ }
+
+ public static void append( StringBuilder sb, double d )
+ {
+ sb.append( MARKER_DOUBLE );
+ sb.append( d );
+ sb.append( '|' );
+ }
+
+ public static void append( StringBuilder sb, BigDecimal d )
+ {
+ sb.append( MARKER_DECIMAL );
+ sb.append( d );
+ sb.append( '|' );
+ }
+
+ public static void append( StringBuilder sb, Timestamp t )
+ {
+ sb.append( MARKER_TIMESTAMP );
+ sb.append( t.getTime() );
+ sb.append( '|' );
+ }
+
+ public static void append( StringBuilder sb, char ch )
+ {
+ sb.append( MARKER_CHAR );
+ sb.append( encodeChar( ch ) );
+ sb.append( '|' );
+ }
+
+ public static void append( StringBuilder sb, boolean b )
+ {
+ sb.append( MARKER_BOOLEAN );
+ sb.append( (b)
+ ? 't'
+ : 'f' );
+ sb.append( '|' );
+ }
+
+ public static Object getToken( StringTokenizer st )
+ {
+ if ( !st.hasMoreTokens() )
+ {
+ return null;
+ }
+
+ String tok = st.nextToken();
+
+ if ( (tok == null) || (tok.length() < 1) )
+ {
+ return null;
+ }
+
+ char marker = tok.charAt( 0 );
+ tok = tok.substring( 1 );
+
+ switch (marker)
+ {
+ case MARKER_STRING:
+ case MARKER_CHAR:
+ return decodeString( tok );
+
+ case MARKER_INT:
+ return new Integer( tok );
+
+ case MARKER_LONG:
+ return new Long( tok );
+
+ case MARKER_DOUBLE:
+ return new Double( tok );
+
+ case MARKER_DECIMAL:
+ return new BigDecimal( tok );
+
+ case MARKER_BOOLEAN:
+ return Boolean.valueOf( tok.charAt( 0 ) == 't' );
+
+ case MARKER_TIMESTAMP:
+ return new Timestamp( Long.parseLong( tok ) );
+
+ case MARKER_NULL:
+ default:
+ return null;
+ }
+ }
+
+ public static String getStringToken( StringTokenizer st )
+ {
+ Object o = getToken( st );
+
+ return (o instanceof String)
+ ? (String)o
+ : null;
+ }
+
+ private static String decodeString( String s )
+ {
+ int hash = s.indexOf( STR_HASH );
+
+ if ( hash < 0 )
+ {
+ return s;
+ }
+
+ StringBuilder sb = new StringBuilder( s );
+ //--hash;
+
+ while ( (hash >= 0) && (hash < (sb.length() - 4)) )
+ {
+ char ch = (char)Integer.parseInt( sb.substring( hash + 1, hash + 5 ), 16 );
+
+ sb.setCharAt( hash, ch );
+ sb.delete( hash + 1, hash + 5 );
+
+ if ( hash < (sb.length() - 1) )
+ {
+ hash = sb.indexOf( STR_HASH, hash + 1 );
+ }
+ }
+
+ return sb.toString();
+ }
+
+ public static int getIntToken( StringTokenizer st )
+ {
+ Object o = getToken( st );
+
+ return (o instanceof Integer)
+ ? ((Integer)o).intValue()
+ : 0;
+ }
+
+ public static long getLongToken( StringTokenizer st )
+ {
+ Object o = getToken( st );
+
+ return (o instanceof Long)
+ ? ((Long)o).longValue()
+ : 0;
+ }
+
+ public static char getCharToken( StringTokenizer st )
+ {
+ Object o = getToken( st );
+
+ return ((o instanceof String) && ((String)o).length() > 0)
+ ? ((String)o).charAt( 0 )
+ : 0;
+ }
+
+ public static boolean getBooleanToken( StringTokenizer st )
+ {
+ Object o = getToken( st );
+
+ return (o instanceof Boolean) && ((Boolean)o).booleanValue();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSQueryInfo.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSQueryInfo.java
new file mode 100644
index 0000000..c65341e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSQueryInfo.java
@@ -0,0 +1,697 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.PrintWriter;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+
+public class PRSQueryInfo
+{
+ private final PersistentQueryCache cache;
+
+ private int id;
+ private String idstring;
+ private long createTime;
+ private ICatalogQuery query;
+ private String upfrontQueryText;
+ private boolean hasUpfrontQueryExecuted;
+ private PRSDatabaseLoader upfrontLoader;
+ private boolean isComplete;
+ private boolean isError = false;
+ private SQLException exception = null;
+
+ private int[] filterColNumbers;
+
+ private PRSMetadata metadata;
+
+ private int nextRowNumber = 0;
+
+ private final List<PRSSliceInfo> loadingSlices = new ArrayList<PRSSliceInfo>();
+
+ private final Map<SliceKey, PRSSliceInfo> sliceMap = new HashMap<SliceKey, PRSSliceInfo>();
+
+ public PRSQueryInfo( PersistentQueryCache cache, int id, ICatalogQuery query )
+ {
+ this.cache = cache;
+ this.id = id;
+ this.idstring = String.format( "%03d", Integer.valueOf( this.id ) ); //$NON-NLS-1$
+
+ reset( query );
+ }
+
+ private PRSQueryInfo( PersistentQueryCache cache )
+ {
+ this.cache = cache;
+ this.id = -1;
+ this.query = null;
+ this.upfrontQueryText = null;
+ this.createTime = 0L;
+
+ this.idstring = null;
+ }
+
+ public void setException( SQLException exception )
+ {
+ this.exception = exception;
+ }
+
+ public SQLException getException()
+ {
+ return this.exception;
+ }
+
+ public synchronized void reset( ICatalogQuery q )
+ {
+ File qdata = getDataFile();
+ File qslices = getSlicesFile();
+ File qmeta = getMetadataFile();
+
+ if ( (qdata != null) && qdata.exists() )
+ {
+ qdata.delete();
+ }
+
+ if ( (qslices != null) && qslices.exists() )
+ {
+ qslices.delete();
+ }
+
+ if ( (qmeta != null) && qmeta.exists() )
+ {
+ qmeta.delete();
+ }
+
+ this.createTime = System.currentTimeMillis();
+ this.isComplete = false;
+ this.nextRowNumber = 1;
+ this.metadata = null;
+ this.query = q;
+ this.upfrontQueryText = this.query.generateUpFrontQuery( this.cache.getDatabase() );
+ this.hasUpfrontQueryExecuted = false;
+ this.upfrontLoader = null;
+
+ this.sliceMap.clear();
+ this.loadingSlices.clear();
+ }
+
+ public static PRSQueryInfo loadSavedQuery( PersistentQueryCache cache, String line )
+ {
+ if ( PRSDebug.noFileCache )
+ {
+ return null;
+ }
+
+ PRSQueryInfo qinfo = new PRSQueryInfo( cache );
+
+ try
+ {
+ if ( !qinfo.fromPrintString( line ) )
+ {
+ return null;
+ }
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+
+ qinfo.loadSlices();
+ qinfo.loadMetadata();
+
+ cache.registerQueryInfo( qinfo );
+
+ return qinfo;
+ }
+
+ public int getId()
+ {
+ return this.id;
+ }
+
+ public ICatalogQuery getQuery()
+ {
+ return this.query;
+ }
+
+ public PersistentQueryCache getQueryCache()
+ {
+ return this.cache;
+ }
+
+ public String getUpfrontQueryText()
+ {
+ return this.upfrontQueryText;
+ }
+
+ public void setMetadata( PRSMetadata metadata )
+ {
+ this.metadata = metadata;
+
+ this.metadata.save( getMetadataFile() );
+ }
+
+ public PRSMetadata getMetadata()
+ {
+ return this.metadata;
+ }
+
+ /** Return whether the result set is configured to be filtered */
+ public boolean canFilter()
+ {
+ if ( this.filterColNumbers != null )
+ {
+ return this.filterColNumbers.length > 0;
+ }
+
+ return (this.query != null) //
+ && (this.query.getFilterColumnCount() > 0);
+ }
+
+ public void setComplete()
+ {
+ this.isComplete = true;
+ }
+
+ /** Upfront query has been run, no DB queries are active */
+ public boolean isComplete()
+ {
+ return this.isComplete;
+ }
+
+ /** Upfront query has been initiated for this query */
+ public boolean hasUpfrontQueryExecuted()
+ {
+ return this.hasUpfrontQueryExecuted;
+ }
+
+ public String toPrintString()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ PRSPersistenceUtility.append( sb, this.id );
+ PRSPersistenceUtility.append( sb, this.idstring );
+ PRSPersistenceUtility.append( sb, this.createTime );
+ PRSPersistenceUtility.append( sb, this.upfrontQueryText );
+ PRSPersistenceUtility.append( sb, this.hasUpfrontQueryExecuted );
+ PRSPersistenceUtility.append( sb, this.isComplete );
+
+ determineFilterColumnNumbers();
+
+ PRSPersistenceUtility.append( sb, (this.filterColNumbers != null)
+ ? this.filterColNumbers.length
+ : 0 );
+
+ if ( this.filterColNumbers != null )
+ {
+ for ( int colnum : this.filterColNumbers )
+ {
+ PRSPersistenceUtility.append( sb, colnum );
+ }
+ }
+
+ return sb.toString();
+ }
+
+ private boolean fromPrintString( String s )
+ {
+ StringTokenizer toker = new StringTokenizer( s, "|" ); //$NON-NLS-1$
+
+ this.id = PRSPersistenceUtility.getIntToken( toker );
+ this.idstring = PRSPersistenceUtility.getStringToken( toker );
+ this.createTime = PRSPersistenceUtility.getLongToken( toker );
+ this.upfrontQueryText = PRSPersistenceUtility.getStringToken( toker );
+ this.hasUpfrontQueryExecuted = PRSPersistenceUtility.getBooleanToken( toker );
+ this.isComplete = PRSPersistenceUtility.getBooleanToken( toker );
+
+ int numFilterCols = PRSPersistenceUtility.getIntToken( toker );
+
+ this.filterColNumbers = new int[ numFilterCols ];
+
+ for ( int ii = 0; ii < numFilterCols; ++ii )
+ {
+ this.filterColNumbers[ ii ] = PRSPersistenceUtility.getIntToken( toker );
+ }
+
+ return true;
+ }
+
+ public void quitOnError( PRSDatabaseLoader dbloader )
+ {
+ this.isError = true;
+
+ finishLoad( dbloader );
+ }
+
+ public void loadFinished( PRSDatabaseLoader dbloader )
+ {
+ finishLoad( dbloader );
+ }
+
+ private synchronized void finishLoad( PRSDatabaseLoader dbloader )
+ {
+ for ( Iterator<PRSSliceInfo> iter = this.loadingSlices.iterator(); iter.hasNext(); )
+ {
+ PRSSliceInfo slice = iter.next();
+
+ if ( slice.getLoader() == dbloader )
+ {
+ slice.finish();
+ iter.remove();
+ }
+ }
+
+ if ( this.isError //
+ || (this.hasUpfrontQueryExecuted && this.loadingSlices.isEmpty()) )
+ {
+ this.isComplete = true;
+
+ saveSlices();
+ }
+
+ if ( this.upfrontLoader == dbloader )
+ {
+ this.upfrontLoader = null;
+ }
+ }
+
+ private void saveSlices()
+ {
+ if ( this.sliceMap.isEmpty() || PRSDebug.noFileCache || !PRSDebug.enableFileCache )
+ {
+ return;
+ }
+
+ PrintWriter pw = getSliceFileWriter();
+
+ if (pw == null) {
+ return;
+ }
+
+ for ( PRSSliceInfo slice : getSlices() )
+ {
+ slice.finish();
+
+ slice.save( pw );
+ }
+
+ CatalogLoadUtil.safeClose( pw );
+ }
+
+ private boolean loadSlices()
+ {
+ if ( PRSDebug.noFileCache )
+ {
+ return false;
+ }
+
+ LineNumberReader lnr = null;
+
+ try
+ {
+ File sfile = getSlicesFile();
+
+ if ( (sfile == null) || !sfile.isFile() || !sfile.canRead() )
+ {
+ return false;
+ }
+
+ lnr = PRSPersistenceUtility.openFileForRead( sfile );
+ if ( lnr == null )
+ {
+ return false;
+ }
+
+ for ( ;; )
+ {
+ String line = lnr.readLine();
+ if ( line == null )
+ {
+ break;
+ }
+
+ PRSSliceInfo slice = PRSSliceInfo.loadSavedSlice( this, line );
+
+ this.sliceMap.put( slice.getSliceKey(), slice );
+ slice.setComplete();
+ }
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ finally
+ {
+ CatalogLoadUtil.safeClose( lnr );
+ }
+
+ return true;
+ }
+
+ public void loadMetadata()
+ {
+ if ( PRSDebug.noFileCache )
+ {
+ return;
+ }
+
+ File mdfile = getMetadataFile();
+
+ if ( (mdfile == null) || !mdfile.exists() || !mdfile.canRead() )
+ {
+ return;
+ }
+
+ LineNumberReader lr = null;
+
+ try
+ {
+ lr = new LineNumberReader( new FileReader( mdfile ) );
+
+ this.metadata = PRSMetadata.loadSavedMetadata( lr );
+ }
+ catch (Exception e)
+ {
+ IBMPluginActivator.log( e );
+ }
+ finally
+ {
+ CatalogLoadUtil.safeClose( lr );
+ }
+ }
+
+ public PRSSliceInfo[] getSlices()
+ {
+ PRSSliceInfo[] slices = this.sliceMap.values().toArray( new PRSSliceInfo[ this.sliceMap.size() ] );
+
+ Arrays.sort( slices, //
+ new Comparator<PRSSliceInfo>()
+ {
+ @Override
+ public int compare( PRSSliceInfo s1, PRSSliceInfo s2 )
+ {
+ return (s1.getSerialNumber() > s2.getSerialNumber())
+ ? 1
+ : -1;
+ }
+ } );
+
+ return slices;
+ }
+
+ public PrintWriter getSliceFileWriter()
+ {
+ return PRSPersistenceUtility.openFileForCreate( getSlicesFile() );
+ }
+
+ public File getMetadataFile()
+ {
+ File cacheFolder = this.cache.getCacheFolder();
+ if ( cacheFolder == null )
+ {
+ return null;
+ }
+
+ String name = "q" + this.idstring + "_metadata.txt"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ return new File( cacheFolder, name );
+ }
+
+ public File getDataFile()
+ {
+ File cacheFolder = this.cache.getCacheFolder();
+ if ( cacheFolder == null )
+ {
+ return null;
+ }
+
+ String name = "q" + this.idstring + "_data.txt"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ return new File( cacheFolder, name );
+ }
+
+ public long getDataFileByteOffset()
+ {
+ File dataFile = getDataFile();
+
+ return ((dataFile != null) && dataFile.isFile())
+ ? dataFile.length()
+ : -1;
+ }
+
+ public int getNextDataFileRowOffset()
+ {
+ return this.nextRowNumber + 1;
+ }
+
+ public int nextDataFileRowOffset()
+ {
+ return ++this.nextRowNumber;
+ }
+
+ public File getSlicesFile()
+ {
+ File cacheFolder = this.cache.getCacheFolder();
+ if ( cacheFolder == null )
+ {
+ return null;
+ }
+
+ String name = "q" + this.idstring + "_slices.txt"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ return new File( cacheFolder, name );
+ }
+
+ /** Get the indexes of the items we are configured to filter on */
+ private synchronized void determineFilterColumnNumbers()
+ {
+ if ( (this.metadata == null) || !canFilter() )
+ {
+ return;
+ }
+
+ if ( this.filterColNumbers == null )
+ {
+ this.filterColNumbers = getMetadata().convertColumnNames( //
+ this.query.getFilterColumns() );
+ }
+ }
+
+ public PRSSliceInfo getSlice( ICatalogQuery q, Connection conn )
+ {
+ SliceKey slicekey = new SliceKey( q.getFilterValues() );
+
+ PRSSliceInfo slice = this.sliceMap.get( slicekey );
+ if ( slice != null )
+ {
+ return slice;
+ }
+
+ slice = getSlice( slicekey );
+
+ if ( isComplete() )
+ {
+ // System.out.println( "qinfo " + this.id +
+ // " is finished; creating empty slice for " +
+ // slicekey.getKeyString() );
+ slice.finish();
+
+ return slice;
+ }
+
+ addSliceBeingLoaded( slice );
+
+ if (q.useOnDemandQuery() && q.canBeOnDemand()) {
+ PRSDatabaseLoader dbloader = createLoader( q );
+
+ slice.setLoader( dbloader );
+ dbloader.initiateQuery( conn );
+ } else if ( !this.isError && (this.exception == null) && !this.hasUpfrontQueryExecuted ) {
+ this.upfrontLoader = createLoader( q );
+
+ if ( slice.getLoader() == null )
+ {
+ slice.setLoader( this.upfrontLoader );
+ }
+
+ this.upfrontLoader.initiateQuery( conn );
+ this.hasUpfrontQueryExecuted = true;
+ }
+
+ if ( this.isError || (this.exception != null) )
+ {
+ slice.finish();
+ }
+ else if ( slice.getLoader() == null )
+ {
+ slice.setLoader( this.upfrontLoader );
+ }
+ return slice;
+ }
+
+ private PRSDatabaseLoader createLoader( ICatalogQuery q )
+ {
+ return new PRSDatabaseLoader( this, q );
+ }
+
+ public synchronized void addSlice( PRSSliceInfo slice )
+ {
+ this.sliceMap.put( slice.getSliceKey(), slice );
+ }
+
+ public synchronized PRSSliceInfo getSlice( SliceKey slicekey )
+ {
+ PRSSliceInfo slice = this.sliceMap.get( slicekey );
+
+ if ( slice == null )
+ {
+ slice = new PRSSliceInfo( this, slicekey );
+
+ addSlice( slice );
+ }
+
+ return slice;
+ }
+
+ public void addRow( Object[] row, PRSDatabaseLoader dbloader )
+ {
+ SliceKey slicekey = getSliceKey( row );
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "PRSQuery: row key=" + slicekey ); //$NON-NLS-1$
+ }
+
+ PRSSliceInfo slice = this.sliceMap.get( slicekey );
+
+ if ( slice == null )
+ {
+ doneLoadingPreviousSlices( dbloader );
+
+ slice = getSlice( slicekey );
+ addSliceBeingLoaded( slice );
+ slice.setLoader( dbloader );
+
+ startSlice( slice );
+ }
+
+ if ( slice.getLoader() == dbloader )
+ {
+ slice.addRow( row );
+ }
+ }
+
+ private synchronized void addSliceBeingLoaded( PRSSliceInfo slice )
+ {
+ this.loadingSlices.add( slice );
+ }
+
+ private synchronized void doneLoadingPreviousSlices( PRSDatabaseLoader dbloader )
+ {
+ for ( Iterator<PRSSliceInfo> iter = this.loadingSlices.iterator(); iter.hasNext(); )
+ {
+ PRSSliceInfo slice = iter.next();
+
+ if ( !slice.isEmpty() && (slice.getLoader() == dbloader) )
+ {
+ slice.setComplete();
+ iter.remove();
+ }
+ }
+ }
+
+ public SliceKey getSliceKey( Object[] row )
+ {
+ return (canFilter())
+ ? new SliceKey( getFilterValues( row ) )
+ : SliceKey.EMPTY;
+ }
+
+ private String[] getFilterValues( Object[] row )
+ {
+ determineFilterColumnNumbers();
+
+ int count = this.query.getFilterColumnCount();
+
+ String[] filterValues = new String[ count ];
+
+ for ( int ii = 0; ii < count; ++ii )
+ {
+ int rowidx = this.filterColNumbers[ ii ] - 1;
+
+ Object obj = row[ rowidx ];
+
+ String value;
+
+ if ( obj instanceof String )
+ {
+ value = (String)obj;
+ }
+ else
+ {
+ value = (obj != null)
+ ? obj.toString()
+ : StringCache.EMPTY;
+ }
+
+ filterValues[ ii ] = value.trim();
+ }
+
+ return filterValues;
+ }
+
+ private void startSlice( PRSSliceInfo slice )
+ {
+ if ( PRSDebug.noFileCache )
+ {
+ return;
+ }
+
+ // TODO is there any housekeeping to do here?
+ }
+
+ public boolean hasAlreadyCached( SliceKey slicekey )
+ {
+ if ( this.hasUpfrontQueryExecuted )
+ {
+ return true;
+ }
+
+ return !slicekey.isEmpty() //
+ && this.sliceMap.containsKey( slicekey );
+ }
+
+ public boolean hasFilteredContent()
+ {
+ return !this.hasUpfrontQueryExecuted && !this.sliceMap.isEmpty();
+ }
+
+ public SliceKey[] getCachedFilters()
+ {
+ return this.sliceMap.keySet().toArray( new SliceKey[ 0 ] );
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSSliceInfo.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSSliceInfo.java
new file mode 100644
index 0000000..12955dc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PRSSliceInfo.java
@@ -0,0 +1,541 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.PrintWriter;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+
+public class PRSSliceInfo
+{
+ private static int writeRowCount = 0;
+ private static int readRowCount = 0;
+ private int reloadCount = 0;
+
+ private static int nextSerialNumber = 0;
+
+ private int serialNumber;
+ private final PRSQueryInfo qinfo;
+ private final SliceKey slicekey;
+ private long byteOffset = -1L; // TODO approximate?
+ private int rowOffset = -1;
+ private final List<Object[]> rowBuffer = new ArrayList<Object[]>();
+ private boolean complete = false;
+ private int size = -1;
+
+ private boolean needsFlush = true;
+ private PRSDatabaseLoader dbloader;
+
+ public PRSSliceInfo( PRSQueryInfo qinfo, SliceKey slicekey )
+ {
+ this.serialNumber = nextSerialNumber++;
+ this.qinfo = qinfo;
+ this.slicekey = slicekey;
+ }
+
+ public int getSerialNumber()
+ {
+ return this.serialNumber;
+ }
+
+ public void setSerialNumber( int serialNumber )
+ {
+ this.serialNumber = serialNumber;
+
+ if ( serialNumber >= nextSerialNumber )
+ {
+ nextSerialNumber = serialNumber + 1;
+ }
+ }
+
+ public void setLoader( PRSDatabaseLoader dbloader )
+ {
+ if ( (this.dbloader == null) && this.rowBuffer.isEmpty() )
+ {
+ this.dbloader = dbloader;
+ }
+ }
+
+ public PRSDatabaseLoader getLoader()
+ {
+ return this.dbloader;
+ }
+
+ public static PRSSliceInfo loadSavedSlice( PRSQueryInfo qinfo, String line )
+ {
+ StringTokenizer toker = new StringTokenizer( line, "|" ); //$NON-NLS-1$
+
+ int serialNumber = PRSPersistenceUtility.getIntToken( toker );
+ long byteOffset = PRSPersistenceUtility.getLongToken( toker );
+ int rowOffset = PRSPersistenceUtility.getIntToken( toker );
+ int size = PRSPersistenceUtility.getIntToken( toker );
+ String keystr = PRSPersistenceUtility.getStringToken( toker );
+
+ SliceKey slicekey = new SliceKey( SliceKey.extractFilterValues( keystr ) );
+
+ PRSSliceInfo slice = new PRSSliceInfo( qinfo, slicekey );
+
+ slice.setSerialNumber( serialNumber );
+ slice.byteOffset = byteOffset;
+ slice.rowOffset = rowOffset;
+ slice.size = size;
+
+ slice.needsFlush = false;
+
+ return slice;
+ }
+
+ public PRSQueryInfo getQueryInfo()
+ {
+ return this.qinfo;
+ }
+
+ public SliceKey getSliceKey()
+ {
+ return this.slicekey;
+ }
+
+ public long getDataOffset()
+ {
+ return this.byteOffset;
+ }
+
+ public void setDataOffset( long offset )
+ {
+ this.byteOffset = offset;
+ }
+
+ public boolean isEmpty()
+ {
+ return size() == 0;
+ }
+
+ public boolean isComplete()
+ {
+ synchronized (this.rowBuffer)
+ {
+ return this.complete;
+ }
+ }
+
+ public void setComplete()
+ {
+ synchronized (this.rowBuffer)
+ {
+ this.complete = true;
+ setLoader( null );
+
+ this.size = this.rowBuffer.size();
+ }
+ }
+
+ public void waitUntilComplete()
+ {
+ while ( !isComplete() )
+ {
+ waitForRow();
+ }
+ }
+
+ public void finish()
+ {
+ setComplete();
+
+ if ( size() == 0 )
+ {
+ this.byteOffset = 0L;
+ this.rowOffset = 0;
+ this.needsFlush = false;
+ }
+ else
+ {
+ flushSliceData();
+ }
+ }
+
+ public int size()
+ {
+ synchronized (this.rowBuffer)
+ {
+ if ( this.size < 0 )
+ {
+ this.size = this.rowBuffer.size();
+ }
+
+ return this.size;
+ }
+ }
+
+ public void addRow( Object[] row )
+ {
+ if ( isComplete() || (this.dbloader == null) )
+ {
+ // System.out.println( //
+ // "ERROR! adding row to slice without dbloader set!" );
+ return;
+ }
+
+ synchronized (this.rowBuffer)
+ {
+ this.rowBuffer.add( row );
+ this.size = -1;
+
+ this.needsFlush = true;
+ }
+ }
+
+ public void waitForRow()
+ {
+ waitForRow( size() + 1 );
+ }
+
+ public void waitForRow( int rowRequired )
+ {
+ while ( !isComplete() && (rowRequired > size()) )
+ {
+ // TODO GLD use wait() and notify() to synchronize with data source
+ try
+ {
+ Thread.sleep( 100 );
+ }
+ catch (InterruptedException e)
+ {
+ // whatever
+ }
+ }
+ }
+
+ public Object getCurrentValue( int rownum, int index ) throws SQLException
+ {
+ if ( (index < 1) || (index > this.qinfo.getMetadata().getColumnCount()) )
+ {
+ throw new SQLException( //
+ String.format( PersistentResultSet.ERR_COL_NUM, //
+ new Object[] {
+ Integer.valueOf( index )
+ } ) );
+ }
+
+ Object[] row = getRow( rownum );
+
+ if ( row == null )
+ {
+ throw new SQLException( PersistentResultSet.ERR_NO_ROW + " " + rownum ); //$NON-NLS-1$
+ }
+
+ return row[ index - 1 ];
+ }
+
+ public Object[] getRow( int index )
+ {
+ if ( index < 1 )
+ {
+ return null;
+ }
+
+ synchronized (this.rowBuffer)
+ {
+ if ( this.rowBuffer.isEmpty() && (this.size > 0) )
+ {
+ reloadRowData();
+ }
+ }
+
+ waitForRow( index );
+
+ synchronized (this.rowBuffer)
+ {
+ return (index - 1 < size())
+ ? this.rowBuffer.get( index - 1 )
+ : null;
+ }
+ }
+
+ private void flushSliceData()
+ {
+ if ( !this.needsFlush || PRSDebug.noFileCache || !PRSDebug.enableFileCache )
+ {
+ return;
+ }
+
+ if ( PRSDebug.traceQueries )
+ {
+ writeRowCount += this.rowBuffer.size();
+ System.out.println( "Flushing slice q" + this.qinfo.getId() ); //$NON-NLS-1$
+ System.out.println( " " + this.rowBuffer.size() + " rows" //$NON-NLS-1$ //$NON-NLS-2$
+ + " total r=" + readRowCount + " w=" + writeRowCount ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ synchronized (this.rowBuffer)
+ {
+ if ( !this.rowBuffer.isEmpty() )
+ {
+ if ( this.byteOffset < 0 )
+ {
+ File dfile = this.qinfo.getDataFile();
+
+ this.byteOffset = dfile.length();
+ }
+
+ if ( this.rowOffset < 0 )
+ {
+ this.rowOffset = this.qinfo.getNextDataFileRowOffset();
+ }
+
+ PrintWriter pw = getDataFileWriter();
+ if (pw == null) {
+ needsFlush = false;
+ return;
+ }
+
+ for ( Object[] row : this.rowBuffer )
+ {
+ pw.println( rowToPrintString( row ) );
+ }
+
+ CatalogLoadUtil.safeClose( pw );
+ }
+
+ this.needsFlush = false;
+ }
+ }
+
+ public void unloadRowData()
+ {
+ synchronized (this.rowBuffer)
+ {
+ flushSliceData();
+
+ if ( PRSDebug.enableFileCache )
+ {
+ this.rowBuffer.clear();
+ }
+ }
+ }
+
+ private void reloadRowData()
+ {
+ if ( this.size <= 0 )
+ {
+ return;
+ }
+
+ if ( !PRSDebug.enableFileCache )
+ {
+ if ( PRSDebug.traceQueries )
+ {
+ System.out.println( " ERROR! Can't reload slice when file caching is disabled!" ); //$NON-NLS-1$
+ }
+
+ return;
+ }
+
+ if ( PRSDebug.traceQueries )
+ {
+ readRowCount += this.size;
+ ++this.reloadCount;
+ System.out.println( "Reloading slice q" + this.qinfo.getId() ); //$NON-NLS-1$
+ System.out.println( " " + size + " rows" // //$NON-NLS-1$ //$NON-NLS-2$
+ + " total r=" + readRowCount + " w=" + writeRowCount ); //$NON-NLS-1$ //$NON-NLS-2$
+ System.out.println( " " + this.reloadCount + " reloads for this slice" ); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ if ( !this.rowBuffer.isEmpty() )
+ {
+ if ( this.needsFlush )
+ {
+ // DataToolsPlugin.log( new SQLException(
+ // "Attempted reload of dirty Slice" ) );
+
+ return;
+ }
+
+ this.rowBuffer.clear();
+ }
+
+ File sfile = this.qinfo.getDataFile();
+
+ if ( (sfile == null) || !sfile.exists() || !sfile.canRead() )
+ {
+ return;
+ }
+
+ LineNumberReader lr = null;
+
+ try
+ {
+ lr = new LineNumberReader( new FileReader( sfile ) );
+
+ int count = this.size;
+
+ for ( String line = seekFirstRow( lr ); (count > 0) && (line != null); --count )
+ {
+ Object[] row = printStringToRow( line );
+
+ if ( row == null )
+ {
+ break;
+ }
+
+ this.rowBuffer.add( row );
+
+ line = lr.readLine();
+ }
+ }
+ catch (Exception e)
+ {
+ IBMPluginActivator.log( e );
+ }
+ finally
+ {
+ CatalogLoadUtil.safeClose( lr );
+ }
+
+ if ( this.rowBuffer.size() != this.size )
+ {
+ // int oldsize = this.size;
+ this.size = this.rowBuffer.size();
+
+ // DataToolsPlugin.log( //
+ // new SQLException( "Row count invalid on reload Slice (" //
+ // + "remembered=" + oldsize + " actual=" + this.size ) );
+ }
+
+ this.needsFlush = false;
+ }
+
+ private String seekFirstRow( LineNumberReader lr ) throws IOException
+ {
+ if ( this.byteOffset > 0 )
+ {
+ lr.skip( this.byteOffset );
+ }
+
+ for ( ;; )
+ {
+ String line = lr.readLine();
+
+ if ( line == null )
+ {
+ return null;
+ }
+
+ StringTokenizer st = new StringTokenizer( line, "|" ); //$NON-NLS-1$
+
+ int rownum = PRSPersistenceUtility.getIntToken( st );
+
+ if ( rownum > this.rowOffset )
+ {
+ return null;
+ }
+
+ if ( rownum == this.rowOffset )
+ {
+ return line;
+ }
+ }
+ }
+
+ public void save( PrintWriter pw )
+ {
+ pw.println( toPrintString() );
+ }
+
+ public String toPrintString()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ if ( this.byteOffset < 0L )
+ {
+ this.byteOffset = 0L;
+ }
+
+ if ( this.rowOffset < 0 )
+ {
+ this.rowOffset = 0;
+ }
+
+ PRSPersistenceUtility.append( sb, this.serialNumber );
+ PRSPersistenceUtility.append( sb, this.byteOffset );
+ PRSPersistenceUtility.append( sb, this.rowOffset );
+ PRSPersistenceUtility.append( sb, size() );
+ PRSPersistenceUtility.append( sb, getSliceKey().toString() );
+
+ return sb.toString();
+ }
+
+ public String rowToPrintString( Object[] row )
+ {
+ int numcols = 0;
+
+ try
+ {
+ numcols = this.qinfo.getMetadata().getColumnCount();
+ }
+ catch (SQLException e)
+ {
+ IBMPluginActivator.log( e );
+ }
+
+ StringBuilder sb = new StringBuilder();
+
+ PRSPersistenceUtility.append( sb, this.qinfo.nextDataFileRowOffset() );
+
+ for ( int ii = 0; ii < numcols; ++ii )
+ {
+ PRSPersistenceUtility.append( sb, row[ ii ] );
+ }
+
+ return sb.toString();
+ }
+
+ public Object[] printStringToRow( String s )
+ {
+ int numcols = 0;
+
+ try
+ {
+ numcols = this.qinfo.getMetadata().getColumnCount();
+ }
+ catch (SQLException e)
+ {
+ IBMPluginActivator.log( e );
+ }
+
+ Object[] row = new Object[ numcols ];
+
+ StringTokenizer st = new StringTokenizer( s, "|" ); //$NON-NLS-1$
+
+ // ignore value int rownum =
+ PRSPersistenceUtility.getIntToken( st );
+
+ for ( int ii = 0; ii < numcols; ++ii )
+ {
+ row[ ii ] = PRSPersistenceUtility.getToken( st );
+ }
+
+ return row;
+ }
+
+ public PrintWriter getDataFileWriter()
+ {
+ return PRSPersistenceUtility.openFileForAppend( this.qinfo.getDataFile() );
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentQueryCache.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentQueryCache.java
new file mode 100644
index 0000000..914a9f0
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentQueryCache.java
@@ -0,0 +1,604 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
+import java.sql.Connection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import org.eclipse.datatools.connectivity.ConnectEvent;
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.IManagedConnection;
+import org.eclipse.datatools.connectivity.IManagedConnectionListener;
+import org.eclipse.datatools.connectivity.sqm.core.connection.ConnectionInfo;
+import org.eclipse.datatools.connectivity.sqm.core.containment.ContainmentService;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.DatabaseConnectionRegistry;
+import org.eclipse.datatools.connectivity.sqm.internal.core.util.ConnectionUtil;
+import org.eclipse.datatools.enablement.ibm.IBMPluginActivator;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogLoadUtil;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogObjectEvent;
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogObjectEventListener;
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogObjectEvent.EVENT_TYPE;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.ecore.EObject;
+
+public class PersistentQueryCache
+{
+ private static final String METADATA_VERSION = "MD01"; //$NON-NLS-1$
+
+ private static final String LOCALHOST = "localhost"; //$NON-NLS-1$
+
+ private static List<PersistentQueryCache> activeCaches = null;
+ private static int[] cacheLock = new int[ 0 ];
+
+ private final Database database;
+ private File cacheFolder;
+
+ private final List<PRSQueryInfo> queries = new ArrayList<PRSQueryInfo>();
+ private final boolean[] queriesLocked = new boolean[] {
+ false
+ };
+
+ private ConnectionCloseListener connectionCloseListener = null;
+ private ICatalogObjectEventListener refreshListener = null;
+
+ public static PersistentQueryCache getQueryCache( Database db )
+ {
+ synchronized (cacheLock)
+ {
+ if ( activeCaches == null )
+ {
+ activeCaches = new ArrayList<PersistentQueryCache>();
+
+ initializeDiskCache();
+ }
+
+ for ( PersistentQueryCache qcache : activeCaches )
+ {
+ if ( qcache == null //
+ || qcache.database == null //
+ || db == null )
+ {
+ continue;
+ }
+
+ if ( qcache.database.equals( db ) )
+ {
+ return qcache;
+ }
+ }
+ }
+
+ return new PersistentQueryCache( db );
+ }
+
+ private PersistentQueryCache( Database db )
+ {
+ this.database = db;
+
+ synchronized (cacheLock)
+ {
+ activeCaches.add( this );
+ }
+
+ this.refreshListener = new ICatalogObjectEventListener()
+ {
+ @Override
+ public void notifyChanged( CatalogObjectEvent event )
+ {
+ if ( event.type == EVENT_TYPE.ELEMENT_REFRESH )
+ {
+ respondToRefresh( event.element );
+ }
+ }
+ };
+
+ RefreshEventManager.getInstance().addCatalogObjectEventListener( //
+ null, this.refreshListener );
+
+ this.connectionCloseListener = new ConnectionCloseListener();
+
+ initCacheFolder();
+ }
+
+ private void releaseResources()
+ {
+ // save();
+ purge();
+
+ synchronized (cacheLock)
+ {
+ activeCaches.remove( this );
+ }
+
+ this.connectionCloseListener = null;
+
+ RefreshEventManager.getInstance().removeCatalogObjectEventListener( //
+ null, this.refreshListener );
+ this.refreshListener = null;
+ }
+
+ private void initCacheFolder()
+ {
+ if ( PRSDebug.noFileCache || (this.cacheFolder != null) )
+ {
+ return;
+ }
+
+ File cachedir = generateUniqueCacheFolder();
+
+ if ( cachedir != null )
+ {
+ if ( !cachedir.exists() )
+ {
+ if ( !cachedir.mkdirs() )
+ {
+ cachedir = null;
+ }
+ }
+ else
+ {
+ this.cacheFolder = cachedir;
+
+ load();
+ }
+ }
+
+ this.cacheFolder = cachedir;
+ }
+
+ private File generateUniqueCacheFolder()
+ {
+ if ( this.database == null )
+ {
+ return null;
+ }
+
+ File cacheRoot = getQueryRootFolder();
+ if ( (cacheRoot == null) || !cacheRoot.isDirectory() )
+ {
+ return null;
+ }
+
+ String name = "";
+ IConnectionProfile profile = null;
+
+ ConnectionInfo connectionInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase(database);
+ if (connectionInfo != null) {
+ profile = connectionInfo.getConnectionProfile();
+ name = profile.getName();
+ } else {
+ name = database.getName();
+ }
+
+ String dirname = getHostName(profile) + "_" + name;
+ File cachedir = new File( cacheRoot, dirname );
+
+ return cachedir;
+ }
+
+ private static String getHostName(IConnectionProfile cp)
+ {
+ if ( cp == null )
+ {
+ return LOCALHOST;
+ }
+
+ Properties properties = cp.getProperties( cp.getProviderId() );
+ String URL = properties.getProperty( "org.eclipse.datatools.connectivity.db.URL" ); //$NON-NLS-1$
+
+ int hostStr = URL.indexOf( "://" ); //$NON-NLS-1$
+
+ if ( hostStr < 0 )
+ {
+ return LOCALHOST;
+ }
+
+ // URL is of format jdbc:db2://localhost:port/...
+ hostStr += 3;
+
+ int hostEnd = URL.indexOf( ":", hostStr ); //$NON-NLS-1$
+
+ return (hostEnd > hostStr)
+ ? URL.substring( hostStr, hostEnd )
+ : URL.substring( hostStr );
+ }
+
+ public Database getDatabase()
+ {
+ return this.database;
+ }
+
+ public File getCacheFolder()
+ {
+ return this.cacheFolder;
+ }
+
+ private static File getQueryRootFolder()
+ {
+ return null;
+ }
+
+ /** Create the cache (all databases). Purge data if it already exists */
+ private static void initializeDiskCache()
+ {
+ File cacheRoot = getQueryRootFolder();
+ if ( cacheRoot == null )
+ {
+ return;
+ }
+
+ if ( !cacheRoot.exists() )
+ {
+ if ( !cacheRoot.mkdirs() )
+ {
+ // TODO error
+ return;
+ }
+ }
+ else if ( cacheRoot.isDirectory() )
+ {
+ // If reuse of cache data is implemented, we don't want this
+ purgeAll();
+ }
+ }
+
+ public static void resetQuery( Database db, ICatalogQuery query )
+ {
+ PersistentQueryCache cache = getQueryCache( db );
+
+ PRSQueryInfo qinfo = cache.getQueryInfo( query );
+
+ if ( (qinfo != null) && qinfo.isComplete() )
+ {
+ qinfo.reset( query );
+ }
+ }
+
+ /** Purge the entire cache (all databases) */
+ private static void purgeAll()
+ {
+ File cacheRoot = getQueryRootFolder();
+ if ( (cacheRoot == null) || !cacheRoot.isDirectory() )
+ {
+ return;
+ }
+
+ for ( File cachedir : cacheRoot.listFiles() )
+ {
+ if ( cachedir.isDirectory() )
+ {
+ for ( File file : cachedir.listFiles() )
+ {
+ file.delete();
+ }
+
+ cachedir.delete();
+ }
+ }
+ }
+
+ /** Purge the cache for the associated database */
+ public void purge()
+ {
+ synchronized (this.queries)
+ {
+ this.queries.clear();
+ }
+
+ if ( this.cacheFolder == null )
+ {
+ return;
+ }
+
+ for ( File file : this.cacheFolder.listFiles() )
+ {
+ file.delete();
+ }
+ }
+
+ public PRSQueryInfo getQueryInfo( ICatalogQuery query )
+ {
+ String upfrontQueryText = query.generateUpFrontQuery( this.database );
+
+ if ( upfrontQueryText == null )
+ {
+ return null;
+ }
+
+ synchronized (this.queries)
+ {
+ for ( int ii = this.queries.size() - 1; ii >= 0; --ii )
+ {
+ PRSQueryInfo qinfo = this.queries.get( ii );
+
+ if ( upfrontQueryText.equals( qinfo.getUpfrontQueryText() ) )
+ {
+ return qinfo;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ private PRSQueryInfo findOrCreateQueryInfo( ICatalogQuery query )
+ {
+ PRSQueryInfo qinfo = getQueryInfo( query );
+
+ if ( qinfo == null )
+ {
+ qinfo = createQueryInfo( query );
+ }
+
+ return qinfo;
+ }
+
+ private PRSQueryInfo createQueryInfo( ICatalogQuery query )
+ {
+ synchronized (this.queries)
+ {
+ int id = this.queries.size();
+
+ PRSQueryInfo qinfo = new PRSQueryInfo( this, id, query );
+ registerQueryInfo( qinfo );
+
+ return qinfo;
+ }
+ }
+
+ public PRSSliceInfo getSlice( ICatalogQuery query, Connection conn )
+ {
+ PRSQueryInfo qinfo = findOrCreateQueryInfo( query );
+
+ return qinfo.getSlice( query, conn );
+ }
+
+ public void registerQueryInfo( PRSQueryInfo qinfo )
+ {
+ synchronized (this.queries)
+ {
+ this.queries.add( qinfo );
+
+ saveQueries();
+ }
+ }
+
+ public void save()
+ {
+ saveQueries();
+ }
+
+ public void load()
+ {
+ loadQueries();
+ }
+
+ public void saveQueries()
+ {
+ if (PRSDebug.noFileCache || getCacheFolder() == null) {
+ return;
+ }
+
+ if ( this.queriesLocked[ 0 ] )
+ {
+ return;
+ }
+
+ this.queriesLocked[ 0 ] = true;
+
+ PrintWriter pw = null;
+
+ try
+ {
+ pw = PRSPersistenceUtility.openFileForCreate( getQueriesFile() );
+ if (pw == null) {
+ return;
+ }
+
+ synchronized (this.queries)
+ {
+ pw.println( METADATA_VERSION );
+
+ for ( PRSQueryInfo qinfo : this.queries )
+ {
+ pw.println( qinfo.toPrintString() );
+ }
+ }
+ }
+ finally
+ {
+ if (pw != null) {
+ CatalogLoadUtil.safeClose( pw );
+ }
+
+ this.queriesLocked[ 0 ] = false;
+ }
+ }
+
+ public void loadQueries()
+ {
+ if ( PRSDebug.noFileCache )
+ {
+ return;
+ }
+
+ if ( this.queriesLocked[ 0 ] )
+ {
+ return;
+ }
+
+ File qfile = getQueriesFile();
+
+ if ( (qfile == null) || !qfile.isFile() || !qfile.canRead() )
+ {
+ return;
+ }
+
+ this.queriesLocked[ 0 ] = true;
+
+ LineNumberReader lnr = null;
+
+ try
+ {
+ lnr = PRSPersistenceUtility.openFileForRead( qfile );
+ if ( lnr == null )
+ {
+ return;
+ }
+
+ synchronized (this.queries)
+ {
+ String line = lnr.readLine();
+
+ if ( !METADATA_VERSION.equals( line ) )
+ {
+ CatalogLoadUtil.safeClose( lnr );
+ lnr = null;
+
+ purge();
+
+ return;
+ }
+
+ for ( int ii = 0;; ++ii )
+ {
+ line = lnr.readLine();
+ if ( line == null )
+ {
+ break;
+ }
+
+ PRSQueryInfo.loadSavedQuery( this, line );
+ }
+ }
+ }
+ catch (IOException e)
+ {
+ IBMPluginActivator.log( e );
+ }
+ finally
+ {
+ CatalogLoadUtil.safeClose( lnr );
+
+ this.queriesLocked[ 0 ] = false;
+ }
+ }
+
+ public File getQueriesFile()
+ {
+ String name = "queries.txt"; //$NON-NLS-1$
+
+ return new File( getCacheFolder(), name );
+ }
+
+ private void respondToRefresh( ICatalogObject catalogObject )
+ {
+ ContainmentService cs = IBMPluginActivator.getInstance().getContainmentService();
+
+ if ( !(catalogObject instanceof EObject) //
+ || (getDatabase() != cs.getRootElement( (EObject)catalogObject )) )
+ {
+ return;
+ }
+
+ purge();
+ }
+
+ private class ConnectionCloseListener implements IManagedConnectionListener
+ {
+ private IConnectionProfile profile;
+ private WeakReference<IManagedConnection> conn;
+
+ public ConnectionCloseListener()
+ {
+ ConnectionInfo connInfo = DatabaseConnectionRegistry.getInstance().getConnectionForDatabase( //
+ // (PersistentQueryCache.this.dbRef != null)
+ // ? PersistentQueryCache.this.dbRef.get()
+ // : null );
+ database );
+
+ if ( connInfo == null )
+ {
+ return;
+ }
+
+ this.profile = connInfo.getConnectionProfile();
+ if ( this.profile == null )
+ {
+ return;
+ }
+
+ IManagedConnection mc = this.profile.getManagedConnection( ConnectionUtil.CONNECTION_TYPE );
+ if ( mc == null )
+ {
+ return;
+ }
+
+ this.conn = new WeakReference<IManagedConnection>( mc );
+
+ mc.addConnectionListener( this );
+ }
+
+ public boolean okToClose( ConnectEvent event )
+ {
+ return true;
+ }
+
+ public void closed( ConnectEvent event )
+ {
+ IConnectionProfile eventProfile = event.getConnectionProfile();
+
+ if ( (eventProfile == null) || (this.profile == null) //
+ || !eventProfile.getName().equals( this.profile.getName() ) )
+ {
+ return;
+ }
+
+ IManagedConnection c = this.conn.get();
+
+ if ( c != null )
+ {
+ c.removeConnectionListener( this );
+ }
+
+ this.profile = null;
+
+ // if ( flushOnConnectionClose )
+ {
+ releaseResources();
+ }
+ }
+
+ public void aboutToClose( ConnectEvent event )
+ {
+ // do nothing
+ }
+
+ public void modified( ConnectEvent event )
+ {
+ // do nothing
+ }
+
+ public void opened( ConnectEvent event )
+ {
+ // do nothing
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSet.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSet.java
new file mode 100644
index 0000000..82dcf51
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSet.java
@@ -0,0 +1,351 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+/** Preserves the contents of a JDBC ResultSet after it is closed/destroyed */
+public class PersistentResultSet extends PersistentResultSetAdapter
+{
+ public static final String ERR_MOVE = "Cannot move cursor to the specified position"; //$NON-NLS-1$
+ public static final String ERR_RS_CLOSED = "ResultSet is closed"; //$NON-NLS-1$
+ public static final String ERR_NO_ROW = "No current row"; //$NON-NLS-1$
+ public static final String ERR_COL_NUM = "Column number %d is out of bounds"; //$NON-NLS-1$
+
+ private Database database;
+ private PersistentQueryCache cache;
+ private PRSSliceInfo slice;
+
+ private ICatalogQuery query;
+ private Connection conn;
+
+ /** One-based current row number */
+ private int currow;
+
+//<bgp public PersistentResultSet( //
+// Database database, String context, Connection conn, //
+// String query )
+// {
+// this( database, context, conn, //
+// GenericCatalogQuery.getQuery( query ) );
+//bgp> }
+
+//<bgp public PersistentResultSet( //
+// Database database, String context, Connection conn, //
+// String query, String[] filterColumns, String[] filterValues, String orderQuery )
+// {
+// this( database, context, conn, //
+// GenericCatalogQuery.getQuery( //
+// query, filterColumns, filterValues, orderQuery ) );
+//bgp> }
+
+ public PersistentResultSet( //
+ Database database, String context, Connection conn, //
+ ICatalogQuery query )
+ {
+ query.setContext( context );
+
+ this.database = database;
+ this.cache = PersistentQueryCache.getQueryCache( this.database );
+ this.slice = null;
+
+ this.query = query;
+ this.conn = conn;
+
+ this.currow = 0;
+ }
+
+ private void createSlice()
+ {
+ if ( (this.slice == null) && (this.query != null) && (this.conn != null) )
+ {
+ this.slice = this.cache.getSlice( this.query, this.conn );
+ this.query = null;
+ this.conn = null;
+ }
+ }
+
+ private void checkNotClosed() throws SQLException
+ {
+ if ( (this.slice != null) //
+ && (this.slice.getQueryInfo() != null) //
+ && (this.slice.getQueryInfo().getException() != null) )
+ {
+ throw this.slice.getQueryInfo().getException();
+ }
+
+ if ( isClosed() )
+ {
+ throw new SQLException( ERR_RS_CLOSED );
+ }
+ }
+
+ private boolean safeIsClosed()
+ {
+ try
+ {
+ return isClosed();
+ }
+ catch (SQLException e)
+ {
+ return true;
+ }
+ }
+
+ public int getRowCount()
+ {
+ completeQueryProcessing();
+
+ return this.slice.size();
+ }
+
+ /** Ensure that the current slice has finished loading */
+ public void completeQueryProcessing()
+ {
+ if ( safeIsClosed() )
+ {
+ return;
+ }
+
+ this.slice.waitUntilComplete();
+ }
+
+ @Override
+ public int findColumn( String columnName ) throws SQLException
+ {
+ return ((PRSMetadata)getMetaData()).findColumn( columnName );
+ }
+
+ protected Object getCurrentValue( int index ) throws SQLException
+ {
+ checkNotClosed();
+
+ return this.slice.getCurrentValue( this.currow, index );
+ }
+
+ @Override
+ public int getType() throws SQLException
+ {
+ checkNotClosed();
+
+ return ResultSet.TYPE_FORWARD_ONLY;
+ }
+
+ @Override
+ public ResultSetMetaData getMetaData() throws SQLException
+ {
+ checkNotClosed();
+
+ return this.slice.getQueryInfo().getMetadata();
+ }
+
+ @Override
+ public boolean isClosed() throws SQLException
+ {
+ createSlice();
+
+ return this.slice == null;
+ }
+
+ @Override
+ public void close() throws SQLException
+ {
+ if ( isClosed() )
+ {
+ return;
+ }
+
+ this.slice.unloadRowData();
+
+ this.slice = null;
+ this.database = null;
+ this.currow = 0;
+ }
+
+ @Override
+ public int getRow() throws SQLException
+ {
+ if ( isBeforeFirst() || isAfterLast() )
+ {
+ return 0;
+ }
+
+ return this.currow;
+ }
+
+ @Override
+ public boolean isAfterLast() throws SQLException
+ {
+ for ( ;; )
+ {
+ checkNotClosed();
+
+ int size = this.slice.size();
+
+ if ( (size > 0) && (this.currow < size) )
+ {
+ return false;
+ }
+
+ if ( this.currow > size )
+ {
+ return true;
+ }
+
+ if ( this.slice.isComplete() )
+ {
+ return false;
+ }
+
+ this.slice.waitForRow();
+ }
+ }
+
+ @Override
+ public boolean isBeforeFirst() throws SQLException
+ {
+ checkNotClosed();
+
+ return this.currow == 0;
+ }
+
+ @Override
+ public boolean isFirst() throws SQLException
+ {
+ checkNotClosed();
+
+ return this.currow == 1;
+ }
+
+ @Override
+ public boolean isLast() throws SQLException
+ {
+ for ( ;; )
+ {
+ checkNotClosed();
+
+ if ( this.slice.isComplete() )
+ {
+ return this.currow == this.slice.size();
+ }
+
+ this.slice.waitForRow();
+ }
+ }
+
+ @Override
+ public boolean last() throws SQLException
+ {
+ checkNotClosed();
+
+ this.slice.waitUntilComplete();
+
+ if ( this.slice.isEmpty() )
+ {
+ return false;
+ }
+
+ this.currow = this.slice.size();
+
+ return true;
+ }
+
+ @Override
+ public boolean absolute( int row ) throws SQLException
+ {
+ checkNotClosed();
+
+ if ( this.currow == row )
+ {
+ return (row != 0) && !isAfterLast();
+ }
+
+ switch (getFetchDirection())
+ {
+ case ResultSet.FETCH_FORWARD:
+ if ( row < this.currow )
+ {
+ throw new SQLException( ERR_MOVE );
+ }
+ break;
+
+ case ResultSet.FETCH_REVERSE:
+ if ( row > this.currow )
+ {
+ throw new SQLException( ERR_MOVE );
+ }
+ break;
+ }
+
+ for ( ;; )
+ {
+ checkNotClosed();
+
+ int size = this.slice.size();
+
+ if ( size >= row )
+ {
+ this.currow = row;
+
+ return true;
+ }
+
+ if ( this.slice.isComplete() )
+ {
+ if ( row > size )
+ {
+ this.currow = size + 1;
+ }
+
+ return false;
+ }
+
+ if ( PRSDebug.enableTracing )
+ {
+ PRSDebug.trace( "PRS: abs(" + row //$NON-NLS-1$
+ + " sz=" + size //$NON-NLS-1$
+ + ") Waiting for slice " //$NON-NLS-1$
+ + this.slice.getSliceKey() );
+ }
+
+ this.slice.waitForRow();
+ }
+ }
+
+ @Override
+ public boolean relative( int rows ) throws SQLException
+ {
+ return absolute( this.currow + rows );
+ }
+
+ @Override
+ public void afterLast() throws SQLException
+ {
+ if ( isAfterLast() )
+ {
+ return;
+ }
+
+ absolute( this.slice.size() + 1 );
+ }
+
+ @Override
+ public void beforeFirst() throws SQLException
+ {
+ absolute( 0 );
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSetAdapter.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSetAdapter.java
new file mode 100644
index 0000000..2ab6837
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSetAdapter.java
@@ -0,0 +1,1177 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.io.InputStream;
+import java.io.Reader;
+import java.math.BigDecimal;
+import java.net.URL;
+import java.sql.Array;
+import java.sql.Blob;
+import java.sql.Clob;
+import java.sql.Date;
+import java.sql.NClob;
+import java.sql.Ref;
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.RowId;
+import java.sql.SQLException;
+import java.sql.SQLWarning;
+import java.sql.SQLXML;
+import java.sql.Statement;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.Map;
+
+/** Empty implementation of JDBC ResultSet interface */
+public abstract class PersistentResultSetAdapter implements ResultSet
+{
+ private static final char[] HEX_CHARS =
+ {
+ '0', '1', '2', '3', '4', '5', '6', '7',
+ '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
+ };
+
+ public int getConcurrency() throws SQLException
+ {
+ return ResultSet.CONCUR_READ_ONLY;
+ }
+
+ public boolean first() throws SQLException
+ {
+ return absolute( 1 );
+ }
+
+ public boolean next() throws SQLException
+ {
+ return relative( 1 );
+ }
+
+ public boolean previous() throws SQLException
+ {
+ return relative( -1 );
+ }
+
+ public void moveToCurrentRow() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getCursorName() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean absolute( int row ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void afterLast() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void beforeFirst() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void cancelRowUpdates() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void clearWarnings() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void close() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void deleteRow() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public int findColumn( String columnName ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Array getArray( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public InputStream getAsciiStream( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ protected abstract Object getCurrentValue( int index ) throws SQLException;
+
+ @Override
+ public BigDecimal getBigDecimal( int columnIndex ) throws SQLException
+ {
+ Object o = getCurrentValue( columnIndex );
+
+ if ( o instanceof BigDecimal )
+ {
+ return (BigDecimal)o;
+ }
+
+ if ( o instanceof Long )
+ {
+ return new BigDecimal( ((Long)o).longValue() );
+ }
+
+ return null;
+ }
+
+ public BigDecimal getBigDecimal( int columnIndex, int scale ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public InputStream getBinaryStream( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Blob getBlob( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean getBoolean( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public byte getByte( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public byte[] getBytes( int columnIndex ) throws SQLException
+ {
+ Object o = getCurrentValue( columnIndex );
+
+ if ( o instanceof byte[] )
+ {
+ return (byte[])o;
+ }
+
+ throw new UnsupportedOperationException();
+ }
+
+ public Reader getCharacterStream( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Clob getClob( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Date getDate( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Date getDate( int columnIndex, Calendar cal ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public double getDouble( int columnIndex ) throws SQLException
+ {
+ Object o = getCurrentValue( columnIndex );
+
+ if ( o instanceof Double )
+ {
+ return ((Double)o).doubleValue();
+ }
+
+ if ( o instanceof Float )
+ {
+ return ((Float)o).doubleValue();
+ }
+
+ return 0.0d;
+ }
+
+ public int getFetchDirection() throws SQLException
+ {
+ return ResultSet.FETCH_FORWARD;
+ }
+
+ public int getFetchSize() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public float getFloat( int columnIndex ) throws SQLException
+ {
+ Object o = getCurrentValue( columnIndex );
+
+ if ( o instanceof Float )
+ {
+ return ((Float)o).floatValue();
+ }
+
+ if ( o instanceof Double )
+ {
+ return ((Double)o).floatValue();
+ }
+
+ return 0.0f;
+ }
+
+ public int getHoldability() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int getInt( int columnIndex ) throws SQLException
+ {
+ Object o = getCurrentValue( columnIndex );
+
+ if ( o == null )
+ {
+ return 0;
+ }
+
+ if ( o instanceof Integer )
+ {
+ return ((Integer)o).intValue();
+ }
+
+ if ( o instanceof String )
+ {
+ return Integer.parseInt( (String)o );
+ }
+
+ if ( o instanceof Long )
+ {
+ return ((Long)o).intValue();
+ }
+
+ if ( o instanceof Short )
+ {
+ return ((Short)o).intValue();
+ }
+
+ if ( o instanceof Byte )
+ {
+ return ((Byte)o).intValue();
+ }
+
+ return 0;
+ }
+
+ @Override
+ public long getLong( int columnIndex ) throws SQLException
+ {
+ Object o = getCurrentValue( columnIndex );
+
+ if ( o instanceof Integer )
+ {
+ return ((Integer)o).longValue();
+ }
+
+ if ( o instanceof String )
+ {
+ return Long.parseLong( (String)o );
+ }
+
+ if ( o instanceof Long )
+ {
+ return ((Long)o).longValue();
+ }
+
+ if ( o instanceof Short )
+ {
+ return ((Short)o).longValue();
+ }
+
+ if ( o instanceof Byte )
+ {
+ return ((Byte)o).intValue();
+ }
+
+ return 0;
+ }
+
+ public ResultSetMetaData getMetaData() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Reader getNCharacterStream( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getNString( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Object getObject( int columnIndex ) throws SQLException
+ {
+ return getCurrentValue( columnIndex );
+ }
+
+ public Object getObject( int columnIndex, Map<String, Class<?>> map ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Ref getRef( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getRow() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public short getShort( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Statement getStatement() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getString( int columnIndex ) throws SQLException
+ {
+ Object curval = getCurrentValue( columnIndex );
+
+ if ( curval == null )
+ {
+ return null;
+ }
+
+ if ( curval instanceof String )
+ {
+ return (String)curval;
+ }
+
+ if (curval instanceof byte[]) {
+ return toHexString((byte[])curval);
+ }
+
+ return curval.toString();
+ }
+
+ private static final String toHexString(byte[] bytes)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ for (int i=0; i < bytes.length; i++) {
+ sb.append(HEX_CHARS[(bytes[i] >> 4) & 0xf]);
+ sb.append(HEX_CHARS[bytes[i] & 0xf]);
+ }
+
+ return sb.toString();
+ }
+
+ public Time getTime( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Time getTime( int columnIndex, Calendar cal ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Timestamp getTimestamp( int columnIndex ) throws SQLException
+ {
+ Object o = getCurrentValue( columnIndex );
+
+ if ( o instanceof Timestamp )
+ {
+ return (Timestamp)o;
+ }
+
+ return null;
+ }
+
+ public Timestamp getTimestamp( int columnIndex, Calendar cal ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getType() throws SQLException
+ {
+ return ResultSet.TYPE_SCROLL_INSENSITIVE;
+ }
+
+ public URL getURL( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public InputStream getUnicodeStream( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public SQLWarning getWarnings() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void insertRow() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isAfterLast() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isBeforeFirst() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isClosed() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isFirst() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isLast() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean last() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void moveToInsertRow() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void refreshRow() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean relative( int rows ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean rowDeleted() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean rowInserted() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean rowUpdated() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setFetchDirection( int direction ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setFetchSize( int rows ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateArray( int columnIndex, Array x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateArray( String columnName, Array x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateAsciiStream( int columnIndex, InputStream x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateAsciiStream( String columnLabel, InputStream x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateAsciiStream( int columnIndex, InputStream x, int length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateAsciiStream( String columnName, InputStream x, int length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateAsciiStream( int columnIndex, InputStream x, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateAsciiStream( String columnLabel, InputStream x, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBigDecimal( int columnIndex, BigDecimal x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBigDecimal( String columnName, BigDecimal x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBinaryStream( int columnIndex, InputStream x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBinaryStream( String columnLabel, InputStream x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBinaryStream( int columnIndex, InputStream x, int length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBinaryStream( String columnName, InputStream x, int length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBinaryStream( int columnIndex, InputStream x, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBinaryStream( String columnLabel, InputStream x, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBlob( int columnIndex, Blob x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBlob( String columnName, Blob x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBlob( int columnIndex, InputStream inputStream ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBlob( String columnLabel, InputStream inputStream ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBlob( int columnIndex, InputStream inputStream, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBlob( String columnLabel, InputStream inputStream, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBoolean( int columnIndex, boolean x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBoolean( String columnName, boolean x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateByte( int columnIndex, byte x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateByte( String columnName, byte x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBytes( int columnIndex, byte[] x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateBytes( String columnName, byte[] x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateCharacterStream( int columnIndex, Reader x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateCharacterStream( String columnLabel, Reader reader ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateCharacterStream( int columnIndex, Reader x, int length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateCharacterStream( String columnName, Reader reader, int length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateCharacterStream( int columnIndex, Reader x, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateCharacterStream( String columnLabel, Reader reader, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateClob( int columnIndex, Clob x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateClob( String columnName, Clob x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateClob( int columnIndex, Reader reader ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateClob( String columnLabel, Reader reader ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateClob( int columnIndex, Reader reader, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateClob( String columnLabel, Reader reader, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateDate( int columnIndex, Date x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateDate( String columnName, Date x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateDouble( int columnIndex, double x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateDouble( String columnName, double x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateFloat( int columnIndex, float x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateFloat( String columnName, float x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateInt( int columnIndex, int x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateInt( String columnName, int x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateLong( int columnIndex, long x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateLong( String columnName, long x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNCharacterStream( int columnIndex, Reader x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNCharacterStream( String columnLabel, Reader reader ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNCharacterStream( int columnIndex, Reader x, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNCharacterStream( String columnLabel, Reader reader, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNClob( int columnIndex, Reader reader ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNClob( String columnLabel, Reader reader ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNClob( int columnIndex, Reader reader, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNClob( String columnLabel, Reader reader, long length ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNString( int columnIndex, String nString ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNString( String columnLabel, String nString ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNull( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateNull( String columnName ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateObject( int columnIndex, Object x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateObject( String columnName, Object x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateObject( int columnIndex, Object x, int scale ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateObject( String columnName, Object x, int scale ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateRef( int columnIndex, Ref x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateRef( String columnName, Ref x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateRow() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateShort( int columnIndex, short x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateShort( String columnName, short x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateString( int columnIndex, String x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateString( String columnName, String x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateTime( int columnIndex, Time x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateTime( String columnName, Time x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateTimestamp( int columnIndex, Timestamp x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void updateTimestamp( String columnName, Timestamp x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean wasNull() throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isWrapperFor( Class<?> iface ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public <T> T unwrap( Class<T> iface ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Array getArray( String colName ) throws SQLException
+ {
+ int index = findColumn( colName );
+ return getArray( index );
+ }
+
+ public InputStream getAsciiStream( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getAsciiStream( index );
+ }
+
+ public BigDecimal getBigDecimal( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getBigDecimal( index );
+ }
+
+ public BigDecimal getBigDecimal( String columnName, int scale ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getBigDecimal( index );
+ }
+
+ public InputStream getBinaryStream( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getBinaryStream( index );
+ }
+
+ public Blob getBlob( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getBlob( index );
+ }
+
+ public boolean getBoolean( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getBoolean( index );
+ }
+
+ public byte getByte( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getByte( index );
+ }
+
+ public byte[] getBytes( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getBytes( index );
+ }
+
+ public Reader getCharacterStream( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getCharacterStream( index );
+ }
+
+ public Clob getClob( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getClob( index );
+ }
+
+ public Date getDate( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getDate( index );
+ }
+
+ public Date getDate( String columnName, Calendar cal ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getDate( index, cal );
+ }
+
+ public double getDouble( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getDouble( index );
+ }
+
+ public float getFloat( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getFloat( index );
+ }
+
+ public int getInt( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getInt( index );
+ }
+
+ public long getLong( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getLong( index );
+ }
+
+ public Reader getNCharacterStream( String columnLabel ) throws SQLException
+ {
+ int index = findColumn( columnLabel );
+ return getNCharacterStream( index );
+ }
+
+ public String getNString( String columnLabel ) throws SQLException
+ {
+ int index = findColumn( columnLabel );
+ return getNString( index );
+ }
+
+ public Object getObject( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getObject( index );
+ }
+
+ public Object getObject( String columnName, Map<String, Class<?>> map ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getObject( index );
+ }
+
+ public Ref getRef( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getRef( index );
+ }
+
+ public short getShort( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getShort( index );
+ }
+
+ public String getString( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getString( index );
+ }
+
+ public Time getTime( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getTime( index );
+ }
+
+ public Time getTime( String columnName, Calendar cal ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getTime( index );
+ }
+
+ public Timestamp getTimestamp( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getTimestamp( index );
+ }
+
+ public Timestamp getTimestamp( String columnName, Calendar cal ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getTimestamp( index, cal );
+ }
+
+ public URL getURL( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getURL( index );
+ }
+
+ public InputStream getUnicodeStream( String columnName ) throws SQLException
+ {
+ int index = findColumn( columnName );
+ return getUnicodeStream( index );
+ }
+
+ @Override
+ public RowId getRowId( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public RowId getRowId( String columnLabel ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void updateRowId( int columnIndex, RowId x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void updateRowId( String columnLabel, RowId x ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void updateNClob( int columnIndex, NClob nClob ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void updateNClob( String columnLabel, NClob nClob ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NClob getNClob( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public NClob getNClob( String columnLabel ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public SQLXML getSQLXML( int columnIndex ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public SQLXML getSQLXML( String columnLabel ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void updateSQLXML( int columnIndex, SQLXML xmlObject ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void updateSQLXML( String columnLabel, SQLXML xmlObject ) throws SQLException
+ {
+ throw new UnsupportedOperationException();
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSetData.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSetData.java
new file mode 100644
index 0000000..aac89e22
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PersistentResultSetData.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+// TODO obsolete class
+public class PersistentResultSetData
+{
+ public static void trace( String s )
+ {
+ PRSDebug.trace( s );
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PostProcessingDescriptor.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PostProcessingDescriptor.java
new file mode 100644
index 0000000..ced7821
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PostProcessingDescriptor.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+/**
+ *
+ * Describes a namespace post processing extension
+ * @author quyon
+ *
+ */
+public class PostProcessingDescriptor
+{
+ private String id;
+ private String modelType;
+ private IPostprocessProvider provider;
+
+ /**
+ * Creates an instance of NamespacePostProcessingDescriptor
+ * @param id the ID of the extension provider
+ * @param type the model type this extension is for (eg, LDM)
+ * @param provider the implementation of INamespacePostprocessProvider
+ */
+ public PostProcessingDescriptor(String id, String type,
+ IPostprocessProvider provider)
+ {
+ this.id = id;
+ modelType = type;
+ this.provider = provider;
+ }
+
+ /**
+ * Sets the ID for the extension provider
+ * @param id ID of the extension provider
+ */
+ public void setID(String id)
+ {
+ this.id = id;
+ }
+
+ /**
+ * Gets the ID of the extension provider
+ * @return the extension provider ID
+ */
+ public String getID()
+ {
+ return id;
+ }
+
+ /**
+ * Sets the model type the extension provider is meant for
+ * @param type type of model this extension provider is for
+ */
+ public void setModelType (String type)
+ {
+ modelType = type;
+ }
+
+ /**
+ * Gets the model type this extension provider is for
+ * @return the model type
+ */
+ public String getModelType()
+ {
+ return modelType;
+ }
+
+ /**
+ * Sets the INamespacePostprocessProvider
+ * @param the INamespacePostprocessProvider implementation for namespace post processing
+ */
+ public void setProvider(IPostprocessProvider provider)
+ {
+ this.provider = provider;
+ }
+
+ /**
+ * Gets the INamespacePostprocessProvider implementation
+ * @return INamespacePostprocessProvider implementation for namespace post processing
+ */
+ public IPostprocessProvider getProvider()
+ {
+ return provider;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PostProcessingRegistryReader.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PostProcessingRegistryReader.java
new file mode 100644
index 0000000..06598f4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/PostProcessingRegistryReader.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+
+public class PostProcessingRegistryReader
+{
+ public static final String NAMESPACE_POST_PROCESSING_EXTENSION_POINT = "com.ibm.datatools.core.postProcess"; //$NON-NLS-1$
+ public static final String NAMESPACE_POST_PROCESSING_CLASS = "class"; //$NON-NLS-1$
+ public static final String NAMESPACE_POST_PROCESSING_MODEL_TYPE = "modelType"; //$NON-NLS-1$
+ public static final String NAMESPACE_POST_PROCESSING_ID = "id"; //$NON-NLS-1$
+ public static final String NAMESPACE_POST_PROCESSING_LDM = "LDM"; //$NON-NLS-1$
+
+ private static PostProcessingRegistryReader myInstance;
+ private List<PostProcessingDescriptor> extensionProviders;
+
+ /**
+ * Creates an instance of NamespacePostProcessingRegistryReader
+ */
+ private PostProcessingRegistryReader()
+ {
+ super();
+ }
+
+ /**
+ * Gets an instance of NamespacePostProcessingRegistryReader
+ * @return an instance of NamespacePostProcessingRegistryReader
+ */
+ public synchronized static PostProcessingRegistryReader getInstance()
+ {
+ if (myInstance == null)
+ {
+ myInstance = new PostProcessingRegistryReader();
+ }
+ return myInstance;
+ }
+
+ /**
+ * Gets all extension providers
+ * @return a List of extension providers
+ */
+ public synchronized List<PostProcessingDescriptor> getExtensionProviders()
+ {
+ if (extensionProviders == null)
+ {
+ extensionProviders = new ArrayList<PostProcessingDescriptor>();
+ retrieveExtensionProviders();
+ }
+ return extensionProviders;
+ }
+
+ /**
+ * Retrieves a list of extension for namespace post processing
+ */
+ private void retrieveExtensionProviders()
+ {
+ try
+ {
+ IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
+ IExtensionPoint extensionPoint = extensionRegistry.getExtensionPoint(NAMESPACE_POST_PROCESSING_EXTENSION_POINT);
+ if (extensionPoint != null)
+ {
+ IExtension[] extensions = extensionPoint.getExtensions();
+ for (int i=0;i<extensions.length;i++)
+ {
+ IExtension ext = extensions[i];
+ IConfigurationElement[] configElements = ext.getConfigurationElements();
+ for (int c=0;c<configElements.length;c++)
+ {
+ String id = configElements[c].getAttribute(NAMESPACE_POST_PROCESSING_ID);
+ String modelType = configElements[c].getAttribute(NAMESPACE_POST_PROCESSING_MODEL_TYPE);
+ IPostprocessProvider provider = (IPostprocessProvider)
+ configElements[c].createExecutableExtension(NAMESPACE_POST_PROCESSING_CLASS);
+ PostProcessingDescriptor descriptor =
+ new PostProcessingDescriptor(id,modelType, provider);
+ extensionProviders.add(descriptor);
+ }
+ }
+ }
+ }
+ catch (CoreException ex)
+ {
+ // problem with creating executable, don't add to list
+ }
+ }
+
+ /**
+ * Gets the executable for namespace post processing
+ * @return the namespace post processing executable, or null if no matching one found.
+ * This executable implements INamespacePostprocessProvider
+ */
+ public IPostprocessProvider getPostProcessingExecutable()
+ {
+ IPostprocessProvider exe = null;
+ List<PostProcessingDescriptor> extensionProviders = this.getExtensionProviders();
+ if (extensionProviders != null)
+ {
+ Iterator<PostProcessingDescriptor> iter = extensionProviders.iterator();
+ while (iter.hasNext())
+ {
+ PostProcessingDescriptor desc = iter.next();
+ if (NAMESPACE_POST_PROCESSING_LDM.equalsIgnoreCase(desc.getModelType()))
+ {
+ // use the first extension provider found which supports LDM
+ exe = desc.getProvider();
+ break;
+ }
+ }
+ }
+ return exe;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/QueryExecutionEngine.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/QueryExecutionEngine.java
new file mode 100644
index 0000000..6dfecba
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/QueryExecutionEngine.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+import org.eclipse.emf.ecore.EObject;
+
+public class QueryExecutionEngine
+{
+ public static void realizeQueries( EObject object, ICatalogQuery[] queries )
+ {
+ if ( !(object instanceof ICatalogObject) )
+ {
+ return;
+ }
+
+ ICatalogObject catalogObject = (ICatalogObject)object;
+
+ runOrderQueries( catalogObject, queries );
+
+ Database database = catalogObject.getCatalogDatabase();
+
+ Set<QueryExecutionJob> jobs = new HashSet<QueryExecutionJob>();
+
+ for ( int i = 0; i < queries.length; i++ )
+ {
+ if ( !queries[ i ].isQueryProcessed( database ) )
+ {
+ QueryExecutionJob job = new QueryExecutionJob( //
+ "Query Execution Job", queries[ i ], catalogObject ); //$NON-NLS-1$
+
+ jobs.add( job );
+
+ if ( queries[ i ].useOnDemandQuery() )
+ {
+ job.waitUntilFinished();
+ }
+
+ job.schedule();
+ }
+ }
+
+ finishJobs( jobs );
+ }
+
+ private static void runOrderQueries( ICatalogObject object, ICatalogQuery[] queries )
+ {
+ Set<ICatalogQuery> orderQueries = new HashSet<ICatalogQuery>();
+ for ( ICatalogQuery query : queries )
+ {
+ if ( query.getOrderQuery() != null )
+ {
+ orderQueries.add( query.getOrderQuery() );
+ }
+ }
+
+ List<QueryExecutionJob> orderQueryJobs = new ArrayList<QueryExecutionJob>( orderQueries.size() );
+ for ( ICatalogQuery orderQuery : orderQueries )
+ {
+ QueryExecutionJob orderQueryJob = new QueryExecutionJob( //
+ "Query Execution Job -- OrderQuery", orderQuery, object ); //$NON-NLS-1$
+
+ // TODO GLD BUG why do we serialize order jobs?
+ // worse yet, they must all finish before we start the real query
+ orderQueryJob.waitUntilFinished();
+ orderQueryJobs.add( orderQueryJob );
+ orderQueryJob.schedule();
+ }
+
+ finishJobs( orderQueryJobs );
+ }
+
+ private static void finishJobs( Collection<QueryExecutionJob> queryJobs )
+ {
+ for ( QueryExecutionJob queryJob : queryJobs )
+ {
+ try
+ {
+ queryJob.join();
+ }
+ catch (InterruptedException e)
+ {
+ // log this
+ e.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/QueryExecutionJob.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/QueryExecutionJob.java
new file mode 100644
index 0000000..3339cf8
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/QueryExecutionJob.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogQuery;
+import org.eclipse.datatools.modelbase.sql.schema.Database;
+
+public class QueryExecutionJob extends Job
+{
+ private ICatalogQuery query;
+ private ICatalogObject object;
+
+ private boolean waitUntilFinished;
+
+ public QueryExecutionJob(String name, ICatalogQuery query, ICatalogObject catalogObject)
+ {
+ super(name);
+ setSystem(true);
+ this.query = query;
+ object = catalogObject;
+ waitUntilFinished = false;
+ }
+
+ protected IStatus run(IProgressMonitor monitor)
+ {
+ Database database = object.getCatalogDatabase();
+ String context = "Query Execution Job";
+
+ Connection connection = object.getConnection();
+
+ PersistentResultSet resultSet = new PersistentResultSet(database, context, connection, query);
+ try {
+ // this will trigger query execution, but we don't need to process rows here.
+ resultSet.next();
+ } catch (SQLException sqle) {
+ // let the catalog loading layer try again
+ }
+ if (waitUntilFinished) {
+ resultSet.completeQueryProcessing();
+ }
+
+ return Status.OK_STATUS;
+ }
+
+ public void waitUntilFinished()
+ {
+ waitUntilFinished = true;
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/RefreshEventManager.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/RefreshEventManager.java
new file mode 100644
index 0000000..fadb73e
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/RefreshEventManager.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2011, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.datatools.connectivity.sqm.core.rte.ICatalogObject;
+import org.eclipse.datatools.connectivity.sqm.core.rte.RefreshManager;
+import org.eclipse.datatools.enablement.ibm.catalog.util.CatalogObjectEvent;
+import org.eclipse.datatools.enablement.ibm.catalog.util.ICatalogObjectEventListener;
+
+public class RefreshEventManager
+{
+ private static RefreshEventManager refreshEventManager;
+ private RefreshManager delegateRefreshManager = RefreshManager.getInstance();
+
+ private HashMap<ICatalogObject, ArrayList<ICatalogObjectEventListener>> catalogObjectEventListeners;
+ private ArrayList<ICatalogObjectEventListener> globalCatalogObjectEventListeners;
+
+ private RefreshEventManager()
+ {
+ catalogObjectEventListeners = new HashMap<ICatalogObject, ArrayList<ICatalogObjectEventListener>>();
+ globalCatalogObjectEventListeners = new ArrayList<ICatalogObjectEventListener>();
+ }
+
+ public static RefreshEventManager getInstance()
+ {
+ if (refreshEventManager == null) {
+ refreshEventManager = new RefreshEventManager();
+ }
+
+ return refreshEventManager;
+ }
+
+ public void addCatalogObjectEventListener(
+ ICatalogObject interestedObject, ICatalogObjectEventListener listener)
+ {
+ if (interestedObject == null) {
+ if (!globalCatalogObjectEventListeners.contains(listener)) {
+ globalCatalogObjectEventListeners.add(listener);
+ }
+ } else {
+ if (catalogObjectEventListeners.containsKey(interestedObject)) {
+ ArrayList<ICatalogObjectEventListener> listeners =
+ catalogObjectEventListeners.get(interestedObject);
+ if (!listeners.contains(listener)) {
+ listeners.add(listener);
+ }
+ } else {
+ ArrayList<ICatalogObjectEventListener> listeners =
+ new ArrayList<ICatalogObjectEventListener>();
+ listeners.add(listener);
+ catalogObjectEventListeners.put(interestedObject, listeners);
+ }
+ }
+ }
+
+ public void removeCatalogObjectEventListener(
+ ICatalogObject interestedObject, ICatalogObjectEventListener listener)
+ {
+ if (interestedObject == null) {
+ if (globalCatalogObjectEventListeners.contains(listener)) {
+ globalCatalogObjectEventListeners.remove(listener);
+ }
+ } else {
+ if (catalogObjectEventListeners.containsKey(interestedObject)) {
+ ArrayList<ICatalogObjectEventListener> listeners =
+ catalogObjectEventListeners.get(interestedObject);
+ if (listeners.contains(listener)) {
+ listeners.remove(listener);
+ }
+ }
+ }
+ }
+
+ public void refresh(CatalogObjectEvent event)
+ {
+ delegateRefreshManager.referesh(event.element);
+
+ for (ICatalogObjectEventListener listener : globalCatalogObjectEventListeners) {
+ listener.notifyChanged(event);
+ }
+
+ if (catalogObjectEventListeners.containsKey(event.element)) {
+ ArrayList<ICatalogObjectEventListener> listeners = catalogObjectEventListeners.get(event.element);
+ for (ICatalogObjectEventListener listener : listeners) {
+ listener.notifyChanged(event);
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ReuseStringBuffer.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ReuseStringBuffer.java
new file mode 100644
index 0000000..03a9624
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/ReuseStringBuffer.java
@@ -0,0 +1,1153 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.Stack;
+
+/**
+ * A StringBuffer with whose capacity is not reset by setLength(0)
+ * and whose char[] is copied for each toString().
+ * <p>
+ * For the toString() in StringBuffer, the char[] is not copied, so that the
+ * new String is set to use the existing char[] in the StringBuffer (including
+ * any of its unused capacity), and the StringBuffer is marked "shared."
+ * A "shared" StringBuffer is copied if it is reused.
+ * <p>
+ * The class java.lang.StringBuffer has a default capacity of 16,
+ * which it reverts to if you get the toString() and call setLength(0).
+ * StringBuffer has a fixed expansion factor of <code>(n + 1) * 2</code>.
+ * <p>
+ * This class has a default capacity of 128 and a default expansion factor of 1.5.
+ * The initial capacity for this and for StringBuffer is determined by using
+ * the constructor that takes an int, but for this class you may also
+ * set the expansion factor.
+ * <p>
+ * For determining a good initial capacity and expansion factor of ReuseStringBuffer,
+ * construct and use a tool.BufferMonitor and call its
+ * <code>dumpMonitors()</code> method after your last use of the instance.
+ * Ask Thomas Sharp for DumpMonitor.
+ * <p>
+ * Most StringBuffer methods are copied here also because StringBuffer is final
+ * (which means that it cannot be subclassed).
+ * <p>
+ * The boolean <code>shared</code> in StringBuffer is not needed here for the same
+ * purpose. If you call ReuseStringBuffer.toString(), String must copy the value array.
+ * The boolean <code>shared</code> is needed for StringBuffer
+ * because the String constructor collaborates with StringBuffer to avoid copying
+ * the array unless it is reused after a toString().
+ * Because of this feature, ReuseStringBuffer.setLength(0) reuses the existing value array.
+ * This saves ReuseStringBuffer from having to extend a new array of default capacity
+ * and also avoids assigning unused buffer to the new String created by the toString().
+ * <p>
+ * In addition to acting as a StringBuffer replacement, ReuseStringBuffer also acts
+ * as a ReuseStringBuffer factory and pool. The methods getBuffer, toString(Buffer),
+ * and freeBuffer let you share ReuseStringBuffers for different uses.
+ * <p>
+ * A possible enhancement to ReuseStringBuffer would be to restore the boolean <code>shared</code>
+ * and use it to optimize repeated toString() calls without intermediate changes.
+ * This optimation could allow toString() to return the same String if the flag is not reset
+ * by an intermediate change. Currently, we do not believe repeated toStrings()
+ * are a typical pattern of usage; instead, the user is advised to retain the String
+ * and discard the buffer.
+ * <p>
+ * @author Thomas Sharp, sharpt@us.ibm.com
+ * @see java.lang.StringBuffer
+ */
+public class ReuseStringBuffer implements CharSequence
+{
+ /** Our wrapped buffer. */
+ protected StringBuffer buffer;
+
+ /** Shared string buffers. */
+ protected static Stack<ReuseStringBuffer> buffers;
+
+ /**
+ * Gets a reusable ReuseStringBuffer for string concatenation.
+ * @return A ReuseStringBuffer constructed with arguments (128, (float)1.5).
+ */
+ public static ReuseStringBuffer getBuffer()
+ {
+ return getBuffer(128);
+ }
+
+ /**
+ * Gets a reusable ReuseStringBuffer for string concatenation and appends
+ * to it the given text.
+ * @param str The initial contents of the buffer.
+ * @return A ReuseStringBuffer constructed with arguments (text.length() + 128, (float)1.5).
+ */
+ public static ReuseStringBuffer getBuffer(String str)
+ {
+ ReuseStringBuffer b = getBuffer(str.length() + 128);
+ b.append(str);
+ return b;
+ }
+
+ /**
+ * Gets a reusable ReuseStringBuffer for string concatenation.
+ * @param capacity The minimum capacity. The actual capacity of the
+ * ReuseStringBuffer returned may be greater.
+ * @return A ReuseStringBuffer constructed with arguments (capacity, (float)1.5).
+ */
+ public static synchronized ReuseStringBuffer getBuffer(int capacity)
+ {
+ if (buffers == null)
+ buffers = new Stack<ReuseStringBuffer>();
+ if (!buffers.empty()) {
+ ReuseStringBuffer b;
+ for (int i = buffers.size() - 1; i > -1; i--)
+ {
+ b = buffers.elementAt(i);
+ if (b.capacity() >= capacity)
+ {
+ buffers.removeElementAt(i);
+ return b;
+ }
+ }
+ }
+ return new ReuseStringBuffer(capacity);
+ }
+
+ /**
+ * Frees a given buffer for reuse and returns the toString().
+ * @param buffer Any ReuseStringBuffer, whether retrieved from ReuseStringBuffer.getBuffer() or not.
+ * @return The toString().
+ */
+ public static String toString(ReuseStringBuffer buffer)
+ {
+ if (buffers == null)
+ buffers = new Stack<ReuseStringBuffer>();
+ String ts = buffer.toString();
+ buffer.setLength(0);
+ buffers.push(buffer);
+ return ts;
+ }
+
+ /**
+ * Frees a given buffer for reuse.
+ * @param buffer Any ReuseStringBuffer, whether retrieved from ReuseStringBuffer.getBuffer() or not.
+ */
+ public static void freeBuffer(ReuseStringBuffer buffer)
+ {
+ if (buffers == null)
+ buffers = new Stack<ReuseStringBuffer>();
+ buffer.setLength(0);
+ buffers.push(buffer);
+ }
+
+ /**
+ * Constructs a string buffer with no characters in it,
+ * an initial capacity of 128 characters,
+ * and an expansion factor of 1.5.
+ */
+ public ReuseStringBuffer() {
+ this(128, (float)1.5);
+ }
+
+ /**
+ * Constructs a string buffer with no characters in it,
+ * an initial capacity specified by the <code>length</code> argument,
+ * and an expansion factor of 1.5.
+ * <p>
+ * @param capacity the initial capacity.
+ * @exception NegativeArraySizeException if the <code>length</code>
+ * argument is less than <code>0</code>.
+ */
+ public ReuseStringBuffer(int capacity) {
+ this(capacity, (float)1.5);
+ }
+
+ /**
+ * Constructs a string buffer so that it represents the same
+ * sequence of characters as the string argument; in other
+ * words, the initial contents of the string buffer is a copy of the
+ * argument string. The initial capacity of the string buffer is
+ * <code>128</code> plus the length of the string argument.
+ * The expansion factor is 1.5.
+ * <p>
+ * @param str the initial contents of the buffer.
+ */
+ public ReuseStringBuffer(String str) {
+ this(str.length() + 128);
+ buffer.append(str);
+ }
+
+ /**
+ * @deprecated expansionFactor is not used.
+ * Constructs a string buffer with no characters in it,
+ * an initial capacity of 128 characters,
+ * and an expansion factor specified by the <code>expansionFactor</code> arguement.
+ * <p>
+ * @param expansionFactor A float specify the factor by which to
+ * expand the capacity, if needed.
+ */
+ public ReuseStringBuffer(float expansionFactor) {
+ this(128);
+ }
+
+ /**
+ * @deprecated expansionFactor is not used.
+ * Constructs a string buffer with no characters in it,
+ * an initial capacity specified by the <code>length</code> argument,
+ * and an expansion factor specified by the <code>expansionFactor</code> arguement.
+ * <p>
+ * @param expansionFactor A float specify the factor by which to
+ * expand the capacity, if needed.
+ * @param capacity the initial capacity.
+ * @param expansionFactor A float specify the factor by which to
+ * expand the capacity, if needed.
+ * @exception NegativeArraySizeException if the <code>length</code>
+ * argument is less than <code>0</code>.
+ */
+ public ReuseStringBuffer(int capacity, float expansionFactor) {
+ buffer = new StringBuffer(capacity); //expansionFactor is not used
+ }
+
+ /**
+ * @deprecated expansionFactor is not used.
+ * Constructs a string buffer so that it represents the same
+ * sequence of characters as the string argument; in other
+ * words, the initial contents of the string buffer is a copy of the
+ * argument string. The initial capacity of the string buffer is
+ * <code>128</code> plus the length of the string argument.
+ * The expansion factor is specified by the <code>expansionFactor</code> arguement.
+ * <p>
+ * @param str the initial contents of the buffer.
+ * @param expansionFactor A float specify the factor by which to
+ * expand the capacity, if needed.
+ */
+ public ReuseStringBuffer(String str, float expansionFactor) {
+ this(str.length() + 128);
+ buffer.append(str);
+ }
+
+ /**
+ * Returns the length (character count) of this string buffer.
+ * <p>
+ * @return the length of the sequence of characters currently
+ * represented by this string buffer.
+ */
+ public int length() {
+ return buffer.length();
+ }
+
+ /**
+ * Returns the current capacity of the String buffer. The capacity
+ * is the amount of storage available for newly inserted
+ * characters; beyond which an allocation will occur.
+ * <p>
+ * @return the current capacity of this string buffer.
+ */
+ public int capacity() {
+ return buffer.capacity();
+ }
+
+ /**
+ * Ensures that the capacity of the buffer is at least equal to the
+ * specified minimum.
+ * If the current capacity of this string buffer is less than the
+ * argument, then a new internal buffer is allocated with greater
+ * capacity. The new capacity is the larger of:
+ * <ul>
+ * <li>The <code>minimumCapacity</code> argument.
+ * <li>The old capacity times <code>expansionFactor</code>.
+ * </ul>
+ * If the <code>minimumCapacity</code> argument is nonpositive, this
+ * method takes no action and simply returns.
+ * <p>
+ * @param minimumCapacity the minimum desired capacity.
+ */
+ public synchronized void ensureCapacity(int minimumCapacity) {
+ buffer.ensureCapacity(minimumCapacity);
+ }
+
+ /**
+ * Sets the length of this String buffer.
+ * This string buffer is altered to represent a new character sequence
+ * whose length is specified by the argument. For every nonnegative
+ * index <i>k</i> less than <code>newLength</code>, the character at
+ * index <i>k</i> in the new character sequence is the same as the
+ * character at index <i>k</i> in the old sequence if <i>k</i> is less
+ * than the length of the old character sequence; otherwise, it is the
+ * null character <code>'\u0000'</code>.
+ * <p>
+ * In other words, if the <code>newLength</code> argument is less than
+ * the current length of the string buffer, the string buffer is
+ * truncated to contain exactly the number of characters given by the
+ * <code>newLength</code> argument.
+ * <p>
+ * If the <code>newLength</code> argument is greater than or equal
+ * to the current length, sufficient null characters
+ * (<code>'\u0000'</code>) are appended to the string buffer so that
+ * length becomes the <code>newLength</code> argument.
+ * <p>
+ * The <code>newLength</code> argument must be greater than or equal
+ * to <code>0</code>.
+ * <p>
+ * @param newLength the new length of the buffer.
+ * @exception IndexOutOfBoundsException if the
+ * <code>newLength</code> argument is negative.
+ * @see #length()
+ */
+ public synchronized void setLength(int newLength) {
+ buffer.setLength(newLength);
+ }
+
+ /**
+ * The specified character of the sequence currently represented by
+ * the string buffer, as indicated by the <code>index</code> argument,
+ * is returned. The first character of a string buffer is at index
+ * <code>0</code>, the next at index <code>1</code>, and so on, for
+ * array indexing.
+ * <p>
+ * The index argument must be greater than or equal to
+ * <code>0</code>, and less than the length of this string buffer.
+ * <p>
+ * @param index the index of the desired character.
+ * @return the character at the specified index of this string buffer.
+ * @exception IndexOutOfBoundsException if <code>index</code> is
+ * negative or greater than or equal to <code>length()</code>.
+ * @see #length()
+ */
+ public synchronized char charAt(int index) {
+ return buffer.charAt(index);
+ }
+
+ /**
+ * Characters are copied from this string buffer into the
+ * destination character array <code>dst</code>. The first character to
+ * be copied is at index <code>srcBegin</code>; the last character to
+ * be copied is at index <code>srcEnd-1</code>. The total number of
+ * characters to be copied is <code>srcEnd-srcBegin</code>. The
+ * characters are copied into the subarray of <code>dst</code> starting
+ * at index <code>dstBegin</code> and ending at index:
+ * <p><blockquote><pre>
+ * dstbegin + (srcEnd-srcBegin) - 1
+ * </pre></blockquote>
+ * <p>
+ * @param srcBegin start copying at this offset in the string buffer.
+ * @param srcEnd stop copying at this offset in the string buffer.
+ * @param dst the array to copy the data into.
+ * @param dstBegin offset into <code>dst</code>.
+ * @exception NullPointerException if <code>dst</code> is
+ * <code>null</code>.
+ * @exception IndexOutOfBoundsException if any of the following is true:
+ * <ul>
+ * <li><code>srcBegin</code> is negative
+ * <li><code>dstBegin</code> is negative
+ * <li>the <code>srcBegin</code> argument is greater than
+ * the <code>srcEnd</code> argument.
+ * <li><code>srcEnd</code> is greater than
+ * <code>this.length()</code>, the current length of this
+ * string buffer.
+ * <li><code>dstBegin+srcEnd-srcBegin</code> is greater than
+ * <code>dst.length</code>
+ * </ul>
+ */
+ public synchronized void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) {
+ buffer.getChars(srcBegin, srcEnd, dst, dstBegin);
+ }
+
+ /**
+ * The character at the specified index of this string buffer is set
+ * to <code>ch</code>. The string buffer is altered to represent a new
+ * character sequence that is identical to the old character sequence,
+ * except that it contains the character <code>ch</code> at position
+ * <code>index</code>.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than the length of this string buffer.
+ * <p>
+ * @param index the index of the character to modify.
+ * @param ch the new character.
+ * @exception IndexOutOfBoundsException if <code>index</code> is
+ * negative or greater than or equal to <code>length()</code>.
+ * @see #length()
+ */
+ public synchronized void setCharAt(int index, char ch) {
+ buffer.setCharAt(index, ch);
+ }
+
+ /**
+ * Appends the string representation of the <code>Object</code>
+ * argument to this string buffer.
+ * <p>
+ * The argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then appended to this string buffer.
+ *
+ * @param obj an <code>Object</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @see java.lang.String#valueOf(java.lang.Object)
+ * @see #append(java.lang.String)
+ */
+ public synchronized ReuseStringBuffer append(Object obj) {
+ buffer.append(obj);
+ return this;
+ }
+
+ /**
+ * Appends the string to this string buffer.
+ * <p>
+ * The characters of the <code>String</code> argument are appended, in
+ * order, to the contents of this string buffer, increasing the
+ * length of this string buffer by the length of the argument.
+ * If <code>str</code> is <code>null</code>, then the four characters
+ * <code>"null"</code> are appended to this string buffer.
+ * <p>
+ * Let <i>n</i> be the length of the old character sequence, the one
+ * contained in the string buffer just prior to execution of the
+ * <code>append</code> method. Then the character at index <i>k</i> in
+ * the new character sequence is equal to the character at index <i>k</i>
+ * in the old character sequence, if <i>k</i> is less than <i>n</i>;
+ * otherwise, it is equal to the character at index <i>k-n</i> in the
+ * argument <code>str</code>.
+ * <p>
+ * @param str a string.
+ * @return a reference to this <code>ReuseStringBuffer</code>.
+ */
+ public synchronized ReuseStringBuffer append(String str) {
+ buffer.append(str);
+ return this;
+ }
+
+ /**
+ * Appends the specified <tt>StringBuffer</tt> to this
+ * <tt>ReuseStringBuffer</tt>.
+ * <p>
+ * The characters of the <tt>StringBuffer</tt> argument are appended,
+ * in order, to the contents of this <tt>ReuseStringBuffer</tt>, increasing the
+ * length of this <tt>ReuseStringBuffer</tt> by the length of the argument.
+ * If <tt>sb</tt> is <tt>null</tt>, then the four characters
+ * <tt>"null"</tt> are appended to this <tt>ReuseStringBuffer</tt>.
+ * <p>
+ * Let <i>n</i> be the length of the old character sequence, the one
+ * contained in the <tt>ReuseStringBuffer</tt> just prior to execution of the
+ * <tt>append</tt> method. Then the character at index <i>k</i> in
+ * the new character sequence is equal to the character at index <i>k</i>
+ * in the old character sequence, if <i>k</i> is less than <i>n</i>;
+ * otherwise, it is equal to the character at index <i>k-n</i> in the
+ * argument <code>sb</code>.
+ * <p>
+ * The method <tt>ensureCapacity</tt> is first called on this
+ * <tt>ReuseStringBuffer</tt> with the new buffer length as its argument.
+ * (This ensures that the storage of this <tt>ReuseStringBuffer</tt> is
+ * adequate to contain the additional characters being appended.)
+ *
+ * @param sb the <tt>StringBuffer</tt> to append.
+ * @return a reference to this <tt>ReuseStringBuffer</tt>.
+ */
+ public synchronized ReuseStringBuffer append(StringBuffer sb) {
+ buffer.append(sb);
+ return this;
+ }
+
+ /**
+ * Appends the specified <tt>ReuseStringBuffer</tt> to this
+ * <tt>ReuseStringBuffer</tt>.
+ * <p>
+ * The characters of the <tt>ReuseStringBuffer</tt> argument are appended,
+ * in order, to the contents of this <tt>ResuseStringBuffer</tt>, increasing the
+ * length of this <tt>ResuseStringBuffer</tt> by the length of the argument.
+ * If <tt>sb</tt> is <tt>null</tt>, then the four characters
+ * <tt>"null"</tt> are appended to this <tt>ResuseStringBuffer</tt>.
+ * <p>
+ * Let <i>n</i> be the length of the old character sequence, the one
+ * contained in the <tt>StringBuffer</tt> just prior to execution of the
+ * <tt>append</tt> method. Then the character at index <i>k</i> in
+ * the new character sequence is equal to the character at index <i>k</i>
+ * in the old character sequence, if <i>k</i> is less than <i>n</i>;
+ * otherwise, it is equal to the character at index <i>k-n</i> in the
+ * argument <code>sb</code>.
+ *
+ * @param sb the <tt>StringBuffer</tt> to append.
+ * @return a reference to this <tt>ReuseStringBuffer</tt>.
+ */
+ public synchronized ReuseStringBuffer append(ReuseStringBuffer sb) {
+ if (sb == null)
+ buffer.append("null"); //$NON-NLS-1$
+ else
+ buffer.append(sb.toString());
+ return this;
+ }
+
+ /**
+ * Appends the string representation of the <code>char</code> array
+ * argument to this string buffer.
+ * <p>
+ * The characters of the array argument are appended, in order, to
+ * the contents of this string buffer. The length of this string
+ * buffer increases by the length of the argument.
+ * <p>
+ * The overall effect is exactly as if the argument were converted to
+ * a string by the method {@link String#valueOf(char[])} and the
+ * characters of that string were then {@link #append(String) appended}
+ * to this <code>ReuseStringBuffer</code> object.
+ * <p>
+ * @param str the characters to be appended.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ */
+ public synchronized ReuseStringBuffer append(char[] str) {
+ buffer.append(str);
+ return this;
+ }
+
+ /**
+ * Appends the string representation of a subarray of the
+ * <code>char</code> array argument to this string buffer.
+ * <p>
+ * Characters of the character array <code>str</code>, starting at
+ * index <code>offset</code>, are appended, in order, to the contents
+ * of this string buffer. The length of this string buffer increases
+ * by the value of <code>len</code>.
+ * <p>
+ * The overall effect is exactly as if the arguments were converted to
+ * a string by the method {@link String#valueOf(char[],int,int)} and the
+ * characters of that string were then {@link #append(String) appended}
+ * to this <code>ReuseStringBuffer</code> object.
+ * <p>
+ * @param str the characters to be appended.
+ * @param offset the index of the first character to append.
+ * @param len the number of characters to append.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ */
+ public synchronized ReuseStringBuffer append(char[] str, int offset, int len) {
+ buffer.append(str, offset, len);
+ return this;
+ }
+
+ /**
+ * Appends the string representation of the <code>boolean</code>
+ * argument to the string buffer.
+ * <p>
+ * The argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then appended to this string buffer.
+ * <p>
+ * @param b a <code>boolean</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code>.
+ * @see java.lang.String#valueOf(boolean)
+ * @see #append(java.lang.String)
+ */
+ public synchronized ReuseStringBuffer append(boolean b) {
+ buffer.append(b);
+ return this;
+ }
+
+ /**
+ * Appends the string representation of the <code>char</code>
+ * argument to this string buffer.
+ * <p>
+ * The argument is appended to the contents of this string buffer.
+ * The length of this string buffer increases by <code>1</code>.
+ * <p>
+ * The overall effect is exactly as if the argument were converted to
+ * a string by the method {@link String#valueOf(char)} and the character
+ * in that string were then {@link #append(String) appended} to this
+ * <code>ReuseStringBuffer</code> object.
+ * <p>
+ * @param c a <code>char</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ */
+ public synchronized ReuseStringBuffer append(char c) {
+ buffer.append(c);
+ return this;
+ }
+
+ /**
+ * Appends the string representation of the <code>int</code>
+ * argument to this string buffer.
+ * <p>
+ * The argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then appended to this string buffer.
+ *
+ * @param i an <code>int</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @see java.lang.String#valueOf(int)
+ * @see #append(java.lang.String)
+ */
+ public synchronized ReuseStringBuffer append(int i) {
+ buffer.append(i);
+ return this;
+ }
+
+ /**
+ * Appends the string representation of the <code>long</code>
+ * argument to this string buffer.
+ * <p>
+ * The argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then appended to this string buffer.
+ * <p>
+ * @param l a <code>long</code>.
+ * @return a referenct to this <code>ReuseStringBuffer</code> object.
+ * @see java.lang.String#valueOf(long)
+ * @see #append(java.lang.String)
+ */
+ public synchronized ReuseStringBuffer append(long l) {
+ buffer.append(l);
+ return this;
+ }
+
+ /**
+ * Appends the string representation of the <code>float</code>
+ * argument to this string buffer.
+ * <p>
+ * The argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then appended to this string buffer.
+ * <p>
+ * @param f a <code>float</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @see java.lang.String#valueOf(float)
+ * @see #append(java.lang.String)
+ */
+ public synchronized ReuseStringBuffer append(float f) {
+ buffer.append(f);
+ return this;
+ }
+
+ /**
+ * Appends the string representation of the <code>double</code>
+ * argument to this string buffer.
+ * <p>
+ * The argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then appended to this string buffer.
+ *
+ * @param d a <code>double</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @see java.lang.String#valueOf(double)
+ * @see #append(java.lang.String)
+ */
+ public synchronized ReuseStringBuffer append(double d) {
+ buffer.append(d);
+ return this;
+ }
+
+ /**
+ * Removes the characters in a substring of this <code>ReuseStringBuffer</code>.
+ * The substring begins at the specified <code>start</code> and extends to
+ * the character at index <code>end - 1</code> or to the end of the
+ * <code>ReuseStringBuffer</code> if no such character exists. If
+ * <code>start</code> is equal to <code>end</code>, no changes are made.
+ * <p>
+ * @param start The beginning index, inclusive.
+ * @param end The ending index, exclusive.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if <code>start</code>
+ * is negative, greater than <code>length()</code>, or
+ * greater than <code>end</code>.
+ */
+ public synchronized ReuseStringBuffer delete(int start, int end) {
+ buffer.delete(start, end);
+ return this;
+ }
+
+ /**
+ * Removes the character at the specified position in this
+ * <code>ReuseStringBuffer</code> (shortening the <code>ReuseStringBuffer</code>
+ * by one character).
+ * <p>
+ * @param index Index of character to remove
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the <code>index</code>
+ * is negative or greater than or equal to
+ * <code>length()</code>.
+ */
+ public synchronized ReuseStringBuffer deleteCharAt(int index) {
+ buffer.deleteCharAt(index);
+ return this;
+ }
+
+
+ /**
+ * Replaces the characters in a substring of this <code>StringBuffer</code>
+ * with characters in the specified <code>String</code>. The substring
+ * begins at the specified <code>start</code> and extends to the character
+ * at index <code>end - 1</code> or to the end of the
+ * <code>StringBuffer</code> if no such character exists. First the
+ * characters in the substring are removed and then the specified
+ * <code>String</code> is inserted at <code>start</code>. (The
+ * <code>StringBuffer</code> will be lengthened to accommodate the
+ * specified String if necessary.)
+ *
+ * @param start The beginning index, inclusive.
+ * @param end The ending index, exclusive.
+ * @param str String that will replace previous contents.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if <code>start</code>
+ * is negative, greater than <code>length()</code>, or
+ * greater than <code>end</code>.
+ * @since 1.2
+ */
+ public synchronized ReuseStringBuffer replace(int start, int end, String str) {
+ buffer.replace(start, end, str);
+ return this;
+ }
+
+ /**
+ * Returns a new <code>String</code> that contains a subsequence of
+ * characters currently contained in this <code>ReuseStringBuffer</code>.The
+ * substring begins at the specified index and extends to the end of the
+ * <code>ReuseStringBuffer</code>.
+ * <p>
+ * @param start The beginning index, inclusive.
+ * @return The new string.
+ * @exception StringIndexOutOfBoundsException if <code>start</code> is
+ * less than zero, or greater than the length of this
+ * <code>ReuseStringBuffer</code>.
+ */
+ public synchronized String substring(int start) {
+ return buffer.substring(start);
+ }
+
+ /**
+ * Returns a new character sequence that is a subsequence of this sequence.
+ *
+ * <p> An invocation of this method of the form
+ *
+ * <blockquote><pre>
+ * sb.subSequence(begin, end)</pre></blockquote>
+ *
+ * behaves in exactly the same way as the invocation
+ *
+ * <blockquote><pre>
+ * sb.substring(begin, end)</pre></blockquote>
+ *
+ * This method is provided so that the <tt>ReuseStringBuffer</tt> class can
+ * implement the {@link CharSequence} interface. </p>
+ *
+ * @param start the start index, inclusive.
+ * @param end the end index, exclusive.
+ * @return the specified subsequence.
+ *
+ * @throws IndexOutOfBoundsException
+ * if <tt>start</tt> or <tt>end</tt> are negative,
+ * if <tt>end</tt> is greater than <tt>length()</tt>,
+ * or if <tt>start</tt> is greater than <tt>end</tt>
+ *
+ * @since 1.4
+ * @spec JSR-51
+ */
+ public CharSequence subSequence(int start, int end) {
+ return buffer.substring(start, end);
+ }
+
+ /**
+ * Returns a new <code>String</code> that contains a subsequence of
+ * characters currently contained in this <code>ReuseStringBuffer</code>. The
+ * substring begins at the specified <code>start</code> and
+ * extends to the character at index <code>end - 1</code>. An
+ * exception is thrown if
+ * <p>
+ * @param start The beginning index, inclusive.
+ * @param end The ending index, exclusive.
+ * @return The new string.
+ * @exception StringIndexOutOfBoundsException if <code>start</code>
+ * or <code>end</code> are negative or greater than
+ * <code>length()</code>, or <code>start</code> is
+ * greater than <code>end</code>.
+ */
+ public synchronized String substring(int start, int end) {
+ return buffer.substring(start, end);
+ }
+
+ /**
+ * Inserts the string representation of a subarray of the <code>str</code>
+ * array argument into this string buffer. The subarray begins at the
+ * specified <code>offset</code> and extends <code>len</code> characters.
+ * The characters of the subarray are inserted into this string buffer at
+ * the position indicated by <code>index</code>. The length of this
+ * <code>ReuseStringBuffer</code> increases by <code>len</code> characters.
+ * <p>
+ * @param index position at which to insert subarray.
+ * @param str A character array.
+ * @param offset the index of the first character in subarray to
+ * to be inserted.
+ * @param len the number of characters in the subarray to
+ * to be inserted.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if <code>index</code>
+ * is negative or greater than <code>length()</code>, or
+ * <code>offset</code> or <code>len</code> are negative, or
+ * <code>(offset+len)</code> is greater than
+ * <code>str.length</code>.
+ */
+ public synchronized ReuseStringBuffer insert(int index, char[] str, int offset, int len) {
+ buffer.insert(index, str, offset, len);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the <code>Object</code>
+ * argument into this string buffer.
+ * <p>
+ * The second argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then inserted into this string buffer at the indicated
+ * offset.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ *
+ * @param offset the offset.
+ * @param obj an <code>Object</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ * @see java.lang.String#valueOf(java.lang.Object)
+ * @see #insert(int, java.lang.String)
+ * @see #length()
+ */
+ public synchronized ReuseStringBuffer insert(int offset, Object obj) {
+ buffer.insert(offset, obj);
+ return this;
+ }
+
+ /**
+ * Inserts the string into this string buffer.
+ * <p>
+ * The characters of the <code>String</code> argument are inserted, in
+ * order, into this string buffer at the indicated offset, moving up any
+ * characters originally above that position and increasing the length
+ * of this string buffer by the length of the argument. If
+ * <code>str</code> is <code>null</code>, then the four characters
+ * <code>"null"</code> are inserted into this string buffer.
+ * <p>
+ * The character at index <i>k</i> in the new character sequence is
+ * equal to:
+ * <ul>
+ * <li>the character at index <i>k</i> in the old character sequence, if
+ * <i>k</i> is less than <code>offset</code>
+ * <li>the character at index <i>k</i><code>-offset</code> in the
+ * argument <code>str</code>, if <i>k</i> is not less than
+ * <code>offset</code> but is less than <code>offset+str.length()</code>
+ * <li>the character at index <i>k</i><code>-str.length()</code> in the
+ * old character sequence, if <i>k</i> is not less than
+ * <code>offset+str.length()</code>
+ * </ul><p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ * <p>
+ * @param offset the offset.
+ * @param str a string.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ * @see #length()
+ */
+ public synchronized ReuseStringBuffer insert(int offset, String str) {
+ buffer.insert(offset, str);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the <code>char</code> array
+ * argument into this string buffer.
+ * <p>
+ * The characters of the array argument are inserted into the
+ * contents of this string buffer at the position indicated by
+ * <code>offset</code>. The length of this string buffer increases by
+ * the length of the argument.
+ * <p>
+ * The overall effect is exactly as if the argument were converted to
+ * a string by the method {@link String#valueOf(char[])} and the
+ * characters of that string were then
+ * {@link #insert(int,String) inserted} into this
+ * <code>ReuseStringBuffer</code> object at the position indicated by
+ * <code>offset</code>.
+ * <p>
+ * @param offset the offset.
+ * @param str a character array.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ */
+ public synchronized ReuseStringBuffer insert(int offset, char[] str) {
+ buffer.insert(offset, str);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the <code>boolean</code>
+ * argument into this string buffer.
+ * <p>
+ * The second argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then inserted into this string buffer at the indicated
+ * offset.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ * <p>
+ * @param offset the offset.
+ * @param b a <code>boolean</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ * @see java.lang.String#valueOf(boolean)
+ * @see #insert(int, java.lang.String)
+ * @see #length()
+ */
+ public ReuseStringBuffer insert(int offset, boolean b) {
+ buffer.insert(offset, b);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the <code>char</code>
+ * argument into this string buffer.
+ * <p>
+ * The second argument is inserted into the contents of this string
+ * buffer at the position indicated by <code>offset</code>. The length
+ * of this string buffer increases by one.
+ * <p>
+ * The overall effect is exactly as if the argument were converted to
+ * a string by the method {@link String#valueOf(char)} and the character
+ * in that string were then {@link #insert(int, String) inserted} into
+ * this <code>ReuseStringBuffer</code> object at the position indicated by
+ * <code>offset</code>.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ * <p>
+ * @param offset the offset.
+ * @param c a <code>char</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception IndexOutOfBoundsException if the offset is invalid.
+ * @see #length()
+ */
+ public synchronized ReuseStringBuffer insert(int offset, char c) {
+ buffer.insert(offset, c);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the second <code>int</code>
+ * argument into this string buffer.
+ * <p>
+ * The second argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then inserted into this string buffer at the indicated
+ * offset.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ * <p>
+ * @param offset the offset.
+ * @param i an <code>int</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ * @see java.lang.String#valueOf(int)
+ * @see #insert(int, java.lang.String)
+ * @see #length()
+ */
+ public ReuseStringBuffer insert(int offset, int i) {
+ buffer.insert(offset, i);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the <code>long</code>
+ * argument into this string buffer.
+ * <p>
+ * The second argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then inserted into this string buffer at the position
+ * indicated by <code>offset</code>.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ * <p>
+ * @param offset the offset.
+ * @param l a <code>long</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ * @see java.lang.String#valueOf(long)
+ * @see #insert(int, java.lang.String)
+ * @see #length()
+ */
+ public ReuseStringBuffer insert(int offset, long l) {
+ buffer.insert(offset, l);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the <code>float</code>
+ * argument into this string buffer.
+ * <p>
+ * The second argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then inserted into this string buffer at the indicated
+ * offset.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ * <p>
+ * @param offset the offset.
+ * @param f a <code>float</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ * @see java.lang.String#valueOf(float)
+ * @see #insert(int, java.lang.String)
+ * @see #length()
+ */
+ public ReuseStringBuffer insert(int offset, float f) {
+ buffer.insert(offset, f);
+ return this;
+ }
+
+ /**
+ * Inserts the string representation of the <code>double</code>
+ * argument into this string buffer.
+ * <p>
+ * The second argument is converted to a string as if by the method
+ * <code>String.valueOf</code>, and the characters of that
+ * string are then inserted into this string buffer at the indicated
+ * offset.
+ * <p>
+ * The offset argument must be greater than or equal to
+ * <code>0</code>, and less than or equal to the length of this
+ * string buffer.
+ * <p>
+ * @param offset the offset.
+ * @param d a <code>double</code>.
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ * @exception StringIndexOutOfBoundsException if the offset is invalid.
+ * @see java.lang.String#valueOf(double)
+ * @see #insert(int, java.lang.String)
+ * @see #length()
+ */
+ public ReuseStringBuffer insert(int offset, double d) {
+ buffer.insert(offset, d);
+ return this;
+ }
+
+ /**
+ * Returns the index within this string of the first occurrence of the
+ * specified substring. The integer returned is the smallest value
+ * <i>k</i> such that:
+ * <blockquote><pre>
+ * this.toString().startsWith(str, <i>k</i>)
+ * </pre></blockquote>
+ * is <code>true</code>.
+ *
+ * @param str any string.
+ * @return if the string argument occurs as a substring within this
+ * object, then the index of the first character of the first
+ * such substring is returned; if it does not occur as a
+ * substring, <code>-1</code> is returned.
+ * @exception java.lang.NullPointerException if <code>str</code> is
+ * <code>null</code>.
+ * @since 1.4
+ */
+ public int indexOf(String str) {
+ return buffer.indexOf(str);
+ }
+
+ /**
+ * Returns the index within this string of the first occurrence of the
+ * specified substring, starting at the specified index. The integer
+ * returned is the smallest value <tt>k</tt> for which:
+ * <blockquote><pre>
+ * k >= Math.min(fromIndex, str.length()) &&
+ * this.toString().startsWith(str, k)
+ * </pre></blockquote>
+ * If no such value of <i>k</i> exists, then -1 is returned.
+ *
+ * @param str the substring for which to search.
+ * @param fromIndex the index from which to start the search.
+ * @return the index within this string of the first occurrence of the
+ * specified substring, starting at the specified index.
+ * @exception java.lang.NullPointerException if <code>str</code> is
+ * <code>null</code>.
+ * @since 1.4
+ */
+ public synchronized int indexOf(String str, int fromIndex) {
+ return buffer.indexOf(str, fromIndex);
+ }
+
+ /**
+ * Returns the index within this string of the rightmost occurrence
+ * of the specified substring. The rightmost empty string "" is
+ * considered to occur at the index value <code>this.length()</code>.
+ * The returned index is the largest value <i>k</i> such that
+ * <blockquote><pre>
+ * this.toString().startsWith(str, k)
+ * </pre></blockquote>
+ * is true.
+ *
+ * @param str the substring to search for.
+ * @return if the string argument occurs one or more times as a substring
+ * within this object, then the index of the first character of
+ * the last such substring is returned. If it does not occur as
+ * a substring, <code>-1</code> is returned.
+ * @exception java.lang.NullPointerException if <code>str</code> is
+ * <code>null</code>.
+ * @since 1.4
+ */
+ public synchronized int lastIndexOf(String str) {
+ return buffer.lastIndexOf(str);
+ }
+
+ /**
+ * Returns the index within this string of the last occurrence of the
+ * specified substring. The integer returned is the largest value <i>k</i>
+ * such that:
+ * <blockquote><pre>
+ * k <= Math.min(fromIndex, str.length()) &&
+ * this.toString().startsWith(str, k)
+ * </pre></blockquote>
+ * If no such value of <i>k</i> exists, then -1 is returned.
+ *
+ * @param str the substring to search for.
+ * @param fromIndex the index to start the search from.
+ * @return the index within this string of the last occurrence of the
+ * specified substring.
+ * @exception java.lang.NullPointerException if <code>str</code> is
+ * <code>null</code>.
+ * @since 1.4
+ */
+ public synchronized int lastIndexOf(String str, int fromIndex) {
+ return buffer.lastIndexOf(str, fromIndex);
+ }
+
+ /*
+ * The character sequence contained in this string buffer is
+ * replaced by the reverse of the sequence.
+ * <p>
+ * Let <i>n</i> be the length of the old character sequence, the one
+ * contained in the string buffer just prior to execution of the
+ * <code>reverse</code> method. Then the character at index <i>k</i> in
+ * the new character sequence is equal to the character at index
+ * <i>n-k-1</i> in the old character sequence.
+ *
+ * @return a reference to this <code>ReuseStringBuffer</code> object.
+ */
+ public synchronized ReuseStringBuffer reverse() {
+ buffer.reverse();
+ return this;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ public String toString() {
+ return buffer.toString();
+ }
+
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SQLIdentifier.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SQLIdentifier.java
new file mode 100644
index 0000000..c20d437
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SQLIdentifier.java
@@ -0,0 +1,9278 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+import java.util.Vector;
+
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinition;
+import org.eclipse.datatools.connectivity.sqm.core.definition.DatabaseDefinitionRegistry;
+import org.eclipse.datatools.connectivity.sqm.internal.core.RDBCorePlugin;
+import org.eclipse.datatools.connectivity.sqm.internal.core.connection.ConnectionInfo;
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * The main methods of this class help handle ordinary and delimited SQL identifiers,
+ * and can be understood according to the origin of the identifier
+ * and their intended use:
+ * <dl>
+ * <dt><b>Identifiers from DB2 catalogs:</b>
+ * <dd>
+ * <ul>
+ * <li>{@link #isDBIDOrdinary(String) boolean isDBIDOrdinary(id)}
+ * <br>{@link #isDBIDOrdinary(String,int) boolean isDBIDOrdinary(id, platforms)}
+ * <br>These methods are used when retrieving an SQL identifier from DB2,
+ * where the delimiters have been dropped and lower-case characters folded to upper case.
+ * <li>{@link #convertDBID(String,char) String convertDBID(id, delimiter)}
+ * <br>{@link #convertDBID(String,char,int) String convertDBID(id, delimiter, platforms)}
+ * <br>These methods are used when retrieving an SQL identifier from DB2,
+ * where the delimiters have been dropped, so that any needed delimiters
+ * are restored.
+ * </ul>
+ * <dt><b>Identifiers from user input:</b>
+ * <dd>
+ * <ul>
+ * <li>For comparison with DB2 catalog values:
+ * <ul>
+ * <li>{@link #isUserInputOrdinary(String) boolean isUserInputOrdinary(id)}
+ * <br>{@link #isUserInputOrdinary(String,int) boolean isUserInputOrdinary(id, platforms)}
+ * <br>{@link #isUserInputOrdinary(String,char,int) boolean isUserInputOrdinary(id, delimiter, platforms)}
+ * <br>These methods are used when processing an SQL identifier from user input,
+ * where delimiters may or may not be provided.
+ * <li>{@link #convertUserInput(String,char) String convertUserInput(id, delimiter)}
+ * <br>{@link #convertUserInput(String,char,int) String convertUserInput(id, delimiter, platforms)}
+ * <br>These methods are used to prepare an SQL identifier from user input
+ * as DB2 would store it.
+ * </ul>
+ * <li>For composition of SQL statements, when the interface
+ * automatically delimits an identifier:
+ * <ul>
+ * <li>{@link #isUserInputOrdinary(String) boolean isUserInputOrdinary(id)}
+ * <br>{@link #isUserInputOrdinary(String,int) boolean isUserInputOrdinary(id, platforms)}
+ * <br>{@link #isUserInputOrdinary(String,char,int) boolean isUserInputOrdinary(id, delimiter, platforms)}
+ * <br>These methods are used when processing an SQL identifier from user input,
+ * where delimiters may or may not be provided.
+ * <li>{@link #convertDBID(String,char) String convertDBID(id, delimiter)}
+ * <br>{@link #convertDBID(String,char,int) String convertDBID(id, delimiter, platforms)}
+ * <br>These methods are used to prepare an SQL identifier from user input
+ * for use in an SQL statement.
+ * </ul>
+ * </ul>
+ * </dl>
+ * <p>
+ * Other methods provide supporting function.
+ * <p>
+ * The methods implement the following differences between platforms:
+ * <ul>
+ * <li>Linux, UNIX, Windows, and OS/2 (LUWO) allow characters from extended
+ * character sets in ordinary identifiers; OS/390 allows DBCS if they are bracketed
+ * with shift-out and shift-in characters. <b>This code currently does
+ * not handle shift-out and shift-in characters.</b>
+ * <li>OS/400 <i>does not</i> allow internal delimiters;
+ * LUWO and OS/390 <i>do</i> allow them.
+ * <li>LUWO and OS/400 ignore trailing blanks in an ordinary identifier,
+ * whether it is delimited or not. <b>Need to check 390.</b>
+ * <li>OS/390 lets users set the delimiter (escape character).
+ * <li>There are differences in reserved words.
+ * </ul>
+ * <p>
+ * For definitions of an ordinary SQL identifier see the online documentation:
+ * <ul>
+ * <li><a href="ftp://ftp.software.ibm.com/ps/products/db2/info/vr6/htm/db2s0/sqlidts.htm#hdrsqlidts">
+ * LUWO ordinary SQL identifiers</a>
+ * <li><a href="ftp://ftp.software.ibm.com/ps/products/db2/info/vr6/htm/db2s0/ch2char.htm#IDX5919">
+ * LUWO letters</a>
+ * <li><a href="http://www.unicode.org/charts/">
+ * The extended Unicode character sets</a>
+ * <li><a href="http://www.s390.ibm.com:80/bookmgr-cgi/bookmgr.cmd/BOOKS/DSNSQ0G2/3%2e3%2e1?SHELF=DSNSH0G3">
+ * OS/390 SQL identifiers</a>
+ * <li><a href="http://www.s390.ibm.com:80/bookmgr-cgi/bookmgr.cmd/BOOKS/DSNSQ0G2/3%2e1?SHELF=DSNSH0G3">
+ * OS/390 letters</a>
+ * <li><a href="http://publib.boulder.ibm.com/pubs/html/as400/v4r4/ic2924/info/db2/rbafzmst38.htm#HDRSQLIDTS">
+ * OS/400 SQL identifiers</a>
+ * <li><a href="ftp://ftp.software.ibm.com/ps/products/db2/info/vr6/htm/db2s0/db2s0476.htm">
+ * ISO/ANS SQL92 Reserved Words</a>
+ * <li><a href="ftp://ftp.software.ibm.com/ps/products/db2/info/vr6/htm/db2s0/db2s0474.htm">
+ * Reserved words for LUWO</a>
+ * <li><a href="http://www.s390.ibm.com:80/bookmgr-cgi/bookmgr.cmd/BOOKS/DSNSQ0G2/E%2e0?SHELF=DSNSH0G3#HDRKEYWD">
+ * Reserved words for OS/390</a>
+ * <li><a href="http://publib.boulder.ibm.com/pubs/html/as400/v4r4/ic2924/info/db2/rbafzmst156.htm#HDRRESWORD">
+ * Reserved words for OS/400</a>
+ * <li><a href="ftp://ftp.software.ibm.com/ps/products/db2/info/vr6/htm/db2s0/db2s0473.htm">
+ * Reserved schemas</a>
+ * <li><a href="http://manuals.sybase.com:80/onlinebooks/group-as/asg1200e/aserefmn/@Generic__BookTextView/29609;pt=28169#X">
+ * Sybase SQL Identifiers</a>
+ * </ul>
+ * <p>
+ * @author Thomas Sharp, sharpt@us.ibm.com
+ */
+public class SQLIdentifier
+{
+// Test main API; deliver only commented out.
+// public static void main(String[] args)
+// {
+// String r = convertAuthID(args[0], DEFAULT_DELIM, PLATFORM_INFORMIX);
+// System.out.println("SQLIdentifier.main authid: " + r);
+// }
+
+ /** Use with NLS.bind to construct qualified SQL identifiers. See genQualifiedName. */
+ public static String QUALIFIED_NAME_TEMPLATE = "{0}.{1}"; //$NON-NLS-1$
+
+ /** Any platform. */
+ public static final int PLATFORM_ANY = 0x0;
+ /** LUWO: Linux, UNIX, Windows, and OS/2. */
+ public static final int PLATFORM_LUWO = 0x1;
+ /** OS/390, z/OS. */
+ public static final int PLATFORM_390 = 0x2;
+ /** OS/400, iSeries. */
+ public static final int PLATFORM_400 = 0x4;
+ /** LUWO, z/OS, and iSeries */
+ public static final int PLATFORM_DB2 = PLATFORM_LUWO & PLATFORM_390 & PLATFORM_400;
+ /** Cloudscape. */
+ public static final int PLATFORM_CLOUDSCAPE = 0x8;
+ /** Derby. */
+ public static final int PLATFORM_DERBY = 0x8;
+ /** LUWO, 390, 400, and Cloudscape */
+ public static final int PLATFORM_ALL = 0xF;
+ /** Informix. */
+ public static final int PLATFORM_INFORMIX = 0x20;
+ /** Oracle. */
+ public static final int PLATFORM_ORACLE = 0x40;
+ /** Sybase. */
+ public static final int PLATFORM_SYBASE = 0x80;
+ /** SQL Server. */
+ public static final int PLATFORM_SQLSERVER = 0x100;
+ /** MySQL. */
+ public static final int PLATFORM_MYSQL= 0x200;
+ /** Any other platform. */
+ public static final int PLATFORM_OTHER = 0x10000000;
+
+ /** Hash key for OS/390, z/OS */
+ public static final String PLATFORM_390_KEY = "390_PLATFORM"; //$NON-NLS-1$
+ /** Hash key for OS/400, iSeries. */
+ public static final String PLATFORM_400_KEY = "400_PLATFORM"; //$NON-NLS-1$
+ /** Hash key for LUWO: Linux, UNIX, Windows, and OS/2. */
+ public static final String PLATFORM_LUWO_KEY = "LUWO_PLATFORM"; //$NON-NLS-1$
+ /** Hash key for Cloudscape. */
+ public static final String PLATFORM_CLOUDSCAPE_KEY = "CLOUDSCAPE_PLATFORM"; //$NON-NLS-1$
+ /** Hash key for any other platform. */
+ public static final String PLATFORM_OTHER_KEY = "OTHER_PLATFORM"; //$NON-NLS-1$
+
+ /** For identifying DatabaseDefinitions vendor names for DB2 for zSeries. */
+ public static final String DB2_ZSERIES = "zSeries"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for DB2 for iSeries. */
+ public static final String DB2_ISERIES = "iSeries"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for DB2 for workstation. */
+ public static final String DB2_LUW0 = "DB2 UDB"; // and not zSeries or iSeries; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for IBM Cloudscape. */
+ public static final String CLOUDSCAPE = "Cloudscape"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for Derby. */
+ public static final String DERBY = "Derby"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for Informix. */
+ public static final String INFORMIX = "Informix"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for Oracle. */
+ public static final String ORACLE = "Oracle"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for Sybase. */
+ public static final String SYBASE = "Sybase"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for SQL Server. */
+ public static final String SQLSERVER = "SQL Server"; //$NON-NLS-1$
+ /** For identifying DatabaseDefinitions vendor names for MySQL. */
+ public static final String MYSQL = "MySql"; //$NON-NLS-1$
+
+ /** String containing the valid ordinary identifier digits. */
+ protected static String ordinaryDigits;
+
+ /** Hashtable to remember valid ordinary identifier HashSets by platform name. */
+ protected static Hashtable<Object, HashSet<Character>> ordinaryFlagsSet;
+ protected static String ordinaryWideDigits;
+ /** Temporary list of UNO languages where we have good character sets. */
+ protected static ArrayList<String> langsUNO;
+
+ /** Set of reserved words for DB2 UDB for LUWO. */
+ protected static List<String> luwoReserved;
+
+ /** Set of reserved words for DB2 UDB for OS/390. */
+ protected static List<String> os390Reserved;
+
+ /** Set of reserved words for DB2 UDB for OS/400. */
+ protected static List<String> os400Reserved;
+
+ /** Set of reserved words for IBM Cloudscape. */
+ protected static List<String> cloudscapeReserved;
+
+ /** Array containing Characters for the valid ordinary identifier characters for other databases. */
+ protected static HashSet<Character> otherOrdinaryFlags;
+
+ /** Set of reserved schemas. */
+ protected static Set<String> schemaReserved;
+ /** All of the above. */
+ public static final int TRIM_ALL = 0x7;
+ /** Trim from the left and the right.*/
+ public static final int TRIM_BOTH = 0x3;
+ /** Trim inside the specified delimiter from the right. */
+ public static final int TRIM_INSIDE = 0x4;
+
+ /** Trim from the left. */
+ public static final int TRIM_LEFT = 0x1;
+ /** Trim from the right.*/
+ public static final int TRIM_RIGHT = 0x2;
+
+ public final static char DEFAULT_DELIM = '"';
+ public final static String DEFAULT_DELIM_STRING = "\""; //$NON-NLS-1$
+ public final static char DEFAULT_SQUOTE = '\'';
+ public final static String EMPTY_STRING = ""; //$NON-NLS-1$
+
+ /**
+ * Returns the input authorization ID in SQL format.
+ * Folds to upper case if the ID would be upper-cased in catalog format.
+ * <p>
+ * @param id An SQL identifier.
+ * @param conInfo Describes the database connection.
+ * @return The authorization ID converted to a SQL identifier in SQL format
+ * @see #convertAuthID(String, char, int)
+ */
+ public static String convertAuthID(String id, ConnectionInfo conInfo)
+ {
+ char delimiter = getDelimiter(conInfo);
+ int platform = getPlatform(conInfo);
+ return convertAuthID(id, delimiter, platform);
+ }
+
+ /**
+ * Returns the input authorization ID in SQL format.
+ * Folds to upper case if the ID would be upper-cased in catalog format.
+ * <p>
+ * @param id An SQL identifier.
+ * @param dbDef Describes the database connection.
+ * @return The authorization ID converted to a SQL identifier in SQL format
+ * @see #convertAuthID(String, char, int)
+ */
+ public static String convertAuthID(String id, DatabaseDefinition dbDef)
+ {
+ char delimiter = getDelimiter(dbDef);
+ int platform = getPlatform(dbDef);
+ return convertAuthID(id, delimiter, platform);
+ }
+
+
+ /**
+ * Returns the input authorization ID in SQL format.
+ * Folds to upper case if the ID would be upper-cased in catalog format.
+ * <p>
+ * @param id An SQL identifier.
+ * @param delim The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @param platforms The sum of platform constants.
+ * @return The authorization ID converted to a SQL identifier in SQL format.
+ */
+ public static String convertAuthID(String id, char delim, int platforms)
+ {
+ if ((platforms & PLATFORM_INFORMIX) == 0 && isUserInputOrdinary(id, delim, platforms))
+ {
+ return id.toUpperCase();
+ }
+ else
+ {
+ String sqlid = convertDBID(id, delim, platforms, false);
+ boolean reserved = isReservedIdentifier(sqlid, delim, platforms);
+ if (reserved)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.insert(0, delim).append(sqlid).append(delim);
+ return sb.toString();
+ }
+ return sqlid;
+ }
+ }
+
+ /**
+ * Returns the input SQL identifier as the database at
+ * the given connection would store it in its catalog.
+ * <p>Equivalent to convertUserInput(String id, char delimiter, int platforms).
+ * <p>
+ * @param id An SQL identifier.
+ * @param conInfo Describes the database connection.
+ * @return The converted SQL identifier.
+ * @see #convertUserInput(String, char, int)
+ */
+ public static String toCatalogFormat(String id, ConnectionInfo conInfo)
+ {
+ char delimiter = getDelimiter(conInfo);
+ return convertUserInput(id, delimiter, getPlatform(conInfo));
+ }
+
+ /**
+ * Returns the input SQL identifier as a database for
+ * the given definition would store it in its catalog.
+ * <p>Equivalent to convertUserInput(String id, char delimiter, int platforms).
+ * <p>
+ * @param id An SQL identifier.
+ * @param dbDef Describes the database.
+ * @return The converted SQL identifier.
+ * @see #convertUserInput(String, char, int)
+ */
+ public static String toCatalogFormat(String id, DatabaseDefinition dbDef)
+ {
+ char delimiter = getDelimiter(dbDef);
+ return convertUserInput(id, delimiter, getPlatform(dbDef));
+ }
+
+ /**
+ * Returns the input SQL identifier ready to be used in an SQL statement
+ * for the given connection.
+ * <p>Equivalent to convertDBID(String id, char delimiter, int platforms).
+ * <p>
+ * @param id An SQL identifier.
+ * @param conInfo Describes the database connection.
+ * @return The converted SQL identifier.
+ * @see #convertDBID(String, char, int)
+ */
+ public static String toSQLFormat(String id, ConnectionInfo conInfo)
+ {
+ char delimiter = getDelimiter(conInfo);
+ int platform = getPlatform(conInfo);
+ String sqlid = convertDBID(id, delimiter, platform, false);
+ boolean reserved;
+ if (platform > PLATFORM_ALL)
+ reserved = isReservedIdentifier(sqlid, conInfo);
+ else
+ reserved = isReservedIdentifier(sqlid, delimiter, platform);
+ if (reserved)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.insert(0, delimiter).append(sqlid).append(delimiter);
+ return sb.toString();
+ }
+ return sqlid;
+ }
+
+ /**
+ * Returns the input SQL identifier ready to be used in an SQL statement
+ * for the given database definition.
+ * <p>Equivalent to convertDBID(String id, char delimiter, int platforms).
+ * <p>
+ * @param id An SQL identifier.
+ * @param dbDef Describes the database.
+ * @return The converted SQL identifier.
+ * @see #convertDBID(String, char, int)
+ */
+ public static String toSQLFormat(String id, DatabaseDefinition dbDef)
+ {
+ char delimiter = getDelimiter(dbDef);
+ int platform = getPlatform(dbDef);
+ String sqlid = convertDBID(id, delimiter, platform, false);
+ boolean reserved;
+ if (platform > PLATFORM_ALL)
+ reserved = isReservedIdentifier(sqlid, dbDef);
+ else
+ reserved = isReservedIdentifier(sqlid, delimiter, platform);
+ if (reserved)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.insert(0, delimiter).append(sqlid).append(delimiter);
+ return sb.toString();
+ }
+ return sqlid;
+ }
+
+ /**
+ * Returns true if the two SQL identifiers match to the length of prefix.
+ * Handles delimiters for both id and prefix.
+ * <p>
+ * @param id An SQL identifier
+ * @param prefix The beginning of an SQL identifier
+ * @param delimiter The delimiter defined as the escape character
+ * @return True if the two SQL identifiers match to the length of prefix.
+ */
+ public static boolean beginsWith(String id, String prefix, char delimiter)
+ {
+ String nid = trim(id,TRIM_ALL,delimiter), pref = trim(prefix,TRIM_ALL,delimiter);
+ if (pref.charAt(0) == delimiter)
+ {
+ int plen = pref.length();
+ // Remove leading delimiter
+ if (pref.charAt(plen - 1) == delimiter)
+ // Remove trailing delimiter, if any
+ pref = pref.substring(1, plen - 2);
+ else
+ pref = pref.substring(1);
+ }
+ else
+ {
+ pref = pref.toUpperCase();
+ }
+ if (nid.charAt(0) == delimiter)
+ {
+ if (nid.length() + 1 < pref.length())
+ return false;
+ nid = nid.substring(1, pref.length() + 1);
+ }
+ else
+ {
+ if (nid.length() < pref.length())
+ return false;
+ nid = (nid.substring(0, pref.length())).toUpperCase();
+ }
+ if (pref.equals(nid))
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * Checks the passed uniqueName is in the passed Enumeration of names and returns
+ * true if found, false otherwise.
+ *
+ * @param names Array of names
+ * @param uniqueName The name to be checked.
+ * @param delimiter The delimiter defined as the escape character
+ *
+ * @return True if found false otherwise.
+ */
+ public static boolean checkName(Enumeration<String> e, String identifier, char delimiter)
+ {
+ while (e.hasMoreElements())
+ {
+ if (equals(e.nextElement(), identifier, delimiter))
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Returns a new identifier concatenating the toString of the object
+ * (before the closing delimiter if need be).
+ * Assumes that the name is well formed, ending with a delimiter if it
+ * begins with one.
+ * <p>
+ * @param id The starting identifier
+ * @param add The object to add
+ * @param delimiter The delimiter defined as the escape character
+ * @return The resulting identifier
+ */
+ public static String concatIdentifier(String id, Object add, char delimiter)
+ {
+ String nid = trim(id,TRIM_ALL,delimiter);
+ int epos = nid.length() - 1;
+ if (nid.charAt(epos) == delimiter)
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append(nid.substring(0, epos)).append(add.toString()).append(delimiter);
+ return sb.toString();
+ }
+ else
+ {
+ StringBuffer sb = new StringBuffer();
+ sb.append(nid).append(add.toString());
+ return sb.toString();
+ }
+ }
+
+ /**
+ * Returns a new identifier concatenating the number
+ * (before the closing delimiter if need be).
+ * Assumes that the name is well formed, ending with a delimiter if it
+ * begins with one.
+ * <p>
+ * @param id The starting identifier
+ * @param add The number to add
+ * @param delimiter The delimiter defined as the escape character
+ * @return The resulting identifier
+ */
+ public static String concatIdentifier(String id, int add, char delimiter)
+ {
+ return concatIdentifier(id, new Integer(add), delimiter);
+ }
+
+ /**
+ * Return a unique name for adding an attribute by appending a count to the
+ * passed string and also checking for the existence of the name in the vector.
+ *
+ * @param attrNames All attribute names in the type including the
+ * inherited attribute names.
+ * @param name Name that we append count to.
+ *
+ * @return unique name of the attribute to be added.
+ */
+ public static String getUniqueVarName(Vector<String> varNames, String name)
+ {
+ String uniqueName = name;
+ int count = 0;
+ boolean found = true;
+ if (varNames != null && varNames.size() > 0)
+ {
+ while (found)
+ {
+ uniqueName = concatIdentifier(name, ++count, DEFAULT_DELIM);
+ found = !isNameUnique(varNames, uniqueName);
+ }
+ } else
+ {
+ uniqueName = concatIdentifier(name, ++count, DEFAULT_DELIM);
+ }
+ return uniqueName;
+ }
+
+ /**
+ * Checks the passed uniqueName is in the passed array names and returns
+ * false if found, true otherwise.
+ *
+ * @param names Array of names
+ * @param uniqueName The name to be checked.
+ *
+ * @return true if found false otherwise.
+ */
+ public static boolean isNameUnique(Vector<String> names, String uniqueName)
+ {
+ int nameslength = names.size();
+ for (int i = 0; i < nameslength; i++)
+ {
+ if (equals(names.get(i), uniqueName, DEFAULT_DELIM))
+ return false;
+ }
+ return true;
+ }
+
+
+ /**
+ * Returns the input SQL identifier ready to be used in an SQL statement
+ * for DB2 UDB for LUWO.
+ * If the identifier is not an ordinary identifier, the return is delimited;
+ * otherwise, the return is the original identifier.
+ * This method is used when retrieving an SQL identifier from DB2,
+ * where the delimiters have been dropped, so that any needed delimiters
+ * are restored.
+ * <p>
+ * (Formerly named db2String.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * For LUWO, OS/390, or OS/400 or a combination of platforms,
+ * see {@link #convertDBID(String,char,int) convertDBID(String, char, int)}.
+ * <p>
+ * @param id An SQL identifier.
+ * @param delimiter The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @return The converted SQL identifier.
+ * @see #convertDBID(String, char, int)
+ */
+ public static String convertDBID(String id, char delimiter)
+ {
+ return convertDBID(id, delimiter, PLATFORM_LUWO, true);
+ }
+
+ /**
+ * Returns the input SQL identifier ready to be used in an SQL statement
+ * for LUWO, OS/390, or OS/400 or a combination of platforms.
+ * @return convertDBID(String,char,int,true)
+ */
+ public static String convertDBID(String id, char delimiter, int platforms)
+ {
+ return convertDBID(id, delimiter, platforms, true);
+ }
+
+ /**
+ * Returns the input SQL identifier ready to be used in an SQL statement
+ * for LUWO, OS/390, or OS/400 or a combination of platforms.
+ * If the identifier is not an ordinary identifier, the return is delimited
+ * and any internal delimiters are doubled;
+ * otherwise, the return is the original identifier.
+ * This method is used when retrieving an SQL identifier from DB2,
+ * where the delimiters have been dropped, so that any needed delimiters
+ * are restored.
+ * <p>
+ * (Formerly named db2String.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * @param id An SQL identifier.
+ * @param delimiter The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @param platforms The sum of platform constants.
+ * @param checkReserved whether or not identifier should be checked against
+ * list of reserved words when considering 'ordinaryness'. Default true.
+ * @return The converted SQL identifier for the specified platforms.
+ */
+ public static String convertDBID(String id, char delimiter, int platforms,
+ boolean checkReserved) //@d340004txu
+ {
+ // Note: much of this code is duplicated in method isDBOrdinary,
+ // so one of these methods should probably call the other.
+ if (id == null || id.length() == 0)
+ {
+ return id;
+ }
+ boolean ordinary = true; // Assume the id is ordinary
+ StringBuffer sb = new StringBuffer();
+ char ch = id.charAt(0);
+ if (ch == delimiter)
+ {
+ sb.append(ch); // Double it
+ ordinary = false;
+ }
+ else if (!isOrdinaryUpperChar(ch, platforms))
+ {
+ ordinary = false;
+ }
+ sb.append(ch);
+ int range = id.length();
+ for (int c = 1; c < range; c++)
+ {
+ ch = id.charAt(c);
+ if (ch == delimiter)
+ {
+ sb.append(ch); // Double it
+ ordinary = false;
+ }
+ else if (!isOrdinaryUpperChar(ch, platforms)
+ && !isOrdinaryDigit(ch)
+ && ch != '_')
+ {
+ ordinary = false;
+ }
+ sb.append(ch);
+ }
+ // @d322643 bgp 04Jun2004 - begin
+ // Check if the identifier is the same as a reserved word.
+ if (checkReserved && isReservedIdentifier(sb.toString(), delimiter, platforms))
+ { //@d340004txu
+ ordinary = false;
+ }
+ // @d322643 bgp 04Jun2004 - end
+ if (!ordinary)
+ {
+ sb.insert(0, delimiter).append(delimiter);
+ return sb.toString();
+ }
+ return id;
+ }
+
+ /**
+ * Returns the user-input SQL identifier as DB2 for LUWO would store it.
+ * It is either converted to upper case,
+ * if it is an ordinary identifier <i>ignoring the case of each letter</i>,
+ * or delimited, if it cannot be an ordinary identifier.
+ * If the user has begun and ended it with a delimiter,
+ * then new delimiters are not added.
+ * <p>
+ * (Formerly named handleDB2Identifier.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length,
+ * or failing to double internal delimiters.
+ * <p>
+ * For LUWO, OS/390, or OS/400 or a combination of platforms,
+ * see {@link #convertUserInput(String,char,int) convertUserInput(String, char, int)}.
+ * <p>
+ * @param id An SQL identifier.
+ * @param delimiter The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @return The converted SQL identifier.
+ * @see #convertUserInput(String, char, int)
+ */
+ public static String convertUserInput(String id, char delimiter)
+ {
+ return convertUserInput(id, delimiter, PLATFORM_LUWO);
+ }
+
+ /**
+ * Returns the input SQL identifier either converted to upper case,
+ * if it is an ordinary identifier <i>ignoring the case of each letter</i>,
+ * or delimited, if it cannot be an ordinary identifier,
+ * for LUWO, OS/390, or OS/400 or a combination of platforms.
+ * <p>
+ * (Formerly named handleDB2Identifier.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * @param id An SQL identifier.
+ * @param conInfo For the connection information.
+ * @return The converted SQL identifier for the specified platforms in catalog format.
+ */
+ public static String convertUserInput(String id, ConnectionInfo conInfo)
+ {
+ char delimiter = getDelimiter(conInfo);
+ int platforms = getPlatform(conInfo);
+ return convertUserInput(id, delimiter, platforms);
+ }
+
+ /**
+ * Returns the input SQL identifier either converted to upper case,
+ * if it is an ordinary identifier <i>ignoring the case of each letter</i>,
+ * or delimited, if it cannot be an ordinary identifier,
+ * for LUWO, OS/390, or OS/400 or a combination of platforms.
+ * <p>
+ * (Formerly named handleDB2Identifier.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * @param id An SQL identifier.
+ * @param dbdef For the connection information.
+ * @return The converted SQL identifier for the specified platforms in catalog format.
+ */
+ public static String convertUserInput(String id, DatabaseDefinition dbDef)
+ {
+ char delimiter = getDelimiter(dbDef);
+ int platforms = getPlatform(dbDef);
+ return convertUserInput(id, delimiter, platforms);
+ }
+
+ /**
+ * Returns the input SQL identifier either converted to upper case,
+ * if it is an ordinary identifier <i>ignoring the case of each letter</i>,
+ * or delimited, if it cannot be an ordinary identifier,
+ * for LUWO, OS/390, or OS/400 or a combination of platforms.
+ * <p>
+ * (Formerly named handleDB2Identifier.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * @param id An SQL identifier.
+ * @param delimiter The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @param platforms The sum of platform constants.
+ * @return The converted SQL identifier for the specified platforms in catalog format.
+ */
+ public static String convertUserInput(String id, char delimiter, int platforms)
+ {
+ if (id == null || id.length() == 0)
+ {
+ return id;
+ }
+ else if (trim(id,TRIM_LEFT,delimiter).length() == 0)
+ {
+ return EMPTY_STRING;
+ }
+ else if (trim(id,TRIM_LEFT,delimiter).charAt(0) == delimiter)
+ {
+ StringBuffer sb = new StringBuffer();
+ char ch;
+ id = trim(id,TRIM_ALL,delimiter);
+ int range = id.length() - 1;
+
+ if (id.charAt(range) == delimiter)
+ {
+ range=range-1;
+ }
+
+ boolean precedingDelimiter=false;
+ for (int c = 1; c <= range; c++)
+ {
+ ch = id.charAt(c);
+ if (ch == delimiter) {
+ if(precedingDelimiter) {
+ precedingDelimiter=false;
+ }
+ else {
+ precedingDelimiter=true;
+ sb.append(ch);
+ }
+ } else {
+ precedingDelimiter=false;
+ sb.append(ch);
+ }
+ }
+
+ return sb.toString();
+ }
+ else
+ {
+ return (trim(id,TRIM_BOTH,delimiter)).toUpperCase();
+ }
+ }
+
+ /**
+ * Parses an SQL identifier to separate a qualifier.
+ * @param docText An SQL identifier, optionally qualified
+ * @param conInfo Describes the database connection.
+ * @param qualifierSeparator The character that separates a qualifier.
+ * Usually, this is a period, but for the system naming option on
+ * iSeries, this is a forward slash (/).
+ * @return A String array of 2 elements, where the second element
+ * will be the identifier that is qualified by the first element.
+ * The first element could be qualified.
+ * Any element can be null, but the array will never be null.
+ * @see SmartUtil.divideIdentifier(String, char).
+ */
+ public static String[] getIdentifierParts(String docText, ConnectionInfo conInfo)
+ {
+ return getIdentifierParts(docText, conInfo, '.');
+ }
+
+ /**
+ * Parses an SQL identifier to separate a qualifier.
+ * @param docText An SQL identifier, optionally qualified
+ * @param dbDef Describes a database.
+ * @return A String array of 2 elements, where the second element
+ * will be the identifier that is qualified by the first element.
+ * The first element could be qualified.
+ * Any element can be null, but the array will never be null.
+ * @see SmartUtil.divideIdentifier(String, char).
+ */
+ public static String[] getIdentifierParts(String docText, DatabaseDefinition dbDef)
+ {
+ return getIdentifierParts(docText, dbDef, '.');
+ }
+
+ /**
+ * Parses an SQL identifier to separate a qualifier.
+ * @param docText An SQL identifier, optionally qualified
+ * @param conInfo Describes the database connection.
+ * @param qualifierSeparator The character that separates a qualifier.
+ * Usually, this is a period, but for the system naming option on
+ * iSeries, this is a forward slash (/).
+ * @return A String array of 2 elements, where the second element
+ * will be the identifier that is qualified by the first element.
+ * The first element could be qualified.
+ * Any element can be null, but the array will never be null.
+ * @see SmartUtil.divideIdentifier(String, char, char).
+ */
+ public static String[] getIdentifierParts(String docText, ConnectionInfo conInfo, char qualifierSeparator)
+ {
+ char delim = getDelimiter(conInfo);
+ return getIdentifierParts(docText, delim, qualifierSeparator);
+ }
+
+ /**
+ * Parses an SQL identifier to separate a qualifier.
+ * @param docText An SQL identifier, optionally qualified.
+ * @param dbDef Describes the database.
+ * @param qualifierSeparator The character that separates a qualifier.
+ * Usually, this is a period, but for the system naming option on
+ * iSeries, this is a forward slash (/).
+ * @return A String array of 2 elements, where the second element
+ * will be the identifier that is qualified by the first element.
+ * The first element could be qualified.
+ * Any element can be null, but the array will never be null.
+ * @see SmartUtil.divideIdentifier(String, char, char).
+ */
+ public static String[] getIdentifierParts(String docText, DatabaseDefinition dbDef, char qualifierSeparator)
+ {
+ char delim = getDelimiter(dbDef);
+ return getIdentifierParts(docText, delim, qualifierSeparator);
+ }
+
+ /**
+ * Parses an SQL identifier to separate a qualifier.
+ * @param docText An SQL identifier, optionally qualified
+ * @param delim The delimiter for SQL identifiers.
+ * @param qualifierSeparator The character that separates a qualifier.
+ * Usually, this is a period, but for the system naming option on
+ * iSeries, this is a forward slash (/).
+ * @return A String array of 2 elements, where the second element
+ * will be the identifier that is qualified by the first element.
+ * The first element could be qualified.
+ * Any element can be null, but the array will never be null.
+ * @see SmartUtil.divideIdentifier(String, char, char).
+ */
+ public static String[] getIdentifierParts(String docText, char delim, char qualifierSeparator)
+ {
+ String[] parse = new String[2];
+ if (docText == null || docText.length() == 0)
+ return parse;
+ int dot = getSeparator(docText, delim, qualifierSeparator);
+ if (dot == -1 || dot == 0) // No separator or at the beginning; all identifier
+ {
+ parse[1] = docText;
+
+ }
+ else if (dot == docText.length() - 1) // Separator at the end; all schema
+ {
+ parse[0] = docText.substring(0, dot);
+ }
+ else
+ {
+ parse[0] = docText.substring(0, dot);
+ parse[1] = docText.substring(dot + 1);
+ }
+ return parse;
+ }
+
+ /**
+ * Parses an SQL identifier to separate a potential qualifier.
+ * @param docText, an SQL identifier, optionally qualified
+ * @param part, one of the following:
+ * <dl compact>
+ * <dt>0 <dd>Return the schema, if any
+ * <dt>1 <dd>Return the unqualified identifier
+ * </dl>
+ * @param conInfo Describes the database connection.
+ * @return The identifier part requested
+ */
+ public static String getIdentifierPart(String docText, int part, ConnectionInfo conInfo)
+ {
+ return getIdentifierPart(docText, part, conInfo.getDatabaseDefinition());
+ }
+ /**
+ * Parses an SQL identifier to separate a potential qualifier.
+ * @param docText, an SQL identifier, optionally qualified
+ * @param part, one of the following:
+ * <dl compact>
+ * <dt>0 <dd>Return the schema, if any
+ * <dt>1 <dd>Return the unqualified identifier
+ * </dl>
+ * @param dbDef Describes the database connection.
+ * @return The identifier part requested
+ */
+ public static String getIdentifierPart(String docText, int part, DatabaseDefinition dbDef)
+ {
+ if (docText == null || docText.length() == 0)
+ {
+ return null;
+ }
+ int dot = getDot(docText, dbDef);
+ if (part == 0) // Return the schema, if any
+ {
+ if (dot <= 0)
+ {
+ return null;
+ }
+ else
+ {
+ return docText.substring(0, dot);
+ }
+ }
+ else /* Return the identifier */
+ {
+ if (dot == -1)
+ {
+ return docText;
+ // No dot; assume it's all identifier
+ }
+ else
+ {
+ if (dot == docText.length())
+ {
+ return null;
+ // Dot at end; no identifier
+ }
+ else
+ {
+ return docText.substring(dot + 1);
+ }
+ }
+ }
+ }
+
+ /**
+ * Parses an SQL identifier to separate a potential qualifier
+ * and returns the name portion only.
+ * @param docText, an SQL identifier, optionally qualified
+ * @param conInfo Describes the database connection.
+ * @return The name part
+ */
+ public static String getNameOnlyPart(String docText, ConnectionInfo conInfo)
+ {
+ return getNameOnlyPart(docText, conInfo.getDatabaseDefinition());
+ }
+
+ /**
+ * Parses an SQL identifier to separate a potential qualifier
+ * and returns the name portion only.
+ * @param docText, an SQL identifier, optionally qualified
+ * @param conInfo Describes the database connection.
+ * @return The name part
+ */
+ public static String getNameOnlyPart(String docText, DatabaseDefinition dbDef)
+ {
+ if (docText == null || docText.length() == 0)
+ {
+ return null;
+ }
+ int dot = getDot(docText, dbDef);
+ // No dot , return the whole thing
+ if (dot == -1)
+ {
+ return docText;
+ }
+ // a dot was found, get the name part only
+ else if ((dot > 0) && (dot != docText.length()))
+ {
+ return docText.substring(dot + 1);
+ }
+ else // anything else, something is weird
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Parses an SQL identifier to find the dot separating a qualifier.
+ * Assumes that the qualifier is optional.
+ * @param docText The text to parse
+ * @param conInfo Describes the database connection.
+ * @return The position of any dot separating a qualifier
+ * from an identifier in the input text.
+ * Return -1 if the dot is not found.
+ */
+ public static int getDot(String docText, ConnectionInfo conInfo)
+ {
+ return getSeparator(docText, getDelimiter(conInfo), '.');
+ }
+
+ /**
+ * Parses an SQL identifier to find the dot separating a qualifier.
+ * Assumes that the qualifier is optional.
+ * @param docText The text to parse
+ * @param dbdef Describes the database connection.
+ * @return The position of any dot separating a qualifier
+ * from an identifier in the input text.
+ * Return -1 if the dot is not found.
+ */
+ public static int getDot(String docText, DatabaseDefinition dbdef)
+ {
+ return getSeparator(docText, getDelimiter(dbdef), '.');
+ }
+
+ /**
+ * Parses an SQL identifier to find the dot separating a qualifier.
+ * Assumes that the qualifier is optional.
+ * @param docText The text to parse
+ * @param conInfo Describes the database connection.
+ * @param qualifierSeparator The character that separates a qualifier.
+ * @return The position of any dot separating a qualifier
+ * from an identifier in the input text.
+ * Return -1 if the dot is not found.
+ */
+ public static int getSeparator(String docText, ConnectionInfo conInfo, char qualifierSeparator)
+ {
+ return getSeparator(docText, getDelimiter(conInfo), qualifierSeparator);
+ }
+
+ /**
+ * Parses an SQL identifier to separate a potential qualifier.
+ * Assumes that the qualifier is optional.
+ *
+ * @param docText The text to parse
+ * @param delim The delimiter character for an SQL identifier.
+ * @return The position of any dot separating schema from identifier in the field.
+ */
+ public static int getDot(String docText, char delim)
+ {
+ return getSeparator(docText, delim, '.');
+ }
+
+ /**
+ * Parse an SQL identifier to separate a potential qualifier.
+ * @param docText The text to parse
+ * @param delim The delimiter character for an SQL identifier.
+ * @param qualifierSeparator The character that separates a qualifier.
+ * @return The position of any dot separating schema from identifier in the field.
+ */
+ public static int getSeparator(String docText, char delim, char qualifierSeparator)
+ {
+ int docLen = docText.length();
+ if (docLen == 0)
+ return -1;
+ // How many qualifierSeparators?
+ int dot = -1;
+ int dots = 0;
+ int pos1 = docText.indexOf(qualifierSeparator, 0);
+ // No qualifierSeparator:
+ if (pos1 == -1)
+ {
+ return -1;
+ }
+ while (pos1 > -1)
+ {
+ dots++;
+ pos1 = docText.indexOf(qualifierSeparator, pos1 + 1);
+ }
+ // How many delimiters?
+ int delims = 0;
+ // First, replace doubled delimiters (they don't count):
+ ReuseStringBuffer sb = ReuseStringBuffer.getBuffer();
+ sb.append(delim).append(delim);
+ String ddelim = sb.toString();
+ sb.setLength(0);
+ sb.append(docText.charAt(0)); // Skip the first char.
+ pos1 = 1;
+ int pos2 = docText.indexOf(ddelim, 1);
+ while (pos2 > -1)
+ {
+ sb.append(docText.substring(pos1, pos2));
+ sb.append("--"); // hold the positions //$NON-NLS-1$
+ pos1 = pos2 + 2;
+ pos2 = docText.indexOf(ddelim, pos1);
+ }
+ if (pos1 < docLen) // add the tail
+ {
+ sb.append(docText.substring(pos1));
+ }
+ String buffed = ReuseStringBuffer.toString(sb);
+ // Then, count the single delimiters:
+ pos1 = 0;
+ pos2 = buffed.indexOf(delim, pos1);
+ while (pos2 > -1 && pos2 < buffed.length())
+ {
+ delims++;
+ pos2 = buffed.indexOf(delim, pos2 + 1);
+ }
+ // Does it begin or end with a delimiter?
+ //boolean beginDelim = (docText.charAt(docText.indexOf(docText.trim().charAt(0))) == DEFAULT_DELIM);
+ //boolean endDelim = (docText.trim().charAt(docText.trim().length() - 1) == DEFAULT_DELIM);
+ // Odd, or even number of delimiters:
+ if ((delims % 2) == 0) // Even
+ {
+ dot = buffed.lastIndexOf(qualifierSeparator);
+ pos1 = buffed.lastIndexOf(delim);
+ // Return the last dot after the last delimiter
+ if (dot > pos1)
+ {
+ return dot;
+ }
+ // Return the last dot after the second delimiter from the end
+ pos2 = buffed.lastIndexOf(delim, pos1 - 1);
+ while (dot > pos2 && dot > -1)
+ {
+ dot = buffed.lastIndexOf(qualifierSeparator, dot - 1);
+ }
+ if (dot > -1)
+ {
+ return dot;
+ }
+ return -1; //docText.lastIndexOf(qualifierSeparator);
+ }
+ else // Odd number of delims, which is an error
+ {
+ // Return the last dot after the last delimiter
+ dot = docText.lastIndexOf(qualifierSeparator);
+ pos1 = docText.lastIndexOf(delim);
+ if (dot > pos1)
+ {
+ return dot;
+ }
+ // or return the last dot before the first delimiter
+ pos1 = docText.indexOf(delim);
+ dot = docText.lastIndexOf(qualifierSeparator, pos1);
+ if (dot < pos1)
+ {
+ return dot;
+ }
+ // Otherwise, return -1
+ return -1;
+ }
+ }
+
+ /**
+ * Returns true if two SQL identifiers in SQL format are "equal"
+ * for the given connection.
+ * <p>
+ * @param id1 An SQL identifier in SQL format.
+ * @param id2 An SQL identifier in SQL format.
+ * @param conInfo Describes the database connection.
+ * @return True if the two SQL identifiers are "equal."
+ * @see #equal(String, String, char, int)
+ */
+ public static boolean equals(String id1, String id2, ConnectionInfo conInfo)
+ {
+ char delimiter = getDelimiter(conInfo);
+ int platform = getPlatform(conInfo);
+ return equals(id1, id2, delimiter, platform);
+ }
+
+ /**
+ * Returns true if two SQL identifiers in SQL format are "equal"
+ * for the given connection.
+ * <p>
+ * @param id1 An SQL identifier in SQL format.
+ * @param id2 An SQL identifier in SQL format.
+ * @param dbDef Describes the database connection.
+ * @return True if the two SQL identifiers are "equal."
+ * @see #equal(String, String, char, int)
+ */
+ public static boolean equals(String id1, String id2, DatabaseDefinition dbDef)
+ {
+ char delimiter = getDelimiter(dbDef);
+ int platform = getPlatform(dbDef);
+ return equals(id1, id2, delimiter, platform);
+ }
+
+ /**
+ * Returns true if two SQL identifiers are "equal" for DB2 UDB for LUWO.
+ * Equality of SQL identifiers depends on whether they are delimited.
+ * If they are not delimited, they are automatically folded to upper case by DB2.
+ * This method assumes that a delimited identifier is properly formed, that is,
+ * that it has a closing delimiter, and that an ordinary identifier is valid,
+ * that is, that it doesn't include a delimiter.
+ * <p>
+ * @param ident1 The first identifier
+ * @param ident2 The second identifier
+ * @param delimiter The delimiter defined as the escape character
+ * @return True if the two SQL identifiers are "equal."
+ */
+ public static boolean equals(String ident1, String ident2, char delimiter)
+ {
+ return equals(ident1, ident2, delimiter, PLATFORM_LUWO);
+ }
+
+ /**
+ * Returns true if two SQL identifiers in SQL format are "equal"
+ * for LUWO, OS/390, or OS/400 or a combination of platforms.
+ * Equality of SQL identifiers depends on whether they are delimited.
+ * If they are not delimited, they are automatically folded to upper case by DB2.
+ * This method assumes that a delimited identifier is properly formed, that is,
+ * that it has a closing delimiter, and that an ordinary identifier is valid,
+ * that is, that it doesn't include a delimiter.
+ * <p>
+ * @param ident1 The first identifier
+ * @param ident2 The second identifier
+ * @param delimiter The delimiter defined as the escape character
+ * @param platforms The sum of platform constants.
+ * @return True if the two SQL identifiers are "equal."
+ */
+ public static boolean equals(String ident1, String ident2, char delimiter, int platforms)
+ {
+ return convertDBID(ident1, delimiter, platforms).equals(convertDBID(ident2, delimiter, platforms));
+ }
+
+ /**
+ * Determines the length in the database catalog of a given Java String.
+ * Catalog length depends on whether the database is in UTF-8.
+ * This method assumes Unicode catalogs for z/OS V8 and LUWO V9 and later.
+ */
+ public static long getCatalogLength(String text, ConnectionInfo aConInfo)
+ {
+ long len = 0;
+ int p = getPlatform(aConInfo);
+ int[] v = getVersion(aConInfo);
+ if (p == PLATFORM_390 && v[0] > 7)
+ len = getUTF8Length(text);
+ else if (p == PLATFORM_LUWO && v[0] > 8)
+ len = getUTF8Length(text);
+ else
+ len = text.length();
+ return len;
+ }
+
+ /**
+ * Determines the length in the database catalog of a given Java String.
+ * Catalog length depends on whether the database is in UTF-8.
+ * This method assumes Unicode catalogs for z/OS V8 and LUWO V9 and later.
+ */
+ public static long getCatalogLength(String text, DatabaseDefinition dbDef)
+ {
+ long len = 0;
+ int p = getPlatform(dbDef);
+ int[] v = getVersion(dbDef);
+ if (p == PLATFORM_390 && v[0] > 7)
+ len = getUTF8Length(text);
+ else if (p == PLATFORM_LUWO && v[0] > 8)
+ len = getUTF8Length(text);
+ else
+ len = text.length();
+ return len;
+ }
+
+ /**
+ * Determines the length in UTF-8 of a given Java String.
+ * <p>
+ * Each character in a Java String is has a numeric value.
+ * The following table defines the number of octets needed to
+ * represent this value by its numeric range.
+ * This table is derived from the description of UTF-8
+ * at http://ietf.org/rfc/rfc2279.txt.
+ * <dl>
+ * <dt><b>UCS-4 range (in hex)</b> <dd><b>Number of UTF-8 octets</b>
+ * <dt>0000 0001-0000 007F <dd>1
+ * <dt>0000 0080-0000 07FF <dd>2
+ * <dt>0000 0800-0000 FFFF <dd>3
+ * <dt>0001 0000-001F FFFF <dd>4
+ * <dt>0020 0000-03FF FFFF <dd>5
+ * <dt>0400 0000-7FFF FFFF <dd>6
+ * </dl>
+ * <p>
+ * <b>Terminology:</b>
+ * <dl>
+ * <dt>UCS <dd>Universal Character Set
+ * <dt>UTF <dd>UCS Transformation Format, an 8-bit encoding form
+ * in which each unicode character is encoded using a
+ * variable number of "octets."
+ * </dl>
+ * @param text An arbitrary string or an identifier in catalog format.
+ * @author Thomas Sharp
+ */
+ public static long getUTF8Length(String text)
+ {
+ long len = 0;
+ if (text != null)
+ {
+ long n = text.length();
+ char c;
+ for (int i = 0; i < n; i++)
+ {
+ c = text.charAt(i);
+ if (c < 128) // under x0000 0080
+ len += 1;
+ else if (c < 2048) // under x0000 0800
+ len += 2;
+ else if (c < 65536) // under x0001 0000
+ len += 3;
+ else if (c < 2097152) // under x0020 0000
+ len += 4;
+ else if (c < 67108864) // under x0400 0000
+ len += 5;
+ else // up to x7FFF FFFF
+ len += 6;
+ }
+ }
+ return len;
+ }
+
+ /**
+ * Gets the delimiter (escape character) used to quote SQL identifiers.
+ * @param conInfo A ConnectionInfo
+ * @return The delimiter returned by the JDBC implementation,
+ * or a double quotation mark if we can't get the delimiter from the ConnectionInfo.
+ */
+ public static String getDelimiterString(ConnectionInfo conInfo)
+ {
+ if (conInfo != null)
+ {
+ String delim = conInfo.getIdentifierQuoteString();
+ // indentifierQuoteString can be null in DTP
+ if (delim != null)
+ {
+ delim = delim.trim();
+ if (delim.length() > 0)
+ return delim;
+ }
+ }
+ return DEFAULT_DELIM_STRING;
+ }
+
+ /**
+ * Gets the delimiter (escape character) used to quote SQL identifiers.
+ * @param conInfo A ConnectionInfo
+ * @return The delimiter returned by the JDBC implementation,
+ * or a double quotation mark if we can't get the delimiter from the ConnectionInfo.
+ */
+ public static char getDelimiter(ConnectionInfo conInfo)
+ {
+ if (conInfo != null)
+ {
+ String delim = conInfo.getIdentifierQuoteString();
+
+ // indentifierQuoteString can be null in DTP
+ if (delim != null) {
+ delim = delim.trim();
+
+ if (delim.length() > 0)
+ return delim.charAt(0);
+ }
+ }
+ return DEFAULT_DELIM;
+ }
+
+ /**
+ * @deprecated. Replace this with conInfo.getIdentifierQuoteString()
+ * Returns the delimiter (escape character) used to quote SQL identifiers,
+ * given a Connection object.
+ * <p>
+ * @param connection A live Connection.
+ * @return The delimiter returned by the JDBC implementation,
+ * or a double quotation mark if we can't get the delimiter from the connection.
+ */
+ public static char getDelimiter(Connection connection)
+ {
+ try
+ {
+ return connection.getMetaData().getIdentifierQuoteString().charAt(0);
+ }
+ catch (SQLException e)
+ {
+ return DEFAULT_DELIM;
+ }
+ }
+
+ /**
+ * Gets the delimiter (escape character) used to quote SQL identifiers as a String.
+ * User getDelimiter(ConnectionInfo) or getDelimiter(Connection) if you can.
+ * @param dbDef A DatabaseDefinition
+ * @return The delimiter defined in the definition file.
+ * or a double quotation mark if we can't get the delimiter from the DatabaseDefinition.
+ */
+ public static String getDelimiterString(DatabaseDefinition dbDef)
+ {
+ if (dbDef != null )
+ {
+ try
+ {
+ String delim = dbDef.getIdentifierQuoteString();
+ if (delim != null)
+ {
+ delim = delim.trim();
+ if (delim.length() > 0 && delim.charAt(0) != '\\') // TODO: Bug in DatabaseDefinition returns backslash
+ return delim;
+ }
+ }
+ catch (NullPointerException npe) {
+ // do nothing
+ }
+ }
+ return DEFAULT_DELIM_STRING;
+ }
+
+ /**
+ * Gets the delimiter (escape character) used to quote SQL identifiers.
+ * User getDelimiter(ConnectionInfo) or getDelimiter(Connection) if you can.
+ * @param dbDef A DatabaseDefinition
+ * @return The delimiter defined in the definition file.
+ * or a double quotation mark if we can't get the delimiter from the DatabaseDefinition.
+ */
+ public static char getDelimiter(DatabaseDefinition dbDef)
+ {
+ if (dbDef != null)
+ {
+ try
+ {
+ String delim = dbDef.getIdentifierQuoteString();
+ if (delim != null)
+ {
+ delim = delim.trim();
+ if (delim.length() > 0 && delim.charAt(0) != '\\') // TODO: Bug in DatabaseDefinition returns backslash
+ return delim.charAt(0);
+ }
+ }
+ catch (NullPointerException npe) {
+ // do nothing
+ }
+ }
+ return DEFAULT_DELIM;
+ }
+
+ /**
+ * Returns the code for the DB2 platform represented by
+ * a given Connection object.
+ * <p>
+ * @param conInfo The connection information object
+ * @return The platform code.
+ */
+ public static int getPlatform(ConnectionInfo conInfo)
+ {
+ if (conInfo == null)
+ return PLATFORM_ANY;
+ DatabaseDefinition dbDef = conInfo.getDatabaseDefinition();
+ return getPlatform(dbDef);
+ }
+
+ /**
+ * Returns the code for the DB2 platform represented by
+ * a given DatabaseDefinition object.
+ * <p>
+ * @param dbDef A DatabaseDefinition.
+ * @return The platform code.
+ */
+ public static int getPlatform(DatabaseDefinition dbDef)
+ {
+ if (dbDef != null)
+ {
+ String product = dbDef.getProduct();
+ if (product != null)
+ {
+ if (product.indexOf(DB2_ZSERIES) > -1)
+ return PLATFORM_390;
+ else if (product.indexOf(DB2_ISERIES) > -1)
+ return PLATFORM_400;
+ else if (product.indexOf(DB2_LUW0) > -1)
+ return PLATFORM_LUWO;
+ else if (product.indexOf(CLOUDSCAPE) > -1)
+ return PLATFORM_CLOUDSCAPE;
+ else if (product.indexOf(DERBY) > -1)
+ return PLATFORM_CLOUDSCAPE;
+ else if (product.indexOf(INFORMIX) > -1)
+ return PLATFORM_INFORMIX;
+ else if (product.indexOf(SYBASE) > -1)
+ return PLATFORM_SYBASE;
+ else if (product.indexOf(SQLSERVER) > -1)
+ return PLATFORM_SQLSERVER;
+ else if (product.indexOf(MYSQL) > -1)
+ return PLATFORM_MYSQL;
+ else if(product.indexOf(ORACLE) > -1)
+ return PLATFORM_ORACLE;
+ }
+ }
+ return PLATFORM_OTHER;
+ }
+
+ /**
+ * Returns the version, release, and modification levels,
+ * as specified in the ConnectionInfo or DatabaseDefinition.
+ * @param The connection information object
+ * @return
+ */
+ public static int[] getVersion(ConnectionInfo aConInfo)
+ {
+ DBVersion v = DBVersion.getSharedInstance(aConInfo);
+ return new int[] {v.getVersion(), v.getRelease(), v.getMod()};
+ }
+
+ /**
+ * Returns the version, release, and modification levels,
+ * as specified in the ConnectionInfo or DatabaseDefinition.
+ * @param The connection information object
+ * @return
+ */
+ public static int[] getVersion(DatabaseDefinition dbDef)
+ {
+ DBVersion v = DBVersion.getSharedInstance(dbDef);
+ return new int[] {v.getVersion(), v.getRelease(), v.getMod()};
+ }
+
+ /**
+ * Returns true if the given character is a DB2 special character.
+ * A special character is any of the characters listed below:
+ * <dl compact>
+ * <dt><code>' '</code> <dd>An ordinary blank character
+ * <dt><code>'-'</code> <dd>minus sign
+ * <dt><code>'"'</code> <dd>quotation mark or double-quote
+ * <dt><code>'.'</code> <dd>period
+ * <dt><code>'%'</code> <dd>percent
+ * <dt><code>'/'</code> <dd>slash
+ * <dt><code>'&'</code> <dd>ampersand
+ * <dt><code>':'</code> <dd>colon
+ * <dt><code>'\''</code> <dd>apostrophe or single quote
+ * <dt><code>';'</code> <dd>semicolon
+ * <dt><code>'('</code> <dd>left parenthesis
+ * <dt><code>'<'</code> <dd>less than
+ * <dt><code>')'</code> <dd>right parenthesis
+ * <dt><code>'='</code> <dd>equals
+ * <dt><code>'*'</code> <dd>asterisk
+ * <dt><code>'>'</code> <dd>greater than
+ * <dt><code>'+'</code> <dd>plus sign
+ * <dt><code>'?'</code> <dd>question mark
+ * <dt><code>','</code> <dd>comma
+ * <dt><code>'_'</code> <dd>underline or underscore
+ * <dt><code>'|'</code> <dd>vertical bar
+ * <dt><code>'^'</code> <dd>caret
+ * <dt><code>'!'</code> <dd>exclamation mark
+ * </dl>
+ * <p>
+ * @param c A character.
+ * @return True if c is a DB2 special character.
+ */
+ public static boolean isDB2SpecialChar(char c)
+ {
+ switch (c)
+ {
+ case ' ':
+ case '-':
+ case '"':
+ case '.':
+ case '%':
+ case '/':
+ case '&':
+ case ':':
+ case '\'':
+ case ';':
+ case '(':
+ case '<':
+ case ')':
+ case '=':
+ case '*':
+ case '>':
+ case '+':
+ case '?':
+ case ',':
+ case '_':
+ case '|':
+ case '^':
+ case '!':
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Determines whether not not the current language is double-byte
+ * (that is, one of Chinese, Japanese, or Korean).
+ * @return true when the current language is double-byte, otherwise false
+ */
+ protected static boolean isDBCSLanguage()
+ {
+ // @d330618 bgp 20May2004 - new method
+ Locale locale = Locale.getDefault(); //AssistManager.getPreferredLanguage();
+ String lang = locale.getLanguage();
+ if (lang.equals("zh") //$NON-NLS-1$
+ || lang.equals("ja") //$NON-NLS-1$
+ || lang.equals("ko")) //$NON-NLS-1$
+ return true;
+ else
+ return false;
+ }
+
+ /**
+ * Returns true if the given string is an ordinary identifier
+ * for DB2 UDB for LUWO; otherwise returns false.
+ * <p>
+ * (Formerly named isOrdinaryIdentifier.)
+ * <p>
+ * This method is used when retrieving an SQL identifier from DB2,
+ * where the delimiters have been dropped and lower-case characters folded to upper case.
+ * <p>
+ * This method assumes that the delimiter is '"' and the platform is LUWO.
+ * To specify the delimiter and the platform,
+ * see {@link #isDBIDOrdinary(String,int) isDBIDOrdinary(String, int)}.
+ * <p>
+ * @param id A candidate ordinary identifier.
+ * @return True if the id is an ordinary identifier for LUWO.
+ * @see #isDBIDOrdinary(String, int)
+ * @see #isDBIDOrdinary(String, int)
+ */
+ public static boolean isDBIDOrdinary(String id)
+ {
+ return isDBIDOrdinary(id, DEFAULT_DELIM, PLATFORM_LUWO);
+ }
+
+ /**
+ * Returns true if the given identifier from DB2 is an ordinary identifier
+ * for LUWO, OS/390, or OS/400 or a combination of platforms; otherwise returns false.
+ * For LUWO (at least), "IDENT" is ordinary, even though it is delimited.
+ * <p>
+ * (Formerly named isOrdinaryIdentifier.)
+ * <p>
+ * This method is used when retrieving an SQL identifier from DB2,
+ * where the delimiters have been dropped and lower-case characters folded to upper case.
+ * <p>
+ * @param id A candidate ordinary identifier.
+ * @param platforms The sum of platform constants.
+ * @return True if the id is an ordinary identifier for the specified platforms.
+ */
+ public static boolean isDBIDOrdinary(String id, int platforms)
+ {
+ return isDBIDOrdinary(id, DEFAULT_DELIM, platforms);
+ }
+
+ /**
+ * Returns true if the given identifier from DB2 is an ordinary identifier
+ * for LUWO, OS/390, or OS/400 or a combination of platforms; otherwise returns false.
+ * For LUWO (at least), "IDENT" is ordinary, even though it is delimited.
+ * <p>
+ * (Formerly named isOrdinaryIdentifier.)
+ * <p>
+ * This method is used when retrieving an SQL identifier from DB2,
+ * where the delimiters have been dropped and lower-case characters folded to upper case.
+ * <p>
+ * @param id A candidate ordinary identifier.
+ * @param delimiter The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @param platforms The sum of platform constants.
+ * @return True if the id is an ordinary identifier for the specified platforms.
+ */
+ public static boolean isDBIDOrdinary(String id, char delimiter, int platforms)
+ {
+ if (id == null || id.length() == 0)
+ {
+ return true;
+ }
+ // First char:
+ char ch = id.charAt(0);
+ if (!isOrdinaryUpperChar(ch, platforms))
+ {
+ return false;
+ }
+ // Trailing blanks are ignored in an ordinary identifier:
+ String tid = trim(id, TRIM_RIGHT, delimiter);
+ // Middle chars:
+ int range = tid.length() - 1; // omit the last one
+ if (range > -1)
+ {
+ for (int c = 1; c < range; c++)
+ {
+ ch = tid.charAt(c);
+ if (!isOrdinaryUpperChar(ch, platforms)
+ && !isOrdinaryDigit(ch)
+ && ch != '_')
+ {
+ return false;
+ }
+ }
+ // Last char:
+ ch = tid.charAt(range);
+ if (!isOrdinaryUpperChar(ch, platforms))
+ {
+ return false;
+ }
+ // Reserved words:
+ if (isReservedIdentifier(tid, delimiter, platforms))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Determines if the specified character is an ordinary character
+ * for OS/390.
+ What are the shift-out and shift-in chars translated to in Unicode?
+ * <p>
+ * @param ch A char.
+ * @return True if the given char is upper case for the DB2 for OS/390.
+ */
+ public static boolean isOrdinary390Char(char ch)
+ {
+ boolean isOrdinary = false;
+ if (!Locale.getDefault().getLanguage().equalsIgnoreCase("en")) //$NON-NLS-1$
+ {
+ isOrdinary = Character.isUnicodeIdentifierStart( ch );
+ }
+ else
+ {
+ HashSet<Character> flags = ordinaryFlagsSet.get(PLATFORM_390_KEY);
+ if (flags == null)
+ {
+ flags = initOrdinaryFlags390();
+ }
+ isOrdinary = flags.contains(new Character(ch));
+ // If the language of the current locale is double-byte (that is,
+ // Chinese, Korean, Japanese), then consider double-byte characters
+ // to be ordinary characters.
+// if (isOrdinary == false && isDBCSLanguage() == true)
+// {
+// isOrdinary = Character.isUnicodeIdentifierStart( ch );
+// }
+ }
+ return isOrdinary;
+ }
+
+ /**
+ * Determines if the specified character is an ordinary character
+ * for OS/400.
+ * <p>
+ * @param ch A char.
+ * @return True if the given char is upper case for the DB2 for OS/400.
+ */
+ public static boolean isOrdinary400Char(char ch)
+ {
+ boolean isOrdinary = false;
+ if (!Locale.getDefault().getLanguage().equalsIgnoreCase("en")) //$NON-NLS-1$
+ {
+ isOrdinary = Character.isUnicodeIdentifierStart( ch );
+ }
+ else
+ {
+ HashSet<Character> flags = ordinaryFlagsSet.get(PLATFORM_400_KEY);
+ if (flags == null)
+ {
+ flags = initOrdinaryFlags400();
+ }
+ isOrdinary = flags.contains(new Character(ch));
+ // Unlike DB2 for 390 and DB2 for LUW, DB2 for 400 does not
+ // (according to its SQL Ref.) support double-byte ordinary
+ // identifiers.
+ }
+ return isOrdinary;
+ }
+
+ /**
+ * Determines if the specified character is an ordinary character
+ * for LUWO, OS/390, OS/400, or a combination of platforms,
+ * for user input.
+ * <p>
+ * @param ch A char.
+ * @param platforms The sum of platform constants.
+ * The platforms are ignored if you have set the extra characters
+ * using setExtraOrdinaryChars(String).
+ * @return True if the given char is an ordinary character
+ * for the DB2 platform or platforms.
+ */
+ public static boolean isOrdinaryChar(char ch, int platforms)
+ {
+ boolean ok = false;
+ if (otherOrdinaryFlags != null)
+ {
+ ok = isOrdinaryOtherChar(ch);
+ }
+ else
+ {
+ if ((platforms & PLATFORM_LUWO) > 0)
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_390) > 0))
+ ok = isOrdinary390Char(ch);
+ if (!ok && ((platforms & PLATFORM_400) > 0))
+ ok = isOrdinary400Char(ch);
+ if (!ok && ((platforms & PLATFORM_CLOUDSCAPE) > 0)) // Same as PLATFORM_DERBY
+ ok = isOrdinaryCloudscapeChar(ch);
+ // Defaults to LUWO:
+ if (!ok && ((platforms & PLATFORM_INFORMIX) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_ORACLE) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_SYBASE) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_SQLSERVER) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_MYSQL) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_OTHER) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ }
+ return ok;
+ }
+
+ /**
+ * Returns true if the given char is in the range 0..9.
+ * <p>
+ * @param c The char in question.
+ * @return True if c is in the range 0..9.
+ */
+ public static boolean isOrdinaryDigit(char c)
+ {
+ // @d330618 bgp 20May2004 - begin
+ boolean isOrdinary = false;
+ isOrdinary = (ordinaryDigits.indexOf(c) > -1);
+ // If the language of the current locale is double-byte (that is,
+ // Chinese, Korean, Japanese), then consider the "wide"
+ // (double-byte) numbers to be ordinary digits too.
+ if (isOrdinary == false && isDBCSLanguage() == true)
+ {
+ isOrdinary = (ordinaryWideDigits.indexOf(c) > -1);
+ }
+ return isOrdinary;
+ // @d330618 bgp 20May2004 - end
+ }
+
+ /**
+ * Determines if the specified character is an ordinary character
+ * for LUWO.
+ * <p>
+ * @param ch A char.
+ * @return True if the given char is upper case for DB2 for LUWO.
+ */
+ public static boolean isOrdinaryLUWOChar(char ch)
+ {
+ boolean isOrdinary = false;
+ // langsUNO is part of a temporary workaround.
+ // This determination should be based on the codeset of the
+ // database, which we don't have. Here we assume that it corresponds
+ // to the client language, and we have tested, using SQLIdentifierTester,
+ // the languages in langsUNO on Windows codesets (only, so far!).
+ if (langsUNO == null)
+ initOrdinaryFlagsLUWO();
+ String lang = Locale.getDefault().getLanguage().toLowerCase();
+ if (!langsUNO.contains(lang))
+ {
+ isOrdinary = Character.isUnicodeIdentifierStart( ch );
+ }
+ else
+ {
+ // Instead of Character objects in HashSets (which are initialized
+ // in various static init*Flags methods below), it might be more efficient
+ // to use some kind of bitmap that could be produced from a codeset.
+ HashSet<Character> flags = ordinaryFlagsSet.get(PLATFORM_LUWO_KEY);
+ if (flags == null)
+ {
+ flags = initOrdinaryFlagsLUWO();
+ }
+ isOrdinary = flags.contains(new Character(ch));
+ // If the language of the current locale is double-byte (that is,
+ // Chinese, Korean, Japanese), then consider double-byte characters
+ // to be ordinary characters.
+// if (!isOrdinary && isDBCSLanguage())
+// {
+// isOrdinary = Character.isUnicodeIdentifierStart( ch );
+// }
+ }
+ return isOrdinary;
+ }
+
+ /**
+ * Determines if the specified character is an ordinary character
+ * for IBM Cloudscape.
+ * <p>
+ * @param ch A char.
+ * @return True if the given char is upper case for IBM Cloudscape.
+ */
+ public static boolean isOrdinaryCloudscapeChar(char ch)
+ {
+ boolean isOrdinary = false;
+ if (!Locale.getDefault().getLanguage().equalsIgnoreCase("en")) //$NON-NLS-1$
+ {
+ isOrdinary = Character.isUnicodeIdentifierStart( ch );
+ }
+ else
+ {
+ HashSet<Character> flags = ordinaryFlagsSet.get(PLATFORM_CLOUDSCAPE_KEY);
+ if (flags == null)
+ {
+ flags = initOrdinaryFlagsCloudscape();
+ }
+ isOrdinary = flags.contains(new Character(ch));// If the language of the current locale is double-byte (that is,
+ // Chinese, Korean, Japanese), then consider double-byte characters
+ // to be ordinary characters.
+// if (isOrdinary == false && isDBCSLanguage() == true)
+// {
+// isOrdinary = Character.isUnicodeIdentifierStart( ch );
+// }
+ }
+ return isOrdinary;
+ }
+
+ /**
+ * Determines if the specified character is an ordinary character
+ * for a database whose ordinary characters are specified
+ * using setExtraOrdinaryChars(String).
+ * <p>
+ * @param ch A char.
+ * @return True if the given char is allowed in an ordinary identifier.
+ */
+ public static boolean isOrdinaryOtherChar(char ch)
+ {
+ if (otherOrdinaryFlags == null)
+ return isOrdinaryLUWOChar(ch);
+ else
+ return otherOrdinaryFlags.contains(new Character(ch));
+ }
+
+ /**
+ * Determines if the specified character is an ordinary character
+ * for LUWO, OS/390, OS/400, or a combination of platforms,
+ * for an identifier in DB2.
+ * <p>
+ * @param ch A char.
+ * @param platforms The sum of platform constants.
+ * The platforms are ignored if you have set the extra characters
+ * using setExtraOrdinaryChars(String).
+ * @return True if the given char is an upper case ordinary character
+ * for the DB2 platform or platforms.
+ */
+ public static boolean isOrdinaryUpperChar(char ch, int platforms)
+ {
+ boolean ok = false;
+ if (otherOrdinaryFlags != null)
+ {
+ ok = isOrdinaryOtherChar(ch);
+ }
+ else
+ {
+ if ((platforms & PLATFORM_LUWO) > 0)
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_390) > 0))
+ ok = isOrdinary390Char(ch);
+ if (!ok && ((platforms & PLATFORM_400) > 0))
+ ok = isOrdinary400Char(ch);
+ if (!ok && ((platforms & PLATFORM_CLOUDSCAPE) > 0)) // Same as PLATFORM_DERBY
+ ok = isOrdinaryCloudscapeChar(ch);
+ // Defaults to LUWO:
+ if (!ok && ((platforms & PLATFORM_INFORMIX) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_ORACLE) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_SYBASE) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_SQLSERVER) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_MYSQL) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ if (!ok && ((platforms & PLATFORM_OTHER) > 0))
+ ok = isOrdinaryLUWOChar(ch);
+ }
+ if (ok && (platforms & PLATFORM_INFORMIX) == 0)
+ {
+ ok = !Character.isLowerCase(ch);
+ }
+ return ok;
+ }
+
+ /**
+ * Returns true if the given SQL identifier is a reserved word
+ * for DB2 UDB for LUWO.
+ * If an identifier is delimited but is exactly equal to a reserved schema
+ * within the delimiters, then it is reserved.
+ * <p>
+ * @param id An SQL identifier.
+ * @param delimiter The delimiter defined as the escape character.
+ * @return True if the given identifier is reserved for LUWO.
+ */
+ public static boolean isReservedIdentifier(String id, char delimiter)
+ {
+ return isReservedIdentifier(id, delimiter, PLATFORM_LUWO);
+ }
+
+ /**
+ * Returns true if the given SQL ordinary identifier is a reserved word
+ * for DB2 UDB for LUWO, OS/390, OS/400, or a combination of platforms.
+ * If an identifier is delimited but is exactly equal to a reserved schema
+ * within the delimiters, then it is a reserved word.
+ * <p>
+ * @param id An SQL ordinary identifier.
+ * @param delimiter The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @param platforms The sum of platform constants.
+ * @return True if the given identifier is reserved for the specified platforms.
+ */
+ public static boolean isReservedIdentifier(String id, char delimiter, int platforms)
+ {
+ String up = convertUserInput(id, delimiter, platforms);
+ boolean ok = false;
+ if ((platforms & PLATFORM_LUWO) > 0)
+ {
+ if (luwoReserved == null)
+ luwoReserved = initReserved("DB2 UDB", "V8.2"); //$NON-NLS-1$ //$NON-NLS-2$
+ ok = (luwoReserved != null) && luwoReserved.contains(up);
+ }
+ if (!ok && ((platforms & PLATFORM_390) > 0))
+ {
+ if (os390Reserved == null)
+ os390Reserved = initReserved("DB2 UDB zSeries", "V8 (New-Function Mode)"); //$NON-NLS-1$ //$NON-NLS-2$
+ ok = (os390Reserved != null) && os390Reserved.contains(up);
+ }
+ if (!ok && ((platforms & PLATFORM_400) > 0))
+ {
+ if (os400Reserved == null)
+ os400Reserved = initReserved("DB2 UDB iSeries", "V5R4"); //$NON-NLS-1$ //$NON-NLS-2$
+ ok = (os400Reserved != null) && os400Reserved.contains(up);
+ }
+ if (!ok && ((platforms & PLATFORM_CLOUDSCAPE) > 0))
+ {
+ if (cloudscapeReserved == null)
+ cloudscapeReserved = initReserved("IBM Cloudscape", "10.0"); //$NON-NLS-1$ //$NON-NLS-2$
+ ok = (cloudscapeReserved != null) && cloudscapeReserved.contains(up);
+ }
+ // Defaults to LUWO:
+ if (!ok && ((platforms & PLATFORM_OTHER) > 0))
+ {
+ if (luwoReserved == null)
+ luwoReserved = initReserved("DB2 UDB", "V8.2"); //$NON-NLS-1$ //$NON-NLS-2$
+ ok = (luwoReserved != null) && luwoReserved.contains(up);
+ }
+ return ok;
+ }
+
+ /**
+ * Returns true if the given SQL ordinary identifier is a reserved word.
+ * This method should be used only for PLATFORM_OTHER.
+ * For DB2 and IBM Cloudscape platforms, we have canonical Lists of keywords.
+ * See isReservedIdentifier(String id, char delimiter, int platforms).
+ * <p>
+ * @param id An SQL identifier.
+ * @param conInfo Describes the database connection.
+ * @return True if the id is a keyword, according to the DatabaseDefinition.
+ */
+ public static boolean isReservedIdentifier(String id, ConnectionInfo conInfo)
+ {
+ DatabaseDefinition dbDef = conInfo.getDatabaseDefinition();
+ return isReservedIdentifier(id, dbDef);
+ }
+
+ /**
+ * Returns true if the given SQL ordinary identifier is a reserved word.
+ * This method should be used only for PLATFORM_OTHER.
+ * For DB2 and IBM Cloudscape platforms, we have canonical Lists of keywords.
+ * See isReservedIdentifier(String id, char delimiter, int platforms).
+ * <p>
+ * @param id An SQL identifier.
+ * @param dbDef Describes the database.
+ * @return True if the id is a keyword, according to the DatabaseDefinition.
+ */
+ @SuppressWarnings("unchecked")
+ public static boolean isReservedIdentifier(String id, DatabaseDefinition dbDef)
+ {
+ if (dbDef != null)
+ {
+ List<String> reslist = dbDef.getSQLKeywords();
+ return reslist.contains(id);
+ }
+ return false;
+ }
+
+ /**
+ * Returns true if the given SQL identifier is a reserved schema.
+ * If an identifier is delimited but is exactly equal to a reserved schema
+ * within the delimiters, then it is reserved.
+ * <p>
+ * @param id A schema
+ * @param delimiter The delimiter defined as the escape character.
+ * @return True if the given identifier is a reserved schema.
+ */
+ public static boolean isReservedSchema(String id, char delimiter)
+ {
+ return schemaReserved.contains(convertUserInput(id, delimiter));
+ }
+
+ /**
+ * Returns true if the given string is an ordinary identifier
+ * for DB2 UDB for LUWO <i>ignoring the case of each letter</i>;
+ * otherwise returns false.
+ * This method is used when processing an SQL identifier from user input,
+ * where delimiters may or may not be provided.
+ * <p>
+ * (Formerly named isInputOrdinary.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * For LUWO, OS/390, or OS/400 or a combination of platforms,
+ * see {@link #isUserInputOrdinary(String,int) isUserInputOrdinary(String, int)}.
+ * <p>
+ * @param id A candidate ordinary identifier.
+ * @return True if the id is an ordinary identifier for LUWO.
+ * @see #isUserInputOrdinary(String, int)
+ */
+ public static boolean isUserInputOrdinary(String id)
+ {
+ return isUserInputOrdinary(id, PLATFORM_LUWO);
+ }
+
+ /**
+ * Returns true if the given string as input by the user is an ordinary identifier
+ * for LUWO, OS/390, or OS/400 or a combination of platforms,
+ * <i>ignoring the case of each letter</i>; otherwise returns false.
+ * This method is used when processing an SQL identifier from user input,
+ * where delimiters may or may not be provided.
+ * <p>
+ * (Formerly named isInputOrdinary.)
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * @param id A candidate ordinary identifier.
+ * @param delimiter The delimiter defined as the escape character
+ * on the DB2 platform or platforms.
+ * @param platforms The sum of platform constants.
+ * @return True if the id is an ordinary identifier for the specified platforms.
+ */
+ public static boolean isUserInputOrdinary(String id, char delimiter, int platforms)
+ {
+ if (id == null || id.length() == 0)
+ {
+ return true;
+ }
+ boolean delimited = false;
+ int range;
+ String upid = id;
+ // Remove delimiters. (We don't trim first because spaces
+ // before or after a delimiter would indicate that the delimiter char
+ // is part of the identifier, which would then not be ordinary.
+ // On the other hand, we don't verify that an internal delimiter is doubled.)
+ if (upid.charAt(0) == delimiter)
+ {
+ delimited = true;
+ upid = upid.substring(1);
+ range = upid.length() - 1;
+ if (upid.charAt(range) == delimiter)
+ {
+ upid = upid.substring(0, range);
+ }
+ }
+ // First character can be only alphabetic:
+ char ch = upid.charAt(0);
+ if ((delimited && Character.toUpperCase(ch) != ch)
+ || !isOrdinaryChar(ch, platforms) )
+ {
+ return false;
+ }
+ // Trailing blanks are ignored in an ordinary identifier:
+ upid = trim(upid, TRIM_RIGHT, delimiter);
+ // Remaining characters--alpha, digit, or underscore.
+ range = upid.length();
+ for (int c = 1; c < range; c++)
+ {
+ ch = upid.charAt(c);
+ if ((delimited && Character.toUpperCase(ch) != ch)
+ || (!isOrdinaryChar(ch, platforms)
+ && !isOrdinaryDigit(ch)
+ && ch != '_'))
+ {
+ return false;
+ }
+ }
+ // Reserved words:
+ if (isReservedIdentifier(upid, delimiter, platforms))
+ {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Returns true if the given string is an ordinary identifier
+ * <i>ignoring the case of each letter</i>; otherwise, returns false.
+ * This method is used when processing an SQL identifier from user input,
+ * where delimiters may or may not be provided.
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * @param id A candidate ordinary identifier.
+ * @param conInfo Describes the database connection.
+ * @return True if the id is an ordinary identifier for the ConnectionInfo.
+ */
+ public static boolean isUserInputOrdinary(String id, ConnectionInfo conInfo)
+ {
+ return isUserInputOrdinary(id, getDelimiter(conInfo), getPlatform(conInfo));
+ }
+
+ /**
+ * Returns true if the given string is an ordinary identifier
+ * for LUWO, OS/390, or OS/400 or a combination of platforms,
+ * <i>ignoring the case of each letter</i>; otherwise returns false.
+ * This method is used when processing an SQL identifier from user input,
+ * where delimiters may or may not be provided.
+ * <p>
+ * (Formerly named isInputOrdinary.)
+ * <p>
+ * This method assumes that the delimiter is '"'.
+ * To specify the delimiter,
+ * see {@link #isUserInputOrdinary(String,char,int) isUserInputOrdinary(String, char, int)}.
+ * <p>
+ * This method does not guarantee that the identifier is valid; it might violate
+ * other rules for identifiers, such as exceeding the maximum length.
+ * <p>
+ * @param id A candidate ordinary identifier.
+ * @param platforms The sum of platform constants.
+ * @return True if the id is an ordinary identifier for the specified platforms.
+ */
+ public static boolean isUserInputOrdinary(String id, int platforms)
+ {
+ return isUserInputOrdinary(id, DEFAULT_DELIM, platforms);
+ }
+
+ /**
+ * Sets the extra characters that you can use in an ordinary identifier
+ * (those beyond a-z, A-Z, 0-9 and _), between 35 and 383.
+ * You need this only for databases other than DB2 UDB on LUWO, 390, and 400.
+ * If this method is not called, this class uses more complete tables of
+ * the allowable characters than you can get from JDBC, but these are available
+ * only for the three DB2 UDB platforms.
+ * <p>
+ * @param connection A live Connection.
+ * A null removes the otherOrdinaryFlags.
+ * @see java.sql.DatabaseMetaData#getExtraNameCharacters().
+ */
+ public static void setExtraOrdinaryChars(Connection connection)
+ {
+ otherOrdinaryFlags = null;
+ if (connection != null)
+ {
+ Object prod = null;
+ try
+ {
+ prod = connection.getMetaData().getDatabaseProductName();
+ }
+ catch (SQLException e)
+ {
+ prod = PLATFORM_OTHER_KEY;
+ }
+ otherOrdinaryFlags = ordinaryFlagsSet.get(prod);
+ if (otherOrdinaryFlags == null)
+ {
+ String extras = null;
+ try
+ {
+ extras = connection.getMetaData().getExtraNameCharacters();
+ }
+ catch (SQLException e)
+ {
+ return; // leave the flags null, so to be unused.
+ }
+ // Indexes in this array are offset by 35; that is 0 == 35.
+ // Characters over '\u017F' (383) long_s (indexes over 342) are ignored.
+ otherOrdinaryFlags = new HashSet<Character>(59);
+ ordinaryFlagsSet.put(prod, otherOrdinaryFlags);
+ if (extras != null)
+ {
+ int elen = extras.length();
+ char c;
+ for (int i = 0; i < elen; i++)
+ {
+ c = extras.charAt(i);
+ otherOrdinaryFlags.add(new Character(c));
+ }
+ }
+ initCommonOrdinaryFlags(otherOrdinaryFlags);
+ otherOrdinaryFlags.add(new Character('\u005F')); // (95) _
+ }
+ }
+ }
+
+ /**
+ * Trims blanks ('\u0020'), but not other whitespace characters such as tabs,
+ * from the left, the right, and the right inside a delimiter.
+ * Different in behavior from java.lang.String.trim(),
+ * which trims trims all ASCII control characters having codes
+ * less than or equal to '\u0020'.
+ * <p>
+ * @param id An SQL identifier
+ * @param side A sum of:
+ * <dl>
+ * <dt>TRIM_LEFT <dd>Trim from the left.
+ * <dt>TRIM_RIGHT <dd>Trim from the right.
+ * <dt>TRIM_INSIDE <dd>Trim inside the specified delimiter from the right.
+ * <dt>TRIM_ALL <dd>All of the above.
+ * </dl>
+ * @param delimiter The delimiter defined as the escape character,
+ * used only if (side & TRIM_INSIDE) > 0.
+ */
+ public static String trim(String id, int side, char delimiter)
+ {
+ if (id == null || id.length() == 0)
+ return id;
+ int left = 0;
+ int right;
+ char ch;
+ // Left:
+ if ((side & TRIM_LEFT) > 0)
+ {
+ ch = id.charAt(left);
+ while (ch == ' ' && left < id.length())
+ {
+ left++;
+ if (left < id.length())
+ ch = id.charAt(left);
+ }
+ }
+ // Right:
+ right = id.length() - 1;
+ if (right > -1 && (side & TRIM_RIGHT) > 0)
+ {
+ ch = id.charAt(right);
+ //System.out.println("trimming right");
+ while (ch == ' ' && right > -1)
+ {
+ right--;
+ //System.out.println("\t" + right);
+ if (right > -1)
+ ch = id.charAt(right);
+ }
+ }
+ // Inside right:
+ if (right > -1) // Add && left < id.length() ?
+ {
+ //System.out.println("inside starting " + right);
+ ch = id.charAt(right);
+ int r = -1;
+ if ((side & TRIM_INSIDE) > 0 && (side & TRIM_RIGHT) == 0) // Skip trailing blanks to the delimiter
+ {
+ while (right > -1 && ch == ' ' && ch != delimiter)
+ {
+ right--;
+ if (right > -1)
+ ch = id.charAt(right);
+ }
+ if (right > -1 && right < id.length() - 1)
+ r = right + 1;
+ }
+ if ((side & TRIM_INSIDE) > 0 && right > 0 && ch == delimiter)
+ {
+ right--; // skip the delimiter
+ ch = id.charAt(right);
+ while (ch == ' ' && right > -1)
+ {
+ right--;
+ if (right > -1)
+ ch = id.charAt(right);
+ }
+ StringBuffer sb2 = new StringBuffer();
+ //System.out.println("left: " + left);
+ //System.out.println("right: " + right);
+ if (right >= left)
+ {
+ sb2.append(id.substring(left, right + 1)).append(delimiter);
+ if (r > -1)
+ sb2.append(id.substring(r));
+ }
+ else
+ {
+ sb2.append(id.substring(left)).append(delimiter);
+ }
+ return sb2.toString();
+ }
+ else if (right >= left)
+ {
+ if ((side & TRIM_INSIDE) > 0 && (side & TRIM_RIGHT) == 0)
+ {
+ return id;
+ }
+ else
+ {
+ return id.substring(left, right + 1);
+ }
+ }
+ else
+ {
+ return id.substring(left);
+ }
+ }
+ else
+ {
+ return EMPTY_STRING;
+ }
+ }
+
+ /**
+ * Prevents construction of instances of this class.
+ * All methods and attributes are static; there is no reason to construct it.
+ */
+ private SQLIdentifier()
+ {
+ // Do nothing.
+ }
+
+ /** Static initialization section. */
+ static
+ {
+ ordinaryFlagsSet = new Hashtable<Object, HashSet<Character>>(37);
+ //OrdinaryChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_$#@";
+ // Letters also include the alphabetics from the extended character sets.
+ // Extended character sets contain additional alphabetic characters; for example, those
+ // with diacritical marks ( Hex B4 is an example of a diacritical mark). The available characters
+ // depend on the code page in use.
+
+ ordinaryDigits = "0123456789"; //$NON-NLS-1$
+ // Define the "wide" (multi-byte) digits used in Chinese, Japanese, Korean.
+ ordinaryWideDigits = "\uFF10\uFF11\uFF12\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19"; //$NON-NLS-1$
+
+ schemaReserved = new HashSet<String>(6);
+ schemaReserved.add("SYSCAT"); //$NON-NLS-1$
+ schemaReserved.add("SYSFUN"); //$NON-NLS-1$
+ schemaReserved.add("SYSIBM"); //$NON-NLS-1$
+ schemaReserved.add("SYSSTAT"); //$NON-NLS-1$
+
+ }
+
+ /**
+ * Returns a List of SQL keyswords for the given vendor and version.
+ * <p>
+ * @param vendor A vendor name in a DatabaseDefinition.
+ * @param version A version string in a DatabaseDefinition.
+ * @return A List of reserved words. Might be null.
+ */
+ @SuppressWarnings("unchecked")
+ public static List<String> initReserved(String vendor, String version)
+ {
+ RDBCorePlugin rdb = RDBCorePlugin.getDefault();
+ if (rdb != null)
+ {
+ DatabaseDefinitionRegistry ddreg = rdb.getDatabaseDefinitionRegistry();
+ DatabaseDefinition ddef = ddreg.getDefinition(vendor, version);
+ if (ddef != null)
+ {
+ return (List<String>)ddef.getSQLKeywords();
+ }
+ }
+ // Defaults to LUWO:
+ return luwoReserved;
+ }
+
+ /**
+ * Initializes ordinary characters for IBM Cloudscape.
+ * Has a side-effect of adding the HashSet to ordinaryFlagsSet.
+ * @return The HashSet
+ */
+ protected static HashSet<Character> initOrdinaryFlagsCloudscape()
+ {
+ // For IBM Cloudscape:
+ HashSet<Character> f = new HashSet<Character>(349);
+ ordinaryFlagsSet.put(PLATFORM_CLOUDSCAPE_KEY, f);
+ //f.add(new Character('\u0023')); // (35) #
+ //f.add(new Character('\u0024')); // (36) $
+ //f.add(new Character('\u0040')); // (64) @
+ initCommonOrdinaryFlags(f);
+ f.add(new Character('\u00AA')); // (170) feminine_ordinal
+ f.add(new Character('\u00B5')); // (181) micro
+ f.add(new Character('\u00BA')); // (186) masculine_ordinal
+ f.add(new Character('\u00C0')); // (192) A_grave
+ f.add(new Character('\u00C1')); // (193) A_acute
+ f.add(new Character('\u00C2')); // (194) A_circumflex
+ f.add(new Character('\u00C3')); // (195) A_tilde
+ f.add(new Character('\u00C4')); // (196) A_umlaut
+ f.add(new Character('\u00C5')); // (197) A_ring
+ f.add(new Character('\u00C6')); // (198) AE_ligature
+ f.add(new Character('\u00C7')); // (199) C_cedilla
+ f.add(new Character('\u00C8')); // (200) E_grave
+ f.add(new Character('\u00C9')); // (201) E_acute
+ f.add(new Character('\u00CA')); // (202) E_circumflex
+ f.add(new Character('\u00CB')); // (203) E_umlaut
+ f.add(new Character('\u00CC')); // (204) I_grave
+ f.add(new Character('\u00CD')); // (205) I_acute
+ f.add(new Character('\u00CE')); // (206) I_circumflex
+ f.add(new Character('\u00CF')); // (207) I_umlaut
+ f.add(new Character('\u00D0')); // (208) ETH_Q
+ f.add(new Character('\u00D1')); // (209) N_tilde
+ f.add(new Character('\u00D2')); // (210) O_grave
+ f.add(new Character('\u00D3')); // (211) O_acute
+ f.add(new Character('\u00D4')); // (212) O_circumflex
+ f.add(new Character('\u00D5')); // (213) O_tilde
+ f.add(new Character('\u00D6')); // (214) O_umlaut
+ f.add(new Character('\u00D8')); // (216) O_slash
+ f.add(new Character('\u00D9')); // (217) U_grave
+ f.add(new Character('\u00DA')); // (218) U_acute
+ f.add(new Character('\u00DB')); // (219) U_circumflex
+ f.add(new Character('\u00DC')); // (220) U_umlaut
+ f.add(new Character('\u00DD')); // (221) Y_acute
+ f.add(new Character('\u00DE')); // (222) THORN
+ f.add(new Character('\u00DF')); // (223) sharp_s
+ f.add(new Character('\u00E0')); // (224) a_grave
+ f.add(new Character('\u00E1')); // (225) a_acute
+ f.add(new Character('\u00E2')); // (226) a_circumflex
+ f.add(new Character('\u00E3')); // (227) a_tilde
+ f.add(new Character('\u00E4')); // (228) a_umlaut
+ f.add(new Character('\u00E5')); // (229) a_ring
+ f.add(new Character('\u00E6')); // (230) ae_ligature
+ f.add(new Character('\u00E7')); // (231) c_cedilla
+ f.add(new Character('\u00E8')); // (232) e_grave
+ f.add(new Character('\u00E9')); // (233) e_acute
+ f.add(new Character('\u00EA')); // (234) e_circumflex
+ f.add(new Character('\u00EB')); // (235) e_umlaut
+ f.add(new Character('\u00EC')); // (236) i_grave
+ f.add(new Character('\u00ED')); // (237) i_acute
+ f.add(new Character('\u00EE')); // (238) i_circumflex
+ f.add(new Character('\u00EF')); // (239) i_umlaut
+ f.add(new Character('\u00F0')); // (240) eth
+ f.add(new Character('\u00F1')); // (241) n_tilde
+ f.add(new Character('\u00F2')); // (242) o_grave
+ f.add(new Character('\u00F3')); // (243) o_acute
+ f.add(new Character('\u00F4')); // (244) o_circumflex
+ f.add(new Character('\u00F5')); // (245) o_tilde
+ f.add(new Character('\u00F6')); // (246) o_umlaut
+ f.add(new Character('\u00F8')); // (248) o_slash
+ f.add(new Character('\u00F9')); // (249) u_grave
+ f.add(new Character('\u00FA')); // (250) u_acute
+ f.add(new Character('\u00FB')); // (251) u_circumflex
+ f.add(new Character('\u00FC')); // (252) u_umlaut
+ f.add(new Character('\u00FD')); // (253) y_acute
+ f.add(new Character('\u00FE')); // (254) thorn
+ f.add(new Character('\u00FF')); // (255) y_umlaut
+ f.add(new Character('\u0100')); // (256) A_bar
+ f.add(new Character('\u0101')); // (257) a_bar
+ f.add(new Character('\u0102')); // (258) A_breve
+ f.add(new Character('\u0103')); // (259) a_breve
+ f.add(new Character('\u0104')); // (260) A_ogokek
+ f.add(new Character('\u0105')); // (261) a_ogokek
+ f.add(new Character('\u0106')); // (262) C_acute
+ f.add(new Character('\u0107')); // (263) c_acute
+ f.add(new Character('\u0108')); // (264) C_circumflex
+ f.add(new Character('\u0109')); // (265) c_circumflex
+ f.add(new Character('\u010A')); // (266) C_superdot
+ f.add(new Character('\u010B')); // (267) c_superdot
+ f.add(new Character('\u010C')); // (268) C_caron
+ f.add(new Character('\u010D')); // (269) c_caron
+ f.add(new Character('\u010E')); // (270) D_caron
+ f.add(new Character('\u010F')); // (271) d_caron
+ f.add(new Character('\u0110')); // (272) D_stroke
+ f.add(new Character('\u0111')); // (273) d_stroke
+ f.add(new Character('\u0112')); // (274) E_macron
+ f.add(new Character('\u0113')); // (275) e_macron
+ f.add(new Character('\u0114')); // (276) E_breve
+ f.add(new Character('\u0115')); // (277) e_breve
+ f.add(new Character('\u0116')); // (278) E_superdot
+ f.add(new Character('\u0117')); // (279) e_superdot
+ f.add(new Character('\u0118')); // (280) E_ogonek
+ f.add(new Character('\u0119')); // (281) e_ogonek
+ f.add(new Character('\u011A')); // (282) E_caron
+ f.add(new Character('\u011B')); // (283) e_caron
+ f.add(new Character('\u011C')); // (284) G_circumflex
+ f.add(new Character('\u011D')); // (285) g_circumflex
+ f.add(new Character('\u011E')); // (286) G_breve
+ f.add(new Character('\u011F')); // (287) g_breve
+ f.add(new Character('\u0120')); // (288) G_superdot
+ f.add(new Character('\u0121')); // (289) g_superdot
+ f.add(new Character('\u0122')); // (290) G_cedilla
+ f.add(new Character('\u0123')); // (291) g_cedilla
+ f.add(new Character('\u0124')); // (292) H_circumflex
+ f.add(new Character('\u0125')); // (293) h_circumflex
+ f.add(new Character('\u0126')); // (294) H_stroke
+ f.add(new Character('\u0127')); // (295) h_stroke
+ f.add(new Character('\u0128')); // (296) I_tilde
+ f.add(new Character('\u0129')); // (297) i_tilde
+ f.add(new Character('\u012A')); // (298) I_macron
+ f.add(new Character('\u012B')); // (299) i_macron
+ f.add(new Character('\u012C')); // (300) I_breve
+ f.add(new Character('\u012D')); // (301) i_breve
+ f.add(new Character('\u012E')); // (302) I_ogonek
+ f.add(new Character('\u012F')); // (303) i_ogonek
+ f.add(new Character('\u0130')); // (304) I_superdot
+ f.add(new Character('\u0131')); // (305) i_nodot
+ f.add(new Character('\u0132')); // (306) IJ_ligature
+ f.add(new Character('\u0133')); // (307) ij_ligature
+ f.add(new Character('\u0134')); // (308) J_circumflex
+ f.add(new Character('\u0135')); // (309) j_circumflex
+ f.add(new Character('\u0136')); // (310) K_cedilla
+ f.add(new Character('\u0137')); // (311) k_cedilla
+ f.add(new Character('\u0138')); // (312) kra
+ f.add(new Character('\u0139')); // (313) L_acute
+ f.add(new Character('\u013A')); // (314) l_acute
+ f.add(new Character('\u013B')); // (315) L_cedilla
+ f.add(new Character('\u013C')); // (316) l_cedilla
+ f.add(new Character('\u013D')); // (317) L_caron
+ f.add(new Character('\u013E')); // (318) l_caron
+ f.add(new Character('\u013F')); // (319) L_middot
+ f.add(new Character('\u0140')); // (320) l_middot
+ f.add(new Character('\u0141')); // (321) L_stoke
+ f.add(new Character('\u0142')); // (322) l_stoke
+ f.add(new Character('\u0143')); // (323) N_acute
+ f.add(new Character('\u0144')); // (324) n_acute
+ f.add(new Character('\u0145')); // (325) N_cedilla
+ f.add(new Character('\u0146')); // (326) n_cedilla
+ f.add(new Character('\u0147')); // (327) N_caron
+ f.add(new Character('\u0148')); // (328) n_caron
+ f.add(new Character('\u0149')); // (329) n_apostrophe
+ f.add(new Character('\u014A')); // (330) ENG
+ f.add(new Character('\u014B')); // (331) eng
+ f.add(new Character('\u014C')); // (332) O_macron
+ f.add(new Character('\u014D')); // (333) o_macron
+ f.add(new Character('\u014E')); // (334) O_breve
+ f.add(new Character('\u014F')); // (335) o_breve
+ f.add(new Character('\u0150')); // (336) O_double_acute
+ f.add(new Character('\u0151')); // (337) o_double_acute
+ f.add(new Character('\u0152')); // (338) OE_ligature
+ f.add(new Character('\u0153')); // (339) oe_ligature
+ f.add(new Character('\u0154')); // (340) R_acute
+ f.add(new Character('\u0155')); // (341) r_acute
+ f.add(new Character('\u0156')); // (342) R_cedilla
+ f.add(new Character('\u0157')); // (343) r_cedilla
+ f.add(new Character('\u0158')); // (344) R_caron
+ f.add(new Character('\u0159')); // (345) r_caron
+ f.add(new Character('\u015A')); // (346) S_acute
+ f.add(new Character('\u015B')); // (347) s_acute
+ f.add(new Character('\u015C')); // (348) S_circumflex
+ f.add(new Character('\u015D')); // (349) s_circumflex
+ f.add(new Character('\u015E')); // (350) S_cedilla
+ f.add(new Character('\u015F')); // (351) s_cedilla
+ f.add(new Character('\u0160')); // (352) S_caron
+ f.add(new Character('\u0161')); // (353) s_caron
+ f.add(new Character('\u0162')); // (354) T_cedilla
+ f.add(new Character('\u0163')); // (355) t_cedilla
+ f.add(new Character('\u0164')); // (356) T_caron
+ f.add(new Character('\u0165')); // (357) t_caron
+ f.add(new Character('\u0166')); // (358) T_stroke
+ f.add(new Character('\u0167')); // (359) t_stroke
+ f.add(new Character('\u0168')); // (360) U_tilde
+ f.add(new Character('\u0169')); // (361) u_tilde
+ f.add(new Character('\u016A')); // (362) U_macron
+ f.add(new Character('\u016B')); // (363) u_macron
+ f.add(new Character('\u016C')); // (364) U_breve
+ f.add(new Character('\u016D')); // (365) u_breve
+ f.add(new Character('\u016E')); // (366) U_ring
+ f.add(new Character('\u016F')); // (367) u_ring
+ f.add(new Character('\u0170')); // (368) U_double_acute
+ f.add(new Character('\u0171')); // (369) u_double_acute
+ f.add(new Character('\u0172')); // (370) U_ogonek
+ f.add(new Character('\u0173')); // (371) u_ogonek
+ f.add(new Character('\u0174')); // (372) W_circumflex
+ f.add(new Character('\u0175')); // (373) w_circumflex
+ f.add(new Character('\u0176')); // (374) Y_circumflex
+ f.add(new Character('\u0177')); // (375) y_circumflex
+ f.add(new Character('\u0178')); // (376) Y_diaeresis
+ f.add(new Character('\u0179')); // (377) Z_acute
+ f.add(new Character('\u017A')); // (378) z_acute
+ f.add(new Character('\u017B')); // (379) Z_superdot
+ f.add(new Character('\u017C')); // (380) z_superdot
+ f.add(new Character('\u017D')); // (381) Z_caron
+ f.add(new Character('\u017E')); // (382) z_caron
+ f.add(new Character('\u017F')); // (383) long_s
+ f.add(new Character('\u0180')); // (384) X
+ f.add(new Character('\u0181')); // (385) X
+ f.add(new Character('\u0182')); // (386) X
+ f.add(new Character('\u0183')); // (387) X
+ f.add(new Character('\u0184')); // (388) X
+ f.add(new Character('\u0185')); // (389) X
+ f.add(new Character('\u0186')); // (390) X
+ f.add(new Character('\u0187')); // (391) X
+ f.add(new Character('\u0188')); // (392) X
+ f.add(new Character('\u0189')); // (393) X
+ f.add(new Character('\u018A')); // (394) X
+ f.add(new Character('\u018B')); // (395) X
+ f.add(new Character('\u018C')); // (396) X
+ f.add(new Character('\u018D')); // (397) X
+ f.add(new Character('\u018E')); // (398) X
+ f.add(new Character('\u018F')); // (399) X
+ f.add(new Character('\u0190')); // (400) X
+ f.add(new Character('\u0191')); // (401) X
+ f.add(new Character('\u0192')); // (402) X
+ f.add(new Character('\u0193')); // (403) X
+ f.add(new Character('\u0194')); // (404) X
+ f.add(new Character('\u0195')); // (405) X
+ f.add(new Character('\u0196')); // (406) X
+ f.add(new Character('\u0197')); // (407) X
+ f.add(new Character('\u0198')); // (408) X
+ f.add(new Character('\u0199')); // (409) X
+ f.add(new Character('\u019A')); // (410) X
+ f.add(new Character('\u019B')); // (411) X
+ f.add(new Character('\u019C')); // (412) X
+ f.add(new Character('\u019D')); // (413) X
+ f.add(new Character('\u019E')); // (414) X
+ f.add(new Character('\u019F')); // (415) X
+ f.add(new Character('\u01A0')); // (416) X
+ f.add(new Character('\u01A1')); // (417) X
+ f.add(new Character('\u01A2')); // (418) X
+ f.add(new Character('\u01A3')); // (419) X
+ f.add(new Character('\u01A4')); // (420) X
+ f.add(new Character('\u01A5')); // (421) X
+ f.add(new Character('\u01A6')); // (422) X
+ f.add(new Character('\u01A7')); // (423) X
+ f.add(new Character('\u01A8')); // (424) X
+ f.add(new Character('\u01A9')); // (425) X
+ f.add(new Character('\u01AA')); // (426) X
+ f.add(new Character('\u01AB')); // (427) X
+ f.add(new Character('\u01AC')); // (428) X
+ f.add(new Character('\u01AD')); // (429) X
+ f.add(new Character('\u01AE')); // (430) X
+ f.add(new Character('\u01AF')); // (431) X
+ f.add(new Character('\u01B0')); // (432) X
+ f.add(new Character('\u01B1')); // (433) X
+ f.add(new Character('\u01B2')); // (434) X
+ f.add(new Character('\u01B3')); // (435) X
+ f.add(new Character('\u01B4')); // (436) X
+ f.add(new Character('\u01B5')); // (437) X
+ f.add(new Character('\u01B6')); // (438) X
+ f.add(new Character('\u01B7')); // (439) X
+ f.add(new Character('\u01B8')); // (440) X
+ f.add(new Character('\u01B9')); // (441) X
+ f.add(new Character('\u01BA')); // (442) X
+ f.add(new Character('\u01BB')); // (443) X
+ f.add(new Character('\u01BC')); // (444) X
+ f.add(new Character('\u01BD')); // (445) X
+ f.add(new Character('\u01BE')); // (446) X
+ f.add(new Character('\u01BF')); // (447) X
+ f.add(new Character('\u01C0')); // (448) X
+ f.add(new Character('\u01C1')); // (449) X
+ f.add(new Character('\u01C2')); // (450) X
+ f.add(new Character('\u01C3')); // (451) X
+ f.add(new Character('\u01C4')); // (452) X
+ f.add(new Character('\u01C5')); // (453) X
+ f.add(new Character('\u01C6')); // (454) X
+ f.add(new Character('\u01C7')); // (455) X
+ f.add(new Character('\u01C8')); // (456) X
+ f.add(new Character('\u01C9')); // (457) X
+ f.add(new Character('\u01CA')); // (458) X
+ f.add(new Character('\u01CB')); // (459) X
+ f.add(new Character('\u01CC')); // (460) X
+ f.add(new Character('\u01CD')); // (461) X
+ f.add(new Character('\u01CE')); // (462) X
+ f.add(new Character('\u01CF')); // (463) X
+ f.add(new Character('\u01D0')); // (464) X
+ f.add(new Character('\u01D1')); // (465) X
+ f.add(new Character('\u01D2')); // (466) X
+ f.add(new Character('\u01D3')); // (467) X
+ f.add(new Character('\u01D4')); // (468) X
+ f.add(new Character('\u01D5')); // (469) X
+ f.add(new Character('\u01D6')); // (470) X
+ f.add(new Character('\u01D7')); // (471) X
+ f.add(new Character('\u01D8')); // (472) X
+ f.add(new Character('\u01D9')); // (473) X
+ f.add(new Character('\u01DA')); // (474) X
+ f.add(new Character('\u01DB')); // (475) X
+ f.add(new Character('\u01DC')); // (476) X
+ f.add(new Character('\u01DD')); // (477) X
+ f.add(new Character('\u01DE')); // (478) X
+ f.add(new Character('\u01DF')); // (479) X
+ f.add(new Character('\u01E0')); // (480) X
+ f.add(new Character('\u01E1')); // (481) X
+ f.add(new Character('\u01E2')); // (482) X
+ f.add(new Character('\u01E3')); // (483) X
+ f.add(new Character('\u01E4')); // (484) X
+ f.add(new Character('\u01E5')); // (485) X
+ f.add(new Character('\u01E6')); // (486) X
+ f.add(new Character('\u01E7')); // (487) X
+ f.add(new Character('\u01E8')); // (488) X
+ f.add(new Character('\u01E9')); // (489) X
+ f.add(new Character('\u01EA')); // (490) X
+ f.add(new Character('\u01EB')); // (491) X
+ f.add(new Character('\u01EC')); // (492) X
+ f.add(new Character('\u01ED')); // (493) X
+ f.add(new Character('\u01EE')); // (494) X
+ f.add(new Character('\u01EF')); // (495) X
+ f.add(new Character('\u01F0')); // (496) X
+ f.add(new Character('\u01F1')); // (497) X
+ f.add(new Character('\u01F2')); // (498) X
+ f.add(new Character('\u01F3')); // (499) X
+ f.add(new Character('\u01F4')); // (500) X
+ f.add(new Character('\u01F5')); // (501) X
+ f.add(new Character('\u01FA')); // (506) X
+ f.add(new Character('\u01FB')); // (507) X
+ f.add(new Character('\u01FC')); // (508) X
+ f.add(new Character('\u01FD')); // (509) X
+ f.add(new Character('\u01FE')); // (510) X
+ f.add(new Character('\u01FF')); // (511) X
+ f.add(new Character('\u0200')); // (512) X
+ f.add(new Character('\u0201')); // (513) X
+ f.add(new Character('\u0202')); // (514) X
+ f.add(new Character('\u0203')); // (515) X
+ f.add(new Character('\u0204')); // (516) X
+ f.add(new Character('\u0205')); // (517) X
+ f.add(new Character('\u0206')); // (518) X
+ f.add(new Character('\u0207')); // (519) X
+ f.add(new Character('\u0208')); // (520) X
+ f.add(new Character('\u0209')); // (521) X
+ f.add(new Character('\u020A')); // (522) X
+ f.add(new Character('\u020B')); // (523) X
+ f.add(new Character('\u020C')); // (524) X
+ f.add(new Character('\u020D')); // (525) X
+ f.add(new Character('\u020E')); // (526) X
+ f.add(new Character('\u020F')); // (527) X
+ f.add(new Character('\u0210')); // (528) X
+ f.add(new Character('\u0211')); // (529) X
+ f.add(new Character('\u0212')); // (530) X
+ f.add(new Character('\u0213')); // (531) X
+ f.add(new Character('\u0214')); // (532) X
+ f.add(new Character('\u0215')); // (533) X
+ f.add(new Character('\u0216')); // (534) X
+ f.add(new Character('\u0217')); // (535) X
+ f.add(new Character('\u0250')); // (592) X
+ f.add(new Character('\u0251')); // (593) X
+ f.add(new Character('\u0252')); // (594) X
+ f.add(new Character('\u0253')); // (595) X
+ f.add(new Character('\u0254')); // (596) X
+ f.add(new Character('\u0255')); // (597) X
+ f.add(new Character('\u0256')); // (598) X
+ f.add(new Character('\u0257')); // (599) X
+ f.add(new Character('\u0258')); // (600) X
+ f.add(new Character('\u0259')); // (601) X
+ f.add(new Character('\u025A')); // (602) X
+ f.add(new Character('\u025B')); // (603) X
+ f.add(new Character('\u025C')); // (604) X
+ f.add(new Character('\u025D')); // (605) X
+ f.add(new Character('\u025E')); // (606) X
+ f.add(new Character('\u025F')); // (607) X
+ f.add(new Character('\u0260')); // (608) X
+ f.add(new Character('\u0261')); // (609) X
+ f.add(new Character('\u0262')); // (610) X
+ f.add(new Character('\u0263')); // (611) X
+ f.add(new Character('\u0264')); // (612) X
+ f.add(new Character('\u0265')); // (613) X
+ f.add(new Character('\u0266')); // (614) X
+ f.add(new Character('\u0267')); // (615) X
+ f.add(new Character('\u0268')); // (616) X
+ f.add(new Character('\u0269')); // (617) X
+ f.add(new Character('\u026A')); // (618) X
+ f.add(new Character('\u026B')); // (619) X
+ f.add(new Character('\u026C')); // (620) X
+ f.add(new Character('\u026D')); // (621) X
+ f.add(new Character('\u026E')); // (622) X
+ f.add(new Character('\u026F')); // (623) X
+ f.add(new Character('\u0270')); // (624) X
+ f.add(new Character('\u0271')); // (625) X
+ f.add(new Character('\u0272')); // (626) X
+ f.add(new Character('\u0273')); // (627) X
+ f.add(new Character('\u0274')); // (628) X
+ f.add(new Character('\u0275')); // (629) X
+ f.add(new Character('\u0276')); // (630) X
+ f.add(new Character('\u0277')); // (631) X
+ f.add(new Character('\u0278')); // (632) X
+ f.add(new Character('\u0279')); // (633) X
+ f.add(new Character('\u027A')); // (634) X
+ f.add(new Character('\u027B')); // (635) X
+ f.add(new Character('\u027C')); // (636) X
+ f.add(new Character('\u027D')); // (637) X
+ f.add(new Character('\u027E')); // (638) X
+ f.add(new Character('\u027F')); // (639) X
+ f.add(new Character('\u0280')); // (640) X
+ f.add(new Character('\u0281')); // (641) X
+ f.add(new Character('\u0282')); // (642) X
+ f.add(new Character('\u0283')); // (643) X
+ f.add(new Character('\u0284')); // (644) X
+ f.add(new Character('\u0285')); // (645) X
+ f.add(new Character('\u0286')); // (646) X
+ f.add(new Character('\u0287')); // (647) X
+ f.add(new Character('\u0288')); // (648) X
+ f.add(new Character('\u0289')); // (649) X
+ f.add(new Character('\u028A')); // (650) X
+ f.add(new Character('\u028B')); // (651) X
+ f.add(new Character('\u028C')); // (652) X
+ f.add(new Character('\u028D')); // (653) X
+ f.add(new Character('\u028E')); // (654) X
+ f.add(new Character('\u028F')); // (655) X
+ f.add(new Character('\u0290')); // (656) X
+ f.add(new Character('\u0291')); // (657) X
+ f.add(new Character('\u0292')); // (658) X
+ f.add(new Character('\u0293')); // (659) X
+ f.add(new Character('\u0294')); // (660) X
+ f.add(new Character('\u0295')); // (661) X
+ f.add(new Character('\u0296')); // (662) X
+ f.add(new Character('\u0297')); // (663) X
+ f.add(new Character('\u0298')); // (664) X
+ f.add(new Character('\u0299')); // (665) X
+ f.add(new Character('\u029A')); // (666) X
+ f.add(new Character('\u029B')); // (667) X
+ f.add(new Character('\u029C')); // (668) X
+ f.add(new Character('\u029D')); // (669) X
+ f.add(new Character('\u029E')); // (670) X
+ f.add(new Character('\u029F')); // (671) X
+ f.add(new Character('\u02A0')); // (672) X
+ f.add(new Character('\u02A1')); // (673) X
+ f.add(new Character('\u02A2')); // (674) X
+ f.add(new Character('\u02A3')); // (675) X
+ f.add(new Character('\u02A4')); // (676) X
+ f.add(new Character('\u02A5')); // (677) X
+ f.add(new Character('\u02A6')); // (678) X
+ f.add(new Character('\u02A7')); // (679) X
+ f.add(new Character('\u02A8')); // (680) X
+ f.add(new Character('\u02B0')); // (688) X
+ f.add(new Character('\u02B1')); // (689) X
+ f.add(new Character('\u02B2')); // (690) X
+ f.add(new Character('\u02B3')); // (691) X
+ f.add(new Character('\u02B4')); // (692) X
+ f.add(new Character('\u02B5')); // (693) X
+ f.add(new Character('\u02B6')); // (694) X
+ f.add(new Character('\u02B7')); // (695) X
+ f.add(new Character('\u02B8')); // (696) X
+ f.add(new Character('\u02BB')); // (699) X
+ f.add(new Character('\u02BC')); // (700) X
+ f.add(new Character('\u02BD')); // (701) X
+ f.add(new Character('\u02BE')); // (702) X
+ f.add(new Character('\u02BF')); // (703) X
+ f.add(new Character('\u02C0')); // (704) X
+ f.add(new Character('\u02C1')); // (705) X
+ f.add(new Character('\u02D0')); // (720) X
+ f.add(new Character('\u02D1')); // (721) X
+ f.add(new Character('\u02E0')); // (736) X
+ f.add(new Character('\u02E1')); // (737) X
+ f.add(new Character('\u02E2')); // (738) X
+ f.add(new Character('\u02E3')); // (739) X
+ f.add(new Character('\u02E4')); // (740) X
+ f.add(new Character('\u037A')); // (890) X
+ f.add(new Character('\u0386')); // (902) X
+ f.add(new Character('\u0388')); // (904) X
+ f.add(new Character('\u0389')); // (905) X
+ f.add(new Character('\u038A')); // (906) X
+ f.add(new Character('\u038C')); // (908) X
+ f.add(new Character('\u038E')); // (910) X
+ f.add(new Character('\u038F')); // (911) X
+ f.add(new Character('\u0390')); // (912) X
+ f.add(new Character('\u0391')); // (913) X
+ f.add(new Character('\u0392')); // (914) X
+ f.add(new Character('\u0393')); // (915) X
+ f.add(new Character('\u0394')); // (916) X
+ f.add(new Character('\u0395')); // (917) X
+ f.add(new Character('\u0396')); // (918) X
+ f.add(new Character('\u0397')); // (919) X
+ f.add(new Character('\u0398')); // (920) X
+ f.add(new Character('\u0399')); // (921) X
+ f.add(new Character('\u039A')); // (922) X
+ f.add(new Character('\u039B')); // (923) X
+ f.add(new Character('\u039C')); // (924) X
+ f.add(new Character('\u039D')); // (925) X
+ f.add(new Character('\u039E')); // (926) X
+ f.add(new Character('\u039F')); // (927) X
+ f.add(new Character('\u03A0')); // (928) X
+ f.add(new Character('\u03A1')); // (929) X
+ f.add(new Character('\u03A3')); // (931) X
+ f.add(new Character('\u03A4')); // (932) X
+ f.add(new Character('\u03A5')); // (933) X
+ f.add(new Character('\u03A6')); // (934) X
+ f.add(new Character('\u03A7')); // (935) X
+ f.add(new Character('\u03A8')); // (936) X
+ f.add(new Character('\u03A9')); // (937) X
+ f.add(new Character('\u03AA')); // (938) X
+ f.add(new Character('\u03AB')); // (939) X
+ f.add(new Character('\u03AC')); // (940) X
+ f.add(new Character('\u03AD')); // (941) X
+ f.add(new Character('\u03AE')); // (942) X
+ f.add(new Character('\u03AF')); // (943) X
+ f.add(new Character('\u03B0')); // (944) X
+ f.add(new Character('\u03B1')); // (945) X
+ f.add(new Character('\u03B2')); // (946) X
+ f.add(new Character('\u03B3')); // (947) X
+ f.add(new Character('\u03B4')); // (948) X
+ f.add(new Character('\u03B5')); // (949) X
+ f.add(new Character('\u03B6')); // (950) X
+ f.add(new Character('\u03B7')); // (951) X
+ f.add(new Character('\u03B8')); // (952) X
+ f.add(new Character('\u03B9')); // (953) X
+ f.add(new Character('\u03BA')); // (954) X
+ f.add(new Character('\u03BB')); // (955) X
+ f.add(new Character('\u03BC')); // (956) X
+ f.add(new Character('\u03BD')); // (957) X
+ f.add(new Character('\u03BE')); // (958) X
+ f.add(new Character('\u03BF')); // (959) X
+ f.add(new Character('\u03C0')); // (960) X
+ f.add(new Character('\u03C1')); // (961) X
+ f.add(new Character('\u03C2')); // (962) X
+ f.add(new Character('\u03C3')); // (963) X
+ f.add(new Character('\u03C4')); // (964) X
+ f.add(new Character('\u03C5')); // (965) X
+ f.add(new Character('\u03C6')); // (966) X
+ f.add(new Character('\u03C7')); // (967) X
+ f.add(new Character('\u03C8')); // (968) X
+ f.add(new Character('\u03C9')); // (969) X
+ f.add(new Character('\u03CA')); // (970) X
+ f.add(new Character('\u03CB')); // (971) X
+ f.add(new Character('\u03CC')); // (972) X
+ f.add(new Character('\u03CD')); // (973) X
+ f.add(new Character('\u03CE')); // (974) X
+ f.add(new Character('\u03D0')); // (976) X
+ f.add(new Character('\u03D1')); // (977) X
+ f.add(new Character('\u03D2')); // (978) X
+ f.add(new Character('\u03D3')); // (979) X
+ f.add(new Character('\u03D4')); // (980) X
+ f.add(new Character('\u03D5')); // (981) X
+ f.add(new Character('\u03D6')); // (982) X
+ f.add(new Character('\u03DA')); // (986) X
+ f.add(new Character('\u03DC')); // (988) X
+ f.add(new Character('\u03DE')); // (990) X
+ f.add(new Character('\u03E0')); // (992) X
+ f.add(new Character('\u03E2')); // (994) X
+ f.add(new Character('\u03E3')); // (995) X
+ f.add(new Character('\u03E4')); // (996) X
+ f.add(new Character('\u03E5')); // (997) X
+ f.add(new Character('\u03E6')); // (998) X
+ f.add(new Character('\u03E7')); // (999) X
+ f.add(new Character('\u03E8')); // (1000) X
+ f.add(new Character('\u03E9')); // (1001) X
+ f.add(new Character('\u03EA')); // (1002) X
+ f.add(new Character('\u03EB')); // (1003) X
+ f.add(new Character('\u03EC')); // (1004) X
+ f.add(new Character('\u03ED')); // (1005) X
+ f.add(new Character('\u03EE')); // (1006) X
+ f.add(new Character('\u03EF')); // (1007) X
+ f.add(new Character('\u03F0')); // (1008) X
+ f.add(new Character('\u03F1')); // (1009) X
+ f.add(new Character('\u03F2')); // (1010) X
+ f.add(new Character('\u03F3')); // (1011) X
+ f.add(new Character('\u0401')); // (1025) X
+ f.add(new Character('\u0402')); // (1026) X
+ f.add(new Character('\u0403')); // (1027) X
+ f.add(new Character('\u0404')); // (1028) X
+ f.add(new Character('\u0405')); // (1029) X
+ f.add(new Character('\u0406')); // (1030) X
+ f.add(new Character('\u0407')); // (1031) X
+ f.add(new Character('\u0408')); // (1032) X
+ f.add(new Character('\u0409')); // (1033) X
+ f.add(new Character('\u040A')); // (1034) X
+ f.add(new Character('\u040B')); // (1035) X
+ f.add(new Character('\u040C')); // (1036) X
+ f.add(new Character('\u040E')); // (1038) X
+ f.add(new Character('\u040F')); // (1039) X
+ f.add(new Character('\u0410')); // (1040) X
+ f.add(new Character('\u0411')); // (1041) X
+ f.add(new Character('\u0412')); // (1042) X
+ f.add(new Character('\u0413')); // (1043) X
+ f.add(new Character('\u0414')); // (1044) X
+ f.add(new Character('\u0415')); // (1045) X
+ f.add(new Character('\u0416')); // (1046) X
+ f.add(new Character('\u0417')); // (1047) X
+ f.add(new Character('\u0418')); // (1048) X
+ f.add(new Character('\u0419')); // (1049) X
+ f.add(new Character('\u041A')); // (1050) X
+ f.add(new Character('\u041B')); // (1051) X
+ f.add(new Character('\u041C')); // (1052) X
+ f.add(new Character('\u041D')); // (1053) X
+ f.add(new Character('\u041E')); // (1054) X
+ f.add(new Character('\u041F')); // (1055) X
+ f.add(new Character('\u0420')); // (1056) X
+ f.add(new Character('\u0421')); // (1057) X
+ f.add(new Character('\u0422')); // (1058) X
+ f.add(new Character('\u0423')); // (1059) X
+ f.add(new Character('\u0424')); // (1060) X
+ f.add(new Character('\u0425')); // (1061) X
+ f.add(new Character('\u0426')); // (1062) X
+ f.add(new Character('\u0427')); // (1063) X
+ f.add(new Character('\u0428')); // (1064) X
+ f.add(new Character('\u0429')); // (1065) X
+ f.add(new Character('\u042A')); // (1066) X
+ f.add(new Character('\u042B')); // (1067) X
+ f.add(new Character('\u042C')); // (1068) X
+ f.add(new Character('\u042D')); // (1069) X
+ f.add(new Character('\u042E')); // (1070) X
+ f.add(new Character('\u042F')); // (1071) X
+ f.add(new Character('\u0430')); // (1072) X
+ f.add(new Character('\u0431')); // (1073) X
+ f.add(new Character('\u0432')); // (1074) X
+ f.add(new Character('\u0433')); // (1075) X
+ f.add(new Character('\u0434')); // (1076) X
+ f.add(new Character('\u0435')); // (1077) X
+ f.add(new Character('\u0436')); // (1078) X
+ f.add(new Character('\u0437')); // (1079) X
+ f.add(new Character('\u0438')); // (1080) X
+ f.add(new Character('\u0439')); // (1081) X
+ f.add(new Character('\u043A')); // (1082) X
+ f.add(new Character('\u043B')); // (1083) X
+ f.add(new Character('\u043C')); // (1084) X
+ f.add(new Character('\u043D')); // (1085) X
+ f.add(new Character('\u043E')); // (1086) X
+ f.add(new Character('\u043F')); // (1087) X
+ f.add(new Character('\u0440')); // (1088) X
+ f.add(new Character('\u0441')); // (1089) X
+ f.add(new Character('\u0442')); // (1090) X
+ f.add(new Character('\u0443')); // (1091) X
+ f.add(new Character('\u0444')); // (1092) X
+ f.add(new Character('\u0445')); // (1093) X
+ f.add(new Character('\u0446')); // (1094) X
+ f.add(new Character('\u0447')); // (1095) X
+ f.add(new Character('\u0448')); // (1096) X
+ f.add(new Character('\u0449')); // (1097) X
+ f.add(new Character('\u044A')); // (1098) X
+ f.add(new Character('\u044B')); // (1099) X
+ f.add(new Character('\u044C')); // (1100) X
+ f.add(new Character('\u044D')); // (1101) X
+ f.add(new Character('\u044E')); // (1102) X
+ f.add(new Character('\u044F')); // (1103) X
+ f.add(new Character('\u0451')); // (1105) X
+ f.add(new Character('\u0452')); // (1106) X
+ f.add(new Character('\u0453')); // (1107) X
+ f.add(new Character('\u0454')); // (1108) X
+ f.add(new Character('\u0455')); // (1109) X
+ f.add(new Character('\u0456')); // (1110) X
+ f.add(new Character('\u0457')); // (1111) X
+ f.add(new Character('\u0458')); // (1112) X
+ f.add(new Character('\u0459')); // (1113) X
+ f.add(new Character('\u045A')); // (1114) X
+ f.add(new Character('\u045B')); // (1115) X
+ f.add(new Character('\u045C')); // (1116) X
+ f.add(new Character('\u045E')); // (1118) X
+ f.add(new Character('\u045F')); // (1119) X
+ f.add(new Character('\u0460')); // (1120) X
+ f.add(new Character('\u0461')); // (1121) X
+ f.add(new Character('\u0462')); // (1122) X
+ f.add(new Character('\u0463')); // (1123) X
+ f.add(new Character('\u0464')); // (1124) X
+ f.add(new Character('\u0465')); // (1125) X
+ f.add(new Character('\u0466')); // (1126) X
+ f.add(new Character('\u0467')); // (1127) X
+ f.add(new Character('\u0468')); // (1128) X
+ f.add(new Character('\u0469')); // (1129) X
+ f.add(new Character('\u046A')); // (1130) X
+ f.add(new Character('\u046B')); // (1131) X
+ f.add(new Character('\u046C')); // (1132) X
+ f.add(new Character('\u046D')); // (1133) X
+ f.add(new Character('\u046E')); // (1134) X
+ f.add(new Character('\u046F')); // (1135) X
+ f.add(new Character('\u0470')); // (1136) X
+ f.add(new Character('\u0471')); // (1137) X
+ f.add(new Character('\u0472')); // (1138) X
+ f.add(new Character('\u0473')); // (1139) X
+ f.add(new Character('\u0474')); // (1140) X
+ f.add(new Character('\u0475')); // (1141) X
+ f.add(new Character('\u0476')); // (1142) X
+ f.add(new Character('\u0477')); // (1143) X
+ f.add(new Character('\u0478')); // (1144) X
+ f.add(new Character('\u0479')); // (1145) X
+ f.add(new Character('\u047A')); // (1146) X
+ f.add(new Character('\u047B')); // (1147) X
+ f.add(new Character('\u047C')); // (1148) X
+ f.add(new Character('\u047D')); // (1149) X
+ f.add(new Character('\u047E')); // (1150) X
+ f.add(new Character('\u047F')); // (1151) X
+ f.add(new Character('\u0480')); // (1152) X
+ f.add(new Character('\u0481')); // (1153) X
+ f.add(new Character('\u0490')); // (1168) X
+ f.add(new Character('\u0491')); // (1169) X
+ f.add(new Character('\u0492')); // (1170) X
+ f.add(new Character('\u0493')); // (1171) X
+ f.add(new Character('\u0494')); // (1172) X
+ f.add(new Character('\u0495')); // (1173) X
+ f.add(new Character('\u0496')); // (1174) X
+ f.add(new Character('\u0497')); // (1175) X
+ f.add(new Character('\u0498')); // (1176) X
+ f.add(new Character('\u0499')); // (1177) X
+ f.add(new Character('\u049A')); // (1178) X
+ f.add(new Character('\u049B')); // (1179) X
+ f.add(new Character('\u049C')); // (1180) X
+ f.add(new Character('\u049D')); // (1181) X
+ f.add(new Character('\u049E')); // (1182) X
+ f.add(new Character('\u049F')); // (1183) X
+ f.add(new Character('\u04A0')); // (1184) X
+ f.add(new Character('\u04A1')); // (1185) X
+ f.add(new Character('\u04A2')); // (1186) X
+ f.add(new Character('\u04A3')); // (1187) X
+ f.add(new Character('\u04A4')); // (1188) X
+ f.add(new Character('\u04A5')); // (1189) X
+ f.add(new Character('\u04A6')); // (1190) X
+ f.add(new Character('\u04A7')); // (1191) X
+ f.add(new Character('\u04A8')); // (1192) X
+ f.add(new Character('\u04A9')); // (1193) X
+ f.add(new Character('\u04AA')); // (1194) X
+ f.add(new Character('\u04AB')); // (1195) X
+ f.add(new Character('\u04AC')); // (1196) X
+ f.add(new Character('\u04AD')); // (1197) X
+ f.add(new Character('\u04AE')); // (1198) X
+ f.add(new Character('\u04AF')); // (1199) X
+ f.add(new Character('\u04B0')); // (1200) X
+ f.add(new Character('\u04B1')); // (1201) X
+ f.add(new Character('\u04B2')); // (1202) X
+ f.add(new Character('\u04B3')); // (1203) X
+ f.add(new Character('\u04B4')); // (1204) X
+ f.add(new Character('\u04B5')); // (1205) X
+ f.add(new Character('\u04B6')); // (1206) X
+ f.add(new Character('\u04B7')); // (1207) X
+ f.add(new Character('\u04B8')); // (1208) X
+ f.add(new Character('\u04B9')); // (1209) X
+ f.add(new Character('\u04BA')); // (1210) X
+ f.add(new Character('\u04BB')); // (1211) X
+ f.add(new Character('\u04BC')); // (1212) X
+ f.add(new Character('\u04BD')); // (1213) X
+ f.add(new Character('\u04BE')); // (1214) X
+ f.add(new Character('\u04BF')); // (1215) X
+ f.add(new Character('\u04C0')); // (1216) X
+ f.add(new Character('\u04C1')); // (1217) X
+ f.add(new Character('\u04C2')); // (1218) X
+ f.add(new Character('\u04C3')); // (1219) X
+ f.add(new Character('\u04C4')); // (1220) X
+ f.add(new Character('\u04C7')); // (1223) X
+ f.add(new Character('\u04C8')); // (1224) X
+ f.add(new Character('\u04CB')); // (1227) X
+ f.add(new Character('\u04CC')); // (1228) X
+ f.add(new Character('\u04D0')); // (1232) X
+ f.add(new Character('\u04D1')); // (1233) X
+ f.add(new Character('\u04D2')); // (1234) X
+ f.add(new Character('\u04D3')); // (1235) X
+ f.add(new Character('\u04D4')); // (1236) X
+ f.add(new Character('\u04D5')); // (1237) X
+ f.add(new Character('\u04D6')); // (1238) X
+ f.add(new Character('\u04D7')); // (1239) X
+ f.add(new Character('\u04D8')); // (1240) X
+ f.add(new Character('\u04D9')); // (1241) X
+ f.add(new Character('\u04DA')); // (1242) X
+ f.add(new Character('\u04DB')); // (1243) X
+ f.add(new Character('\u04DC')); // (1244) X
+ f.add(new Character('\u04DD')); // (1245) X
+ f.add(new Character('\u04DE')); // (1246) X
+ f.add(new Character('\u04DF')); // (1247) X
+ f.add(new Character('\u04E0')); // (1248) X
+ f.add(new Character('\u04E1')); // (1249) X
+ f.add(new Character('\u04E2')); // (1250) X
+ f.add(new Character('\u04E3')); // (1251) X
+ f.add(new Character('\u04E4')); // (1252) X
+ f.add(new Character('\u04E5')); // (1253) X
+ f.add(new Character('\u04E6')); // (1254) X
+ f.add(new Character('\u04E7')); // (1255) X
+ f.add(new Character('\u04E8')); // (1256) X
+ f.add(new Character('\u04E9')); // (1257) X
+ f.add(new Character('\u04EA')); // (1258) X
+ f.add(new Character('\u04EB')); // (1259) X
+ f.add(new Character('\u04EE')); // (1262) X
+ f.add(new Character('\u04EF')); // (1263) X
+ f.add(new Character('\u04F0')); // (1264) X
+ f.add(new Character('\u04F1')); // (1265) X
+ f.add(new Character('\u04F2')); // (1266) X
+ f.add(new Character('\u04F3')); // (1267) X
+ f.add(new Character('\u04F4')); // (1268) X
+ f.add(new Character('\u04F5')); // (1269) X
+ //f.add(new Character('\u04F6')); // (1270) X
+ //f.add(new Character('\u04F7')); // (1271) X
+ f.add(new Character('\u04F8')); // (1272) X
+ f.add(new Character('\u04F9')); // (1273) X
+ f.add(new Character('\u0531')); // (1329) X
+ f.add(new Character('\u0532')); // (1330) X
+ f.add(new Character('\u0533')); // (1331) X
+ f.add(new Character('\u0534')); // (1332) X
+ f.add(new Character('\u0535')); // (1333) X
+ f.add(new Character('\u0536')); // (1334) X
+ f.add(new Character('\u0537')); // (1335) X
+ f.add(new Character('\u0538')); // (1336) X
+ f.add(new Character('\u0539')); // (1337) X
+ f.add(new Character('\u053A')); // (1338) X
+ f.add(new Character('\u053B')); // (1339) X
+ f.add(new Character('\u053C')); // (1340) X
+ f.add(new Character('\u053D')); // (1341) X
+ f.add(new Character('\u053E')); // (1342) X
+ f.add(new Character('\u053F')); // (1343) X
+ f.add(new Character('\u0540')); // (1344) X
+ f.add(new Character('\u0541')); // (1345) X
+ f.add(new Character('\u0542')); // (1346) X
+ f.add(new Character('\u0543')); // (1347) X
+ f.add(new Character('\u0544')); // (1348) X
+ f.add(new Character('\u0545')); // (1349) X
+ f.add(new Character('\u0546')); // (1350) X
+ f.add(new Character('\u0547')); // (1351) X
+ f.add(new Character('\u0548')); // (1352) X
+ f.add(new Character('\u0549')); // (1353) X
+ f.add(new Character('\u054A')); // (1354) X
+ f.add(new Character('\u054B')); // (1355) X
+ f.add(new Character('\u054C')); // (1356) X
+ f.add(new Character('\u054D')); // (1357) X
+ f.add(new Character('\u054E')); // (1358) X
+ f.add(new Character('\u054F')); // (1359) X
+ f.add(new Character('\u0550')); // (1360) X
+ f.add(new Character('\u0551')); // (1361) X
+ f.add(new Character('\u0552')); // (1362) X
+ f.add(new Character('\u0553')); // (1363) X
+ f.add(new Character('\u0554')); // (1364) X
+ f.add(new Character('\u0555')); // (1365) X
+ f.add(new Character('\u0556')); // (1366) X
+ f.add(new Character('\u0559')); // (1369) X
+ f.add(new Character('\u0561')); // (1377) X
+ f.add(new Character('\u0562')); // (1378) X
+ f.add(new Character('\u0563')); // (1379) X
+ f.add(new Character('\u0564')); // (1380) X
+ f.add(new Character('\u0565')); // (1381) X
+ f.add(new Character('\u0566')); // (1382) X
+ f.add(new Character('\u0567')); // (1383) X
+ f.add(new Character('\u0568')); // (1384) X
+ f.add(new Character('\u0569')); // (1385) X
+ f.add(new Character('\u056A')); // (1386) X
+ f.add(new Character('\u056B')); // (1387) X
+ f.add(new Character('\u056C')); // (1388) X
+ f.add(new Character('\u056D')); // (1389) X
+ f.add(new Character('\u056E')); // (1390) X
+ f.add(new Character('\u056F')); // (1391) X
+ f.add(new Character('\u0570')); // (1392) X
+ f.add(new Character('\u0571')); // (1393) X
+ f.add(new Character('\u0572')); // (1394) X
+ f.add(new Character('\u0573')); // (1395) X
+ f.add(new Character('\u0574')); // (1396) X
+ f.add(new Character('\u0575')); // (1397) X
+ f.add(new Character('\u0576')); // (1398) X
+ f.add(new Character('\u0577')); // (1399) X
+ f.add(new Character('\u0578')); // (1400) X
+ f.add(new Character('\u0579')); // (1401) X
+ f.add(new Character('\u057A')); // (1402) X
+ f.add(new Character('\u057B')); // (1403) X
+ f.add(new Character('\u057C')); // (1404) X
+ f.add(new Character('\u057D')); // (1405) X
+ f.add(new Character('\u057E')); // (1406) X
+ f.add(new Character('\u057F')); // (1407) X
+ f.add(new Character('\u0580')); // (1408) X
+ f.add(new Character('\u0581')); // (1409) X
+ f.add(new Character('\u0582')); // (1410) X
+ f.add(new Character('\u0583')); // (1411) X
+ f.add(new Character('\u0584')); // (1412) X
+ f.add(new Character('\u0585')); // (1413) X
+ f.add(new Character('\u0586')); // (1414) X
+ f.add(new Character('\u0587')); // (1415) X
+ f.add(new Character('\u05D0')); // (1488) X
+ f.add(new Character('\u05D1')); // (1489) X
+ f.add(new Character('\u05D2')); // (1490) X
+ f.add(new Character('\u05D3')); // (1491) X
+ f.add(new Character('\u05D4')); // (1492) X
+ f.add(new Character('\u05D5')); // (1493) X
+ f.add(new Character('\u05D6')); // (1494) X
+ f.add(new Character('\u05D7')); // (1495) X
+ f.add(new Character('\u05D8')); // (1496) X
+ f.add(new Character('\u05D9')); // (1497) X
+ f.add(new Character('\u05DA')); // (1498) X
+ f.add(new Character('\u05DB')); // (1499) X
+ f.add(new Character('\u05DC')); // (1500) X
+ f.add(new Character('\u05DD')); // (1501) X
+ f.add(new Character('\u05DE')); // (1502) X
+ f.add(new Character('\u05DF')); // (1503) X
+ f.add(new Character('\u05E0')); // (1504) X
+ f.add(new Character('\u05E1')); // (1505) X
+ f.add(new Character('\u05E2')); // (1506) X
+ f.add(new Character('\u05E3')); // (1507) X
+ f.add(new Character('\u05E4')); // (1508) X
+ f.add(new Character('\u05E5')); // (1509) X
+ f.add(new Character('\u05E6')); // (1510) X
+ f.add(new Character('\u05E7')); // (1511) X
+ f.add(new Character('\u05E8')); // (1512) X
+ f.add(new Character('\u05E9')); // (1513) X
+ f.add(new Character('\u05EA')); // (1514) X
+ f.add(new Character('\u05F0')); // (1520) X
+ f.add(new Character('\u05F1')); // (1521) X
+ f.add(new Character('\u05F2')); // (1522) X
+ f.add(new Character('\u0621')); // (1569) X
+ f.add(new Character('\u0622')); // (1570) X
+ f.add(new Character('\u0623')); // (1571) X
+ f.add(new Character('\u0624')); // (1572) X
+ f.add(new Character('\u0625')); // (1573) X
+ f.add(new Character('\u0626')); // (1574) X
+ f.add(new Character('\u0627')); // (1575) X
+ f.add(new Character('\u0628')); // (1576) X
+ f.add(new Character('\u0629')); // (1577) X
+ f.add(new Character('\u062A')); // (1578) X
+ f.add(new Character('\u062B')); // (1579) X
+ f.add(new Character('\u062C')); // (1580) X
+ f.add(new Character('\u062D')); // (1581) X
+ f.add(new Character('\u062E')); // (1582) X
+ f.add(new Character('\u062F')); // (1583) X
+ f.add(new Character('\u0630')); // (1584) X
+ f.add(new Character('\u0631')); // (1585) X
+ f.add(new Character('\u0632')); // (1586) X
+ f.add(new Character('\u0633')); // (1587) X
+ f.add(new Character('\u0634')); // (1588) X
+ f.add(new Character('\u0635')); // (1589) X
+ f.add(new Character('\u0636')); // (1590) X
+ f.add(new Character('\u0637')); // (1591) X
+ f.add(new Character('\u0638')); // (1592) X
+ f.add(new Character('\u0639')); // (1593) X
+ f.add(new Character('\u063A')); // (1594) X
+ f.add(new Character('\u0640')); // (1600) X
+ f.add(new Character('\u0641')); // (1601) X
+ f.add(new Character('\u0642')); // (1602) X
+ f.add(new Character('\u0643')); // (1603) X
+ f.add(new Character('\u0644')); // (1604) X
+ f.add(new Character('\u0645')); // (1605) X
+ f.add(new Character('\u0646')); // (1606) X
+ f.add(new Character('\u0647')); // (1607) X
+ f.add(new Character('\u0648')); // (1608) X
+ f.add(new Character('\u0649')); // (1609) X
+ f.add(new Character('\u064A')); // (1610) X
+ f.add(new Character('\u0671')); // (1649) X
+ f.add(new Character('\u0672')); // (1650) X
+ f.add(new Character('\u0673')); // (1651) X
+ f.add(new Character('\u0674')); // (1652) X
+ f.add(new Character('\u0675')); // (1653) X
+ f.add(new Character('\u0676')); // (1654) X
+ f.add(new Character('\u0677')); // (1655) X
+ f.add(new Character('\u0678')); // (1656) X
+ f.add(new Character('\u0679')); // (1657) X
+ f.add(new Character('\u067A')); // (1658) X
+ f.add(new Character('\u067B')); // (1659) X
+ f.add(new Character('\u067C')); // (1660) X
+ f.add(new Character('\u067D')); // (1661) X
+ f.add(new Character('\u067E')); // (1662) X
+ f.add(new Character('\u067F')); // (1663) X
+ f.add(new Character('\u0680')); // (1664) X
+ f.add(new Character('\u0681')); // (1665) X
+ f.add(new Character('\u0682')); // (1666) X
+ f.add(new Character('\u0683')); // (1667) X
+ f.add(new Character('\u0684')); // (1668) X
+ f.add(new Character('\u0685')); // (1669) X
+ f.add(new Character('\u0686')); // (1670) X
+ f.add(new Character('\u0687')); // (1671) X
+ f.add(new Character('\u0688')); // (1672) X
+ f.add(new Character('\u0689')); // (1673) X
+ f.add(new Character('\u068A')); // (1674) X
+ f.add(new Character('\u068B')); // (1675) X
+ f.add(new Character('\u068C')); // (1676) X
+ f.add(new Character('\u068D')); // (1677) X
+ f.add(new Character('\u068E')); // (1678) X
+ f.add(new Character('\u068F')); // (1679) X
+ f.add(new Character('\u0690')); // (1680) X
+ f.add(new Character('\u0691')); // (1681) X
+ f.add(new Character('\u0692')); // (1682) X
+ f.add(new Character('\u0693')); // (1683) X
+ f.add(new Character('\u0694')); // (1684) X
+ f.add(new Character('\u0695')); // (1685) X
+ f.add(new Character('\u0696')); // (1686) X
+ f.add(new Character('\u0697')); // (1687) X
+ f.add(new Character('\u0698')); // (1688) X
+ f.add(new Character('\u0699')); // (1689) X
+ f.add(new Character('\u069A')); // (1690) X
+ f.add(new Character('\u069B')); // (1691) X
+ f.add(new Character('\u069C')); // (1692) X
+ f.add(new Character('\u069D')); // (1693) X
+ f.add(new Character('\u069E')); // (1694) X
+ f.add(new Character('\u069F')); // (1695) X
+ f.add(new Character('\u06A0')); // (1696) X
+ f.add(new Character('\u06A1')); // (1697) X
+ f.add(new Character('\u06A2')); // (1698) X
+ f.add(new Character('\u06A3')); // (1699) X
+ f.add(new Character('\u06A4')); // (1700) X
+ f.add(new Character('\u06A5')); // (1701) X
+ f.add(new Character('\u06A6')); // (1702) X
+ f.add(new Character('\u06A7')); // (1703) X
+ f.add(new Character('\u06A8')); // (1704) X
+ f.add(new Character('\u06A9')); // (1705) X
+ f.add(new Character('\u06AA')); // (1706) X
+ f.add(new Character('\u06AB')); // (1707) X
+ f.add(new Character('\u06AC')); // (1708) X
+ f.add(new Character('\u06AD')); // (1709) X
+ f.add(new Character('\u06AE')); // (1710) X
+ f.add(new Character('\u06AF')); // (1711) X
+ f.add(new Character('\u06B0')); // (1712) X
+ f.add(new Character('\u06B1')); // (1713) X
+ f.add(new Character('\u06B2')); // (1714) X
+ f.add(new Character('\u06B3')); // (1715) X
+ f.add(new Character('\u06B4')); // (1716) X
+ f.add(new Character('\u06B5')); // (1717) X
+ f.add(new Character('\u06B6')); // (1718) X
+ f.add(new Character('\u06B7')); // (1719) X
+ f.add(new Character('\u06BA')); // (1722) X
+ f.add(new Character('\u06BB')); // (1723) X
+ f.add(new Character('\u06BC')); // (1724) X
+ f.add(new Character('\u06BD')); // (1725) X
+ f.add(new Character('\u06BE')); // (1726) X
+ f.add(new Character('\u06C0')); // (1728) X
+ f.add(new Character('\u06C1')); // (1729) X
+ f.add(new Character('\u06C2')); // (1730) X
+ f.add(new Character('\u06C3')); // (1731) X
+ f.add(new Character('\u06C4')); // (1732) X
+ f.add(new Character('\u06C5')); // (1733) X
+ f.add(new Character('\u06C6')); // (1734) X
+ f.add(new Character('\u06C7')); // (1735) X
+ f.add(new Character('\u06C8')); // (1736) X
+ f.add(new Character('\u06C9')); // (1737) X
+ f.add(new Character('\u06CA')); // (1738) X
+ f.add(new Character('\u06CB')); // (1739) X
+ f.add(new Character('\u06CC')); // (1740) X
+ f.add(new Character('\u06CD')); // (1741) X
+ f.add(new Character('\u06CE')); // (1742) X
+ f.add(new Character('\u06D0')); // (1744) X
+ f.add(new Character('\u06D1')); // (1745) X
+ f.add(new Character('\u06D2')); // (1746) X
+ f.add(new Character('\u06D3')); // (1747) X
+ f.add(new Character('\u06D5')); // (1749) X
+ f.add(new Character('\u06E5')); // (1765) X
+ f.add(new Character('\u06E6')); // (1766) X
+ f.add(new Character('\u0905')); // (2309) X
+ f.add(new Character('\u0906')); // (2310) X
+ f.add(new Character('\u0907')); // (2311) X
+ f.add(new Character('\u0908')); // (2312) X
+ f.add(new Character('\u0909')); // (2313) X
+ f.add(new Character('\u090A')); // (2314) X
+ f.add(new Character('\u090B')); // (2315) X
+ f.add(new Character('\u090C')); // (2316) X
+ f.add(new Character('\u090D')); // (2317) X
+ f.add(new Character('\u090E')); // (2318) X
+ f.add(new Character('\u090F')); // (2319) X
+ f.add(new Character('\u0910')); // (2320) X
+ f.add(new Character('\u0911')); // (2321) X
+ f.add(new Character('\u0912')); // (2322) X
+ f.add(new Character('\u0913')); // (2323) X
+ f.add(new Character('\u0914')); // (2324) X
+ f.add(new Character('\u0915')); // (2325) X
+ f.add(new Character('\u0916')); // (2326) X
+ f.add(new Character('\u0917')); // (2327) X
+ f.add(new Character('\u0918')); // (2328) X
+ f.add(new Character('\u0919')); // (2329) X
+ f.add(new Character('\u091A')); // (2330) X
+ f.add(new Character('\u091B')); // (2331) X
+ f.add(new Character('\u091C')); // (2332) X
+ f.add(new Character('\u091D')); // (2333) X
+ f.add(new Character('\u091E')); // (2334) X
+ f.add(new Character('\u091F')); // (2335) X
+ f.add(new Character('\u0920')); // (2336) X
+ f.add(new Character('\u0921')); // (2337) X
+ f.add(new Character('\u0922')); // (2338) X
+ f.add(new Character('\u0923')); // (2339) X
+ f.add(new Character('\u0924')); // (2340) X
+ f.add(new Character('\u0925')); // (2341) X
+ f.add(new Character('\u0926')); // (2342) X
+ f.add(new Character('\u0927')); // (2343) X
+ f.add(new Character('\u0928')); // (2344) X
+ f.add(new Character('\u0929')); // (2345) X
+ f.add(new Character('\u092A')); // (2346) X
+ f.add(new Character('\u092B')); // (2347) X
+ f.add(new Character('\u092C')); // (2348) X
+ f.add(new Character('\u092D')); // (2349) X
+ f.add(new Character('\u092E')); // (2350) X
+ f.add(new Character('\u092F')); // (2351) X
+ f.add(new Character('\u0930')); // (2352) X
+ f.add(new Character('\u0931')); // (2353) X
+ f.add(new Character('\u0932')); // (2354) X
+ f.add(new Character('\u0933')); // (2355) X
+ f.add(new Character('\u0934')); // (2356) X
+ f.add(new Character('\u0935')); // (2357) X
+ f.add(new Character('\u0936')); // (2358) X
+ f.add(new Character('\u0937')); // (2359) X
+ f.add(new Character('\u0938')); // (2360) X
+ f.add(new Character('\u0939')); // (2361) X
+ f.add(new Character('\u093D')); // (2365) X
+ f.add(new Character('\u0958')); // (2392) X
+ f.add(new Character('\u0959')); // (2393) X
+ f.add(new Character('\u095A')); // (2394) X
+ f.add(new Character('\u095B')); // (2395) X
+ f.add(new Character('\u095C')); // (2396) X
+ f.add(new Character('\u095D')); // (2397) X
+ f.add(new Character('\u095E')); // (2398) X
+ f.add(new Character('\u095F')); // (2399) X
+ f.add(new Character('\u0960')); // (2400) X
+ f.add(new Character('\u0961')); // (2401) X
+ f.add(new Character('\u0985')); // (2437) X
+ f.add(new Character('\u0986')); // (2438) X
+ f.add(new Character('\u0987')); // (2439) X
+ f.add(new Character('\u0988')); // (2440) X
+ f.add(new Character('\u0989')); // (2441) X
+ f.add(new Character('\u098A')); // (2442) X
+ f.add(new Character('\u098B')); // (2443) X
+ f.add(new Character('\u098C')); // (2444) X
+ f.add(new Character('\u098F')); // (2447) X
+ f.add(new Character('\u0990')); // (2448) X
+ f.add(new Character('\u0993')); // (2451) X
+ f.add(new Character('\u0994')); // (2452) X
+ f.add(new Character('\u0995')); // (2453) X
+ f.add(new Character('\u0996')); // (2454) X
+ f.add(new Character('\u0997')); // (2455) X
+ f.add(new Character('\u0998')); // (2456) X
+ f.add(new Character('\u0999')); // (2457) X
+ f.add(new Character('\u099A')); // (2458) X
+ f.add(new Character('\u099B')); // (2459) X
+ f.add(new Character('\u099C')); // (2460) X
+ f.add(new Character('\u099D')); // (2461) X
+ f.add(new Character('\u099E')); // (2462) X
+ f.add(new Character('\u099F')); // (2463) X
+ f.add(new Character('\u09A0')); // (2464) X
+ f.add(new Character('\u09A1')); // (2465) X
+ f.add(new Character('\u09A2')); // (2466) X
+ f.add(new Character('\u09A3')); // (2467) X
+ f.add(new Character('\u09A4')); // (2468) X
+ f.add(new Character('\u09A5')); // (2469) X
+ f.add(new Character('\u09A6')); // (2470) X
+ f.add(new Character('\u09A7')); // (2471) X
+ f.add(new Character('\u09A8')); // (2472) X
+ f.add(new Character('\u09AA')); // (2474) X
+ f.add(new Character('\u09AB')); // (2475) X
+ f.add(new Character('\u09AC')); // (2476) X
+ f.add(new Character('\u09AD')); // (2477) X
+ f.add(new Character('\u09AE')); // (2478) X
+ f.add(new Character('\u09AF')); // (2479) X
+ f.add(new Character('\u09B0')); // (2480) X
+ f.add(new Character('\u09B2')); // (2482) X
+ f.add(new Character('\u09B6')); // (2486) X
+ f.add(new Character('\u09B7')); // (2487) X
+ f.add(new Character('\u09B8')); // (2488) X
+ f.add(new Character('\u09B9')); // (2489) X
+ f.add(new Character('\u09DC')); // (2524) X
+ f.add(new Character('\u09DD')); // (2525) X
+ f.add(new Character('\u09DF')); // (2527) X
+ f.add(new Character('\u09E0')); // (2528) X
+ f.add(new Character('\u09E1')); // (2529) X
+ f.add(new Character('\u09F0')); // (2544) X
+ f.add(new Character('\u09F1')); // (2545) X
+ f.add(new Character('\u0A05')); // (2565) X
+ f.add(new Character('\u0A06')); // (2566) X
+ f.add(new Character('\u0A07')); // (2567) X
+ f.add(new Character('\u0A08')); // (2568) X
+ f.add(new Character('\u0A09')); // (2569) X
+ f.add(new Character('\u0A0A')); // (2570) X
+ f.add(new Character('\u0A0F')); // (2575) X
+ f.add(new Character('\u0A10')); // (2576) X
+ f.add(new Character('\u0A13')); // (2579) X
+ f.add(new Character('\u0A14')); // (2580) X
+ f.add(new Character('\u0A15')); // (2581) X
+ f.add(new Character('\u0A16')); // (2582) X
+ f.add(new Character('\u0A17')); // (2583) X
+ f.add(new Character('\u0A18')); // (2584) X
+ f.add(new Character('\u0A19')); // (2585) X
+ f.add(new Character('\u0A1A')); // (2586) X
+ f.add(new Character('\u0A1B')); // (2587) X
+ f.add(new Character('\u0A1C')); // (2588) X
+ f.add(new Character('\u0A1D')); // (2589) X
+ f.add(new Character('\u0A1E')); // (2590) X
+ f.add(new Character('\u0A1F')); // (2591) X
+ f.add(new Character('\u0A20')); // (2592) X
+ f.add(new Character('\u0A21')); // (2593) X
+ f.add(new Character('\u0A22')); // (2594) X
+ f.add(new Character('\u0A23')); // (2595) X
+ f.add(new Character('\u0A24')); // (2596) X
+ f.add(new Character('\u0A25')); // (2597) X
+ f.add(new Character('\u0A26')); // (2598) X
+ f.add(new Character('\u0A27')); // (2599) X
+ f.add(new Character('\u0A28')); // (2600) X
+ f.add(new Character('\u0A2A')); // (2602) X
+ f.add(new Character('\u0A2B')); // (2603) X
+ f.add(new Character('\u0A2C')); // (2604) X
+ f.add(new Character('\u0A2D')); // (2605) X
+ f.add(new Character('\u0A2E')); // (2606) X
+ f.add(new Character('\u0A2F')); // (2607) X
+ f.add(new Character('\u0A30')); // (2608) X
+ f.add(new Character('\u0A32')); // (2610) X
+ f.add(new Character('\u0A33')); // (2611) X
+ f.add(new Character('\u0A35')); // (2613) X
+ f.add(new Character('\u0A36')); // (2614) X
+ f.add(new Character('\u0A38')); // (2616) X
+ f.add(new Character('\u0A39')); // (2617) X
+ f.add(new Character('\u0A59')); // (2649) X
+ f.add(new Character('\u0A5A')); // (2650) X
+ f.add(new Character('\u0A5B')); // (2651) X
+ f.add(new Character('\u0A5C')); // (2652) X
+ f.add(new Character('\u0A5E')); // (2654) X
+ f.add(new Character('\u0A72')); // (2674) X
+ f.add(new Character('\u0A73')); // (2675) X
+ f.add(new Character('\u0A74')); // (2676) X
+ f.add(new Character('\u0A85')); // (2693) X
+ f.add(new Character('\u0A86')); // (2694) X
+ f.add(new Character('\u0A87')); // (2695) X
+ f.add(new Character('\u0A88')); // (2696) X
+ f.add(new Character('\u0A89')); // (2697) X
+ f.add(new Character('\u0A8A')); // (2698) X
+ f.add(new Character('\u0A8B')); // (2699) X
+ f.add(new Character('\u0A8D')); // (2701) X
+ f.add(new Character('\u0A8F')); // (2703) X
+ f.add(new Character('\u0A90')); // (2704) X
+ f.add(new Character('\u0A91')); // (2705) X
+ f.add(new Character('\u0A93')); // (2707) X
+ f.add(new Character('\u0A94')); // (2708) X
+ f.add(new Character('\u0A95')); // (2709) X
+ f.add(new Character('\u0A96')); // (2710) X
+ f.add(new Character('\u0A97')); // (2711) X
+ f.add(new Character('\u0A98')); // (2712) X
+ f.add(new Character('\u0A99')); // (2713) X
+ f.add(new Character('\u0A9A')); // (2714) X
+ f.add(new Character('\u0A9B')); // (2715) X
+ f.add(new Character('\u0A9C')); // (2716) X
+ f.add(new Character('\u0A9D')); // (2717) X
+ f.add(new Character('\u0A9E')); // (2718) X
+ f.add(new Character('\u0A9F')); // (2719) X
+ f.add(new Character('\u0AA0')); // (2720) X
+ f.add(new Character('\u0AA1')); // (2721) X
+ f.add(new Character('\u0AA2')); // (2722) X
+ f.add(new Character('\u0AA3')); // (2723) X
+ f.add(new Character('\u0AA4')); // (2724) X
+ f.add(new Character('\u0AA5')); // (2725) X
+ f.add(new Character('\u0AA6')); // (2726) X
+ f.add(new Character('\u0AA7')); // (2727) X
+ f.add(new Character('\u0AA8')); // (2728) X
+ f.add(new Character('\u0AAA')); // (2730) X
+ f.add(new Character('\u0AAB')); // (2731) X
+ f.add(new Character('\u0AAC')); // (2732) X
+ f.add(new Character('\u0AAD')); // (2733) X
+ f.add(new Character('\u0AAE')); // (2734) X
+ f.add(new Character('\u0AAF')); // (2735) X
+ f.add(new Character('\u0AB0')); // (2736) X
+ f.add(new Character('\u0AB2')); // (2738) X
+ f.add(new Character('\u0AB3')); // (2739) X
+ f.add(new Character('\u0AB5')); // (2741) X
+ f.add(new Character('\u0AB6')); // (2742) X
+ f.add(new Character('\u0AB7')); // (2743) X
+ f.add(new Character('\u0AB8')); // (2744) X
+ f.add(new Character('\u0AB9')); // (2745) X
+ f.add(new Character('\u0ABD')); // (2749) X
+ f.add(new Character('\u0AE0')); // (2784) X
+ f.add(new Character('\u0B05')); // (2821) X
+ f.add(new Character('\u0B06')); // (2822) X
+ f.add(new Character('\u0B07')); // (2823) X
+ f.add(new Character('\u0B08')); // (2824) X
+ f.add(new Character('\u0B09')); // (2825) X
+ f.add(new Character('\u0B0A')); // (2826) X
+ f.add(new Character('\u0B0B')); // (2827) X
+ f.add(new Character('\u0B0C')); // (2828) X
+ f.add(new Character('\u0B0F')); // (2831) X
+ f.add(new Character('\u0B10')); // (2832) X
+ f.add(new Character('\u0B13')); // (2835) X
+ f.add(new Character('\u0B14')); // (2836) X
+ f.add(new Character('\u0B15')); // (2837) X
+ f.add(new Character('\u0B16')); // (2838) X
+ f.add(new Character('\u0B17')); // (2839) X
+ f.add(new Character('\u0B18')); // (2840) X
+ f.add(new Character('\u0B19')); // (2841) X
+ f.add(new Character('\u0B1A')); // (2842) X
+ f.add(new Character('\u0B1B')); // (2843) X
+ f.add(new Character('\u0B1C')); // (2844) X
+ f.add(new Character('\u0B1D')); // (2845) X
+ f.add(new Character('\u0B1E')); // (2846) X
+ f.add(new Character('\u0B1F')); // (2847) X
+ f.add(new Character('\u0B20')); // (2848) X
+ f.add(new Character('\u0B21')); // (2849) X
+ f.add(new Character('\u0B22')); // (2850) X
+ f.add(new Character('\u0B23')); // (2851) X
+ f.add(new Character('\u0B24')); // (2852) X
+ f.add(new Character('\u0B25')); // (2853) X
+ f.add(new Character('\u0B26')); // (2854) X
+ f.add(new Character('\u0B27')); // (2855) X
+ f.add(new Character('\u0B28')); // (2856) X
+ f.add(new Character('\u0B2A')); // (2858) X
+ f.add(new Character('\u0B2B')); // (2859) X
+ f.add(new Character('\u0B2C')); // (2860) X
+ f.add(new Character('\u0B2D')); // (2861) X
+ f.add(new Character('\u0B2E')); // (2862) X
+ f.add(new Character('\u0B2F')); // (2863) X
+ f.add(new Character('\u0B30')); // (2864) X
+ f.add(new Character('\u0B32')); // (2866) X
+ f.add(new Character('\u0B33')); // (2867) X
+ f.add(new Character('\u0B36')); // (2870) X
+ f.add(new Character('\u0B37')); // (2871) X
+ f.add(new Character('\u0B38')); // (2872) X
+ f.add(new Character('\u0B39')); // (2873) X
+ f.add(new Character('\u0B3D')); // (2877) X
+ f.add(new Character('\u0B5C')); // (2908) X
+ f.add(new Character('\u0B5D')); // (2909) X
+ f.add(new Character('\u0B5F')); // (2911) X
+ f.add(new Character('\u0B60')); // (2912) X
+ f.add(new Character('\u0B61')); // (2913) X
+ f.add(new Character('\u0B85')); // (2949) X
+ f.add(new Character('\u0B86')); // (2950) X
+ f.add(new Character('\u0B87')); // (2951) X
+ f.add(new Character('\u0B88')); // (2952) X
+ f.add(new Character('\u0B89')); // (2953) X
+ f.add(new Character('\u0B8A')); // (2954) X
+ f.add(new Character('\u0B8E')); // (2958) X
+ f.add(new Character('\u0B8F')); // (2959) X
+ f.add(new Character('\u0B90')); // (2960) X
+ f.add(new Character('\u0B92')); // (2962) X
+ f.add(new Character('\u0B93')); // (2963) X
+ f.add(new Character('\u0B94')); // (2964) X
+ f.add(new Character('\u0B95')); // (2965) X
+ f.add(new Character('\u0B99')); // (2969) X
+ f.add(new Character('\u0B9A')); // (2970) X
+ f.add(new Character('\u0B9C')); // (2972) X
+ f.add(new Character('\u0B9E')); // (2974) X
+ f.add(new Character('\u0B9F')); // (2975) X
+ f.add(new Character('\u0BA3')); // (2979) X
+ f.add(new Character('\u0BA4')); // (2980) X
+ f.add(new Character('\u0BA8')); // (2984) X
+ f.add(new Character('\u0BA9')); // (2985) X
+ f.add(new Character('\u0BAA')); // (2986) X
+ f.add(new Character('\u0BAE')); // (2990) X
+ f.add(new Character('\u0BAF')); // (2991) X
+ f.add(new Character('\u0BB0')); // (2992) X
+ f.add(new Character('\u0BB1')); // (2993) X
+ f.add(new Character('\u0BB2')); // (2994) X
+ f.add(new Character('\u0BB3')); // (2995) X
+ f.add(new Character('\u0BB4')); // (2996) X
+ f.add(new Character('\u0BB5')); // (2997) X
+ f.add(new Character('\u0BB7')); // (2999) X
+ f.add(new Character('\u0BB8')); // (3000) X
+ f.add(new Character('\u0BB9')); // (3001) X
+ f.add(new Character('\u0C05')); // (3077) X
+ f.add(new Character('\u0C06')); // (3078) X
+ f.add(new Character('\u0C07')); // (3079) X
+ f.add(new Character('\u0C08')); // (3080) X
+ f.add(new Character('\u0C09')); // (3081) X
+ f.add(new Character('\u0C0A')); // (3082) X
+ f.add(new Character('\u0C0B')); // (3083) X
+ f.add(new Character('\u0C0C')); // (3084) X
+ f.add(new Character('\u0C0E')); // (3086) X
+ f.add(new Character('\u0C0F')); // (3087) X
+ f.add(new Character('\u0C10')); // (3088) X
+ f.add(new Character('\u0C12')); // (3090) X
+ f.add(new Character('\u0C13')); // (3091) X
+ f.add(new Character('\u0C14')); // (3092) X
+ f.add(new Character('\u0C15')); // (3093) X
+ f.add(new Character('\u0C16')); // (3094) X
+ f.add(new Character('\u0C17')); // (3095) X
+ f.add(new Character('\u0C18')); // (3096) X
+ f.add(new Character('\u0C19')); // (3097) X
+ f.add(new Character('\u0C1A')); // (3098) X
+ f.add(new Character('\u0C1B')); // (3099) X
+ f.add(new Character('\u0C1C')); // (3100) X
+ f.add(new Character('\u0C1D')); // (3101) X
+ f.add(new Character('\u0C1E')); // (3102) X
+ f.add(new Character('\u0C1F')); // (3103) X
+ f.add(new Character('\u0C20')); // (3104) X
+ f.add(new Character('\u0C21')); // (3105) X
+ f.add(new Character('\u0C22')); // (3106) X
+ f.add(new Character('\u0C23')); // (3107) X
+ f.add(new Character('\u0C24')); // (3108) X
+ f.add(new Character('\u0C25')); // (3109) X
+ f.add(new Character('\u0C26')); // (3110) X
+ f.add(new Character('\u0C27')); // (3111) X
+ f.add(new Character('\u0C28')); // (3112) X
+ f.add(new Character('\u0C2A')); // (3114) X
+ f.add(new Character('\u0C2B')); // (3115) X
+ f.add(new Character('\u0C2C')); // (3116) X
+ f.add(new Character('\u0C2D')); // (3117) X
+ f.add(new Character('\u0C2E')); // (3118) X
+ f.add(new Character('\u0C2F')); // (3119) X
+ f.add(new Character('\u0C30')); // (3120) X
+ f.add(new Character('\u0C31')); // (3121) X
+ f.add(new Character('\u0C32')); // (3122) X
+ f.add(new Character('\u0C33')); // (3123) X
+ f.add(new Character('\u0C35')); // (3125) X
+ f.add(new Character('\u0C36')); // (3126) X
+ f.add(new Character('\u0C37')); // (3127) X
+ f.add(new Character('\u0C38')); // (3128) X
+ f.add(new Character('\u0C39')); // (3129) X
+ f.add(new Character('\u0C60')); // (3168) X
+ f.add(new Character('\u0C61')); // (3169) X
+ f.add(new Character('\u0C85')); // (3205) X
+ f.add(new Character('\u0C86')); // (3206) X
+ f.add(new Character('\u0C87')); // (3207) X
+ f.add(new Character('\u0C88')); // (3208) X
+ f.add(new Character('\u0C89')); // (3209) X
+ f.add(new Character('\u0C8A')); // (3210) X
+ f.add(new Character('\u0C8B')); // (3211) X
+ f.add(new Character('\u0C8C')); // (3212) X
+ f.add(new Character('\u0C8E')); // (3214) X
+ f.add(new Character('\u0C8F')); // (3215) X
+ f.add(new Character('\u0C90')); // (3216) X
+ f.add(new Character('\u0C92')); // (3218) X
+ f.add(new Character('\u0C93')); // (3219) X
+ f.add(new Character('\u0C94')); // (3220) X
+ f.add(new Character('\u0C95')); // (3221) X
+ f.add(new Character('\u0C96')); // (3222) X
+ f.add(new Character('\u0C97')); // (3223) X
+ f.add(new Character('\u0C98')); // (3224) X
+ f.add(new Character('\u0C99')); // (3225) X
+ f.add(new Character('\u0C9A')); // (3226) X
+ f.add(new Character('\u0C9B')); // (3227) X
+ f.add(new Character('\u0C9C')); // (3228) X
+ f.add(new Character('\u0C9D')); // (3229) X
+ f.add(new Character('\u0C9E')); // (3230) X
+ f.add(new Character('\u0C9F')); // (3231) X
+ f.add(new Character('\u0CA0')); // (3232) X
+ f.add(new Character('\u0CA1')); // (3233) X
+ f.add(new Character('\u0CA2')); // (3234) X
+ f.add(new Character('\u0CA3')); // (3235) X
+ f.add(new Character('\u0CA4')); // (3236) X
+ f.add(new Character('\u0CA5')); // (3237) X
+ f.add(new Character('\u0CA6')); // (3238) X
+ f.add(new Character('\u0CA7')); // (3239) X
+ f.add(new Character('\u0CA8')); // (3240) X
+ f.add(new Character('\u0CAA')); // (3242) X
+ f.add(new Character('\u0CAB')); // (3243) X
+ f.add(new Character('\u0CAC')); // (3244) X
+ f.add(new Character('\u0CAD')); // (3245) X
+ f.add(new Character('\u0CAE')); // (3246) X
+ f.add(new Character('\u0CAF')); // (3247) X
+ f.add(new Character('\u0CB0')); // (3248) X
+ f.add(new Character('\u0CB1')); // (3249) X
+ f.add(new Character('\u0CB2')); // (3250) X
+ f.add(new Character('\u0CB3')); // (3251) X
+ f.add(new Character('\u0CB5')); // (3253) X
+ f.add(new Character('\u0CB6')); // (3254) X
+ f.add(new Character('\u0CB7')); // (3255) X
+ f.add(new Character('\u0CB8')); // (3256) X
+ f.add(new Character('\u0CB9')); // (3257) X
+ f.add(new Character('\u0CDE')); // (3294) X
+ f.add(new Character('\u0CE0')); // (3296) X
+ f.add(new Character('\u0CE1')); // (3297) X
+ f.add(new Character('\u0D05')); // (3333) X
+ f.add(new Character('\u0D06')); // (3334) X
+ f.add(new Character('\u0D07')); // (3335) X
+ f.add(new Character('\u0D08')); // (3336) X
+ f.add(new Character('\u0D09')); // (3337) X
+ f.add(new Character('\u0D0A')); // (3338) X
+ f.add(new Character('\u0D0B')); // (3339) X
+ f.add(new Character('\u0D0C')); // (3340) X
+ f.add(new Character('\u0D0E')); // (3342) X
+ f.add(new Character('\u0D0F')); // (3343) X
+ f.add(new Character('\u0D10')); // (3344) X
+ f.add(new Character('\u0D12')); // (3346) X
+ f.add(new Character('\u0D13')); // (3347) X
+ f.add(new Character('\u0D14')); // (3348) X
+ f.add(new Character('\u0D15')); // (3349) X
+ f.add(new Character('\u0D16')); // (3350) X
+ f.add(new Character('\u0D17')); // (3351) X
+ f.add(new Character('\u0D18')); // (3352) X
+ f.add(new Character('\u0D19')); // (3353) X
+ f.add(new Character('\u0D1A')); // (3354) X
+ f.add(new Character('\u0D1B')); // (3355) X
+ f.add(new Character('\u0D1C')); // (3356) X
+ f.add(new Character('\u0D1D')); // (3357) X
+ f.add(new Character('\u0D1E')); // (3358) X
+ f.add(new Character('\u0D1F')); // (3359) X
+ f.add(new Character('\u0D20')); // (3360) X
+ f.add(new Character('\u0D21')); // (3361) X
+ f.add(new Character('\u0D22')); // (3362) X
+ f.add(new Character('\u0D23')); // (3363) X
+ f.add(new Character('\u0D24')); // (3364) X
+ f.add(new Character('\u0D25')); // (3365) X
+ f.add(new Character('\u0D26')); // (3366) X
+ f.add(new Character('\u0D27')); // (3367) X
+ f.add(new Character('\u0D28')); // (3368) X
+ f.add(new Character('\u0D2A')); // (3370) X
+ f.add(new Character('\u0D2B')); // (3371) X
+ f.add(new Character('\u0D2C')); // (3372) X
+ f.add(new Character('\u0D2D')); // (3373) X
+ f.add(new Character('\u0D2E')); // (3374) X
+ f.add(new Character('\u0D2F')); // (3375) X
+ f.add(new Character('\u0D30')); // (3376) X
+ f.add(new Character('\u0D31')); // (3377) X
+ f.add(new Character('\u0D32')); // (3378) X
+ f.add(new Character('\u0D33')); // (3379) X
+ f.add(new Character('\u0D34')); // (3380) X
+ f.add(new Character('\u0D35')); // (3381) X
+ f.add(new Character('\u0D36')); // (3382) X
+ f.add(new Character('\u0D37')); // (3383) X
+ f.add(new Character('\u0D38')); // (3384) X
+ f.add(new Character('\u0D39')); // (3385) X
+ f.add(new Character('\u0D60')); // (3424) X
+ f.add(new Character('\u0D61')); // (3425) X
+ f.add(new Character('\u0E01')); // (3585) X
+ f.add(new Character('\u0E02')); // (3586) X
+ f.add(new Character('\u0E03')); // (3587) X
+ f.add(new Character('\u0E04')); // (3588) X
+ f.add(new Character('\u0E05')); // (3589) X
+ f.add(new Character('\u0E06')); // (3590) X
+ f.add(new Character('\u0E07')); // (3591) X
+ f.add(new Character('\u0E08')); // (3592) X
+ f.add(new Character('\u0E09')); // (3593) X
+ f.add(new Character('\u0E0A')); // (3594) X
+ f.add(new Character('\u0E0B')); // (3595) X
+ f.add(new Character('\u0E0C')); // (3596) X
+ f.add(new Character('\u0E0D')); // (3597) X
+ f.add(new Character('\u0E0E')); // (3598) X
+ f.add(new Character('\u0E0F')); // (3599) X
+ f.add(new Character('\u0E10')); // (3600) X
+ f.add(new Character('\u0E11')); // (3601) X
+ f.add(new Character('\u0E12')); // (3602) X
+ f.add(new Character('\u0E13')); // (3603) X
+ f.add(new Character('\u0E14')); // (3604) X
+ f.add(new Character('\u0E15')); // (3605) X
+ f.add(new Character('\u0E16')); // (3606) X
+ f.add(new Character('\u0E17')); // (3607) X
+ f.add(new Character('\u0E18')); // (3608) X
+ f.add(new Character('\u0E19')); // (3609) X
+ f.add(new Character('\u0E1A')); // (3610) X
+ f.add(new Character('\u0E1B')); // (3611) X
+ f.add(new Character('\u0E1C')); // (3612) X
+ f.add(new Character('\u0E1D')); // (3613) X
+ f.add(new Character('\u0E1E')); // (3614) X
+ f.add(new Character('\u0E1F')); // (3615) X
+ f.add(new Character('\u0E20')); // (3616) X
+ f.add(new Character('\u0E21')); // (3617) X
+ f.add(new Character('\u0E22')); // (3618) X
+ f.add(new Character('\u0E23')); // (3619) X
+ f.add(new Character('\u0E24')); // (3620) X
+ f.add(new Character('\u0E25')); // (3621) X
+ f.add(new Character('\u0E26')); // (3622) X
+ f.add(new Character('\u0E27')); // (3623) X
+ f.add(new Character('\u0E28')); // (3624) X
+ f.add(new Character('\u0E29')); // (3625) X
+ f.add(new Character('\u0E2A')); // (3626) X
+ f.add(new Character('\u0E2B')); // (3627) X
+ f.add(new Character('\u0E2C')); // (3628) X
+ f.add(new Character('\u0E2D')); // (3629) X
+ f.add(new Character('\u0E2E')); // (3630) X
+ f.add(new Character('\u0E30')); // (3632) X
+ f.add(new Character('\u0E32')); // (3634) X
+ f.add(new Character('\u0E33')); // (3635) X
+ f.add(new Character('\u0E40')); // (3648) X
+ f.add(new Character('\u0E41')); // (3649) X
+ f.add(new Character('\u0E42')); // (3650) X
+ f.add(new Character('\u0E43')); // (3651) X
+ f.add(new Character('\u0E44')); // (3652) X
+ f.add(new Character('\u0E45')); // (3653) X
+ f.add(new Character('\u0E46')); // (3654) X
+ f.add(new Character('\u0E81')); // (3713) X
+ f.add(new Character('\u0E82')); // (3714) X
+ f.add(new Character('\u0E84')); // (3716) X
+ f.add(new Character('\u0E87')); // (3719) X
+ f.add(new Character('\u0E88')); // (3720) X
+ f.add(new Character('\u0E8A')); // (3722) X
+ f.add(new Character('\u0E8D')); // (3725) X
+ f.add(new Character('\u0E94')); // (3732) X
+ f.add(new Character('\u0E95')); // (3733) X
+ f.add(new Character('\u0E96')); // (3734) X
+ f.add(new Character('\u0E97')); // (3735) X
+ f.add(new Character('\u0E99')); // (3737) X
+ f.add(new Character('\u0E9A')); // (3738) X
+ f.add(new Character('\u0E9B')); // (3739) X
+ f.add(new Character('\u0E9C')); // (3740) X
+ f.add(new Character('\u0E9D')); // (3741) X
+ f.add(new Character('\u0E9E')); // (3742) X
+ f.add(new Character('\u0E9F')); // (3743) X
+ f.add(new Character('\u0EA1')); // (3745) X
+ f.add(new Character('\u0EA2')); // (3746) X
+ f.add(new Character('\u0EA3')); // (3747) X
+ f.add(new Character('\u0EA5')); // (3749) X
+ f.add(new Character('\u0EA7')); // (3751) X
+ f.add(new Character('\u0EAA')); // (3754) X
+ f.add(new Character('\u0EAB')); // (3755) X
+ f.add(new Character('\u0EAD')); // (3757) X
+ f.add(new Character('\u0EAE')); // (3758) X
+ f.add(new Character('\u0EB0')); // (3760) X
+ f.add(new Character('\u0EB2')); // (3762) X
+ f.add(new Character('\u0EB3')); // (3763) X
+ f.add(new Character('\u0EBD')); // (3773) X
+ f.add(new Character('\u0EC0')); // (3776) X
+ f.add(new Character('\u0EC1')); // (3777) X
+ f.add(new Character('\u0EC2')); // (3778) X
+ f.add(new Character('\u0EC3')); // (3779) X
+ f.add(new Character('\u0EC4')); // (3780) X
+ f.add(new Character('\u0EC6')); // (3782) X
+ f.add(new Character('\u0EDC')); // (3804) X
+ f.add(new Character('\u0EDD')); // (3805) X
+ f.add(new Character('\u0F40')); // (3904) X
+ f.add(new Character('\u0F41')); // (3905) X
+ f.add(new Character('\u0F42')); // (3906) X
+ f.add(new Character('\u0F43')); // (3907) X
+ f.add(new Character('\u0F44')); // (3908) X
+ f.add(new Character('\u0F45')); // (3909) X
+ f.add(new Character('\u0F46')); // (3910) X
+ f.add(new Character('\u0F47')); // (3911) X
+ f.add(new Character('\u0F49')); // (3913) X
+ f.add(new Character('\u0F4A')); // (3914) X
+ f.add(new Character('\u0F4B')); // (3915) X
+ f.add(new Character('\u0F4C')); // (3916) X
+ f.add(new Character('\u0F4D')); // (3917) X
+ f.add(new Character('\u0F4E')); // (3918) X
+ f.add(new Character('\u0F4F')); // (3919) X
+ f.add(new Character('\u0F50')); // (3920) X
+ f.add(new Character('\u0F51')); // (3921) X
+ f.add(new Character('\u0F52')); // (3922) X
+ f.add(new Character('\u0F53')); // (3923) X
+ f.add(new Character('\u0F54')); // (3924) X
+ f.add(new Character('\u0F55')); // (3925) X
+ f.add(new Character('\u0F56')); // (3926) X
+ f.add(new Character('\u0F57')); // (3927) X
+ f.add(new Character('\u0F58')); // (3928) X
+ f.add(new Character('\u0F59')); // (3929) X
+ f.add(new Character('\u0F5A')); // (3930) X
+ f.add(new Character('\u0F5B')); // (3931) X
+ f.add(new Character('\u0F5C')); // (3932) X
+ f.add(new Character('\u0F5D')); // (3933) X
+ f.add(new Character('\u0F5E')); // (3934) X
+ f.add(new Character('\u0F5F')); // (3935) X
+ f.add(new Character('\u0F60')); // (3936) X
+ f.add(new Character('\u0F61')); // (3937) X
+ f.add(new Character('\u0F62')); // (3938) X
+ f.add(new Character('\u0F63')); // (3939) X
+ f.add(new Character('\u0F64')); // (3940) X
+ f.add(new Character('\u0F65')); // (3941) X
+ f.add(new Character('\u0F66')); // (3942) X
+ f.add(new Character('\u0F67')); // (3943) X
+ f.add(new Character('\u0F68')); // (3944) X
+ f.add(new Character('\u0F69')); // (3945) X
+
+ return f;
+ }
+
+ /**
+ * Initializes ordinary characters for iSeries.
+ * Has a side-effect of adding the HashSet to ordinaryFlagsSet.
+ * @return The HashSet
+ */
+ protected static HashSet<Character> initOrdinaryFlags400()
+ {
+ // For 400:
+ HashSet<Character> f = new HashSet<Character>(349);
+ ordinaryFlagsSet.put(PLATFORM_400_KEY, f);
+ f.add(new Character('\u0023')); // (35) #
+ f.add(new Character('\u0024')); // (36) $
+ f.add(new Character('\u0040')); // (64) @
+ initCommonOrdinaryFlags(f);
+ return f;
+ }
+
+ /**
+ * Initializes ordinary characters for zSeries.
+ * Has a side-effect of adding the HashSet to ordinaryFlagsSet.
+ * @return The HashSet
+ */
+ protected static HashSet<Character> initOrdinaryFlags390()
+ {
+ // For 390:
+ HashSet<Character> f = new HashSet<Character>(349);
+ ordinaryFlagsSet.put(PLATFORM_390_KEY, f);
+ f.add(new Character('\u0023')); // (35) #
+ f.add(new Character('\u0024')); // (36) $
+ f.add(new Character('\u0040')); // (64) @
+ initCommonOrdinaryFlags(f);
+ return f;
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for all languages.
+ * @param f The HashSet
+ */
+ protected static void initCommonOrdinaryFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u0041')); // ( 65) A
+ f.add(new Character('\u0042')); // ( 66) B
+ f.add(new Character('\u0043')); // ( 67) C
+ f.add(new Character('\u0044')); // ( 68) D
+ f.add(new Character('\u0045')); // ( 69) E
+ f.add(new Character('\u0046')); // ( 70) F
+ f.add(new Character('\u0047')); // ( 71) G
+ f.add(new Character('\u0048')); // ( 72) H
+ f.add(new Character('\u0049')); // ( 73) I
+ f.add(new Character('\u004A')); // ( 74) J
+ f.add(new Character('\u004B')); // ( 75) K
+ f.add(new Character('\u004C')); // ( 76) L
+ f.add(new Character('\u004D')); // ( 77) M
+ f.add(new Character('\u004E')); // ( 78) N
+ f.add(new Character('\u004F')); // ( 79) O
+ f.add(new Character('\u0050')); // ( 80) P
+ f.add(new Character('\u0051')); // ( 81) Q
+ f.add(new Character('\u0052')); // ( 82) R
+ f.add(new Character('\u0053')); // ( 83) S
+ f.add(new Character('\u0054')); // ( 84) T
+ f.add(new Character('\u0055')); // ( 85) U
+ f.add(new Character('\u0056')); // ( 86) V
+ f.add(new Character('\u0057')); // ( 87) W
+ f.add(new Character('\u0058')); // ( 88) X
+ f.add(new Character('\u0059')); // ( 89) Y
+ f.add(new Character('\u005A')); // ( 90) Z
+ f.add(new Character('\u0061')); // ( 97) a
+ f.add(new Character('\u0062')); // ( 98) b
+ f.add(new Character('\u0063')); // ( 99) c
+ f.add(new Character('\u0064')); // ( 100) d
+ f.add(new Character('\u0065')); // ( 101) e
+ f.add(new Character('\u0066')); // ( 102) f
+ f.add(new Character('\u0067')); // ( 103) g
+ f.add(new Character('\u0068')); // ( 104) h
+ f.add(new Character('\u0069')); // ( 105) i
+ f.add(new Character('\u006A')); // ( 106) j
+ f.add(new Character('\u006B')); // ( 107) k
+ f.add(new Character('\u006C')); // ( 108) l
+ f.add(new Character('\u006D')); // ( 109) m
+ f.add(new Character('\u006E')); // ( 110) n
+ f.add(new Character('\u006F')); // ( 111) o
+ f.add(new Character('\u0070')); // ( 112) p
+ f.add(new Character('\u0071')); // ( 113) q
+ f.add(new Character('\u0072')); // ( 114) r
+ f.add(new Character('\u0073')); // ( 115) s
+ f.add(new Character('\u0074')); // ( 116) t
+ f.add(new Character('\u0075')); // ( 117) u
+ f.add(new Character('\u0076')); // ( 118) v
+ f.add(new Character('\u0077')); // ( 119) w
+ f.add(new Character('\u0078')); // ( 120) x
+ f.add(new Character('\u0079')); // ( 121) y
+ f.add(new Character('\u007A')); // ( 122) z
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for a given language.
+ * @param f The HashSet
+ * @param locale The locale of the database.
+ */
+ protected static void initOrdinaryFlagsLUWO(HashSet<Character> f, Locale locale)
+ {
+ // Get the code page of the database and arrange the init methods
+ // according to code page; check Linux, AIX, etc.
+ // Default to anything goes?
+ String lang = locale.getLanguage();
+ if (lang.equalsIgnoreCase("cs")) //$NON-NLS-1$
+ {
+ initCSFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("de")) //$NON-NLS-1$
+ {
+ initDEFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("es")) //$NON-NLS-1$
+ {
+ initESFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("fr")) //$NON-NLS-1$
+ {
+ initFRFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("hu")) //$NON-NLS-1$
+ {
+ initHUFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("it")) //$NON-NLS-1$
+ {
+ initITFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("ja")) //$NON-NLS-1$
+ {
+ initJAFlags(f);
+ }
+ else if (lang.equalsIgnoreCase("ko")) //$NON-NLS-1$
+ {
+ initKOFlags(f);
+ }
+ else if (lang.equalsIgnoreCase("pl")) //$NON-NLS-1$
+ {
+ initPLFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("pt")) //$NON-NLS-1$
+ {
+ initPTFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("ru")) //$NON-NLS-1$
+ {
+ initRUFlags(f);
+ init_EU_Flags(f);
+ }
+ else if (lang.equalsIgnoreCase("zh")) //$NON-NLS-1$
+ {
+ String country = locale.getCountry();
+ if (country.equalsIgnoreCase("TW")) //$NON-NLS-1$
+ {
+ initTWFlags(f);
+ }
+ else
+ {
+ initZHFlags(f);
+ }
+ }
+ else //if (lang.equalsIgnoreCase("en"))
+ {
+ initENFlags(f);
+ init_EU_Flags(f);
+ }
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the EN language.
+ * @param f The HashSet
+ */
+ protected static void initENFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00AA')); // ( 170) feminine_ordinal
+ f.add(new Character('\u00BA')); // ( 186) masculine_ordinal
+ f.add(new Character('\u00C0')); // ( 192) A_grave
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C3')); // ( 195) A_tilde
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C5')); // ( 197) A_ring
+ f.add(new Character('\u00C6')); // ( 198) AE_ligature
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C8')); // ( 200) E_grave
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CA')); // ( 202) E_circumflex
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CC')); // ( 204) I_grave
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00CF')); // ( 207) I_umlaut
+ f.add(new Character('\u00D0')); // ( 208) ETH_Q
+ f.add(new Character('\u00D1')); // ( 209) N_tilde
+ f.add(new Character('\u00D2')); // ( 210) O_grave
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D5')); // ( 213) O_tilde
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00D8')); // ( 216) O_slash
+ f.add(new Character('\u00D9')); // ( 217) U_grave
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DB')); // ( 219) U_circumflex
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DE')); // ( 222) THORN
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E0')); // ( 224) a_grave
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E3')); // ( 227) a_tilde
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E5')); // ( 229) a_ring
+ f.add(new Character('\u00E6')); // ( 230) ae_ligature
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E8')); // ( 232) e_grave
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EA')); // ( 234) e_circumflex
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00EC')); // ( 236) i_grave
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00EF')); // ( 239) i_umlaut
+ f.add(new Character('\u00F0')); // ( 240) eth
+ f.add(new Character('\u00F1')); // ( 241) n_tilde
+ f.add(new Character('\u00F2')); // ( 242) o_grave
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F5')); // ( 245) o_tilde
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00F8')); // ( 248) o_slash
+ f.add(new Character('\u00F9')); // ( 249) u_grave
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FB')); // ( 251) u_circumflex
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u00FE')); // ( 254) thorn
+ f.add(new Character('\u00FF')); // ( 255) y_umlaut
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the ZH language.
+ * @param f The HashSet
+ */
+ protected static void init_EU_Flags(HashSet<Character> f)
+ {
+ f.add(new Character('\uFF03')); // (65283) X
+ f.add(new Character('\uFF04')); // (65284) X
+ f.add(new Character('\uFF20')); // (65312) X
+ f.add(new Character('\uFF21')); // (65313) X
+ f.add(new Character('\uFF22')); // (65314) X
+ f.add(new Character('\uFF23')); // (65315) X
+ f.add(new Character('\uFF24')); // (65316) X
+ f.add(new Character('\uFF25')); // (65317) X
+ f.add(new Character('\uFF26')); // (65318) X
+ f.add(new Character('\uFF27')); // (65319) X
+ f.add(new Character('\uFF28')); // (65320) X
+ f.add(new Character('\uFF29')); // (65321) X
+ f.add(new Character('\uFF2A')); // (65322) X
+ f.add(new Character('\uFF2B')); // (65323) X
+ f.add(new Character('\uFF2C')); // (65324) X
+ f.add(new Character('\uFF2D')); // (65325) X
+ f.add(new Character('\uFF2E')); // (65326) X
+ f.add(new Character('\uFF2F')); // (65327) X
+ f.add(new Character('\uFF30')); // (65328) X
+ f.add(new Character('\uFF31')); // (65329) X
+ f.add(new Character('\uFF32')); // (65330) X
+ f.add(new Character('\uFF33')); // (65331) X
+ f.add(new Character('\uFF34')); // (65332) X
+ f.add(new Character('\uFF35')); // (65333) X
+ f.add(new Character('\uFF36')); // (65334) X
+ f.add(new Character('\uFF37')); // (65335) X
+ f.add(new Character('\uFF38')); // (65336) X
+ f.add(new Character('\uFF39')); // (65337) X
+ f.add(new Character('\uFF3A')); // (65338) X
+ f.add(new Character('\uFF41')); // (65345) X
+ f.add(new Character('\uFF42')); // (65346) X
+ f.add(new Character('\uFF43')); // (65347) X
+ f.add(new Character('\uFF44')); // (65348) X
+ f.add(new Character('\uFF45')); // (65349) X
+ f.add(new Character('\uFF46')); // (65350) X
+ f.add(new Character('\uFF47')); // (65351) X
+ f.add(new Character('\uFF48')); // (65352) X
+ f.add(new Character('\uFF49')); // (65353) X
+ f.add(new Character('\uFF4A')); // (65354) X
+ f.add(new Character('\uFF4B')); // (65355) X
+ f.add(new Character('\uFF4C')); // (65356) X
+ f.add(new Character('\uFF4D')); // (65357) X
+ f.add(new Character('\uFF4E')); // (65358) X
+ f.add(new Character('\uFF4F')); // (65359) X
+ f.add(new Character('\uFF50')); // (65360) X
+ f.add(new Character('\uFF51')); // (65361) X
+ f.add(new Character('\uFF52')); // (65362) X
+ f.add(new Character('\uFF53')); // (65363) X
+ f.add(new Character('\uFF54')); // (65364) X
+ f.add(new Character('\uFF55')); // (65365) X
+ f.add(new Character('\uFF56')); // (65366) X
+ f.add(new Character('\uFF57')); // (65367) X
+ f.add(new Character('\uFF58')); // (65368) X
+ f.add(new Character('\uFF59')); // (65369) X
+ f.add(new Character('\uFF5A')); // (65370) X
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the ZH language.
+ * @param f The HashSet
+ */
+ protected static void initZHFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00A4')); // ( 164) currency
+ f.add(new Character('\u00A7')); // ( 167) SECTION
+ f.add(new Character('\u00A8')); // ( 168) diaeresis
+ f.add(new Character('\u00B0')); // ( 176) degree
+ f.add(new Character('\u00B1')); // ( 177) plus_minus
+ f.add(new Character('\u00B7')); // ( 183) middot
+ f.add(new Character('\u00D7')); // ( 215) times
+ f.add(new Character('\u00E0')); // ( 224) a_grave
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E8')); // ( 232) e_grave
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EA')); // ( 234) e_circumflex
+ f.add(new Character('\u00EC')); // ( 236) i_grave
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00F2')); // ( 242) o_grave
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F9')); // ( 249) u_grave
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u0101')); // ( 257) a_bar
+ f.add(new Character('\u0113')); // ( 275) e_macron
+ f.add(new Character('\u011B')); // ( 283) e_caron
+ f.add(new Character('\u012B')); // ( 299) i_macron
+ f.add(new Character('\u0144')); // ( 324) n_acute
+ f.add(new Character('\u0148')); // ( 328) n_caron
+ f.add(new Character('\u014D')); // ( 333) o_macron
+ f.add(new Character('\u016B')); // ( 363) u_macron
+ f.add(new Character('\u01CE')); // ( 462) X
+ f.add(new Character('\u01D0')); // ( 464) X
+ f.add(new Character('\u01D2')); // ( 466) X
+ f.add(new Character('\u01D4')); // ( 468) X
+ f.add(new Character('\u01D6')); // ( 470) X
+ f.add(new Character('\u01D8')); // ( 472) X
+ f.add(new Character('\u01DA')); // ( 474) X
+ f.add(new Character('\u01DC')); // ( 476) X
+ f.add(new Character('\u01F9')); // ( 505) X
+ f.add(new Character('\u0251')); // ( 593) X
+ f.add(new Character('\u0261')); // ( 609) X
+ f.add(new Character('\u02C7')); // ( 711) X
+ f.add(new Character('\u02C9')); // ( 713) X
+ f.add(new Character('\u02CA')); // ( 714) X
+ f.add(new Character('\u02CB')); // ( 715) X
+ f.add(new Character('\u02D9')); // ( 729) X
+ f.add(new Character('\u0391')); // ( 913) X
+ f.add(new Character('\u0392')); // ( 914) X
+ f.add(new Character('\u0393')); // ( 915) X
+ f.add(new Character('\u0394')); // ( 916) X
+ f.add(new Character('\u0395')); // ( 917) X
+ f.add(new Character('\u0396')); // ( 918) X
+ f.add(new Character('\u0397')); // ( 919) X
+ f.add(new Character('\u0398')); // ( 920) X
+ f.add(new Character('\u0399')); // ( 921) X
+ f.add(new Character('\u039A')); // ( 922) X
+ f.add(new Character('\u039B')); // ( 923) X
+ f.add(new Character('\u039C')); // ( 924) X
+ f.add(new Character('\u039D')); // ( 925) X
+ f.add(new Character('\u039E')); // ( 926) X
+ f.add(new Character('\u039F')); // ( 927) X
+ f.add(new Character('\u03A0')); // ( 928) X
+ f.add(new Character('\u03A1')); // ( 929) X
+ f.add(new Character('\u03A3')); // ( 931) X
+ f.add(new Character('\u03A4')); // ( 932) X
+ f.add(new Character('\u03A5')); // ( 933) X
+ f.add(new Character('\u03A6')); // ( 934) X
+ f.add(new Character('\u03A7')); // ( 935) X
+ f.add(new Character('\u03A8')); // ( 936) X
+ f.add(new Character('\u03A9')); // ( 937) X
+ f.add(new Character('\u03B1')); // ( 945) X
+ f.add(new Character('\u03B2')); // ( 946) X
+ f.add(new Character('\u03B3')); // ( 947) X
+ f.add(new Character('\u03B4')); // ( 948) X
+ f.add(new Character('\u03B5')); // ( 949) X
+ f.add(new Character('\u03B6')); // ( 950) X
+ f.add(new Character('\u03B7')); // ( 951) X
+ f.add(new Character('\u03B8')); // ( 952) X
+ f.add(new Character('\u03B9')); // ( 953) X
+ f.add(new Character('\u03BA')); // ( 954) X
+ f.add(new Character('\u03BB')); // ( 955) X
+ f.add(new Character('\u03BC')); // ( 956) X
+ f.add(new Character('\u03BD')); // ( 957) X
+ f.add(new Character('\u03BE')); // ( 958) X
+ f.add(new Character('\u03BF')); // ( 959) X
+ f.add(new Character('\u03C0')); // ( 960) X
+ f.add(new Character('\u03C1')); // ( 961) X
+ f.add(new Character('\u03C3')); // ( 963) X
+ f.add(new Character('\u03C4')); // ( 964) X
+ f.add(new Character('\u03C5')); // ( 965) X
+ f.add(new Character('\u03C6')); // ( 966) X
+ f.add(new Character('\u03C7')); // ( 967) X
+ f.add(new Character('\u03C8')); // ( 968) X
+ f.add(new Character('\u03C9')); // ( 969) X
+ f.add(new Character('\u0401')); // ( 1025) X
+ f.add(new Character('\u0410')); // ( 1040) X
+ f.add(new Character('\u0411')); // ( 1041) X
+ f.add(new Character('\u0412')); // ( 1042) X
+ f.add(new Character('\u0413')); // ( 1043) X
+ f.add(new Character('\u0414')); // ( 1044) X
+ f.add(new Character('\u0415')); // ( 1045) X
+ f.add(new Character('\u0416')); // ( 1046) X
+ f.add(new Character('\u0417')); // ( 1047) X
+ f.add(new Character('\u0418')); // ( 1048) X
+ f.add(new Character('\u0419')); // ( 1049) X
+ f.add(new Character('\u041A')); // ( 1050) X
+ f.add(new Character('\u041B')); // ( 1051) X
+ f.add(new Character('\u041C')); // ( 1052) X
+ f.add(new Character('\u041D')); // ( 1053) X
+ f.add(new Character('\u041E')); // ( 1054) X
+ f.add(new Character('\u041F')); // ( 1055) X
+ f.add(new Character('\u0420')); // ( 1056) X
+ f.add(new Character('\u0421')); // ( 1057) X
+ f.add(new Character('\u0422')); // ( 1058) X
+ f.add(new Character('\u0423')); // ( 1059) X
+ f.add(new Character('\u0424')); // ( 1060) X
+ f.add(new Character('\u0425')); // ( 1061) X
+ f.add(new Character('\u0426')); // ( 1062) X
+ f.add(new Character('\u0427')); // ( 1063) X
+ f.add(new Character('\u0428')); // ( 1064) X
+ f.add(new Character('\u0429')); // ( 1065) X
+ f.add(new Character('\u042A')); // ( 1066) X
+ f.add(new Character('\u042B')); // ( 1067) X
+ f.add(new Character('\u042C')); // ( 1068) X
+ f.add(new Character('\u042D')); // ( 1069) X
+ f.add(new Character('\u042E')); // ( 1070) X
+ f.add(new Character('\u042F')); // ( 1071) X
+ f.add(new Character('\u0430')); // ( 1072) X
+ f.add(new Character('\u0431')); // ( 1073) X
+ f.add(new Character('\u0432')); // ( 1074) X
+ f.add(new Character('\u0433')); // ( 1075) X
+ f.add(new Character('\u0434')); // ( 1076) X
+ f.add(new Character('\u0435')); // ( 1077) X
+ f.add(new Character('\u0436')); // ( 1078) X
+ f.add(new Character('\u0437')); // ( 1079) X
+ f.add(new Character('\u0438')); // ( 1080) X
+ f.add(new Character('\u0439')); // ( 1081) X
+ f.add(new Character('\u043A')); // ( 1082) X
+ f.add(new Character('\u043B')); // ( 1083) X
+ f.add(new Character('\u043C')); // ( 1084) X
+ f.add(new Character('\u043D')); // ( 1085) X
+ f.add(new Character('\u043E')); // ( 1086) X
+ f.add(new Character('\u043F')); // ( 1087) X
+ f.add(new Character('\u0440')); // ( 1088) X
+ f.add(new Character('\u0441')); // ( 1089) X
+ f.add(new Character('\u0442')); // ( 1090) X
+ f.add(new Character('\u0443')); // ( 1091) X
+ f.add(new Character('\u0444')); // ( 1092) X
+ f.add(new Character('\u0445')); // ( 1093) X
+ f.add(new Character('\u0446')); // ( 1094) X
+ f.add(new Character('\u0447')); // ( 1095) X
+ f.add(new Character('\u0448')); // ( 1096) X
+ f.add(new Character('\u0449')); // ( 1097) X
+ f.add(new Character('\u044A')); // ( 1098) X
+ f.add(new Character('\u044B')); // ( 1099) X
+ f.add(new Character('\u044C')); // ( 1100) X
+ f.add(new Character('\u044D')); // ( 1101) X
+ f.add(new Character('\u044E')); // ( 1102) X
+ f.add(new Character('\u044F')); // ( 1103) X
+ f.add(new Character('\u0451')); // ( 1105) X
+ f.add(new Character('\u2010')); // ( 8208) X
+ f.add(new Character('\u2013')); // ( 8211) X
+ f.add(new Character('\u2014')); // ( 8212) X
+ f.add(new Character('\u2015')); // ( 8213) X
+ f.add(new Character('\u2016')); // ( 8214) X
+ f.add(new Character('\u2018')); // ( 8216) X
+ f.add(new Character('\u2019')); // ( 8217) X
+ f.add(new Character('\u201C')); // ( 8220) X
+ f.add(new Character('\u201D')); // ( 8221) X
+ f.add(new Character('\u2025')); // ( 8229) X
+ f.add(new Character('\u2026')); // ( 8230) X
+ f.add(new Character('\u2030')); // ( 8240) X
+ f.add(new Character('\u2032')); // ( 8242) X
+ f.add(new Character('\u2033')); // ( 8243) X
+ f.add(new Character('\u2035')); // ( 8245) X
+ f.add(new Character('\u203B')); // ( 8251) X
+ f.add(new Character('\u20AC')); // ( 8364) X
+ f.add(new Character('\u2103')); // ( 8451) X
+ f.add(new Character('\u2105')); // ( 8453) X
+ f.add(new Character('\u2109')); // ( 8457) X
+ f.add(new Character('\u2116')); // ( 8470) X
+ f.add(new Character('\u2121')); // ( 8481) X
+ f.add(new Character('\u2160')); // ( 8544) X
+ f.add(new Character('\u2161')); // ( 8545) X
+ f.add(new Character('\u2162')); // ( 8546) X
+ f.add(new Character('\u2163')); // ( 8547) X
+ f.add(new Character('\u2164')); // ( 8548) X
+ f.add(new Character('\u2165')); // ( 8549) X
+ f.add(new Character('\u2166')); // ( 8550) X
+ f.add(new Character('\u2167')); // ( 8551) X
+ f.add(new Character('\u2168')); // ( 8552) X
+ f.add(new Character('\u2169')); // ( 8553) X
+ f.add(new Character('\u216A')); // ( 8554) X
+ f.add(new Character('\u216B')); // ( 8555) X
+ f.add(new Character('\u2170')); // ( 8560) X
+ f.add(new Character('\u2171')); // ( 8561) X
+ f.add(new Character('\u2172')); // ( 8562) X
+ f.add(new Character('\u2173')); // ( 8563) X
+ f.add(new Character('\u2174')); // ( 8564) X
+ f.add(new Character('\u2175')); // ( 8565) X
+ f.add(new Character('\u2176')); // ( 8566) X
+ f.add(new Character('\u2177')); // ( 8567) X
+ f.add(new Character('\u2178')); // ( 8568) X
+ f.add(new Character('\u2179')); // ( 8569) X
+ f.add(new Character('\u2190')); // ( 8592) X
+ f.add(new Character('\u2191')); // ( 8593) X
+ f.add(new Character('\u2192')); // ( 8594) X
+ f.add(new Character('\u2193')); // ( 8595) X
+ f.add(new Character('\u2196')); // ( 8598) X
+ f.add(new Character('\u2197')); // ( 8599) X
+ f.add(new Character('\u2198')); // ( 8600) X
+ f.add(new Character('\u2199')); // ( 8601) X
+ f.add(new Character('\u2208')); // ( 8712) X
+ f.add(new Character('\u220F')); // ( 8719) X
+ f.add(new Character('\u2211')); // ( 8721) X
+ f.add(new Character('\u2215')); // ( 8725) X
+ f.add(new Character('\u221A')); // ( 8730) X
+ f.add(new Character('\u221D')); // ( 8733) X
+ f.add(new Character('\u221E')); // ( 8734) X
+ f.add(new Character('\u221F')); // ( 8735) X
+ f.add(new Character('\u2220')); // ( 8736) X
+ f.add(new Character('\u2223')); // ( 8739) X
+ f.add(new Character('\u2225')); // ( 8741) X
+ f.add(new Character('\u2227')); // ( 8743) X
+ f.add(new Character('\u2228')); // ( 8744) X
+ f.add(new Character('\u2229')); // ( 8745) X
+ f.add(new Character('\u222A')); // ( 8746) X
+ f.add(new Character('\u222B')); // ( 8747) X
+ f.add(new Character('\u222E')); // ( 8750) X
+ f.add(new Character('\u2234')); // ( 8756) X
+ f.add(new Character('\u2235')); // ( 8757) X
+ f.add(new Character('\u2236')); // ( 8758) X
+ f.add(new Character('\u2237')); // ( 8759) X
+ f.add(new Character('\u223D')); // ( 8765) X
+ f.add(new Character('\u2248')); // ( 8776) X
+ f.add(new Character('\u224C')); // ( 8780) X
+ f.add(new Character('\u2252')); // ( 8786) X
+ f.add(new Character('\u2260')); // ( 8800) X
+ f.add(new Character('\u2261')); // ( 8801) X
+ f.add(new Character('\u2264')); // ( 8804) X
+ f.add(new Character('\u2265')); // ( 8805) X
+ f.add(new Character('\u2266')); // ( 8806) X
+ f.add(new Character('\u2267')); // ( 8807) X
+ f.add(new Character('\u226E')); // ( 8814) X
+ f.add(new Character('\u226F')); // ( 8815) X
+ f.add(new Character('\u2295')); // ( 8853) X
+ f.add(new Character('\u2299')); // ( 8857) X
+ f.add(new Character('\u22A5')); // ( 8869) X
+ f.add(new Character('\u22BF')); // ( 8895) X
+ f.add(new Character('\u2312')); // ( 8978) X
+ f.add(new Character('\u2460')); // ( 9312) X
+ f.add(new Character('\u2461')); // ( 9313) X
+ f.add(new Character('\u2462')); // ( 9314) X
+ f.add(new Character('\u2463')); // ( 9315) X
+ f.add(new Character('\u2464')); // ( 9316) X
+ f.add(new Character('\u2465')); // ( 9317) X
+ f.add(new Character('\u2466')); // ( 9318) X
+ f.add(new Character('\u2467')); // ( 9319) X
+ f.add(new Character('\u2468')); // ( 9320) X
+ f.add(new Character('\u2469')); // ( 9321) X
+ f.add(new Character('\u2474')); // ( 9332) X
+ f.add(new Character('\u2475')); // ( 9333) X
+ f.add(new Character('\u2476')); // ( 9334) X
+ f.add(new Character('\u2477')); // ( 9335) X
+ f.add(new Character('\u2478')); // ( 9336) X
+ f.add(new Character('\u2479')); // ( 9337) X
+ f.add(new Character('\u247A')); // ( 9338) X
+ f.add(new Character('\u247B')); // ( 9339) X
+ f.add(new Character('\u247C')); // ( 9340) X
+ f.add(new Character('\u247D')); // ( 9341) X
+ f.add(new Character('\u247E')); // ( 9342) X
+ f.add(new Character('\u247F')); // ( 9343) X
+ f.add(new Character('\u2480')); // ( 9344) X
+ f.add(new Character('\u2481')); // ( 9345) X
+ f.add(new Character('\u2482')); // ( 9346) X
+ f.add(new Character('\u2483')); // ( 9347) X
+ f.add(new Character('\u2484')); // ( 9348) X
+ f.add(new Character('\u2485')); // ( 9349) X
+ f.add(new Character('\u2486')); // ( 9350) X
+ f.add(new Character('\u2487')); // ( 9351) X
+ f.add(new Character('\u2488')); // ( 9352) X
+ f.add(new Character('\u2489')); // ( 9353) X
+ f.add(new Character('\u248A')); // ( 9354) X
+ f.add(new Character('\u248B')); // ( 9355) X
+ f.add(new Character('\u248C')); // ( 9356) X
+ f.add(new Character('\u248D')); // ( 9357) X
+ f.add(new Character('\u248E')); // ( 9358) X
+ f.add(new Character('\u248F')); // ( 9359) X
+ f.add(new Character('\u2490')); // ( 9360) X
+ f.add(new Character('\u2491')); // ( 9361) X
+ f.add(new Character('\u2492')); // ( 9362) X
+ f.add(new Character('\u2493')); // ( 9363) X
+ f.add(new Character('\u2494')); // ( 9364) X
+ f.add(new Character('\u2495')); // ( 9365) X
+ f.add(new Character('\u2496')); // ( 9366) X
+ f.add(new Character('\u2497')); // ( 9367) X
+ f.add(new Character('\u2498')); // ( 9368) X
+ f.add(new Character('\u2499')); // ( 9369) X
+ f.add(new Character('\u249A')); // ( 9370) X
+ f.add(new Character('\u249B')); // ( 9371) X
+ f.add(new Character('\u2500')); // ( 9472) X
+ f.add(new Character('\u2501')); // ( 9473) X
+ f.add(new Character('\u2502')); // ( 9474) X
+ f.add(new Character('\u2503')); // ( 9475) X
+ f.add(new Character('\u2504')); // ( 9476) X
+ f.add(new Character('\u2505')); // ( 9477) X
+ f.add(new Character('\u2506')); // ( 9478) X
+ f.add(new Character('\u2507')); // ( 9479) X
+ f.add(new Character('\u2508')); // ( 9480) X
+ f.add(new Character('\u2509')); // ( 9481) X
+ f.add(new Character('\u250A')); // ( 9482) X
+ f.add(new Character('\u250B')); // ( 9483) X
+ f.add(new Character('\u250C')); // ( 9484) X
+ f.add(new Character('\u250D')); // ( 9485) X
+ f.add(new Character('\u250E')); // ( 9486) X
+ f.add(new Character('\u250F')); // ( 9487) X
+ f.add(new Character('\u2510')); // ( 9488) X
+ f.add(new Character('\u2511')); // ( 9489) X
+ f.add(new Character('\u2512')); // ( 9490) X
+ f.add(new Character('\u2513')); // ( 9491) X
+ f.add(new Character('\u2514')); // ( 9492) X
+ f.add(new Character('\u2515')); // ( 9493) X
+ f.add(new Character('\u2516')); // ( 9494) X
+ f.add(new Character('\u2517')); // ( 9495) X
+ f.add(new Character('\u2518')); // ( 9496) X
+ f.add(new Character('\u2519')); // ( 9497) X
+ f.add(new Character('\u251A')); // ( 9498) X
+ f.add(new Character('\u251B')); // ( 9499) X
+ f.add(new Character('\u251C')); // ( 9500) X
+ f.add(new Character('\u251D')); // ( 9501) X
+ f.add(new Character('\u251E')); // ( 9502) X
+ f.add(new Character('\u251F')); // ( 9503) X
+ f.add(new Character('\u2520')); // ( 9504) X
+ f.add(new Character('\u2521')); // ( 9505) X
+ f.add(new Character('\u2522')); // ( 9506) X
+ f.add(new Character('\u2523')); // ( 9507) X
+ f.add(new Character('\u2524')); // ( 9508) X
+ f.add(new Character('\u2525')); // ( 9509) X
+ f.add(new Character('\u2526')); // ( 9510) X
+ f.add(new Character('\u2527')); // ( 9511) X
+ f.add(new Character('\u2528')); // ( 9512) X
+ f.add(new Character('\u2529')); // ( 9513) X
+ f.add(new Character('\u252A')); // ( 9514) X
+ f.add(new Character('\u252B')); // ( 9515) X
+ f.add(new Character('\u252C')); // ( 9516) X
+ f.add(new Character('\u252D')); // ( 9517) X
+ f.add(new Character('\u252E')); // ( 9518) X
+ f.add(new Character('\u252F')); // ( 9519) X
+ f.add(new Character('\u2530')); // ( 9520) X
+ f.add(new Character('\u2531')); // ( 9521) X
+ f.add(new Character('\u2532')); // ( 9522) X
+ f.add(new Character('\u2533')); // ( 9523) X
+ f.add(new Character('\u2534')); // ( 9524) X
+ f.add(new Character('\u2535')); // ( 9525) X
+ f.add(new Character('\u2536')); // ( 9526) X
+ f.add(new Character('\u2537')); // ( 9527) X
+ f.add(new Character('\u2538')); // ( 9528) X
+ f.add(new Character('\u2539')); // ( 9529) X
+ f.add(new Character('\u253A')); // ( 9530) X
+ f.add(new Character('\u253B')); // ( 9531) X
+ f.add(new Character('\u253C')); // ( 9532) X
+ f.add(new Character('\u253D')); // ( 9533) X
+ f.add(new Character('\u253E')); // ( 9534) X
+ f.add(new Character('\u253F')); // ( 9535) X
+ f.add(new Character('\u2540')); // ( 9536) X
+ f.add(new Character('\u2541')); // ( 9537) X
+ f.add(new Character('\u2542')); // ( 9538) X
+ f.add(new Character('\u2543')); // ( 9539) X
+ f.add(new Character('\u2544')); // ( 9540) X
+ f.add(new Character('\u2545')); // ( 9541) X
+ f.add(new Character('\u2546')); // ( 9542) X
+ f.add(new Character('\u2547')); // ( 9543) X
+ f.add(new Character('\u2548')); // ( 9544) X
+ f.add(new Character('\u2549')); // ( 9545) X
+ f.add(new Character('\u254A')); // ( 9546) X
+ f.add(new Character('\u254B')); // ( 9547) X
+ f.add(new Character('\u2550')); // ( 9552) X
+ f.add(new Character('\u2551')); // ( 9553) X
+ f.add(new Character('\u2552')); // ( 9554) X
+ f.add(new Character('\u2553')); // ( 9555) X
+ f.add(new Character('\u2554')); // ( 9556) X
+ f.add(new Character('\u2555')); // ( 9557) X
+ f.add(new Character('\u2556')); // ( 9558) X
+ f.add(new Character('\u2557')); // ( 9559) X
+ f.add(new Character('\u2558')); // ( 9560) X
+ f.add(new Character('\u2559')); // ( 9561) X
+ f.add(new Character('\u255A')); // ( 9562) X
+ f.add(new Character('\u255B')); // ( 9563) X
+ f.add(new Character('\u255C')); // ( 9564) X
+ f.add(new Character('\u255D')); // ( 9565) X
+ f.add(new Character('\u255E')); // ( 9566) X
+ f.add(new Character('\u255F')); // ( 9567) X
+ f.add(new Character('\u2560')); // ( 9568) X
+ f.add(new Character('\u2561')); // ( 9569) X
+ f.add(new Character('\u2562')); // ( 9570) X
+ f.add(new Character('\u2563')); // ( 9571) X
+ f.add(new Character('\u2564')); // ( 9572) X
+ f.add(new Character('\u2565')); // ( 9573) X
+ f.add(new Character('\u2566')); // ( 9574) X
+ f.add(new Character('\u2567')); // ( 9575) X
+ f.add(new Character('\u2568')); // ( 9576) X
+ f.add(new Character('\u2569')); // ( 9577) X
+ f.add(new Character('\u256A')); // ( 9578) X
+ f.add(new Character('\u256B')); // ( 9579) X
+ f.add(new Character('\u256C')); // ( 9580) X
+ f.add(new Character('\u256D')); // ( 9581) X
+ f.add(new Character('\u256E')); // ( 9582) X
+ f.add(new Character('\u256F')); // ( 9583) X
+ f.add(new Character('\u2570')); // ( 9584) X
+ f.add(new Character('\u2571')); // ( 9585) X
+ f.add(new Character('\u2572')); // ( 9586) X
+ f.add(new Character('\u2573')); // ( 9587) X
+ f.add(new Character('\u2581')); // ( 9601) X
+ f.add(new Character('\u2582')); // ( 9602) X
+ f.add(new Character('\u2583')); // ( 9603) X
+ f.add(new Character('\u2584')); // ( 9604) X
+ f.add(new Character('\u2585')); // ( 9605) X
+ f.add(new Character('\u2586')); // ( 9606) X
+ f.add(new Character('\u2587')); // ( 9607) X
+ f.add(new Character('\u2588')); // ( 9608) X
+ f.add(new Character('\u2589')); // ( 9609) X
+ f.add(new Character('\u258A')); // ( 9610) X
+ f.add(new Character('\u258B')); // ( 9611) X
+ f.add(new Character('\u258C')); // ( 9612) X
+ f.add(new Character('\u258D')); // ( 9613) X
+ f.add(new Character('\u258E')); // ( 9614) X
+ f.add(new Character('\u258F')); // ( 9615) X
+ f.add(new Character('\u2593')); // ( 9619) X
+ f.add(new Character('\u2594')); // ( 9620) X
+ f.add(new Character('\u2595')); // ( 9621) X
+ f.add(new Character('\u25A0')); // ( 9632) X
+ f.add(new Character('\u25A1')); // ( 9633) X
+ f.add(new Character('\u25B2')); // ( 9650) X
+ f.add(new Character('\u25B3')); // ( 9651) X
+ f.add(new Character('\u25BC')); // ( 9660) X
+ f.add(new Character('\u25BD')); // ( 9661) X
+ f.add(new Character('\u25C6')); // ( 9670) X
+ f.add(new Character('\u25C7')); // ( 9671) X
+ f.add(new Character('\u25CB')); // ( 9675) X
+ f.add(new Character('\u25CE')); // ( 9678) X
+ f.add(new Character('\u25CF')); // ( 9679) X
+ f.add(new Character('\u25E2')); // ( 9698) X
+ f.add(new Character('\u25E3')); // ( 9699) X
+ f.add(new Character('\u25E4')); // ( 9700) X
+ f.add(new Character('\u25E5')); // ( 9701) X
+ f.add(new Character('\u2605')); // ( 9733) X
+ f.add(new Character('\u2606')); // ( 9734) X
+ f.add(new Character('\u2609')); // ( 9737) X
+ f.add(new Character('\u2640')); // ( 9792) X
+ f.add(new Character('\u2642')); // ( 9794) X
+ f.add(new Character('\u2E81')); // (11905) X
+ f.add(new Character('\u2E84')); // (11908) X
+ f.add(new Character('\u2E88')); // (11912) X
+ f.add(new Character('\u2E8B')); // (11915) X
+ f.add(new Character('\u2E8C')); // (11916) X
+ f.add(new Character('\u2E97')); // (11927) X
+ f.add(new Character('\u2EA7')); // (11943) X
+ f.add(new Character('\u2EAA')); // (11946) X
+ f.add(new Character('\u2EAE')); // (11950) X
+ f.add(new Character('\u2EB3')); // (11955) X
+ f.add(new Character('\u2EB6')); // (11958) X
+ f.add(new Character('\u2EB7')); // (11959) X
+ f.add(new Character('\u2EBB')); // (11963) X
+ f.add(new Character('\u2ECA')); // (11978) X
+ f.add(new Character('\u2FF0')); // (12272) X
+ f.add(new Character('\u2FF1')); // (12273) X
+ f.add(new Character('\u2FF2')); // (12274) X
+ f.add(new Character('\u2FF3')); // (12275) X
+ f.add(new Character('\u2FF4')); // (12276) X
+ f.add(new Character('\u2FF5')); // (12277) X
+ f.add(new Character('\u2FF6')); // (12278) X
+ f.add(new Character('\u2FF7')); // (12279) X
+ f.add(new Character('\u2FF8')); // (12280) X
+ f.add(new Character('\u2FF9')); // (12281) X
+ f.add(new Character('\u2FFA')); // (12282) X
+ f.add(new Character('\u2FFB')); // (12283) X
+ f.add(new Character('\u3001')); // (12289) X
+ f.add(new Character('\u3002')); // (12290) X
+ f.add(new Character('\u3003')); // (12291) X
+ f.add(new Character('\u3005')); // (12293) X
+ f.add(new Character('\u3006')); // (12294) X
+ f.add(new Character('\u3007')); // (12295) X
+ f.add(new Character('\u3008')); // (12296) X
+ f.add(new Character('\u3009')); // (12297) X
+ f.add(new Character('\u300A')); // (12298) X
+ f.add(new Character('\u300B')); // (12299) X
+ f.add(new Character('\u300C')); // (12300) X
+ f.add(new Character('\u300D')); // (12301) X
+ f.add(new Character('\u300E')); // (12302) X
+ f.add(new Character('\u300F')); // (12303) X
+ f.add(new Character('\u3010')); // (12304) X
+ f.add(new Character('\u3011')); // (12305) X
+ f.add(new Character('\u3012')); // (12306) X
+ f.add(new Character('\u3013')); // (12307) X
+ f.add(new Character('\u3014')); // (12308) X
+ f.add(new Character('\u3015')); // (12309) X
+ f.add(new Character('\u3016')); // (12310) X
+ f.add(new Character('\u3017')); // (12311) X
+ f.add(new Character('\u301D')); // (12317) X
+ f.add(new Character('\u301E')); // (12318) X
+ f.add(new Character('\u3021')); // (12321) X
+ f.add(new Character('\u3022')); // (12322) X
+ f.add(new Character('\u3023')); // (12323) X
+ f.add(new Character('\u3024')); // (12324) X
+ f.add(new Character('\u3025')); // (12325) X
+ f.add(new Character('\u3026')); // (12326) X
+ f.add(new Character('\u3027')); // (12327) X
+ f.add(new Character('\u3028')); // (12328) X
+ f.add(new Character('\u3029')); // (12329) X
+ f.add(new Character('\u303E')); // (12350) X
+ f.add(new Character('\u3041')); // (12353) X
+ f.add(new Character('\u3042')); // (12354) X
+ f.add(new Character('\u3043')); // (12355) X
+ f.add(new Character('\u3044')); // (12356) X
+ f.add(new Character('\u3045')); // (12357) X
+ f.add(new Character('\u3046')); // (12358) X
+ f.add(new Character('\u3047')); // (12359) X
+ f.add(new Character('\u3048')); // (12360) X
+ f.add(new Character('\u3049')); // (12361) X
+ f.add(new Character('\u304A')); // (12362) X
+ f.add(new Character('\u304B')); // (12363) X
+ f.add(new Character('\u304C')); // (12364) X
+ f.add(new Character('\u304D')); // (12365) X
+ f.add(new Character('\u304E')); // (12366) X
+ f.add(new Character('\u304F')); // (12367) X
+ f.add(new Character('\u3050')); // (12368) X
+ f.add(new Character('\u3051')); // (12369) X
+ f.add(new Character('\u3052')); // (12370) X
+ f.add(new Character('\u3053')); // (12371) X
+ f.add(new Character('\u3054')); // (12372) X
+ f.add(new Character('\u3055')); // (12373) X
+ f.add(new Character('\u3056')); // (12374) X
+ f.add(new Character('\u3057')); // (12375) X
+ f.add(new Character('\u3058')); // (12376) X
+ f.add(new Character('\u3059')); // (12377) X
+ f.add(new Character('\u305A')); // (12378) X
+ f.add(new Character('\u305B')); // (12379) X
+ f.add(new Character('\u305C')); // (12380) X
+ f.add(new Character('\u305D')); // (12381) X
+ f.add(new Character('\u305E')); // (12382) X
+ f.add(new Character('\u305F')); // (12383) X
+ f.add(new Character('\u3060')); // (12384) X
+ f.add(new Character('\u3061')); // (12385) X
+ f.add(new Character('\u3062')); // (12386) X
+ f.add(new Character('\u3063')); // (12387) X
+ f.add(new Character('\u3064')); // (12388) X
+ f.add(new Character('\u3065')); // (12389) X
+ f.add(new Character('\u3066')); // (12390) X
+ f.add(new Character('\u3067')); // (12391) X
+ f.add(new Character('\u3068')); // (12392) X
+ f.add(new Character('\u3069')); // (12393) X
+ f.add(new Character('\u306A')); // (12394) X
+ f.add(new Character('\u306B')); // (12395) X
+ f.add(new Character('\u306C')); // (12396) X
+ f.add(new Character('\u306D')); // (12397) X
+ f.add(new Character('\u306E')); // (12398) X
+ f.add(new Character('\u306F')); // (12399) X
+ f.add(new Character('\u3070')); // (12400) X
+ f.add(new Character('\u3071')); // (12401) X
+ f.add(new Character('\u3072')); // (12402) X
+ f.add(new Character('\u3073')); // (12403) X
+ f.add(new Character('\u3074')); // (12404) X
+ f.add(new Character('\u3075')); // (12405) X
+ f.add(new Character('\u3076')); // (12406) X
+ f.add(new Character('\u3077')); // (12407) X
+ f.add(new Character('\u3078')); // (12408) X
+ f.add(new Character('\u3079')); // (12409) X
+ f.add(new Character('\u307A')); // (12410) X
+ f.add(new Character('\u307B')); // (12411) X
+ f.add(new Character('\u307C')); // (12412) X
+ f.add(new Character('\u307D')); // (12413) X
+ f.add(new Character('\u307E')); // (12414) X
+ f.add(new Character('\u307F')); // (12415) X
+ f.add(new Character('\u3080')); // (12416) X
+ f.add(new Character('\u3081')); // (12417) X
+ f.add(new Character('\u3082')); // (12418) X
+ f.add(new Character('\u3083')); // (12419) X
+ f.add(new Character('\u3084')); // (12420) X
+ f.add(new Character('\u3085')); // (12421) X
+ f.add(new Character('\u3086')); // (12422) X
+ f.add(new Character('\u3087')); // (12423) X
+ f.add(new Character('\u3088')); // (12424) X
+ f.add(new Character('\u3089')); // (12425) X
+ f.add(new Character('\u308A')); // (12426) X
+ f.add(new Character('\u308B')); // (12427) X
+ f.add(new Character('\u308C')); // (12428) X
+ f.add(new Character('\u308D')); // (12429) X
+ f.add(new Character('\u308E')); // (12430) X
+ f.add(new Character('\u308F')); // (12431) X
+ f.add(new Character('\u3090')); // (12432) X
+ f.add(new Character('\u3091')); // (12433) X
+ f.add(new Character('\u3092')); // (12434) X
+ f.add(new Character('\u3093')); // (12435) X
+ f.add(new Character('\u309B')); // (12443) X
+ f.add(new Character('\u309C')); // (12444) X
+ f.add(new Character('\u309D')); // (12445) X
+ f.add(new Character('\u309E')); // (12446) X
+ f.add(new Character('\u30A1')); // (12449) X
+ f.add(new Character('\u30A2')); // (12450) X
+ f.add(new Character('\u30A3')); // (12451) X
+ f.add(new Character('\u30A4')); // (12452) X
+ f.add(new Character('\u30A5')); // (12453) X
+ f.add(new Character('\u30A6')); // (12454) X
+ f.add(new Character('\u30A7')); // (12455) X
+ f.add(new Character('\u30A8')); // (12456) X
+ f.add(new Character('\u30A9')); // (12457) X
+ f.add(new Character('\u30AA')); // (12458) X
+ f.add(new Character('\u30AB')); // (12459) X
+ f.add(new Character('\u30AC')); // (12460) X
+ f.add(new Character('\u30AD')); // (12461) X
+ f.add(new Character('\u30AE')); // (12462) X
+ f.add(new Character('\u30AF')); // (12463) X
+ f.add(new Character('\u30B0')); // (12464) X
+ f.add(new Character('\u30B1')); // (12465) X
+ f.add(new Character('\u30B2')); // (12466) X
+ f.add(new Character('\u30B3')); // (12467) X
+ f.add(new Character('\u30B4')); // (12468) X
+ f.add(new Character('\u30B5')); // (12469) X
+ f.add(new Character('\u30B6')); // (12470) X
+ f.add(new Character('\u30B7')); // (12471) X
+ f.add(new Character('\u30B8')); // (12472) X
+ f.add(new Character('\u30B9')); // (12473) X
+ f.add(new Character('\u30BA')); // (12474) X
+ f.add(new Character('\u30BB')); // (12475) X
+ f.add(new Character('\u30BC')); // (12476) X
+ f.add(new Character('\u30BD')); // (12477) X
+ f.add(new Character('\u30BE')); // (12478) X
+ f.add(new Character('\u30BF')); // (12479) X
+ f.add(new Character('\u30C0')); // (12480) X
+ f.add(new Character('\u30C1')); // (12481) X
+ f.add(new Character('\u30C2')); // (12482) X
+ f.add(new Character('\u30C3')); // (12483) X
+ f.add(new Character('\u30C4')); // (12484) X
+ f.add(new Character('\u30C5')); // (12485) X
+ f.add(new Character('\u30C6')); // (12486) X
+ f.add(new Character('\u30C7')); // (12487) X
+ f.add(new Character('\u30C8')); // (12488) X
+ f.add(new Character('\u30C9')); // (12489) X
+ f.add(new Character('\u30CA')); // (12490) X
+ f.add(new Character('\u30CB')); // (12491) X
+ f.add(new Character('\u30CC')); // (12492) X
+ f.add(new Character('\u30CD')); // (12493) X
+ f.add(new Character('\u30CE')); // (12494) X
+ f.add(new Character('\u30CF')); // (12495) X
+ f.add(new Character('\u30D0')); // (12496) X
+ f.add(new Character('\u30D1')); // (12497) X
+ f.add(new Character('\u30D2')); // (12498) X
+ f.add(new Character('\u30D3')); // (12499) X
+ f.add(new Character('\u30D4')); // (12500) X
+ f.add(new Character('\u30D5')); // (12501) X
+ f.add(new Character('\u30D6')); // (12502) X
+ f.add(new Character('\u30D7')); // (12503) X
+ f.add(new Character('\u30D8')); // (12504) X
+ f.add(new Character('\u30D9')); // (12505) X
+ f.add(new Character('\u30DA')); // (12506) X
+ f.add(new Character('\u30DB')); // (12507) X
+ f.add(new Character('\u30DC')); // (12508) X
+ f.add(new Character('\u30DD')); // (12509) X
+ f.add(new Character('\u30DE')); // (12510) X
+ f.add(new Character('\u30DF')); // (12511) X
+ f.add(new Character('\u30E0')); // (12512) X
+ f.add(new Character('\u30E1')); // (12513) X
+ f.add(new Character('\u30E2')); // (12514) X
+ f.add(new Character('\u30E3')); // (12515) X
+ f.add(new Character('\u30E4')); // (12516) X
+ f.add(new Character('\u30E5')); // (12517) X
+ f.add(new Character('\u30E6')); // (12518) X
+ f.add(new Character('\u30E7')); // (12519) X
+ f.add(new Character('\u30E8')); // (12520) X
+ f.add(new Character('\u30E9')); // (12521) X
+ f.add(new Character('\u30EA')); // (12522) X
+ f.add(new Character('\u30EB')); // (12523) X
+ f.add(new Character('\u30EC')); // (12524) X
+ f.add(new Character('\u30ED')); // (12525) X
+ f.add(new Character('\u30EE')); // (12526) X
+ f.add(new Character('\u30EF')); // (12527) X
+ f.add(new Character('\u30F0')); // (12528) X
+ f.add(new Character('\u30F1')); // (12529) X
+ f.add(new Character('\u30F2')); // (12530) X
+ f.add(new Character('\u30F3')); // (12531) X
+ f.add(new Character('\u30F4')); // (12532) X
+ f.add(new Character('\u30F5')); // (12533) X
+ f.add(new Character('\u30F6')); // (12534) X
+ f.add(new Character('\u30FC')); // (12540) X
+ f.add(new Character('\u30FD')); // (12541) X
+ f.add(new Character('\u30FE')); // (12542) X
+ f.add(new Character('\u3105')); // (12549) X
+ f.add(new Character('\u3106')); // (12550) X
+ f.add(new Character('\u3107')); // (12551) X
+ f.add(new Character('\u3108')); // (12552) X
+ f.add(new Character('\u3109')); // (12553) X
+ f.add(new Character('\u310A')); // (12554) X
+ f.add(new Character('\u310B')); // (12555) X
+ f.add(new Character('\u310C')); // (12556) X
+ f.add(new Character('\u310D')); // (12557) X
+ f.add(new Character('\u310E')); // (12558) X
+ f.add(new Character('\u310F')); // (12559) X
+ f.add(new Character('\u3110')); // (12560) X
+ f.add(new Character('\u3111')); // (12561) X
+ f.add(new Character('\u3112')); // (12562) X
+ f.add(new Character('\u3113')); // (12563) X
+ f.add(new Character('\u3114')); // (12564) X
+ f.add(new Character('\u3115')); // (12565) X
+ f.add(new Character('\u3116')); // (12566) X
+ f.add(new Character('\u3117')); // (12567) X
+ f.add(new Character('\u3118')); // (12568) X
+ f.add(new Character('\u3119')); // (12569) X
+ f.add(new Character('\u311A')); // (12570) X
+ f.add(new Character('\u311B')); // (12571) X
+ f.add(new Character('\u311C')); // (12572) X
+ f.add(new Character('\u311D')); // (12573) X
+ f.add(new Character('\u311E')); // (12574) X
+ f.add(new Character('\u311F')); // (12575) X
+ f.add(new Character('\u3120')); // (12576) X
+ f.add(new Character('\u3121')); // (12577) X
+ f.add(new Character('\u3122')); // (12578) X
+ f.add(new Character('\u3123')); // (12579) X
+ f.add(new Character('\u3124')); // (12580) X
+ f.add(new Character('\u3125')); // (12581) X
+ f.add(new Character('\u3126')); // (12582) X
+ f.add(new Character('\u3127')); // (12583) X
+ f.add(new Character('\u3128')); // (12584) X
+ f.add(new Character('\u3129')); // (12585) X
+ f.add(new Character('\u3220')); // (12832) X
+ f.add(new Character('\u3221')); // (12833) X
+ f.add(new Character('\u3222')); // (12834) X
+ f.add(new Character('\u3223')); // (12835) X
+ f.add(new Character('\u3224')); // (12836) X
+ f.add(new Character('\u3225')); // (12837) X
+ f.add(new Character('\u3226')); // (12838) X
+ f.add(new Character('\u3227')); // (12839) X
+ f.add(new Character('\u3228')); // (12840) X
+ f.add(new Character('\u3229')); // (12841) X
+ f.add(new Character('\u3231')); // (12849) X
+ f.add(new Character('\u32A3')); // (12963) X
+ f.add(new Character('\u338E')); // (13198) X
+ f.add(new Character('\u338F')); // (13199) X
+ f.add(new Character('\u339C')); // (13212) X
+ f.add(new Character('\u339D')); // (13213) X
+ f.add(new Character('\u339E')); // (13214) X
+ f.add(new Character('\u33A1')); // (13217) X
+ f.add(new Character('\u33C4')); // (13252) X
+ f.add(new Character('\u33CE')); // (13262) X
+ f.add(new Character('\u33D1')); // (13265) X
+ f.add(new Character('\u33D2')); // (13266) X
+ f.add(new Character('\u33D5')); // (13269) X
+ f.add(new Character('\u3447')); // (13383) X
+ f.add(new Character('\u3473')); // (13427) X
+ f.add(new Character('\u359E')); // (13726) X
+ f.add(new Character('\u360E')); // (13838) X
+ f.add(new Character('\u361A')); // (13850) X
+ f.add(new Character('\u3918')); // (14616) X
+ f.add(new Character('\u396E')); // (14702) X
+ f.add(new Character('\u39CF')); // (14799) X
+ f.add(new Character('\u39D0')); // (14800) X
+ f.add(new Character('\u39DF')); // (14815) X
+ f.add(new Character('\u3A73')); // (14963) X
+ f.add(new Character('\u3B4E')); // (15182) X
+ f.add(new Character('\u3C6E')); // (15470) X
+ f.add(new Character('\u3CE0')); // (15584) X
+ f.add(new Character('\u4056')); // (16470) X
+ f.add(new Character('\u415F')); // (16735) X
+ f.add(new Character('\u4337')); // (17207) X
+ f.add(new Character('\u43AC')); // (17324) X
+ f.add(new Character('\u43B1')); // (17329) X
+ f.add(new Character('\u43DD')); // (17373) X
+ f.add(new Character('\u44D6')); // (17622) X
+ f.add(new Character('\u464C')); // (17996) X
+ f.add(new Character('\u4661')); // (18017) X
+ f.add(new Character('\u4723')); // (18211) X
+ f.add(new Character('\u4729')); // (18217) X
+ f.add(new Character('\u477C')); // (18300) X
+ f.add(new Character('\u478D')); // (18317) X
+ f.add(new Character('\u4947')); // (18759) X
+ f.add(new Character('\u497A')); // (18810) X
+ f.add(new Character('\u497D')); // (18813) X
+ f.add(new Character('\u4982')); // (18818) X
+ f.add(new Character('\u4983')); // (18819) X
+ f.add(new Character('\u4985')); // (18821) X
+ f.add(new Character('\u4986')); // (18822) X
+ f.add(new Character('\u499B')); // (18843) X
+ f.add(new Character('\u499F')); // (18847) X
+ f.add(new Character('\u49B6')); // (18870) X
+ f.add(new Character('\u49B7')); // (18871) X
+ f.add(new Character('\u4C77')); // (19575) X
+ f.add(new Character('\u4C9F')); // (19615) X
+ f.add(new Character('\u4CA0')); // (19616) X
+ f.add(new Character('\u4CA1')); // (19617) X
+ f.add(new Character('\u4CA2')); // (19618) X
+ f.add(new Character('\u4CA3')); // (19619) X
+ f.add(new Character('\u4D13')); // (19731) X
+ f.add(new Character('\u4D14')); // (19732) X
+ f.add(new Character('\u4D15')); // (19733) X
+ f.add(new Character('\u4D16')); // (19734) X
+ f.add(new Character('\u4D17')); // (19735) X
+ f.add(new Character('\u4D18')); // (19736) X
+ f.add(new Character('\u4D19')); // (19737) X
+ f.add(new Character('\u4DAE')); // (19886) X
+ f.add(new Character('\u4E00')); // (19968) X
+ f.add(new Character('\u4E01')); // (19969) X
+ f.add(new Character('\u4E02')); // (19970) X
+ f.add(new Character('\u4E03')); // (19971) X
+ f.add(new Character('\u4E04')); // (19972) X
+ f.add(new Character('\u4E05')); // (19973) X
+ f.add(new Character('\u4E06')); // (19974) X
+ f.add(new Character('\u4E07')); // (19975) X
+ f.add(new Character('\u4E08')); // (19976) X
+ f.add(new Character('\u4E09')); // (19977) X
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the zh_TW language.
+ * @param f The HashSet
+ */
+ protected static void initTWFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00A7')); // ( 167) SECTION
+ f.add(new Character('\u00A8')); // ( 168) diaeresis
+ f.add(new Character('\u00AF')); // ( 175) macron
+ f.add(new Character('\u00B0')); // ( 176) degree
+ f.add(new Character('\u00B1')); // ( 177) plus_minus
+ f.add(new Character('\u00B4')); // ( 180) acute
+ f.add(new Character('\u00B6')); // ( 182) Pilcrow
+ f.add(new Character('\u00B7')); // ( 183) middot
+ f.add(new Character('\u00D7')); // ( 215) times
+ f.add(new Character('\u0100')); // ( 256) A_bar
+ f.add(new Character('\u0101')); // ( 257) a_bar
+ f.add(new Character('\u0102')); // ( 258) A_breve
+ f.add(new Character('\u0103')); // ( 259) a_breve
+ f.add(new Character('\u0104')); // ( 260) A_ogokek
+ f.add(new Character('\u0105')); // ( 261) a_ogokek
+ f.add(new Character('\u0106')); // ( 262) C_acute
+ f.add(new Character('\u0107')); // ( 263) c_acute
+ f.add(new Character('\u0108')); // ( 264) C_circumflex
+ f.add(new Character('\u0109')); // ( 265) c_circumflex
+ f.add(new Character('\u010A')); // ( 266) C_superdot
+ f.add(new Character('\u010B')); // ( 267) c_superdot
+ f.add(new Character('\u010C')); // ( 268) C_caron
+ f.add(new Character('\u010D')); // ( 269) c_caron
+ f.add(new Character('\u010E')); // ( 270) D_caron
+ f.add(new Character('\u010F')); // ( 271) d_caron
+ f.add(new Character('\u0110')); // ( 272) D_stroke
+ f.add(new Character('\u0111')); // ( 273) d_stroke
+ f.add(new Character('\u0112')); // ( 274) E_macron
+ f.add(new Character('\u0113')); // ( 275) e_macron
+ f.add(new Character('\u0114')); // ( 276) E_breve
+ f.add(new Character('\u0115')); // ( 277) e_breve
+ f.add(new Character('\u0116')); // ( 278) E_superdot
+ f.add(new Character('\u0117')); // ( 279) e_superdot
+ f.add(new Character('\u0118')); // ( 280) E_ogonek
+ f.add(new Character('\u0119')); // ( 281) e_ogonek
+ f.add(new Character('\u011A')); // ( 282) E_caron
+ f.add(new Character('\u011B')); // ( 283) e_caron
+ f.add(new Character('\u011C')); // ( 284) G_circumflex
+ f.add(new Character('\u011D')); // ( 285) g_circumflex
+ f.add(new Character('\u011E')); // ( 286) G_breve
+ f.add(new Character('\u011F')); // ( 287) g_breve
+ f.add(new Character('\u0120')); // ( 288) G_superdot
+ f.add(new Character('\u0121')); // ( 289) g_superdot
+ f.add(new Character('\u0122')); // ( 290) G_cedilla
+ f.add(new Character('\u0123')); // ( 291) g_cedilla
+ f.add(new Character('\u0124')); // ( 292) H_circumflex
+ f.add(new Character('\u0125')); // ( 293) h_circumflex
+ f.add(new Character('\u0126')); // ( 294) H_stroke
+ f.add(new Character('\u0127')); // ( 295) h_stroke
+ f.add(new Character('\u0128')); // ( 296) I_tilde
+ f.add(new Character('\u0129')); // ( 297) i_tilde
+ f.add(new Character('\u012A')); // ( 298) I_macron
+ f.add(new Character('\u012B')); // ( 299) i_macron
+ f.add(new Character('\u012C')); // ( 300) I_breve
+ f.add(new Character('\u012D')); // ( 301) i_breve
+ f.add(new Character('\u012E')); // ( 302) I_ogonek
+ f.add(new Character('\u012F')); // ( 303) i_ogonek
+ f.add(new Character('\u0130')); // ( 304) I_superdot
+ f.add(new Character('\u0131')); // ( 305) i_nodot
+ f.add(new Character('\u0132')); // ( 306) IJ_ligature
+ f.add(new Character('\u0133')); // ( 307) ij_ligature
+ f.add(new Character('\u0134')); // ( 308) J_circumflex
+ f.add(new Character('\u0135')); // ( 309) j_circumflex
+ f.add(new Character('\u0136')); // ( 310) K_cedilla
+ f.add(new Character('\u0137')); // ( 311) k_cedilla
+ f.add(new Character('\u0138')); // ( 312) kra
+ f.add(new Character('\u0139')); // ( 313) L_acute
+ f.add(new Character('\u013A')); // ( 314) l_acute
+ f.add(new Character('\u013B')); // ( 315) L_cedilla
+ f.add(new Character('\u013C')); // ( 316) l_cedilla
+ f.add(new Character('\u013D')); // ( 317) L_caron
+ f.add(new Character('\u013E')); // ( 318) l_caron
+ f.add(new Character('\u013F')); // ( 319) L_middot
+ f.add(new Character('\u0140')); // ( 320) l_middot
+ f.add(new Character('\u0141')); // ( 321) L_stoke
+ f.add(new Character('\u0142')); // ( 322) l_stoke
+ f.add(new Character('\u0143')); // ( 323) N_acute
+ f.add(new Character('\u0144')); // ( 324) n_acute
+ f.add(new Character('\u0145')); // ( 325) N_cedilla
+ f.add(new Character('\u0146')); // ( 326) n_cedilla
+ f.add(new Character('\u0147')); // ( 327) N_caron
+ f.add(new Character('\u0148')); // ( 328) n_caron
+ f.add(new Character('\u0149')); // ( 329) n_apostrophe
+ f.add(new Character('\u014A')); // ( 330) ENG
+ f.add(new Character('\u014B')); // ( 331) eng
+ f.add(new Character('\u014C')); // ( 332) O_macron
+ f.add(new Character('\u014D')); // ( 333) o_macron
+ f.add(new Character('\u014E')); // ( 334) O_breve
+ f.add(new Character('\u014F')); // ( 335) o_breve
+ f.add(new Character('\u0150')); // ( 336) O_double_acute
+ f.add(new Character('\u0151')); // ( 337) o_double_acute
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0154')); // ( 340) R_acute
+ f.add(new Character('\u0155')); // ( 341) r_acute
+ f.add(new Character('\u0156')); // ( 342) R_cedilla
+ f.add(new Character('\u0157')); // ( 343) r_cedilla
+ f.add(new Character('\u0158')); // ( 344) R_caron
+ f.add(new Character('\u0159')); // ( 345) r_caron
+ f.add(new Character('\u015A')); // ( 346) S_acute
+ f.add(new Character('\u015B')); // ( 347) s_acute
+ f.add(new Character('\u015C')); // ( 348) S_circumflex
+ f.add(new Character('\u015D')); // ( 349) s_circumflex
+ f.add(new Character('\u015E')); // ( 350) S_cedilla
+ f.add(new Character('\u015F')); // ( 351) s_cedilla
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0162')); // ( 354) T_cedilla
+ f.add(new Character('\u0163')); // ( 355) t_cedilla
+ f.add(new Character('\u0164')); // ( 356) T_caron
+ f.add(new Character('\u0165')); // ( 357) t_caron
+ f.add(new Character('\u0166')); // ( 358) T_stroke
+ f.add(new Character('\u0167')); // ( 359) t_stroke
+ f.add(new Character('\u0168')); // ( 360) U_tilde
+ f.add(new Character('\u0169')); // ( 361) u_tilde
+ f.add(new Character('\u016A')); // ( 362) U_macron
+ f.add(new Character('\u016B')); // ( 363) u_macron
+ f.add(new Character('\u016C')); // ( 364) U_breve
+ f.add(new Character('\u016D')); // ( 365) u_breve
+ f.add(new Character('\u016E')); // ( 366) U_ring
+ f.add(new Character('\u016F')); // ( 367) u_ring
+ f.add(new Character('\u0170')); // ( 368) U_double_acute
+ f.add(new Character('\u0171')); // ( 369) u_double_acute
+ f.add(new Character('\u0172')); // ( 370) U_ogonek
+ f.add(new Character('\u0173')); // ( 371) u_ogonek
+ f.add(new Character('\u0174')); // ( 372) W_circumflex
+ f.add(new Character('\u0175')); // ( 373) w_circumflex
+ f.add(new Character('\u0176')); // ( 374) Y_circumflex
+ f.add(new Character('\u0177')); // ( 375) y_circumflex
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ f.add(new Character('\u0179')); // ( 377) Z_acute
+ f.add(new Character('\u017A')); // ( 378) z_acute
+ f.add(new Character('\u017B')); // ( 379) Z_superdot
+ f.add(new Character('\u017C')); // ( 380) z_superdot
+ f.add(new Character('\u017D')); // ( 381) Z_caron
+ f.add(new Character('\u017E')); // ( 382) z_caron
+ f.add(new Character('\u017F')); // ( 383) long_s
+ f.add(new Character('\u0180')); // ( 384) X
+ f.add(new Character('\u0181')); // ( 385) X
+ f.add(new Character('\u0182')); // ( 386) X
+ f.add(new Character('\u0183')); // ( 387) X
+ f.add(new Character('\u0184')); // ( 388) X
+ f.add(new Character('\u0185')); // ( 389) X
+ f.add(new Character('\u0186')); // ( 390) X
+ f.add(new Character('\u0187')); // ( 391) X
+ f.add(new Character('\u0188')); // ( 392) X
+ f.add(new Character('\u0189')); // ( 393) X
+ f.add(new Character('\u018A')); // ( 394) X
+ f.add(new Character('\u018B')); // ( 395) X
+ f.add(new Character('\u018C')); // ( 396) X
+ f.add(new Character('\u018D')); // ( 397) X
+ f.add(new Character('\u018E')); // ( 398) X
+ f.add(new Character('\u018F')); // ( 399) X
+ f.add(new Character('\u0190')); // ( 400) X
+ f.add(new Character('\u0191')); // ( 401) X
+ f.add(new Character('\u0192')); // ( 402) X
+ f.add(new Character('\u0193')); // ( 403) X
+ f.add(new Character('\u0194')); // ( 404) X
+ f.add(new Character('\u0195')); // ( 405) X
+ f.add(new Character('\u0196')); // ( 406) X
+ f.add(new Character('\u0197')); // ( 407) X
+ f.add(new Character('\u0198')); // ( 408) X
+ f.add(new Character('\u0199')); // ( 409) X
+ f.add(new Character('\u019A')); // ( 410) X
+ f.add(new Character('\u019B')); // ( 411) X
+ f.add(new Character('\u019C')); // ( 412) X
+ f.add(new Character('\u019D')); // ( 413) X
+ f.add(new Character('\u019E')); // ( 414) X
+ f.add(new Character('\u019F')); // ( 415) X
+ f.add(new Character('\u01A0')); // ( 416) X
+ f.add(new Character('\u01A1')); // ( 417) X
+ f.add(new Character('\u01A2')); // ( 418) X
+ f.add(new Character('\u01A3')); // ( 419) X
+ f.add(new Character('\u01A4')); // ( 420) X
+ f.add(new Character('\u01A5')); // ( 421) X
+ f.add(new Character('\u01A6')); // ( 422) X
+ f.add(new Character('\u01A7')); // ( 423) X
+ f.add(new Character('\u01A8')); // ( 424) X
+ f.add(new Character('\u01A9')); // ( 425) X
+ f.add(new Character('\u01AA')); // ( 426) X
+ f.add(new Character('\u01AB')); // ( 427) X
+ f.add(new Character('\u01AC')); // ( 428) X
+ f.add(new Character('\u01AD')); // ( 429) X
+ f.add(new Character('\u01AE')); // ( 430) X
+ f.add(new Character('\u01AF')); // ( 431) X
+ f.add(new Character('\u01B0')); // ( 432) X
+ f.add(new Character('\u01B1')); // ( 433) X
+ f.add(new Character('\u01B2')); // ( 434) X
+ f.add(new Character('\u01B3')); // ( 435) X
+ f.add(new Character('\u01B4')); // ( 436) X
+ f.add(new Character('\u01B5')); // ( 437) X
+ f.add(new Character('\u01B6')); // ( 438) X
+ f.add(new Character('\u01B7')); // ( 439) X
+ f.add(new Character('\u01B8')); // ( 440) X
+ f.add(new Character('\u01B9')); // ( 441) X
+ f.add(new Character('\u01BA')); // ( 442) X
+ f.add(new Character('\u01BB')); // ( 443) X
+ f.add(new Character('\u01BC')); // ( 444) X
+ f.add(new Character('\u01BD')); // ( 445) X
+ f.add(new Character('\u01BE')); // ( 446) X
+ f.add(new Character('\u01BF')); // ( 447) X
+ f.add(new Character('\u01C0')); // ( 448) X
+ f.add(new Character('\u01C1')); // ( 449) X
+ f.add(new Character('\u01C2')); // ( 450) X
+ f.add(new Character('\u01C3')); // ( 451) X
+ f.add(new Character('\u01C4')); // ( 452) X
+ f.add(new Character('\u01C5')); // ( 453) X
+ f.add(new Character('\u01C6')); // ( 454) X
+ f.add(new Character('\u01C7')); // ( 455) X
+ f.add(new Character('\u01C8')); // ( 456) X
+ f.add(new Character('\u01C9')); // ( 457) X
+ f.add(new Character('\u01CA')); // ( 458) X
+ f.add(new Character('\u01CB')); // ( 459) X
+ f.add(new Character('\u01CC')); // ( 460) X
+ f.add(new Character('\u01CD')); // ( 461) X
+ f.add(new Character('\u01CE')); // ( 462) X
+ f.add(new Character('\u01CF')); // ( 463) X
+ f.add(new Character('\u01D0')); // ( 464) X
+ f.add(new Character('\u01D1')); // ( 465) X
+ f.add(new Character('\u01D2')); // ( 466) X
+ f.add(new Character('\u01D3')); // ( 467) X
+ f.add(new Character('\u01D4')); // ( 468) X
+ f.add(new Character('\u01D5')); // ( 469) X
+ f.add(new Character('\u01D6')); // ( 470) X
+ f.add(new Character('\u01D7')); // ( 471) X
+ f.add(new Character('\u01D8')); // ( 472) X
+ f.add(new Character('\u01D9')); // ( 473) X
+ f.add(new Character('\u01DA')); // ( 474) X
+ f.add(new Character('\u01DB')); // ( 475) X
+ f.add(new Character('\u01DC')); // ( 476) X
+ f.add(new Character('\u01DD')); // ( 477) X
+ f.add(new Character('\u01DE')); // ( 478) X
+ f.add(new Character('\u01DF')); // ( 479) X
+ f.add(new Character('\u01E0')); // ( 480) X
+ f.add(new Character('\u01E1')); // ( 481) X
+ f.add(new Character('\u01E2')); // ( 482) X
+ f.add(new Character('\u01E3')); // ( 483) X
+ f.add(new Character('\u01E4')); // ( 484) X
+ f.add(new Character('\u01E5')); // ( 485) X
+ f.add(new Character('\u01E6')); // ( 486) X
+ f.add(new Character('\u01E7')); // ( 487) X
+ f.add(new Character('\u01E8')); // ( 488) X
+ f.add(new Character('\u01E9')); // ( 489) X
+ f.add(new Character('\u01EA')); // ( 490) X
+ f.add(new Character('\u01EB')); // ( 491) X
+ f.add(new Character('\u01EC')); // ( 492) X
+ f.add(new Character('\u01ED')); // ( 493) X
+ f.add(new Character('\u01EE')); // ( 494) X
+ f.add(new Character('\u01EF')); // ( 495) X
+ f.add(new Character('\u01F0')); // ( 496) X
+ f.add(new Character('\u01F1')); // ( 497) X
+ f.add(new Character('\u01F2')); // ( 498) X
+ f.add(new Character('\u01F3')); // ( 499) X
+ f.add(new Character('\u01F4')); // ( 500) X
+ f.add(new Character('\u01F5')); // ( 501) X
+ f.add(new Character('\u01F6')); // ( 502) X
+ f.add(new Character('\u01F7')); // ( 503) X
+ f.add(new Character('\u01F8')); // ( 504) X
+ f.add(new Character('\u01F9')); // ( 505) X
+ f.add(new Character('\u01FA')); // ( 506) X
+ f.add(new Character('\u01FB')); // ( 507) X
+ f.add(new Character('\u01FC')); // ( 508) X
+ f.add(new Character('\u01FD')); // ( 509) X
+ f.add(new Character('\u01FE')); // ( 510) X
+ f.add(new Character('\u01FF')); // ( 511) X
+ f.add(new Character('\u0200')); // ( 512) X
+ f.add(new Character('\u0201')); // ( 513) X
+ f.add(new Character('\u0202')); // ( 514) X
+ f.add(new Character('\u0203')); // ( 515) X
+ f.add(new Character('\u0204')); // ( 516) X
+ f.add(new Character('\u0205')); // ( 517) X
+ f.add(new Character('\u0206')); // ( 518) X
+ f.add(new Character('\u0207')); // ( 519) X
+ f.add(new Character('\u0208')); // ( 520) X
+ f.add(new Character('\u0209')); // ( 521) X
+ f.add(new Character('\u020A')); // ( 522) X
+ f.add(new Character('\u020B')); // ( 523) X
+ f.add(new Character('\u020C')); // ( 524) X
+ f.add(new Character('\u020D')); // ( 525) X
+ f.add(new Character('\u020E')); // ( 526) X
+ f.add(new Character('\u020F')); // ( 527) X
+ f.add(new Character('\u0210')); // ( 528) X
+ f.add(new Character('\u0211')); // ( 529) X
+ f.add(new Character('\u0212')); // ( 530) X
+ f.add(new Character('\u0213')); // ( 531) X
+ f.add(new Character('\u0214')); // ( 532) X
+ f.add(new Character('\u0215')); // ( 533) X
+ f.add(new Character('\u0216')); // ( 534) X
+ f.add(new Character('\u0217')); // ( 535) X
+ f.add(new Character('\u0218')); // ( 536) X
+ f.add(new Character('\u0219')); // ( 537) X
+ f.add(new Character('\u021A')); // ( 538) X
+ f.add(new Character('\u021B')); // ( 539) X
+ f.add(new Character('\u021C')); // ( 540) X
+ f.add(new Character('\u021D')); // ( 541) X
+ f.add(new Character('\u021E')); // ( 542) X
+ f.add(new Character('\u021F')); // ( 543) X
+ f.add(new Character('\u0220')); // ( 544) X
+ f.add(new Character('\u0221')); // ( 545) X
+ f.add(new Character('\u0222')); // ( 546) X
+ f.add(new Character('\u0223')); // ( 547) X
+ f.add(new Character('\u0224')); // ( 548) X
+ f.add(new Character('\u0225')); // ( 549) X
+ f.add(new Character('\u0226')); // ( 550) X
+ f.add(new Character('\u0227')); // ( 551) X
+ f.add(new Character('\u0228')); // ( 552) X
+ f.add(new Character('\u0229')); // ( 553) X
+ f.add(new Character('\u022A')); // ( 554) X
+ f.add(new Character('\u022B')); // ( 555) X
+ f.add(new Character('\u022C')); // ( 556) X
+ f.add(new Character('\u022D')); // ( 557) X
+ f.add(new Character('\u022E')); // ( 558) X
+ f.add(new Character('\u022F')); // ( 559) X
+ f.add(new Character('\u0230')); // ( 560) X
+ f.add(new Character('\u0231')); // ( 561) X
+ f.add(new Character('\u0232')); // ( 562) X
+ f.add(new Character('\u0233')); // ( 563) X
+ f.add(new Character('\u0234')); // ( 564) X
+ f.add(new Character('\u0235')); // ( 565) X
+ f.add(new Character('\u0236')); // ( 566) X
+ f.add(new Character('\u0237')); // ( 567) X
+ f.add(new Character('\u0238')); // ( 568) X
+ f.add(new Character('\u0239')); // ( 569) X
+ f.add(new Character('\u023A')); // ( 570) X
+ f.add(new Character('\u023B')); // ( 571) X
+ f.add(new Character('\u023C')); // ( 572) X
+ f.add(new Character('\u023D')); // ( 573) X
+ f.add(new Character('\u023E')); // ( 574) X
+ f.add(new Character('\u023F')); // ( 575) X
+ f.add(new Character('\u0240')); // ( 576) X
+ f.add(new Character('\u0241')); // ( 577) X
+ f.add(new Character('\u0242')); // ( 578) X
+ f.add(new Character('\u0243')); // ( 579) X
+ f.add(new Character('\u0244')); // ( 580) X
+ f.add(new Character('\u0245')); // ( 581) X
+ f.add(new Character('\u0246')); // ( 582) X
+ f.add(new Character('\u0247')); // ( 583) X
+ f.add(new Character('\u0248')); // ( 584) X
+ f.add(new Character('\u0249')); // ( 585) X
+ f.add(new Character('\u024A')); // ( 586) X
+ f.add(new Character('\u024B')); // ( 587) X
+ f.add(new Character('\u024C')); // ( 588) X
+ f.add(new Character('\u024D')); // ( 589) X
+ f.add(new Character('\u024E')); // ( 590) X
+ f.add(new Character('\u024F')); // ( 591) X
+ f.add(new Character('\u0250')); // ( 592) X
+ f.add(new Character('\u0251')); // ( 593) X
+ f.add(new Character('\u0252')); // ( 594) X
+ f.add(new Character('\u0253')); // ( 595) X
+ f.add(new Character('\u0254')); // ( 596) X
+ f.add(new Character('\u0255')); // ( 597) X
+ f.add(new Character('\u0256')); // ( 598) X
+ f.add(new Character('\u0257')); // ( 599) X
+ f.add(new Character('\u0258')); // ( 600) X
+ f.add(new Character('\u0259')); // ( 601) X
+ f.add(new Character('\u025A')); // ( 602) X
+ f.add(new Character('\u025B')); // ( 603) X
+ f.add(new Character('\u025C')); // ( 604) X
+ f.add(new Character('\u025D')); // ( 605) X
+ f.add(new Character('\u025E')); // ( 606) X
+ f.add(new Character('\u025F')); // ( 607) X
+ f.add(new Character('\u0260')); // ( 608) X
+ f.add(new Character('\u0261')); // ( 609) X
+ f.add(new Character('\u0262')); // ( 610) X
+ f.add(new Character('\u0263')); // ( 611) X
+ f.add(new Character('\u0264')); // ( 612) X
+ f.add(new Character('\u0265')); // ( 613) X
+ f.add(new Character('\u0266')); // ( 614) X
+ f.add(new Character('\u0267')); // ( 615) X
+ f.add(new Character('\u0268')); // ( 616) X
+ f.add(new Character('\u0269')); // ( 617) X
+ f.add(new Character('\u026A')); // ( 618) X
+ f.add(new Character('\u026B')); // ( 619) X
+ f.add(new Character('\u026C')); // ( 620) X
+ f.add(new Character('\u026D')); // ( 621) X
+ f.add(new Character('\u026E')); // ( 622) X
+ f.add(new Character('\u026F')); // ( 623) X
+ f.add(new Character('\u0270')); // ( 624) X
+ f.add(new Character('\u0271')); // ( 625) X
+ f.add(new Character('\u0272')); // ( 626) X
+ f.add(new Character('\u0273')); // ( 627) X
+ f.add(new Character('\u0274')); // ( 628) X
+ f.add(new Character('\u0275')); // ( 629) X
+ f.add(new Character('\u0276')); // ( 630) X
+ f.add(new Character('\u0277')); // ( 631) X
+ f.add(new Character('\u0278')); // ( 632) X
+ f.add(new Character('\u0279')); // ( 633) X
+ f.add(new Character('\u027A')); // ( 634) X
+ f.add(new Character('\u027B')); // ( 635) X
+ f.add(new Character('\u027C')); // ( 636) X
+ f.add(new Character('\u027D')); // ( 637) X
+ f.add(new Character('\u027E')); // ( 638) X
+ f.add(new Character('\u027F')); // ( 639) X
+ f.add(new Character('\u0280')); // ( 640) X
+ f.add(new Character('\u0281')); // ( 641) X
+ f.add(new Character('\u0282')); // ( 642) X
+ f.add(new Character('\u0283')); // ( 643) X
+ f.add(new Character('\u0284')); // ( 644) X
+ f.add(new Character('\u0285')); // ( 645) X
+ f.add(new Character('\u0286')); // ( 646) X
+ f.add(new Character('\u0287')); // ( 647) X
+ f.add(new Character('\u0288')); // ( 648) X
+ f.add(new Character('\u0289')); // ( 649) X
+ f.add(new Character('\u028A')); // ( 650) X
+ f.add(new Character('\u028B')); // ( 651) X
+ f.add(new Character('\u028C')); // ( 652) X
+ f.add(new Character('\u028D')); // ( 653) X
+ f.add(new Character('\u028E')); // ( 654) X
+ f.add(new Character('\u028F')); // ( 655) X
+ f.add(new Character('\u0290')); // ( 656) X
+ f.add(new Character('\u0291')); // ( 657) X
+ f.add(new Character('\u0292')); // ( 658) X
+ f.add(new Character('\u0293')); // ( 659) X
+ f.add(new Character('\u0294')); // ( 660) X
+ f.add(new Character('\u0295')); // ( 661) X
+ f.add(new Character('\u0296')); // ( 662) X
+ f.add(new Character('\u0297')); // ( 663) X
+ f.add(new Character('\u0298')); // ( 664) X
+ f.add(new Character('\u0299')); // ( 665) X
+ f.add(new Character('\u029A')); // ( 666) X
+ f.add(new Character('\u029B')); // ( 667) X
+ f.add(new Character('\u029C')); // ( 668) X
+ f.add(new Character('\u029D')); // ( 669) X
+ f.add(new Character('\u029E')); // ( 670) X
+ f.add(new Character('\u029F')); // ( 671) X
+ f.add(new Character('\u02A0')); // ( 672) X
+ f.add(new Character('\u02A1')); // ( 673) X
+ f.add(new Character('\u02A2')); // ( 674) X
+ f.add(new Character('\u02A3')); // ( 675) X
+ f.add(new Character('\u02A4')); // ( 676) X
+ f.add(new Character('\u02A5')); // ( 677) X
+ f.add(new Character('\u02A6')); // ( 678) X
+ f.add(new Character('\u02A7')); // ( 679) X
+ f.add(new Character('\u02A8')); // ( 680) X
+ f.add(new Character('\u02A9')); // ( 681) X
+ f.add(new Character('\u02AA')); // ( 682) X
+ f.add(new Character('\u02AB')); // ( 683) X
+ f.add(new Character('\u02AC')); // ( 684) X
+ f.add(new Character('\u02AD')); // ( 685) X
+ f.add(new Character('\u02AE')); // ( 686) X
+ f.add(new Character('\u02AF')); // ( 687) X
+ f.add(new Character('\u02B0')); // ( 688) X
+ f.add(new Character('\u02B1')); // ( 689) X
+ f.add(new Character('\u02B2')); // ( 690) X
+ f.add(new Character('\u02B3')); // ( 691) X
+ f.add(new Character('\u02B4')); // ( 692) X
+ f.add(new Character('\u02B5')); // ( 693) X
+ f.add(new Character('\u02B6')); // ( 694) X
+ f.add(new Character('\u02B7')); // ( 695) X
+ f.add(new Character('\u02B8')); // ( 696) X
+ f.add(new Character('\u02B9')); // ( 697) X
+ f.add(new Character('\u02BA')); // ( 698) X
+ f.add(new Character('\u02BB')); // ( 699) X
+ f.add(new Character('\u02BC')); // ( 700) X
+ f.add(new Character('\u02BD')); // ( 701) X
+ f.add(new Character('\u02BE')); // ( 702) X
+ f.add(new Character('\u02BF')); // ( 703) X
+ f.add(new Character('\u02C0')); // ( 704) X
+ f.add(new Character('\u02C1')); // ( 705) X
+ f.add(new Character('\u02C2')); // ( 706) X
+ f.add(new Character('\u02C3')); // ( 707) X
+ f.add(new Character('\u02C4')); // ( 708) X
+ f.add(new Character('\u02C5')); // ( 709) X
+ f.add(new Character('\u02C6')); // ( 710) X
+ f.add(new Character('\u02C7')); // ( 711) X
+ f.add(new Character('\u02C8')); // ( 712) X
+ f.add(new Character('\u02C9')); // ( 713) X
+ f.add(new Character('\u02CA')); // ( 714) X
+ f.add(new Character('\u02CB')); // ( 715) X
+ f.add(new Character('\u02CC')); // ( 716) X
+ f.add(new Character('\u02CD')); // ( 717) X
+ f.add(new Character('\u02CE')); // ( 718) X
+ f.add(new Character('\u02CF')); // ( 719) X
+ f.add(new Character('\u02D0')); // ( 720) X
+ f.add(new Character('\u02D1')); // ( 721) X
+ f.add(new Character('\u02D2')); // ( 722) X
+ f.add(new Character('\u02D3')); // ( 723) X
+ f.add(new Character('\u02D4')); // ( 724) X
+ f.add(new Character('\u02D5')); // ( 725) X
+ f.add(new Character('\u02D6')); // ( 726) X
+ f.add(new Character('\u02D7')); // ( 727) X
+ f.add(new Character('\u02D8')); // ( 728) X
+ f.add(new Character('\u02D9')); // ( 729) X
+ f.add(new Character('\u02DA')); // ( 730) X
+ f.add(new Character('\u02DB')); // ( 731) X
+ f.add(new Character('\u02DC')); // ( 732) X
+ f.add(new Character('\u02DD')); // ( 733) X
+ f.add(new Character('\u02DE')); // ( 734) X
+ f.add(new Character('\u02DF')); // ( 735) X
+ f.add(new Character('\u02E0')); // ( 736) X
+ f.add(new Character('\u02E1')); // ( 737) X
+ f.add(new Character('\u02E2')); // ( 738) X
+ f.add(new Character('\u02E3')); // ( 739) X
+ f.add(new Character('\u02E4')); // ( 740) X
+ f.add(new Character('\u02E5')); // ( 741) X
+ f.add(new Character('\u02E6')); // ( 742) X
+ f.add(new Character('\u02E7')); // ( 743) X
+ f.add(new Character('\u02E8')); // ( 744) X
+ f.add(new Character('\u02E9')); // ( 745) X
+ f.add(new Character('\u02EA')); // ( 746) X
+ f.add(new Character('\u02EB')); // ( 747) X
+ f.add(new Character('\u02EC')); // ( 748) X
+ f.add(new Character('\u02ED')); // ( 749) X
+ f.add(new Character('\u02EE')); // ( 750) X
+ f.add(new Character('\u02EF')); // ( 751) X
+ f.add(new Character('\u02F0')); // ( 752) X
+ f.add(new Character('\u02F1')); // ( 753) X
+ f.add(new Character('\u02F2')); // ( 754) X
+ f.add(new Character('\u02F3')); // ( 755) X
+ f.add(new Character('\u02F4')); // ( 756) X
+ f.add(new Character('\u02F5')); // ( 757) X
+ f.add(new Character('\u02F6')); // ( 758) X
+ f.add(new Character('\u02F7')); // ( 759) X
+ f.add(new Character('\u02F8')); // ( 760) X
+ f.add(new Character('\u02F9')); // ( 761) X
+ f.add(new Character('\u02FA')); // ( 762) X
+ f.add(new Character('\u02FB')); // ( 763) X
+ f.add(new Character('\u02FC')); // ( 764) X
+ f.add(new Character('\u02FD')); // ( 765) X
+ f.add(new Character('\u02FE')); // ( 766) X
+ f.add(new Character('\u02FF')); // ( 767) X
+ f.add(new Character('\u0300')); // ( 768) X
+ f.add(new Character('\u0301')); // ( 769) X
+ f.add(new Character('\u0302')); // ( 770) X
+ f.add(new Character('\u0303')); // ( 771) X
+ f.add(new Character('\u0304')); // ( 772) X
+ f.add(new Character('\u0305')); // ( 773) X
+ f.add(new Character('\u0306')); // ( 774) X
+ f.add(new Character('\u0307')); // ( 775) X
+ f.add(new Character('\u0308')); // ( 776) X
+ f.add(new Character('\u0309')); // ( 777) X
+ f.add(new Character('\u030A')); // ( 778) X
+ f.add(new Character('\u030B')); // ( 779) X
+ f.add(new Character('\u030C')); // ( 780) X
+ f.add(new Character('\u030D')); // ( 781) X
+ f.add(new Character('\u030E')); // ( 782) X
+ f.add(new Character('\u030F')); // ( 783) X
+ f.add(new Character('\u0310')); // ( 784) X
+ f.add(new Character('\u0311')); // ( 785) X
+ f.add(new Character('\u0312')); // ( 786) X
+ f.add(new Character('\u0313')); // ( 787) X
+ f.add(new Character('\u0314')); // ( 788) X
+ f.add(new Character('\u0315')); // ( 789) X
+ f.add(new Character('\u0316')); // ( 790) X
+ f.add(new Character('\u0317')); // ( 791) X
+ f.add(new Character('\u0318')); // ( 792) X
+ f.add(new Character('\u0319')); // ( 793) X
+ f.add(new Character('\u031A')); // ( 794) X
+ f.add(new Character('\u031B')); // ( 795) X
+ f.add(new Character('\u031C')); // ( 796) X
+ f.add(new Character('\u031D')); // ( 797) X
+ f.add(new Character('\u031E')); // ( 798) X
+ f.add(new Character('\u031F')); // ( 799) X
+ f.add(new Character('\u0320')); // ( 800) X
+ f.add(new Character('\u0321')); // ( 801) X
+ f.add(new Character('\u0322')); // ( 802) X
+ f.add(new Character('\u0323')); // ( 803) X
+ f.add(new Character('\u0324')); // ( 804) X
+ f.add(new Character('\u0325')); // ( 805) X
+ f.add(new Character('\u0326')); // ( 806) X
+ f.add(new Character('\u0327')); // ( 807) X
+ f.add(new Character('\u0328')); // ( 808) X
+ f.add(new Character('\u0329')); // ( 809) X
+ f.add(new Character('\u032A')); // ( 810) X
+ f.add(new Character('\u032B')); // ( 811) X
+ f.add(new Character('\u032C')); // ( 812) X
+ f.add(new Character('\u032D')); // ( 813) X
+ f.add(new Character('\u032E')); // ( 814) X
+ f.add(new Character('\u032F')); // ( 815) X
+ f.add(new Character('\u0330')); // ( 816) X
+ f.add(new Character('\u0331')); // ( 817) X
+ f.add(new Character('\u0332')); // ( 818) X
+ f.add(new Character('\u0333')); // ( 819) X
+ f.add(new Character('\u0334')); // ( 820) X
+ f.add(new Character('\u0335')); // ( 821) X
+ f.add(new Character('\u0336')); // ( 822) X
+ f.add(new Character('\u0337')); // ( 823) X
+ f.add(new Character('\u0338')); // ( 824) X
+ f.add(new Character('\u0339')); // ( 825) X
+ f.add(new Character('\u033A')); // ( 826) X
+ f.add(new Character('\u033B')); // ( 827) X
+ f.add(new Character('\u033C')); // ( 828) X
+ f.add(new Character('\u033D')); // ( 829) X
+ f.add(new Character('\u033E')); // ( 830) X
+ f.add(new Character('\u033F')); // ( 831) X
+ f.add(new Character('\u0340')); // ( 832) X
+ f.add(new Character('\u0341')); // ( 833) X
+ f.add(new Character('\u0342')); // ( 834) X
+ f.add(new Character('\u0343')); // ( 835) X
+ f.add(new Character('\u0344')); // ( 836) X
+ f.add(new Character('\u0345')); // ( 837) X
+ f.add(new Character('\u0346')); // ( 838) X
+ f.add(new Character('\u0347')); // ( 839) X
+ f.add(new Character('\u0348')); // ( 840) X
+ f.add(new Character('\u0349')); // ( 841) X
+ f.add(new Character('\u034A')); // ( 842) X
+ f.add(new Character('\u034B')); // ( 843) X
+ f.add(new Character('\u034C')); // ( 844) X
+ f.add(new Character('\u034D')); // ( 845) X
+ f.add(new Character('\u034E')); // ( 846) X
+ f.add(new Character('\u034F')); // ( 847) X
+ f.add(new Character('\u0350')); // ( 848) X
+ f.add(new Character('\u0351')); // ( 849) X
+ f.add(new Character('\u0352')); // ( 850) X
+ f.add(new Character('\u0353')); // ( 851) X
+ f.add(new Character('\u0354')); // ( 852) X
+ f.add(new Character('\u0355')); // ( 853) X
+ f.add(new Character('\u0356')); // ( 854) X
+ f.add(new Character('\u0357')); // ( 855) X
+ f.add(new Character('\u0358')); // ( 856) X
+ f.add(new Character('\u0359')); // ( 857) X
+ f.add(new Character('\u035A')); // ( 858) X
+ f.add(new Character('\u035B')); // ( 859) X
+ f.add(new Character('\u035C')); // ( 860) X
+ f.add(new Character('\u035D')); // ( 861) X
+ f.add(new Character('\u035E')); // ( 862) X
+ f.add(new Character('\u035F')); // ( 863) X
+ f.add(new Character('\u0360')); // ( 864) X
+ f.add(new Character('\u0361')); // ( 865) X
+ f.add(new Character('\u0362')); // ( 866) X
+ f.add(new Character('\u0363')); // ( 867) X
+ f.add(new Character('\u0364')); // ( 868) X
+ f.add(new Character('\u0365')); // ( 869) X
+ f.add(new Character('\u0366')); // ( 870) X
+ f.add(new Character('\u0367')); // ( 871) X
+ f.add(new Character('\u0368')); // ( 872) X
+ f.add(new Character('\u0369')); // ( 873) X
+ f.add(new Character('\u036A')); // ( 874) X
+ f.add(new Character('\u036B')); // ( 875) X
+ f.add(new Character('\u036C')); // ( 876) X
+ f.add(new Character('\u036D')); // ( 877) X
+ f.add(new Character('\u036E')); // ( 878) X
+ f.add(new Character('\u036F')); // ( 879) X
+ f.add(new Character('\u0370')); // ( 880) X
+ f.add(new Character('\u0371')); // ( 881) X
+ f.add(new Character('\u0372')); // ( 882) X
+ f.add(new Character('\u0373')); // ( 883) X
+ f.add(new Character('\u0374')); // ( 884) X
+ f.add(new Character('\u0375')); // ( 885) X
+ f.add(new Character('\u0376')); // ( 886) X
+ f.add(new Character('\u0377')); // ( 887) X
+ f.add(new Character('\u0378')); // ( 888) X
+ f.add(new Character('\u0379')); // ( 889) X
+ f.add(new Character('\u037A')); // ( 890) X
+ f.add(new Character('\u037B')); // ( 891) X
+ f.add(new Character('\u037C')); // ( 892) X
+ f.add(new Character('\u037D')); // ( 893) X
+ f.add(new Character('\u037E')); // ( 894) X
+ f.add(new Character('\u037F')); // ( 895) X
+ f.add(new Character('\u0380')); // ( 896) X
+ f.add(new Character('\u0381')); // ( 897) X
+ f.add(new Character('\u0382')); // ( 898) X
+ f.add(new Character('\u0383')); // ( 899) X
+ f.add(new Character('\u0384')); // ( 900) X
+ f.add(new Character('\u0385')); // ( 901) X
+ f.add(new Character('\u0386')); // ( 902) X
+ f.add(new Character('\u0387')); // ( 903) X
+ f.add(new Character('\u0388')); // ( 904) X
+ f.add(new Character('\u0389')); // ( 905) X
+ f.add(new Character('\u038A')); // ( 906) X
+ f.add(new Character('\u038B')); // ( 907) X
+ f.add(new Character('\u038C')); // ( 908) X
+ f.add(new Character('\u038D')); // ( 909) X
+ f.add(new Character('\u038E')); // ( 910) X
+ f.add(new Character('\u038F')); // ( 911) X
+ f.add(new Character('\u0390')); // ( 912) X
+ f.add(new Character('\u0391')); // ( 913) X
+ f.add(new Character('\u0392')); // ( 914) X
+ f.add(new Character('\u0393')); // ( 915) X
+ f.add(new Character('\u0394')); // ( 916) X
+ f.add(new Character('\u0395')); // ( 917) X
+ f.add(new Character('\u0396')); // ( 918) X
+ f.add(new Character('\u0397')); // ( 919) X
+ f.add(new Character('\u0398')); // ( 920) X
+ f.add(new Character('\u0399')); // ( 921) X
+ f.add(new Character('\u039A')); // ( 922) X
+ f.add(new Character('\u039B')); // ( 923) X
+ f.add(new Character('\u039C')); // ( 924) X
+ f.add(new Character('\u039D')); // ( 925) X
+ f.add(new Character('\u039E')); // ( 926) X
+ f.add(new Character('\u039F')); // ( 927) X
+ f.add(new Character('\u03A0')); // ( 928) X
+ f.add(new Character('\u03A1')); // ( 929) X
+ f.add(new Character('\u03A2')); // ( 930) X
+ f.add(new Character('\u03A3')); // ( 931) X
+ f.add(new Character('\u03A4')); // ( 932) X
+ f.add(new Character('\u03A5')); // ( 933) X
+ f.add(new Character('\u03A6')); // ( 934) X
+ f.add(new Character('\u03A7')); // ( 935) X
+ f.add(new Character('\u03A8')); // ( 936) X
+ f.add(new Character('\u03A9')); // ( 937) X
+ f.add(new Character('\u03AA')); // ( 938) X
+ f.add(new Character('\u03AB')); // ( 939) X
+ f.add(new Character('\u03AC')); // ( 940) X
+ f.add(new Character('\u03AD')); // ( 941) X
+ f.add(new Character('\u03AE')); // ( 942) X
+ f.add(new Character('\u03AF')); // ( 943) X
+ f.add(new Character('\u03B0')); // ( 944) X
+ f.add(new Character('\u03B1')); // ( 945) X
+ f.add(new Character('\u03B2')); // ( 946) X
+ f.add(new Character('\u03B3')); // ( 947) X
+ f.add(new Character('\u03B4')); // ( 948) X
+ f.add(new Character('\u03B5')); // ( 949) X
+ f.add(new Character('\u03B6')); // ( 950) X
+ f.add(new Character('\u03B7')); // ( 951) X
+ f.add(new Character('\u03B8')); // ( 952) X
+ f.add(new Character('\u03B9')); // ( 953) X
+ f.add(new Character('\u03BA')); // ( 954) X
+ f.add(new Character('\u03BB')); // ( 955) X
+ f.add(new Character('\u03BC')); // ( 956) X
+ f.add(new Character('\u03BD')); // ( 957) X
+ f.add(new Character('\u03BE')); // ( 958) X
+ f.add(new Character('\u03BF')); // ( 959) X
+ f.add(new Character('\u03C0')); // ( 960) X
+ f.add(new Character('\u03C1')); // ( 961) X
+ f.add(new Character('\u03C2')); // ( 962) X
+ f.add(new Character('\u03C3')); // ( 963) X
+ f.add(new Character('\u03C4')); // ( 964) X
+ f.add(new Character('\u03C5')); // ( 965) X
+ f.add(new Character('\u03C6')); // ( 966) X
+ f.add(new Character('\u03C7')); // ( 967) X
+ f.add(new Character('\u03C8')); // ( 968) X
+ f.add(new Character('\u03C9')); // ( 969) X
+ f.add(new Character('\u03CA')); // ( 970) X
+ f.add(new Character('\u03CB')); // ( 971) X
+ f.add(new Character('\u03CC')); // ( 972) X
+ f.add(new Character('\u03CD')); // ( 973) X
+ f.add(new Character('\u03CE')); // ( 974) X
+ f.add(new Character('\u03CF')); // ( 975) X
+ f.add(new Character('\u03D0')); // ( 976) X
+ f.add(new Character('\u03D1')); // ( 977) X
+ f.add(new Character('\u03D2')); // ( 978) X
+ f.add(new Character('\u03D3')); // ( 979) X
+ f.add(new Character('\u03D4')); // ( 980) X
+ f.add(new Character('\u03D5')); // ( 981) X
+ f.add(new Character('\u03D6')); // ( 982) X
+ f.add(new Character('\u03D7')); // ( 983) X
+ f.add(new Character('\u03D8')); // ( 984) X
+ f.add(new Character('\u03D9')); // ( 985) X
+ f.add(new Character('\u03DA')); // ( 986) X
+ f.add(new Character('\u03DB')); // ( 987) X
+ f.add(new Character('\u03DC')); // ( 988) X
+ f.add(new Character('\u03DD')); // ( 989) X
+ f.add(new Character('\u03DE')); // ( 990) X
+ f.add(new Character('\u03DF')); // ( 991) X
+ f.add(new Character('\u03E0')); // ( 992) X
+ f.add(new Character('\u03E1')); // ( 993) X
+ f.add(new Character('\u03E2')); // ( 994) X
+ f.add(new Character('\u03E3')); // ( 995) X
+ f.add(new Character('\u03E4')); // ( 996) X
+ f.add(new Character('\u03E5')); // ( 997) X
+ f.add(new Character('\u03E6')); // ( 998) X
+ f.add(new Character('\u03E7')); // ( 999) X
+ f.add(new Character('\u03E8')); // (1000) X
+ f.add(new Character('\u03E9')); // (1001) X
+ f.add(new Character('\u03EA')); // (1002) X
+ f.add(new Character('\u03EB')); // (1003) X
+ f.add(new Character('\u03EC')); // (1004) X
+ f.add(new Character('\u03ED')); // (1005) X
+ f.add(new Character('\u03EE')); // (1006) X
+ f.add(new Character('\u03EF')); // (1007) X
+ f.add(new Character('\u03F0')); // (1008) X
+ f.add(new Character('\u03F1')); // (1009) X
+ f.add(new Character('\u03F2')); // (1010) X
+ f.add(new Character('\u03F3')); // (1011) X
+ f.add(new Character('\u03F4')); // (1012) X
+ f.add(new Character('\u03F5')); // (1013) X
+ f.add(new Character('\u03F6')); // (1014) X
+ f.add(new Character('\u03F7')); // (1015) X
+ f.add(new Character('\u03F8')); // (1016) X
+ f.add(new Character('\u03F9')); // (1017) X
+ f.add(new Character('\u03FA')); // (1018) X
+ f.add(new Character('\u03FB')); // (1019) X
+ f.add(new Character('\u03FC')); // (1020) X
+ f.add(new Character('\u03FD')); // (1021) X
+ f.add(new Character('\u03FE')); // (1022) X
+ f.add(new Character('\u03FF')); // (1023) X
+ f.add(new Character('\u0400')); // (1024) X
+ f.add(new Character('\u0401')); // (1025) X
+ f.add(new Character('\u0402')); // (1026) X
+ f.add(new Character('\u0403')); // (1027) X
+ f.add(new Character('\u0404')); // (1028) X
+ f.add(new Character('\u0405')); // (1029) X
+ f.add(new Character('\u0406')); // (1030) X
+ f.add(new Character('\u0407')); // (1031) X
+ f.add(new Character('\u0408')); // (1032) X
+ f.add(new Character('\u0409')); // (1033) X
+ f.add(new Character('\u040A')); // (1034) X
+ f.add(new Character('\u040B')); // (1035) X
+ f.add(new Character('\u040C')); // (1036) X
+ f.add(new Character('\u040D')); // (1037) X
+ f.add(new Character('\u040E')); // (1038) X
+ f.add(new Character('\u040F')); // (1039) X
+ f.add(new Character('\u0410')); // (1040) X
+ f.add(new Character('\u0411')); // (1041) X
+ f.add(new Character('\u0412')); // (1042) X
+ f.add(new Character('\u0413')); // (1043) X
+ f.add(new Character('\u0414')); // (1044) X
+ f.add(new Character('\u0415')); // (1045) X
+ f.add(new Character('\u0416')); // (1046) X
+ f.add(new Character('\u0417')); // (1047) X
+ f.add(new Character('\u0418')); // (1048) X
+ f.add(new Character('\u0419')); // (1049) X
+ f.add(new Character('\u041A')); // (1050) X
+ f.add(new Character('\u041B')); // (1051) X
+ f.add(new Character('\u041C')); // (1052) X
+ f.add(new Character('\u041D')); // (1053) X
+ f.add(new Character('\u041E')); // (1054) X
+ f.add(new Character('\u041F')); // (1055) X
+ f.add(new Character('\u0420')); // (1056) X
+ f.add(new Character('\u0421')); // (1057) X
+ f.add(new Character('\u0422')); // (1058) X
+ f.add(new Character('\u0423')); // (1059) X
+ f.add(new Character('\u0424')); // (1060) X
+ f.add(new Character('\u0425')); // (1061) X
+ f.add(new Character('\u0426')); // (1062) X
+ f.add(new Character('\u0427')); // (1063) X
+ f.add(new Character('\u0428')); // (1064) X
+ f.add(new Character('\u0429')); // (1065) X
+ f.add(new Character('\u042A')); // (1066) X
+ f.add(new Character('\u042B')); // (1067) X
+ f.add(new Character('\u042C')); // (1068) X
+ f.add(new Character('\u042D')); // (1069) X
+ f.add(new Character('\u042E')); // (1070) X
+ f.add(new Character('\u042F')); // (1071) X
+ f.add(new Character('\u0430')); // (1072) X
+ f.add(new Character('\u0431')); // (1073) X
+ f.add(new Character('\u0432')); // (1074) X
+ f.add(new Character('\u0433')); // (1075) X
+ f.add(new Character('\u0434')); // (1076) X
+ f.add(new Character('\u0435')); // (1077) X
+ f.add(new Character('\u0436')); // (1078) X
+ f.add(new Character('\u0437')); // (1079) X
+ f.add(new Character('\u0438')); // (1080) X
+ f.add(new Character('\u0439')); // (1081) X
+ f.add(new Character('\u043A')); // (1082) X
+ f.add(new Character('\u043B')); // (1083) X
+ f.add(new Character('\u043C')); // (1084) X
+ f.add(new Character('\u043D')); // (1085) X
+ f.add(new Character('\u043E')); // (1086) X
+ f.add(new Character('\u043F')); // (1087) X
+ f.add(new Character('\u0440')); // (1088) X
+ f.add(new Character('\u0441')); // (1089) X
+ f.add(new Character('\u0442')); // (1090) X
+ f.add(new Character('\u0443')); // (1091) X
+ f.add(new Character('\u0444')); // (1092) X
+ f.add(new Character('\u0445')); // (1093) X
+ f.add(new Character('\u0446')); // (1094) X
+ f.add(new Character('\u0447')); // (1095) X
+ f.add(new Character('\u0448')); // (1096) X
+ f.add(new Character('\u0449')); // (1097) X
+ f.add(new Character('\u044A')); // (1098) X
+ f.add(new Character('\u044B')); // (1099) X
+ f.add(new Character('\u044C')); // (1100) X
+ f.add(new Character('\u044D')); // (1101) X
+ f.add(new Character('\u044E')); // (1102) X
+ f.add(new Character('\u044F')); // (1103) X
+ f.add(new Character('\u0450')); // (1104) X
+ f.add(new Character('\u0451')); // (1105) X
+ f.add(new Character('\u0452')); // (1106) X
+ f.add(new Character('\u0453')); // (1107) X
+ f.add(new Character('\u0454')); // (1108) X
+ f.add(new Character('\u0455')); // (1109) X
+ f.add(new Character('\u0456')); // (1110) X
+ f.add(new Character('\u0457')); // (1111) X
+ f.add(new Character('\u0458')); // (1112) X
+ f.add(new Character('\u0459')); // (1113) X
+ f.add(new Character('\u045A')); // (1114) X
+ f.add(new Character('\u045B')); // (1115) X
+ f.add(new Character('\u045C')); // (1116) X
+ f.add(new Character('\u045D')); // (1117) X
+ f.add(new Character('\u045E')); // (1118) X
+ f.add(new Character('\u045F')); // (1119) X
+ f.add(new Character('\u0460')); // (1120) X
+ f.add(new Character('\u0461')); // (1121) X
+ f.add(new Character('\u0462')); // (1122) X
+ f.add(new Character('\u0463')); // (1123) X
+ f.add(new Character('\u0464')); // (1124) X
+ f.add(new Character('\u0465')); // (1125) X
+ f.add(new Character('\u0466')); // (1126) X
+ f.add(new Character('\u0467')); // (1127) X
+ f.add(new Character('\u0468')); // (1128) X
+ f.add(new Character('\u0469')); // (1129) X
+ f.add(new Character('\u046A')); // (1130) X
+ f.add(new Character('\u046B')); // (1131) X
+ f.add(new Character('\u046C')); // (1132) X
+ f.add(new Character('\u046D')); // (1133) X
+ f.add(new Character('\u046E')); // (1134) X
+ f.add(new Character('\u046F')); // (1135) X
+ f.add(new Character('\u0470')); // (1136) X
+ f.add(new Character('\u0471')); // (1137) X
+ f.add(new Character('\u0472')); // (1138) X
+ f.add(new Character('\u0473')); // (1139) X
+ f.add(new Character('\u0474')); // (1140) X
+ f.add(new Character('\u0475')); // (1141) X
+ f.add(new Character('\u0476')); // (1142) X
+ f.add(new Character('\u0477')); // (1143) X
+ f.add(new Character('\u0478')); // (1144) X
+ f.add(new Character('\u0479')); // (1145) X
+ f.add(new Character('\u047A')); // (1146) X
+ f.add(new Character('\u047B')); // (1147) X
+ f.add(new Character('\u047C')); // (1148) X
+ f.add(new Character('\u047D')); // (1149) X
+ f.add(new Character('\u047E')); // (1150) X
+ f.add(new Character('\u047F')); // (1151) X
+ f.add(new Character('\u0480')); // (1152) X
+ f.add(new Character('\u0481')); // (1153) X
+ f.add(new Character('\u0482')); // (1154) X
+ f.add(new Character('\u0483')); // (1155) X
+ f.add(new Character('\u0484')); // (1156) X
+ f.add(new Character('\u0485')); // (1157) X
+ f.add(new Character('\u0486')); // (1158) X
+ f.add(new Character('\u0487')); // (1159) X
+ f.add(new Character('\u0488')); // (1160) X
+ f.add(new Character('\u0489')); // (1161) X
+ f.add(new Character('\u048A')); // (1162) X
+ f.add(new Character('\u048B')); // (1163) X
+ f.add(new Character('\u048C')); // (1164) X
+ f.add(new Character('\u048D')); // (1165) X
+ f.add(new Character('\u048E')); // (1166) X
+ f.add(new Character('\u048F')); // (1167) X
+ f.add(new Character('\u0490')); // (1168) X
+ f.add(new Character('\u0491')); // (1169) X
+ f.add(new Character('\u0492')); // (1170) X
+ f.add(new Character('\u0493')); // (1171) X
+ f.add(new Character('\u0494')); // (1172) X
+ f.add(new Character('\u0495')); // (1173) X
+ f.add(new Character('\u0496')); // (1174) X
+ f.add(new Character('\u0497')); // (1175) X
+ f.add(new Character('\u0498')); // (1176) X
+ f.add(new Character('\u0499')); // (1177) X
+ f.add(new Character('\u049A')); // (1178) X
+ f.add(new Character('\u049B')); // (1179) X
+ f.add(new Character('\u049C')); // (1180) X
+ f.add(new Character('\u049D')); // (1181) X
+ f.add(new Character('\u049E')); // (1182) X
+ f.add(new Character('\u049F')); // (1183) X
+ f.add(new Character('\u04A0')); // (1184) X
+ f.add(new Character('\u04A1')); // (1185) X
+ f.add(new Character('\u04A2')); // (1186) X
+ f.add(new Character('\u04A3')); // (1187) X
+ f.add(new Character('\u04A4')); // (1188) X
+ f.add(new Character('\u04A5')); // (1189) X
+ f.add(new Character('\u04A6')); // (1190) X
+ f.add(new Character('\u04A7')); // (1191) X
+ f.add(new Character('\u04A8')); // (1192) X
+ f.add(new Character('\u04A9')); // (1193) X
+ f.add(new Character('\u04AA')); // (1194) X
+ f.add(new Character('\u04AB')); // (1195) X
+ f.add(new Character('\u04AC')); // (1196) X
+ f.add(new Character('\u04AD')); // (1197) X
+ f.add(new Character('\u04AE')); // (1198) X
+ f.add(new Character('\u04AF')); // (1199) X
+ f.add(new Character('\u04B0')); // (1200) X
+ f.add(new Character('\u04B1')); // (1201) X
+ f.add(new Character('\u04B2')); // (1202) X
+ f.add(new Character('\u04B3')); // (1203) X
+ f.add(new Character('\u04B4')); // (1204) X
+ f.add(new Character('\u04B5')); // (1205) X
+ f.add(new Character('\u04B6')); // (1206) X
+ f.add(new Character('\u04B7')); // (1207) X
+ f.add(new Character('\u04B8')); // (1208) X
+ f.add(new Character('\u04B9')); // (1209) X
+ f.add(new Character('\u04BA')); // (1210) X
+ f.add(new Character('\u04BB')); // (1211) X
+ f.add(new Character('\u04BC')); // (1212) X
+ f.add(new Character('\u04BD')); // (1213) X
+ f.add(new Character('\u04BE')); // (1214) X
+ f.add(new Character('\u04BF')); // (1215) X
+ f.add(new Character('\u04C0')); // (1216) X
+ f.add(new Character('\u04C1')); // (1217) X
+ f.add(new Character('\u04C2')); // (1218) X
+ f.add(new Character('\u04C3')); // (1219) X
+ f.add(new Character('\u04C4')); // (1220) X
+ f.add(new Character('\u04C5')); // (1221) X
+ f.add(new Character('\u04C6')); // (1222) X
+ f.add(new Character('\u04C7')); // (1223) X
+ f.add(new Character('\u04C8')); // (1224) X
+ f.add(new Character('\u04C9')); // (1225) X
+ f.add(new Character('\u04CA')); // (1226) X
+ f.add(new Character('\u04CB')); // (1227) X
+ f.add(new Character('\u04CC')); // (1228) X
+ f.add(new Character('\u04CD')); // (1229) X
+ f.add(new Character('\u04CE')); // (1230) X
+ f.add(new Character('\u04CF')); // (1231) X
+ f.add(new Character('\u04D0')); // (1232) X
+ f.add(new Character('\u04D1')); // (1233) X
+ f.add(new Character('\u04D2')); // (1234) X
+ f.add(new Character('\u04D3')); // (1235) X
+ f.add(new Character('\u04D4')); // (1236) X
+ f.add(new Character('\u04D5')); // (1237) X
+ f.add(new Character('\u04D6')); // (1238) X
+ f.add(new Character('\u04D7')); // (1239) X
+ f.add(new Character('\u04D8')); // (1240) X
+ f.add(new Character('\u04D9')); // (1241) X
+ f.add(new Character('\u04DA')); // (1242) X
+ f.add(new Character('\u04DB')); // (1243) X
+ f.add(new Character('\u04DC')); // (1244) X
+ f.add(new Character('\u04DD')); // (1245) X
+ f.add(new Character('\u04DE')); // (1246) X
+ f.add(new Character('\u04DF')); // (1247) X
+ f.add(new Character('\u04E0')); // (1248) X
+ f.add(new Character('\u04E1')); // (1249) X
+ f.add(new Character('\u04E2')); // (1250) X
+ f.add(new Character('\u04E3')); // (1251) X
+ f.add(new Character('\u04E4')); // (1252) X
+ f.add(new Character('\u04E5')); // (1253) X
+ f.add(new Character('\u04E6')); // (1254) X
+ f.add(new Character('\u04E7')); // (1255) X
+ f.add(new Character('\u04E8')); // (1256) X
+ f.add(new Character('\u04E9')); // (1257) X
+ f.add(new Character('\u04EA')); // (1258) X
+ f.add(new Character('\u04EB')); // (1259) X
+ f.add(new Character('\u04EC')); // (1260) X
+ f.add(new Character('\u04ED')); // (1261) X
+ f.add(new Character('\u04EE')); // (1262) X
+ f.add(new Character('\u04EF')); // (1263) X
+ f.add(new Character('\u04F0')); // (1264) X
+ f.add(new Character('\u04F1')); // (1265) X
+ f.add(new Character('\u04F2')); // (1266) X
+ f.add(new Character('\u04F3')); // (1267) X
+ f.add(new Character('\u04F4')); // (1268) X
+ f.add(new Character('\u04F5')); // (1269) X
+ f.add(new Character('\u04F6')); // (1270) X
+ f.add(new Character('\u04F7')); // (1271) X
+ f.add(new Character('\u04F8')); // (1272) X
+ f.add(new Character('\u04F9')); // (1273) X
+ f.add(new Character('\u04FA')); // (1274) X
+ f.add(new Character('\u04FB')); // (1275) X
+ f.add(new Character('\u04FC')); // (1276) X
+ f.add(new Character('\u04FD')); // (1277) X
+ f.add(new Character('\u04FE')); // (1278) X
+ f.add(new Character('\u04FF')); // (1279) X
+ f.add(new Character('\u0500')); // (1280) X
+ f.add(new Character('\u0501')); // (1281) X
+ f.add(new Character('\u0502')); // (1282) X
+ f.add(new Character('\u0503')); // (1283) X
+ f.add(new Character('\u0504')); // (1284) X
+ f.add(new Character('\u0505')); // (1285) X
+ f.add(new Character('\u0506')); // (1286) X
+ f.add(new Character('\u0507')); // (1287) X
+ f.add(new Character('\u0508')); // (1288) X
+ f.add(new Character('\u0509')); // (1289) X
+ f.add(new Character('\u050A')); // (1290) X
+ f.add(new Character('\u050B')); // (1291) X
+ f.add(new Character('\u050C')); // (1292) X
+ f.add(new Character('\u050D')); // (1293) X
+ f.add(new Character('\u050E')); // (1294) X
+ f.add(new Character('\u050F')); // (1295) X
+ f.add(new Character('\u0510')); // (1296) X
+ f.add(new Character('\u0511')); // (1297) X
+ f.add(new Character('\u0512')); // (1298) X
+ f.add(new Character('\u0513')); // (1299) X
+ f.add(new Character('\u0514')); // (1300) X
+ f.add(new Character('\u0515')); // (1301) X
+ f.add(new Character('\u0516')); // (1302) X
+ f.add(new Character('\u0517')); // (1303) X
+ f.add(new Character('\u0518')); // (1304) X
+ f.add(new Character('\u0519')); // (1305) X
+ f.add(new Character('\u051A')); // (1306) X
+ f.add(new Character('\u051B')); // (1307) X
+ f.add(new Character('\u051C')); // (1308) X
+ f.add(new Character('\u051D')); // (1309) X
+ f.add(new Character('\u051E')); // (1310) X
+ f.add(new Character('\u051F')); // (1311) X
+ f.add(new Character('\u0520')); // (1312) X
+ f.add(new Character('\u0521')); // (1313) X
+ f.add(new Character('\u0522')); // (1314) X
+ f.add(new Character('\u0523')); // (1315) X
+ f.add(new Character('\u0524')); // (1316) X
+ f.add(new Character('\u0525')); // (1317) X
+ f.add(new Character('\u0526')); // (1318) X
+ f.add(new Character('\u0527')); // (1319) X
+ f.add(new Character('\u0528')); // (1320) X
+ f.add(new Character('\u0529')); // (1321) X
+ f.add(new Character('\u052A')); // (1322) X
+ f.add(new Character('\u052B')); // (1323) X
+ f.add(new Character('\u052C')); // (1324) X
+ f.add(new Character('\u052D')); // (1325) X
+ f.add(new Character('\u052E')); // (1326) X
+ f.add(new Character('\u052F')); // (1327) X
+ f.add(new Character('\u0530')); // (1328) X
+ f.add(new Character('\u0531')); // (1329) X
+ f.add(new Character('\u0532')); // (1330) X
+ f.add(new Character('\u0533')); // (1331) X
+ f.add(new Character('\u0534')); // (1332) X
+ f.add(new Character('\u0535')); // (1333) X
+ f.add(new Character('\u0536')); // (1334) X
+ f.add(new Character('\u0537')); // (1335) X
+ f.add(new Character('\u0538')); // (1336) X
+ f.add(new Character('\u0539')); // (1337) X
+ f.add(new Character('\u053A')); // (1338) X
+ f.add(new Character('\u053B')); // (1339) X
+ f.add(new Character('\u053C')); // (1340) X
+ f.add(new Character('\u053D')); // (1341) X
+ f.add(new Character('\u053E')); // (1342) X
+ f.add(new Character('\u053F')); // (1343) X
+ f.add(new Character('\u0540')); // (1344) X
+ f.add(new Character('\u0541')); // (1345) X
+ f.add(new Character('\u0542')); // (1346) X
+ f.add(new Character('\u0543')); // (1347) X
+ f.add(new Character('\u0544')); // (1348) X
+ f.add(new Character('\u0545')); // (1349) X
+ f.add(new Character('\u0546')); // (1350) X
+ f.add(new Character('\u0547')); // (1351) X
+ f.add(new Character('\u0548')); // (1352) X
+ f.add(new Character('\u0549')); // (1353) X
+ f.add(new Character('\u054A')); // (1354) X
+ f.add(new Character('\u054B')); // (1355) X
+ f.add(new Character('\u054C')); // (1356) X
+ f.add(new Character('\u054D')); // (1357) X
+ f.add(new Character('\u054E')); // (1358) X
+ f.add(new Character('\u054F')); // (1359) X
+ f.add(new Character('\u0550')); // (1360) X
+ f.add(new Character('\u0551')); // (1361) X
+ f.add(new Character('\u0552')); // (1362) X
+ f.add(new Character('\u0553')); // (1363) X
+ f.add(new Character('\u0554')); // (1364) X
+ f.add(new Character('\u0555')); // (1365) X
+ f.add(new Character('\u0556')); // (1366) X
+ f.add(new Character('\u0557')); // (1367) X
+ f.add(new Character('\u0558')); // (1368) X
+ f.add(new Character('\u0559')); // (1369) X
+ f.add(new Character('\u055A')); // (1370) X
+ f.add(new Character('\u055B')); // (1371) X
+ f.add(new Character('\u055C')); // (1372) X
+ f.add(new Character('\u055D')); // (1373) X
+ f.add(new Character('\u055E')); // (1374) X
+ f.add(new Character('\u055F')); // (1375) X
+ f.add(new Character('\u0560')); // (1376) X
+ f.add(new Character('\u0561')); // (1377) X
+ f.add(new Character('\u0562')); // (1378) X
+ f.add(new Character('\u0563')); // (1379) X
+ f.add(new Character('\u0564')); // (1380) X
+ f.add(new Character('\u0565')); // (1381) X
+ f.add(new Character('\u0566')); // (1382) X
+ f.add(new Character('\u0567')); // (1383) X
+ f.add(new Character('\u0568')); // (1384) X
+ f.add(new Character('\u0569')); // (1385) X
+ f.add(new Character('\u056A')); // (1386) X
+ f.add(new Character('\u056B')); // (1387) X
+ f.add(new Character('\u056C')); // (1388) X
+ f.add(new Character('\u056D')); // (1389) X
+ f.add(new Character('\u056E')); // (1390) X
+ f.add(new Character('\u056F')); // (1391) X
+ f.add(new Character('\u0570')); // (1392) X
+ f.add(new Character('\u0571')); // (1393) X
+ f.add(new Character('\u0572')); // (1394) X
+ f.add(new Character('\u0573')); // (1395) X
+ f.add(new Character('\u0574')); // (1396) X
+ f.add(new Character('\u0575')); // (1397) X
+ f.add(new Character('\u0576')); // (1398) X
+ f.add(new Character('\u0577')); // (1399) X
+ f.add(new Character('\u0578')); // (1400) X
+ f.add(new Character('\u0579')); // (1401) X
+ f.add(new Character('\u057A')); // (1402) X
+ f.add(new Character('\u057B')); // (1403) X
+ f.add(new Character('\u057C')); // (1404) X
+ f.add(new Character('\u057D')); // (1405) X
+ f.add(new Character('\u057E')); // (1406) X
+ f.add(new Character('\u057F')); // (1407) X
+ f.add(new Character('\u0580')); // (1408) X
+ f.add(new Character('\u0581')); // (1409) X
+ f.add(new Character('\u0582')); // (1410) X
+ f.add(new Character('\u0583')); // (1411) X
+ f.add(new Character('\u0584')); // (1412) X
+ f.add(new Character('\u0585')); // (1413) X
+ f.add(new Character('\u0586')); // (1414) X
+ f.add(new Character('\u0587')); // (1415) X
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the RU language.
+ * @param f The HashSet
+ */
+ protected static void initRUFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00B5')); // ( 181) micro
+ f.add(new Character('\u0401')); // ( 1025) X
+ f.add(new Character('\u0402')); // ( 1026) X
+ f.add(new Character('\u0403')); // ( 1027) X
+ f.add(new Character('\u0404')); // ( 1028) X
+ f.add(new Character('\u0405')); // ( 1029) X
+ f.add(new Character('\u0406')); // ( 1030) X
+ f.add(new Character('\u0407')); // ( 1031) X
+ f.add(new Character('\u0408')); // ( 1032) X
+ f.add(new Character('\u0409')); // ( 1033) X
+ f.add(new Character('\u040A')); // ( 1034) X
+ f.add(new Character('\u040B')); // ( 1035) X
+ f.add(new Character('\u040C')); // ( 1036) X
+ f.add(new Character('\u040E')); // ( 1038) X
+ f.add(new Character('\u040F')); // ( 1039) X
+ f.add(new Character('\u0410')); // ( 1040) X
+ f.add(new Character('\u0411')); // ( 1041) X
+ f.add(new Character('\u0412')); // ( 1042) X
+ f.add(new Character('\u0413')); // ( 1043) X
+ f.add(new Character('\u0414')); // ( 1044) X
+ f.add(new Character('\u0415')); // ( 1045) X
+ f.add(new Character('\u0416')); // ( 1046) X
+ f.add(new Character('\u0417')); // ( 1047) X
+ f.add(new Character('\u0418')); // ( 1048) X
+ f.add(new Character('\u0419')); // ( 1049) X
+ f.add(new Character('\u041A')); // ( 1050) X
+ f.add(new Character('\u041B')); // ( 1051) X
+ f.add(new Character('\u041C')); // ( 1052) X
+ f.add(new Character('\u041D')); // ( 1053) X
+ f.add(new Character('\u041E')); // ( 1054) X
+ f.add(new Character('\u041F')); // ( 1055) X
+ f.add(new Character('\u0420')); // ( 1056) X
+ f.add(new Character('\u0421')); // ( 1057) X
+ f.add(new Character('\u0422')); // ( 1058) X
+ f.add(new Character('\u0423')); // ( 1059) X
+ f.add(new Character('\u0424')); // ( 1060) X
+ f.add(new Character('\u0425')); // ( 1061) X
+ f.add(new Character('\u0426')); // ( 1062) X
+ f.add(new Character('\u0427')); // ( 1063) X
+ f.add(new Character('\u0428')); // ( 1064) X
+ f.add(new Character('\u0429')); // ( 1065) X
+ f.add(new Character('\u042A')); // ( 1066) X
+ f.add(new Character('\u042B')); // ( 1067) X
+ f.add(new Character('\u042C')); // ( 1068) X
+ f.add(new Character('\u042D')); // ( 1069) X
+ f.add(new Character('\u042E')); // ( 1070) X
+ f.add(new Character('\u042F')); // ( 1071) X
+ f.add(new Character('\u0430')); // ( 1072) X
+ f.add(new Character('\u0431')); // ( 1073) X
+ f.add(new Character('\u0432')); // ( 1074) X
+ f.add(new Character('\u0433')); // ( 1075) X
+ f.add(new Character('\u0434')); // ( 1076) X
+ f.add(new Character('\u0435')); // ( 1077) X
+ f.add(new Character('\u0436')); // ( 1078) X
+ f.add(new Character('\u0437')); // ( 1079) X
+ f.add(new Character('\u0438')); // ( 1080) X
+ f.add(new Character('\u0439')); // ( 1081) X
+ f.add(new Character('\u043A')); // ( 1082) X
+ f.add(new Character('\u043B')); // ( 1083) X
+ f.add(new Character('\u043C')); // ( 1084) X
+ f.add(new Character('\u043D')); // ( 1085) X
+ f.add(new Character('\u043E')); // ( 1086) X
+ f.add(new Character('\u043F')); // ( 1087) X
+ f.add(new Character('\u0440')); // ( 1088) X
+ f.add(new Character('\u0441')); // ( 1089) X
+ f.add(new Character('\u0442')); // ( 1090) X
+ f.add(new Character('\u0443')); // ( 1091) X
+ f.add(new Character('\u0444')); // ( 1092) X
+ f.add(new Character('\u0445')); // ( 1093) X
+ f.add(new Character('\u0446')); // ( 1094) X
+ f.add(new Character('\u0447')); // ( 1095) X
+ f.add(new Character('\u0448')); // ( 1096) X
+ f.add(new Character('\u0449')); // ( 1097) X
+ f.add(new Character('\u044A')); // ( 1098) X
+ f.add(new Character('\u044B')); // ( 1099) X
+ f.add(new Character('\u044C')); // ( 1100) X
+ f.add(new Character('\u044D')); // ( 1101) X
+ f.add(new Character('\u044E')); // ( 1102) X
+ f.add(new Character('\u044F')); // ( 1103) X
+ f.add(new Character('\u0451')); // ( 1105) X
+ f.add(new Character('\u0452')); // ( 1106) X
+ f.add(new Character('\u0453')); // ( 1107) X
+ f.add(new Character('\u0454')); // ( 1108) X
+ f.add(new Character('\u0455')); // ( 1109) X
+ f.add(new Character('\u0456')); // ( 1110) X
+ f.add(new Character('\u0457')); // ( 1111) X
+ f.add(new Character('\u0458')); // ( 1112) X
+ f.add(new Character('\u0459')); // ( 1113) X
+ f.add(new Character('\u045A')); // ( 1114) X
+ f.add(new Character('\u045B')); // ( 1115) X
+ f.add(new Character('\u045C')); // ( 1116) X
+ f.add(new Character('\u045E')); // ( 1118) X
+ f.add(new Character('\u045F')); // ( 1119) X
+ f.add(new Character('\u0490')); // ( 1168) X
+ f.add(new Character('\u0491')); // ( 1169) X
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the PT language.
+ * @param f The HashSet
+ */
+ protected static void initPTFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00AA')); // ( 170) feminine_ordinal
+ f.add(new Character('\u00BA')); // ( 186) masculine_ordinal
+ f.add(new Character('\u00C0')); // ( 192) A_grave
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C3')); // ( 195) A_tilde
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C5')); // ( 197) A_ring
+ f.add(new Character('\u00C6')); // ( 198) AE_ligature
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C8')); // ( 200) E_grave
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CA')); // ( 202) E_circumflex
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CC')); // ( 204) I_grave
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00CF')); // ( 207) I_umlaut
+ f.add(new Character('\u00D0')); // ( 208) ETH_Q
+ f.add(new Character('\u00D1')); // ( 209) N_tilde
+ f.add(new Character('\u00D2')); // ( 210) O_grave
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D5')); // ( 213) O_tilde
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00D8')); // ( 216) O_slash
+ f.add(new Character('\u00D9')); // ( 217) U_grave
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DB')); // ( 219) U_circumflex
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DE')); // ( 222) THORN
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E0')); // ( 224) a_grave
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E3')); // ( 227) a_tilde
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E5')); // ( 229) a_ring
+ f.add(new Character('\u00E6')); // ( 230) ae_ligature
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E8')); // ( 232) e_grave
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EA')); // ( 234) e_circumflex
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00EC')); // ( 236) i_grave
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00EF')); // ( 239) i_umlaut
+ f.add(new Character('\u00F0')); // ( 240) eth
+ f.add(new Character('\u00F1')); // ( 241) n_tilde
+ f.add(new Character('\u00F2')); // ( 242) o_grave
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F5')); // ( 245) o_tilde
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00F8')); // ( 248) o_slash
+ f.add(new Character('\u00F9')); // ( 249) u_grave
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FB')); // ( 251) u_circumflex
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u00FE')); // ( 254) thorn
+ f.add(new Character('\u00FF')); // ( 255) y_umlaut
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the PL language.
+ * @param f The HashSet
+ */
+ protected static void initPLFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00B5')); // ( 181) micro
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u0102')); // ( 258) A_breve
+ f.add(new Character('\u0103')); // ( 259) a_breve
+ f.add(new Character('\u0104')); // ( 260) A_ogokek
+ f.add(new Character('\u0105')); // ( 261) a_ogokek
+ f.add(new Character('\u0106')); // ( 262) C_acute
+ f.add(new Character('\u0107')); // ( 263) c_acute
+ f.add(new Character('\u010C')); // ( 268) C_caron
+ f.add(new Character('\u010D')); // ( 269) c_caron
+ f.add(new Character('\u010E')); // ( 270) D_caron
+ f.add(new Character('\u010F')); // ( 271) d_caron
+ f.add(new Character('\u0110')); // ( 272) D_stroke
+ f.add(new Character('\u0111')); // ( 273) d_stroke
+ f.add(new Character('\u0118')); // ( 280) E_ogonek
+ f.add(new Character('\u0119')); // ( 281) e_ogonek
+ f.add(new Character('\u011A')); // ( 282) E_caron
+ f.add(new Character('\u011B')); // ( 283) e_caron
+ f.add(new Character('\u0139')); // ( 313) L_acute
+ f.add(new Character('\u013A')); // ( 314) l_acute
+ f.add(new Character('\u013D')); // ( 317) L_caron
+ f.add(new Character('\u013E')); // ( 318) l_caron
+ f.add(new Character('\u0141')); // ( 321) L_stoke
+ f.add(new Character('\u0142')); // ( 322) l_stoke
+ f.add(new Character('\u0143')); // ( 323) N_acute
+ f.add(new Character('\u0144')); // ( 324) n_acute
+ f.add(new Character('\u0147')); // ( 327) N_caron
+ f.add(new Character('\u0148')); // ( 328) n_caron
+ f.add(new Character('\u0150')); // ( 336) O_double_acute
+ f.add(new Character('\u0151')); // ( 337) o_double_acute
+ f.add(new Character('\u0154')); // ( 340) R_acute
+ f.add(new Character('\u0155')); // ( 341) r_acute
+ f.add(new Character('\u0158')); // ( 344) R_caron
+ f.add(new Character('\u0159')); // ( 345) r_caron
+ f.add(new Character('\u015A')); // ( 346) S_acute
+ f.add(new Character('\u015B')); // ( 347) s_acute
+ f.add(new Character('\u015E')); // ( 350) S_cedilla
+ f.add(new Character('\u015F')); // ( 351) s_cedilla
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0162')); // ( 354) T_cedilla
+ f.add(new Character('\u0163')); // ( 355) t_cedilla
+ f.add(new Character('\u0164')); // ( 356) T_caron
+ f.add(new Character('\u0165')); // ( 357) t_caron
+ f.add(new Character('\u016E')); // ( 366) U_ring
+ f.add(new Character('\u016F')); // ( 367) u_ring
+ f.add(new Character('\u0170')); // ( 368) U_double_acute
+ f.add(new Character('\u0171')); // ( 369) u_double_acute
+ f.add(new Character('\u0179')); // ( 377) Z_acute
+ f.add(new Character('\u017A')); // ( 378) z_acute
+ f.add(new Character('\u017B')); // ( 379) Z_superdot
+ f.add(new Character('\u017C')); // ( 380) z_superdot
+ f.add(new Character('\u017D')); // ( 381) Z_caron
+ f.add(new Character('\u017E')); // ( 382) z_caron
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the KO language.
+ * @param f The HashSet
+ */
+ protected static void initKOFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00A1')); // ( 161) inverted_exclamation
+ f.add(new Character('\u00A4')); // ( 164) currency
+ f.add(new Character('\u00A7')); // ( 167) SECTION
+ f.add(new Character('\u00A8')); // ( 168) diaeresis
+ f.add(new Character('\u00AA')); // ( 170) feminine_ordinal
+ f.add(new Character('\u00AD')); // ( 173) soft_hyphen
+ f.add(new Character('\u00AE')); // ( 174) REGISTERED
+ f.add(new Character('\u00B0')); // ( 176) degree
+ f.add(new Character('\u00B1')); // ( 177) plus_minus
+ f.add(new Character('\u00B2')); // ( 178) super2
+ f.add(new Character('\u00B3')); // ( 179) super3
+ f.add(new Character('\u00B4')); // ( 180) acute
+ f.add(new Character('\u00B6')); // ( 182) Pilcrow
+ f.add(new Character('\u00B7')); // ( 183) middot
+ f.add(new Character('\u00B8')); // ( 184) cedilla
+ f.add(new Character('\u00B9')); // ( 185) super1
+ f.add(new Character('\u00BA')); // ( 186) masculine_ordinal
+ f.add(new Character('\u00BC')); // ( 188) one_quarter
+ f.add(new Character('\u00BD')); // ( 189) one_half
+ f.add(new Character('\u00BE')); // ( 190) three_quarters
+ f.add(new Character('\u00BF')); // ( 191) inverted_question_mark
+ f.add(new Character('\u00C6')); // ( 198) AE_ligature
+ f.add(new Character('\u00D0')); // ( 208) ETH_Q
+ f.add(new Character('\u00D7')); // ( 215) times
+ f.add(new Character('\u00D8')); // ( 216) O_slash
+ f.add(new Character('\u00DE')); // ( 222) THORN
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E6')); // ( 230) ae_ligature
+ f.add(new Character('\u00F0')); // ( 240) eth
+ f.add(new Character('\u00F8')); // ( 248) o_slash
+ f.add(new Character('\u00FE')); // ( 254) thorn
+ f.add(new Character('\u0100')); // ( 256) A_bar
+ f.add(new Character('\u0101')); // ( 257) a_bar
+ f.add(new Character('\u0102')); // ( 258) A_breve
+ f.add(new Character('\u0103')); // ( 259) a_breve
+ f.add(new Character('\u0104')); // ( 260) A_ogokek
+ f.add(new Character('\u0105')); // ( 261) a_ogokek
+ f.add(new Character('\u0106')); // ( 262) C_acute
+ f.add(new Character('\u0107')); // ( 263) c_acute
+ f.add(new Character('\u0108')); // ( 264) C_circumflex
+ f.add(new Character('\u0109')); // ( 265) c_circumflex
+ f.add(new Character('\u010A')); // ( 266) C_superdot
+ f.add(new Character('\u010B')); // ( 267) c_superdot
+ f.add(new Character('\u010C')); // ( 268) C_caron
+ f.add(new Character('\u010D')); // ( 269) c_caron
+ f.add(new Character('\u010E')); // ( 270) D_caron
+ f.add(new Character('\u010F')); // ( 271) d_caron
+ f.add(new Character('\u0110')); // ( 272) D_stroke
+ f.add(new Character('\u0111')); // ( 273) d_stroke
+ f.add(new Character('\u0112')); // ( 274) E_macron
+ f.add(new Character('\u0113')); // ( 275) e_macron
+ f.add(new Character('\u0114')); // ( 276) E_breve
+ f.add(new Character('\u0115')); // ( 277) e_breve
+ f.add(new Character('\u0116')); // ( 278) E_superdot
+ f.add(new Character('\u0117')); // ( 279) e_superdot
+ f.add(new Character('\u0118')); // ( 280) E_ogonek
+ f.add(new Character('\u0119')); // ( 281) e_ogonek
+ f.add(new Character('\u011A')); // ( 282) E_caron
+ f.add(new Character('\u011B')); // ( 283) e_caron
+ f.add(new Character('\u011C')); // ( 284) G_circumflex
+ f.add(new Character('\u011D')); // ( 285) g_circumflex
+ f.add(new Character('\u011E')); // ( 286) G_breve
+ f.add(new Character('\u011F')); // ( 287) g_breve
+ f.add(new Character('\u0120')); // ( 288) G_superdot
+ f.add(new Character('\u0121')); // ( 289) g_superdot
+ f.add(new Character('\u0122')); // ( 290) G_cedilla
+ f.add(new Character('\u0123')); // ( 291) g_cedilla
+ f.add(new Character('\u0124')); // ( 292) H_circumflex
+ f.add(new Character('\u0125')); // ( 293) h_circumflex
+ f.add(new Character('\u0126')); // ( 294) H_stroke
+ f.add(new Character('\u0127')); // ( 295) h_stroke
+ f.add(new Character('\u0128')); // ( 296) I_tilde
+ f.add(new Character('\u0129')); // ( 297) i_tilde
+ f.add(new Character('\u012A')); // ( 298) I_macron
+ f.add(new Character('\u012B')); // ( 299) i_macron
+ f.add(new Character('\u012C')); // ( 300) I_breve
+ f.add(new Character('\u012D')); // ( 301) i_breve
+ f.add(new Character('\u012E')); // ( 302) I_ogonek
+ f.add(new Character('\u012F')); // ( 303) i_ogonek
+ f.add(new Character('\u0130')); // ( 304) I_superdot
+ f.add(new Character('\u0131')); // ( 305) i_nodot
+ f.add(new Character('\u0132')); // ( 306) IJ_ligature
+ f.add(new Character('\u0133')); // ( 307) ij_ligature
+ f.add(new Character('\u0134')); // ( 308) J_circumflex
+ f.add(new Character('\u0135')); // ( 309) j_circumflex
+ f.add(new Character('\u0136')); // ( 310) K_cedilla
+ f.add(new Character('\u0137')); // ( 311) k_cedilla
+ f.add(new Character('\u0138')); // ( 312) kra
+ f.add(new Character('\u0139')); // ( 313) L_acute
+ f.add(new Character('\u013A')); // ( 314) l_acute
+ f.add(new Character('\u013B')); // ( 315) L_cedilla
+ f.add(new Character('\u013C')); // ( 316) l_cedilla
+ f.add(new Character('\u013D')); // ( 317) L_caron
+ f.add(new Character('\u013E')); // ( 318) l_caron
+ f.add(new Character('\u013F')); // ( 319) L_middot
+ f.add(new Character('\u0140')); // ( 320) l_middot
+ f.add(new Character('\u0141')); // ( 321) L_stoke
+ f.add(new Character('\u0142')); // ( 322) l_stoke
+ f.add(new Character('\u0143')); // ( 323) N_acute
+ f.add(new Character('\u0144')); // ( 324) n_acute
+ f.add(new Character('\u0145')); // ( 325) N_cedilla
+ f.add(new Character('\u0146')); // ( 326) n_cedilla
+ f.add(new Character('\u0147')); // ( 327) N_caron
+ f.add(new Character('\u0148')); // ( 328) n_caron
+ f.add(new Character('\u0149')); // ( 329) n_apostrophe
+ f.add(new Character('\u014A')); // ( 330) ENG
+ f.add(new Character('\u014B')); // ( 331) eng
+ f.add(new Character('\u014C')); // ( 332) O_macron
+ f.add(new Character('\u014D')); // ( 333) o_macron
+ f.add(new Character('\u014E')); // ( 334) O_breve
+ f.add(new Character('\u014F')); // ( 335) o_breve
+ f.add(new Character('\u0150')); // ( 336) O_double_acute
+ f.add(new Character('\u0151')); // ( 337) o_double_acute
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0154')); // ( 340) R_acute
+ f.add(new Character('\u0155')); // ( 341) r_acute
+ f.add(new Character('\u0156')); // ( 342) R_cedilla
+ f.add(new Character('\u0157')); // ( 343) r_cedilla
+ f.add(new Character('\u0158')); // ( 344) R_caron
+ f.add(new Character('\u0159')); // ( 345) r_caron
+ f.add(new Character('\u015A')); // ( 346) S_acute
+ f.add(new Character('\u015B')); // ( 347) s_acute
+ f.add(new Character('\u015C')); // ( 348) S_circumflex
+ f.add(new Character('\u015D')); // ( 349) s_circumflex
+ f.add(new Character('\u015E')); // ( 350) S_cedilla
+ f.add(new Character('\u015F')); // ( 351) s_cedilla
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0162')); // ( 354) T_cedilla
+ f.add(new Character('\u0163')); // ( 355) t_cedilla
+ f.add(new Character('\u0164')); // ( 356) T_caron
+ f.add(new Character('\u0165')); // ( 357) t_caron
+ f.add(new Character('\u0166')); // ( 358) T_stroke
+ f.add(new Character('\u0167')); // ( 359) t_stroke
+ f.add(new Character('\u0168')); // ( 360) U_tilde
+ f.add(new Character('\u0169')); // ( 361) u_tilde
+ f.add(new Character('\u016A')); // ( 362) U_macron
+ f.add(new Character('\u016B')); // ( 363) u_macron
+ f.add(new Character('\u016C')); // ( 364) U_breve
+ f.add(new Character('\u016D')); // ( 365) u_breve
+ f.add(new Character('\u016E')); // ( 366) U_ring
+ f.add(new Character('\u016F')); // ( 367) u_ring
+ f.add(new Character('\u0170')); // ( 368) U_double_acute
+ f.add(new Character('\u0171')); // ( 369) u_double_acute
+ f.add(new Character('\u0172')); // ( 370) U_ogonek
+ f.add(new Character('\u0173')); // ( 371) u_ogonek
+ f.add(new Character('\u0174')); // ( 372) W_circumflex
+ f.add(new Character('\u0175')); // ( 373) w_circumflex
+ f.add(new Character('\u0176')); // ( 374) Y_circumflex
+ f.add(new Character('\u0177')); // ( 375) y_circumflex
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ f.add(new Character('\u0179')); // ( 377) Z_acute
+ f.add(new Character('\u017A')); // ( 378) z_acute
+ f.add(new Character('\u017B')); // ( 379) Z_superdot
+ f.add(new Character('\u017C')); // ( 380) z_superdot
+ f.add(new Character('\u017D')); // ( 381) Z_caron
+ f.add(new Character('\u017E')); // ( 382) z_caron
+ f.add(new Character('\u017F')); // ( 383) long_s
+ f.add(new Character('\u0180')); // ( 384) X
+ f.add(new Character('\u0181')); // ( 385) X
+ f.add(new Character('\u0182')); // ( 386) X
+ f.add(new Character('\u0183')); // ( 387) X
+ f.add(new Character('\u0184')); // ( 388) X
+ f.add(new Character('\u0185')); // ( 389) X
+ f.add(new Character('\u0186')); // ( 390) X
+ f.add(new Character('\u0187')); // ( 391) X
+ f.add(new Character('\u0188')); // ( 392) X
+ f.add(new Character('\u0189')); // ( 393) X
+ f.add(new Character('\u018A')); // ( 394) X
+ f.add(new Character('\u018B')); // ( 395) X
+ f.add(new Character('\u018C')); // ( 396) X
+ f.add(new Character('\u018D')); // ( 397) X
+ f.add(new Character('\u018E')); // ( 398) X
+ f.add(new Character('\u018F')); // ( 399) X
+ f.add(new Character('\u0190')); // ( 400) X
+ f.add(new Character('\u0191')); // ( 401) X
+ f.add(new Character('\u0192')); // ( 402) X
+ f.add(new Character('\u0193')); // ( 403) X
+ f.add(new Character('\u0194')); // ( 404) X
+ f.add(new Character('\u0195')); // ( 405) X
+ f.add(new Character('\u0196')); // ( 406) X
+ f.add(new Character('\u0197')); // ( 407) X
+ f.add(new Character('\u0198')); // ( 408) X
+ f.add(new Character('\u0199')); // ( 409) X
+ f.add(new Character('\u019A')); // ( 410) X
+ f.add(new Character('\u019B')); // ( 411) X
+ f.add(new Character('\u019C')); // ( 412) X
+ f.add(new Character('\u019D')); // ( 413) X
+ f.add(new Character('\u019E')); // ( 414) X
+ f.add(new Character('\u019F')); // ( 415) X
+ f.add(new Character('\u01A0')); // ( 416) X
+ f.add(new Character('\u01A1')); // ( 417) X
+ f.add(new Character('\u01A2')); // ( 418) X
+ f.add(new Character('\u01A3')); // ( 419) X
+ f.add(new Character('\u01A4')); // ( 420) X
+ f.add(new Character('\u01A5')); // ( 421) X
+ f.add(new Character('\u01A6')); // ( 422) X
+ f.add(new Character('\u01A7')); // ( 423) X
+ f.add(new Character('\u01A8')); // ( 424) X
+ f.add(new Character('\u01A9')); // ( 425) X
+ f.add(new Character('\u01AA')); // ( 426) X
+ f.add(new Character('\u01AB')); // ( 427) X
+ f.add(new Character('\u01AC')); // ( 428) X
+ f.add(new Character('\u01AD')); // ( 429) X
+ f.add(new Character('\u01AE')); // ( 430) X
+ f.add(new Character('\u01AF')); // ( 431) X
+ f.add(new Character('\u01B0')); // ( 432) X
+ f.add(new Character('\u01B1')); // ( 433) X
+ f.add(new Character('\u01B2')); // ( 434) X
+ f.add(new Character('\u01B3')); // ( 435) X
+ f.add(new Character('\u01B4')); // ( 436) X
+ f.add(new Character('\u01B5')); // ( 437) X
+ f.add(new Character('\u01B6')); // ( 438) X
+ f.add(new Character('\u01B7')); // ( 439) X
+ f.add(new Character('\u01B8')); // ( 440) X
+ f.add(new Character('\u01B9')); // ( 441) X
+ f.add(new Character('\u01BA')); // ( 442) X
+ f.add(new Character('\u01BB')); // ( 443) X
+ f.add(new Character('\u01BC')); // ( 444) X
+ f.add(new Character('\u01BD')); // ( 445) X
+ f.add(new Character('\u01BE')); // ( 446) X
+ f.add(new Character('\u01BF')); // ( 447) X
+ f.add(new Character('\u01C0')); // ( 448) X
+ f.add(new Character('\u01C1')); // ( 449) X
+ f.add(new Character('\u01C2')); // ( 450) X
+ f.add(new Character('\u01C3')); // ( 451) X
+ f.add(new Character('\u01C4')); // ( 452) X
+ f.add(new Character('\u01C5')); // ( 453) X
+ f.add(new Character('\u01C6')); // ( 454) X
+ f.add(new Character('\u01C7')); // ( 455) X
+ f.add(new Character('\u01C8')); // ( 456) X
+ f.add(new Character('\u01C9')); // ( 457) X
+ f.add(new Character('\u01CA')); // ( 458) X
+ f.add(new Character('\u01CB')); // ( 459) X
+ f.add(new Character('\u01CC')); // ( 460) X
+ f.add(new Character('\u01CD')); // ( 461) X
+ f.add(new Character('\u01CE')); // ( 462) X
+ f.add(new Character('\u01CF')); // ( 463) X
+ f.add(new Character('\u01D0')); // ( 464) X
+ f.add(new Character('\u01D1')); // ( 465) X
+ f.add(new Character('\u01D2')); // ( 466) X
+ f.add(new Character('\u01D3')); // ( 467) X
+ f.add(new Character('\u01D4')); // ( 468) X
+ f.add(new Character('\u01D5')); // ( 469) X
+ f.add(new Character('\u01D6')); // ( 470) X
+ f.add(new Character('\u01D7')); // ( 471) X
+ f.add(new Character('\u01D8')); // ( 472) X
+ f.add(new Character('\u01D9')); // ( 473) X
+ f.add(new Character('\u01DA')); // ( 474) X
+ f.add(new Character('\u01DB')); // ( 475) X
+ f.add(new Character('\u01DC')); // ( 476) X
+ f.add(new Character('\u01DD')); // ( 477) X
+ f.add(new Character('\u01DE')); // ( 478) X
+ f.add(new Character('\u01DF')); // ( 479) X
+ f.add(new Character('\u01E0')); // ( 480) X
+ f.add(new Character('\u01E1')); // ( 481) X
+ f.add(new Character('\u01E2')); // ( 482) X
+ f.add(new Character('\u01E3')); // ( 483) X
+ f.add(new Character('\u01E4')); // ( 484) X
+ f.add(new Character('\u01E5')); // ( 485) X
+ f.add(new Character('\u01E6')); // ( 486) X
+ f.add(new Character('\u01E7')); // ( 487) X
+ f.add(new Character('\u01E8')); // ( 488) X
+ f.add(new Character('\u01E9')); // ( 489) X
+ f.add(new Character('\u01EA')); // ( 490) X
+ f.add(new Character('\u01EB')); // ( 491) X
+ f.add(new Character('\u01EC')); // ( 492) X
+ f.add(new Character('\u01ED')); // ( 493) X
+ f.add(new Character('\u01EE')); // ( 494) X
+ f.add(new Character('\u01EF')); // ( 495) X
+ f.add(new Character('\u01F0')); // ( 496) X
+ f.add(new Character('\u01F1')); // ( 497) X
+ f.add(new Character('\u01F2')); // ( 498) X
+ f.add(new Character('\u01F3')); // ( 499) X
+ f.add(new Character('\u01F4')); // ( 500) X
+ f.add(new Character('\u01F5')); // ( 501) X
+ f.add(new Character('\u01F6')); // ( 502) X
+ f.add(new Character('\u01F7')); // ( 503) X
+ f.add(new Character('\u01F8')); // ( 504) X
+ f.add(new Character('\u01F9')); // ( 505) X
+ f.add(new Character('\u01FA')); // ( 506) X
+ f.add(new Character('\u01FB')); // ( 507) X
+ f.add(new Character('\u01FC')); // ( 508) X
+ f.add(new Character('\u01FD')); // ( 509) X
+ f.add(new Character('\u01FE')); // ( 510) X
+ f.add(new Character('\u01FF')); // ( 511) X
+ f.add(new Character('\u0200')); // ( 512) X
+ f.add(new Character('\u0201')); // ( 513) X
+ f.add(new Character('\u0202')); // ( 514) X
+ f.add(new Character('\u0203')); // ( 515) X
+ f.add(new Character('\u0204')); // ( 516) X
+ f.add(new Character('\u0205')); // ( 517) X
+ f.add(new Character('\u0206')); // ( 518) X
+ f.add(new Character('\u0207')); // ( 519) X
+ f.add(new Character('\u0208')); // ( 520) X
+ f.add(new Character('\u0209')); // ( 521) X
+ f.add(new Character('\u020A')); // ( 522) X
+ f.add(new Character('\u020B')); // ( 523) X
+ f.add(new Character('\u020C')); // ( 524) X
+ f.add(new Character('\u020D')); // ( 525) X
+ f.add(new Character('\u020E')); // ( 526) X
+ f.add(new Character('\u020F')); // ( 527) X
+ f.add(new Character('\u0210')); // ( 528) X
+ f.add(new Character('\u0211')); // ( 529) X
+ f.add(new Character('\u0212')); // ( 530) X
+ f.add(new Character('\u0213')); // ( 531) X
+ f.add(new Character('\u0214')); // ( 532) X
+ f.add(new Character('\u0215')); // ( 533) X
+ f.add(new Character('\u0216')); // ( 534) X
+ f.add(new Character('\u0217')); // ( 535) X
+ f.add(new Character('\u0218')); // ( 536) X
+ f.add(new Character('\u0219')); // ( 537) X
+ f.add(new Character('\u021A')); // ( 538) X
+ f.add(new Character('\u021B')); // ( 539) X
+ f.add(new Character('\u021C')); // ( 540) X
+ f.add(new Character('\u021D')); // ( 541) X
+ f.add(new Character('\u021E')); // ( 542) X
+ f.add(new Character('\u021F')); // ( 543) X
+ f.add(new Character('\u0220')); // ( 544) X
+ f.add(new Character('\u0221')); // ( 545) X
+ f.add(new Character('\u0222')); // ( 546) X
+ f.add(new Character('\u0223')); // ( 547) X
+ f.add(new Character('\u0224')); // ( 548) X
+ f.add(new Character('\u0225')); // ( 549) X
+ f.add(new Character('\u0226')); // ( 550) X
+ f.add(new Character('\u0227')); // ( 551) X
+ f.add(new Character('\u0228')); // ( 552) X
+ f.add(new Character('\u0229')); // ( 553) X
+ f.add(new Character('\u022A')); // ( 554) X
+ f.add(new Character('\u022B')); // ( 555) X
+ f.add(new Character('\u022C')); // ( 556) X
+ f.add(new Character('\u022D')); // ( 557) X
+ f.add(new Character('\u022E')); // ( 558) X
+ f.add(new Character('\u022F')); // ( 559) X
+ f.add(new Character('\u0230')); // ( 560) X
+ f.add(new Character('\u0231')); // ( 561) X
+ f.add(new Character('\u0232')); // ( 562) X
+ f.add(new Character('\u0233')); // ( 563) X
+ f.add(new Character('\u0234')); // ( 564) X
+ f.add(new Character('\u0235')); // ( 565) X
+ f.add(new Character('\u0236')); // ( 566) X
+ f.add(new Character('\u0237')); // ( 567) X
+ f.add(new Character('\u0238')); // ( 568) X
+ f.add(new Character('\u0239')); // ( 569) X
+ f.add(new Character('\u023A')); // ( 570) X
+ f.add(new Character('\u023B')); // ( 571) X
+ f.add(new Character('\u023C')); // ( 572) X
+ f.add(new Character('\u023D')); // ( 573) X
+ f.add(new Character('\u023E')); // ( 574) X
+ f.add(new Character('\u023F')); // ( 575) X
+ f.add(new Character('\u0240')); // ( 576) X
+ f.add(new Character('\u0241')); // ( 577) X
+ f.add(new Character('\u0242')); // ( 578) X
+ f.add(new Character('\u0243')); // ( 579) X
+ f.add(new Character('\u0244')); // ( 580) X
+ f.add(new Character('\u0245')); // ( 581) X
+ f.add(new Character('\u0246')); // ( 582) X
+ f.add(new Character('\u0247')); // ( 583) X
+ f.add(new Character('\u0248')); // ( 584) X
+ f.add(new Character('\u0249')); // ( 585) X
+ f.add(new Character('\u024A')); // ( 586) X
+ f.add(new Character('\u024B')); // ( 587) X
+ f.add(new Character('\u024C')); // ( 588) X
+ f.add(new Character('\u024D')); // ( 589) X
+ f.add(new Character('\u024E')); // ( 590) X
+ f.add(new Character('\u024F')); // ( 591) X
+ f.add(new Character('\u0250')); // ( 592) X
+ f.add(new Character('\u0251')); // ( 593) X
+ f.add(new Character('\u0252')); // ( 594) X
+ f.add(new Character('\u0253')); // ( 595) X
+ f.add(new Character('\u0254')); // ( 596) X
+ f.add(new Character('\u0255')); // ( 597) X
+ f.add(new Character('\u0256')); // ( 598) X
+ f.add(new Character('\u0257')); // ( 599) X
+ f.add(new Character('\u0258')); // ( 600) X
+ f.add(new Character('\u0259')); // ( 601) X
+ f.add(new Character('\u025A')); // ( 602) X
+ f.add(new Character('\u025B')); // ( 603) X
+ f.add(new Character('\u025C')); // ( 604) X
+ f.add(new Character('\u025D')); // ( 605) X
+ f.add(new Character('\u025E')); // ( 606) X
+ f.add(new Character('\u025F')); // ( 607) X
+ f.add(new Character('\u0260')); // ( 608) X
+ f.add(new Character('\u0261')); // ( 609) X
+ f.add(new Character('\u0262')); // ( 610) X
+ f.add(new Character('\u0263')); // ( 611) X
+ f.add(new Character('\u0264')); // ( 612) X
+ f.add(new Character('\u0265')); // ( 613) X
+ f.add(new Character('\u0266')); // ( 614) X
+ f.add(new Character('\u0267')); // ( 615) X
+ f.add(new Character('\u0268')); // ( 616) X
+ f.add(new Character('\u0269')); // ( 617) X
+ f.add(new Character('\u026A')); // ( 618) X
+ f.add(new Character('\u026B')); // ( 619) X
+ f.add(new Character('\u026C')); // ( 620) X
+ f.add(new Character('\u026D')); // ( 621) X
+ f.add(new Character('\u026E')); // ( 622) X
+ f.add(new Character('\u026F')); // ( 623) X
+ f.add(new Character('\u0270')); // ( 624) X
+ f.add(new Character('\u0271')); // ( 625) X
+ f.add(new Character('\u0272')); // ( 626) X
+ f.add(new Character('\u0273')); // ( 627) X
+ f.add(new Character('\u0274')); // ( 628) X
+ f.add(new Character('\u0275')); // ( 629) X
+ f.add(new Character('\u0276')); // ( 630) X
+ f.add(new Character('\u0277')); // ( 631) X
+ f.add(new Character('\u0278')); // ( 632) X
+ f.add(new Character('\u0279')); // ( 633) X
+ f.add(new Character('\u027A')); // ( 634) X
+ f.add(new Character('\u027B')); // ( 635) X
+ f.add(new Character('\u027C')); // ( 636) X
+ f.add(new Character('\u027D')); // ( 637) X
+ f.add(new Character('\u027E')); // ( 638) X
+ f.add(new Character('\u027F')); // ( 639) X
+ f.add(new Character('\u0280')); // ( 640) X
+ f.add(new Character('\u0281')); // ( 641) X
+ f.add(new Character('\u0282')); // ( 642) X
+ f.add(new Character('\u0283')); // ( 643) X
+ f.add(new Character('\u0284')); // ( 644) X
+ f.add(new Character('\u0285')); // ( 645) X
+ f.add(new Character('\u0286')); // ( 646) X
+ f.add(new Character('\u0287')); // ( 647) X
+ f.add(new Character('\u0288')); // ( 648) X
+ f.add(new Character('\u0289')); // ( 649) X
+ f.add(new Character('\u028A')); // ( 650) X
+ f.add(new Character('\u028B')); // ( 651) X
+ f.add(new Character('\u028C')); // ( 652) X
+ f.add(new Character('\u028D')); // ( 653) X
+ f.add(new Character('\u028E')); // ( 654) X
+ f.add(new Character('\u028F')); // ( 655) X
+ f.add(new Character('\u0290')); // ( 656) X
+ f.add(new Character('\u0291')); // ( 657) X
+ f.add(new Character('\u0292')); // ( 658) X
+ f.add(new Character('\u0293')); // ( 659) X
+ f.add(new Character('\u0294')); // ( 660) X
+ f.add(new Character('\u0295')); // ( 661) X
+ f.add(new Character('\u0296')); // ( 662) X
+ f.add(new Character('\u0297')); // ( 663) X
+ f.add(new Character('\u0298')); // ( 664) X
+ f.add(new Character('\u0299')); // ( 665) X
+ f.add(new Character('\u029A')); // ( 666) X
+ f.add(new Character('\u029B')); // ( 667) X
+ f.add(new Character('\u029C')); // ( 668) X
+ f.add(new Character('\u029D')); // ( 669) X
+ f.add(new Character('\u029E')); // ( 670) X
+ f.add(new Character('\u029F')); // ( 671) X
+ f.add(new Character('\u02A0')); // ( 672) X
+ f.add(new Character('\u02A1')); // ( 673) X
+ f.add(new Character('\u02A2')); // ( 674) X
+ f.add(new Character('\u02A3')); // ( 675) X
+ f.add(new Character('\u02A4')); // ( 676) X
+ f.add(new Character('\u02A5')); // ( 677) X
+ f.add(new Character('\u02A6')); // ( 678) X
+ f.add(new Character('\u02A7')); // ( 679) X
+ f.add(new Character('\u02A8')); // ( 680) X
+ f.add(new Character('\u02A9')); // ( 681) X
+ f.add(new Character('\u02AA')); // ( 682) X
+ f.add(new Character('\u02AB')); // ( 683) X
+ f.add(new Character('\u02AC')); // ( 684) X
+ f.add(new Character('\u02AD')); // ( 685) X
+ f.add(new Character('\u02AE')); // ( 686) X
+ f.add(new Character('\u02AF')); // ( 687) X
+ f.add(new Character('\u02B0')); // ( 688) X
+ f.add(new Character('\u02B1')); // ( 689) X
+ f.add(new Character('\u02B2')); // ( 690) X
+ f.add(new Character('\u02B3')); // ( 691) X
+ f.add(new Character('\u02B4')); // ( 692) X
+ f.add(new Character('\u02B5')); // ( 693) X
+ f.add(new Character('\u02B6')); // ( 694) X
+ f.add(new Character('\u02B7')); // ( 695) X
+ f.add(new Character('\u02B8')); // ( 696) X
+ f.add(new Character('\u02B9')); // ( 697) X
+ f.add(new Character('\u02BA')); // ( 698) X
+ f.add(new Character('\u02BB')); // ( 699) X
+ f.add(new Character('\u02BC')); // ( 700) X
+ f.add(new Character('\u02BD')); // ( 701) X
+ f.add(new Character('\u02BE')); // ( 702) X
+ f.add(new Character('\u02BF')); // ( 703) X
+ f.add(new Character('\u02C0')); // ( 704) X
+ f.add(new Character('\u02C1')); // ( 705) X
+ f.add(new Character('\u02C2')); // ( 706) X
+ f.add(new Character('\u02C3')); // ( 707) X
+ f.add(new Character('\u02C4')); // ( 708) X
+ f.add(new Character('\u02C5')); // ( 709) X
+ f.add(new Character('\u02C6')); // ( 710) X
+ f.add(new Character('\u02C7')); // ( 711) X
+ f.add(new Character('\u02C8')); // ( 712) X
+ f.add(new Character('\u02C9')); // ( 713) X
+ f.add(new Character('\u02CA')); // ( 714) X
+ f.add(new Character('\u02CB')); // ( 715) X
+ f.add(new Character('\u02CC')); // ( 716) X
+ f.add(new Character('\u02CD')); // ( 717) X
+ f.add(new Character('\u02CE')); // ( 718) X
+ f.add(new Character('\u02CF')); // ( 719) X
+ f.add(new Character('\u02D0')); // ( 720) X
+ f.add(new Character('\u02D1')); // ( 721) X
+ f.add(new Character('\u02D2')); // ( 722) X
+ f.add(new Character('\u02D3')); // ( 723) X
+ f.add(new Character('\u02D4')); // ( 724) X
+ f.add(new Character('\u02D5')); // ( 725) X
+ f.add(new Character('\u02D6')); // ( 726) X
+ f.add(new Character('\u02D7')); // ( 727) X
+ f.add(new Character('\u02D8')); // ( 728) X
+ f.add(new Character('\u02D9')); // ( 729) X
+ f.add(new Character('\u02DA')); // ( 730) X
+ f.add(new Character('\u02DB')); // ( 731) X
+ f.add(new Character('\u02DC')); // ( 732) X
+ f.add(new Character('\u02DD')); // ( 733) X
+ f.add(new Character('\u02DE')); // ( 734) X
+ f.add(new Character('\u02DF')); // ( 735) X
+ f.add(new Character('\u02E0')); // ( 736) X
+ f.add(new Character('\u02E1')); // ( 737) X
+ f.add(new Character('\u02E2')); // ( 738) X
+ f.add(new Character('\u02E3')); // ( 739) X
+ f.add(new Character('\u02E4')); // ( 740) X
+ f.add(new Character('\u02E5')); // ( 741) X
+ f.add(new Character('\u02E6')); // ( 742) X
+ f.add(new Character('\u02E7')); // ( 743) X
+ f.add(new Character('\u02E8')); // ( 744) X
+ f.add(new Character('\u02E9')); // ( 745) X
+ f.add(new Character('\u02EA')); // ( 746) X
+ f.add(new Character('\u02EB')); // ( 747) X
+ f.add(new Character('\u02EC')); // ( 748) X
+ f.add(new Character('\u02ED')); // ( 749) X
+ f.add(new Character('\u02EE')); // ( 750) X
+ f.add(new Character('\u02EF')); // ( 751) X
+ f.add(new Character('\u02F0')); // ( 752) X
+ f.add(new Character('\u02F1')); // ( 753) X
+ f.add(new Character('\u02F2')); // ( 754) X
+ f.add(new Character('\u02F3')); // ( 755) X
+ f.add(new Character('\u02F4')); // ( 756) X
+ f.add(new Character('\u02F5')); // ( 757) X
+ f.add(new Character('\u02F6')); // ( 758) X
+ f.add(new Character('\u02F7')); // ( 759) X
+ f.add(new Character('\u02F8')); // ( 760) X
+ f.add(new Character('\u02F9')); // ( 761) X
+ f.add(new Character('\u02FA')); // ( 762) X
+ f.add(new Character('\u02FB')); // ( 763) X
+ f.add(new Character('\u02FC')); // ( 764) X
+ f.add(new Character('\u02FD')); // ( 765) X
+ f.add(new Character('\u02FE')); // ( 766) X
+ f.add(new Character('\u02FF')); // ( 767) X
+ f.add(new Character('\u0300')); // ( 768) X
+ f.add(new Character('\u0301')); // ( 769) X
+ f.add(new Character('\u0302')); // ( 770) X
+ f.add(new Character('\u0303')); // ( 771) X
+ f.add(new Character('\u0304')); // ( 772) X
+ f.add(new Character('\u0305')); // ( 773) X
+ f.add(new Character('\u0306')); // ( 774) X
+ f.add(new Character('\u0307')); // ( 775) X
+ f.add(new Character('\u0308')); // ( 776) X
+ f.add(new Character('\u0309')); // ( 777) X
+ f.add(new Character('\u030A')); // ( 778) X
+ f.add(new Character('\u030B')); // ( 779) X
+ f.add(new Character('\u030C')); // ( 780) X
+ f.add(new Character('\u030D')); // ( 781) X
+ f.add(new Character('\u030E')); // ( 782) X
+ f.add(new Character('\u030F')); // ( 783) X
+ f.add(new Character('\u0310')); // ( 784) X
+ f.add(new Character('\u0311')); // ( 785) X
+ f.add(new Character('\u0312')); // ( 786) X
+ f.add(new Character('\u0313')); // ( 787) X
+ f.add(new Character('\u0314')); // ( 788) X
+ f.add(new Character('\u0315')); // ( 789) X
+ f.add(new Character('\u0316')); // ( 790) X
+ f.add(new Character('\u0317')); // ( 791) X
+ f.add(new Character('\u0318')); // ( 792) X
+ f.add(new Character('\u0319')); // ( 793) X
+ f.add(new Character('\u031A')); // ( 794) X
+ f.add(new Character('\u031B')); // ( 795) X
+ f.add(new Character('\u031C')); // ( 796) X
+ f.add(new Character('\u031D')); // ( 797) X
+ f.add(new Character('\u031E')); // ( 798) X
+ f.add(new Character('\u031F')); // ( 799) X
+ f.add(new Character('\u0320')); // ( 800) X
+ f.add(new Character('\u0321')); // ( 801) X
+ f.add(new Character('\u0322')); // ( 802) X
+ f.add(new Character('\u0323')); // ( 803) X
+ f.add(new Character('\u0324')); // ( 804) X
+ f.add(new Character('\u0325')); // ( 805) X
+ f.add(new Character('\u0326')); // ( 806) X
+ f.add(new Character('\u0327')); // ( 807) X
+ f.add(new Character('\u0328')); // ( 808) X
+ f.add(new Character('\u0329')); // ( 809) X
+ f.add(new Character('\u032A')); // ( 810) X
+ f.add(new Character('\u032B')); // ( 811) X
+ f.add(new Character('\u032C')); // ( 812) X
+ f.add(new Character('\u032D')); // ( 813) X
+ f.add(new Character('\u032E')); // ( 814) X
+ f.add(new Character('\u032F')); // ( 815) X
+ f.add(new Character('\u0330')); // ( 816) X
+ f.add(new Character('\u0331')); // ( 817) X
+ f.add(new Character('\u0332')); // ( 818) X
+ f.add(new Character('\u0333')); // ( 819) X
+ f.add(new Character('\u0334')); // ( 820) X
+ f.add(new Character('\u0335')); // ( 821) X
+ f.add(new Character('\u0336')); // ( 822) X
+ f.add(new Character('\u0337')); // ( 823) X
+ f.add(new Character('\u0338')); // ( 824) X
+ f.add(new Character('\u0339')); // ( 825) X
+ f.add(new Character('\u033A')); // ( 826) X
+ f.add(new Character('\u033B')); // ( 827) X
+ f.add(new Character('\u033C')); // ( 828) X
+ f.add(new Character('\u033D')); // ( 829) X
+ f.add(new Character('\u033E')); // ( 830) X
+ f.add(new Character('\u033F')); // ( 831) X
+ f.add(new Character('\u0340')); // ( 832) X
+ f.add(new Character('\u0341')); // ( 833) X
+ f.add(new Character('\u0342')); // ( 834) X
+ f.add(new Character('\u0343')); // ( 835) X
+ f.add(new Character('\u0344')); // ( 836) X
+ f.add(new Character('\u0345')); // ( 837) X
+ f.add(new Character('\u0346')); // ( 838) X
+ f.add(new Character('\u0347')); // ( 839) X
+ f.add(new Character('\u0348')); // ( 840) X
+ f.add(new Character('\u0349')); // ( 841) X
+ f.add(new Character('\u034A')); // ( 842) X
+ f.add(new Character('\u034B')); // ( 843) X
+ f.add(new Character('\u034C')); // ( 844) X
+ f.add(new Character('\u034D')); // ( 845) X
+ f.add(new Character('\u034E')); // ( 846) X
+ f.add(new Character('\u034F')); // ( 847) X
+ f.add(new Character('\u0350')); // ( 848) X
+ f.add(new Character('\u0351')); // ( 849) X
+ f.add(new Character('\u0352')); // ( 850) X
+ f.add(new Character('\u0353')); // ( 851) X
+ f.add(new Character('\u0354')); // ( 852) X
+ f.add(new Character('\u0355')); // ( 853) X
+ f.add(new Character('\u0356')); // ( 854) X
+ f.add(new Character('\u0357')); // ( 855) X
+ f.add(new Character('\u0358')); // ( 856) X
+ f.add(new Character('\u0359')); // ( 857) X
+ f.add(new Character('\u035A')); // ( 858) X
+ f.add(new Character('\u035B')); // ( 859) X
+ f.add(new Character('\u035C')); // ( 860) X
+ f.add(new Character('\u035D')); // ( 861) X
+ f.add(new Character('\u035E')); // ( 862) X
+ f.add(new Character('\u035F')); // ( 863) X
+ f.add(new Character('\u0360')); // ( 864) X
+ f.add(new Character('\u0361')); // ( 865) X
+ f.add(new Character('\u0362')); // ( 866) X
+ f.add(new Character('\u0363')); // ( 867) X
+ f.add(new Character('\u0364')); // ( 868) X
+ f.add(new Character('\u0365')); // ( 869) X
+ f.add(new Character('\u0366')); // ( 870) X
+ f.add(new Character('\u0367')); // ( 871) X
+ f.add(new Character('\u0368')); // ( 872) X
+ f.add(new Character('\u0369')); // ( 873) X
+ f.add(new Character('\u036A')); // ( 874) X
+ f.add(new Character('\u036B')); // ( 875) X
+ f.add(new Character('\u036C')); // ( 876) X
+ f.add(new Character('\u036D')); // ( 877) X
+ f.add(new Character('\u036E')); // ( 878) X
+ f.add(new Character('\u036F')); // ( 879) X
+ f.add(new Character('\u0370')); // ( 880) X
+ f.add(new Character('\u0371')); // ( 881) X
+ f.add(new Character('\u0372')); // ( 882) X
+ f.add(new Character('\u0373')); // ( 883) X
+ f.add(new Character('\u0374')); // ( 884) X
+ f.add(new Character('\u0375')); // ( 885) X
+ f.add(new Character('\u0376')); // ( 886) X
+ f.add(new Character('\u0377')); // ( 887) X
+ f.add(new Character('\u0378')); // ( 888) X
+ f.add(new Character('\u0379')); // ( 889) X
+ f.add(new Character('\u037A')); // ( 890) X
+ f.add(new Character('\u037B')); // ( 891) X
+ f.add(new Character('\u037C')); // ( 892) X
+ f.add(new Character('\u037D')); // ( 893) X
+ f.add(new Character('\u037E')); // ( 894) X
+ f.add(new Character('\u037F')); // ( 895) X
+ f.add(new Character('\u0380')); // ( 896) X
+ f.add(new Character('\u0381')); // ( 897) X
+ f.add(new Character('\u0382')); // ( 898) X
+ f.add(new Character('\u0383')); // ( 899) X
+ f.add(new Character('\u0384')); // ( 900) X
+ f.add(new Character('\u0385')); // ( 901) X
+ f.add(new Character('\u0386')); // ( 902) X
+ f.add(new Character('\u0387')); // ( 903) X
+ f.add(new Character('\u0388')); // ( 904) X
+ f.add(new Character('\u0389')); // ( 905) X
+ f.add(new Character('\u038A')); // ( 906) X
+ f.add(new Character('\u038B')); // ( 907) X
+ f.add(new Character('\u038C')); // ( 908) X
+ f.add(new Character('\u038D')); // ( 909) X
+ f.add(new Character('\u038E')); // ( 910) X
+ f.add(new Character('\u038F')); // ( 911) X
+ f.add(new Character('\u0390')); // ( 912) X
+ f.add(new Character('\u0391')); // ( 913) X
+ f.add(new Character('\u0392')); // ( 914) X
+ f.add(new Character('\u0393')); // ( 915) X
+ f.add(new Character('\u0394')); // ( 916) X
+ f.add(new Character('\u0395')); // ( 917) X
+ f.add(new Character('\u0396')); // ( 918) X
+ f.add(new Character('\u0397')); // ( 919) X
+ f.add(new Character('\u0398')); // ( 920) X
+ f.add(new Character('\u0399')); // ( 921) X
+ f.add(new Character('\u039A')); // ( 922) X
+ f.add(new Character('\u039B')); // ( 923) X
+ f.add(new Character('\u039C')); // ( 924) X
+ f.add(new Character('\u039D')); // ( 925) X
+ f.add(new Character('\u039E')); // ( 926) X
+ f.add(new Character('\u039F')); // ( 927) X
+ f.add(new Character('\u03A0')); // ( 928) X
+ f.add(new Character('\u03A1')); // ( 929) X
+ f.add(new Character('\u03A2')); // ( 930) X
+ f.add(new Character('\u03A3')); // ( 931) X
+ f.add(new Character('\u03A4')); // ( 932) X
+ f.add(new Character('\u03A5')); // ( 933) X
+ f.add(new Character('\u03A6')); // ( 934) X
+ f.add(new Character('\u03A7')); // ( 935) X
+ f.add(new Character('\u03A8')); // ( 936) X
+ f.add(new Character('\u03A9')); // ( 937) X
+ f.add(new Character('\u03AA')); // ( 938) X
+ f.add(new Character('\u03AB')); // ( 939) X
+ f.add(new Character('\u03AC')); // ( 940) X
+ f.add(new Character('\u03AD')); // ( 941) X
+ f.add(new Character('\u03AE')); // ( 942) X
+ f.add(new Character('\u03AF')); // ( 943) X
+ f.add(new Character('\u03B0')); // ( 944) X
+ f.add(new Character('\u03B1')); // ( 945) X
+ f.add(new Character('\u03B2')); // ( 946) X
+ f.add(new Character('\u03B3')); // ( 947) X
+ f.add(new Character('\u03B4')); // ( 948) X
+ f.add(new Character('\u03B5')); // ( 949) X
+ f.add(new Character('\u03B6')); // ( 950) X
+ f.add(new Character('\u03B7')); // ( 951) X
+ f.add(new Character('\u03B8')); // ( 952) X
+ f.add(new Character('\u03B9')); // ( 953) X
+ f.add(new Character('\u03BA')); // ( 954) X
+ f.add(new Character('\u03BB')); // ( 955) X
+ f.add(new Character('\u03BC')); // ( 956) X
+ f.add(new Character('\u03BD')); // ( 957) X
+ f.add(new Character('\u03BE')); // ( 958) X
+ f.add(new Character('\u03BF')); // ( 959) X
+ f.add(new Character('\u03C0')); // ( 960) X
+ f.add(new Character('\u03C1')); // ( 961) X
+ f.add(new Character('\u03C2')); // ( 962) X
+ f.add(new Character('\u03C3')); // ( 963) X
+ f.add(new Character('\u03C4')); // ( 964) X
+ f.add(new Character('\u03C5')); // ( 965) X
+ f.add(new Character('\u03C6')); // ( 966) X
+ f.add(new Character('\u03C7')); // ( 967) X
+ f.add(new Character('\u03C8')); // ( 968) X
+ f.add(new Character('\u03C9')); // ( 969) X
+ f.add(new Character('\u03CA')); // ( 970) X
+ f.add(new Character('\u03CB')); // ( 971) X
+ f.add(new Character('\u03CC')); // ( 972) X
+ f.add(new Character('\u03CD')); // ( 973) X
+ f.add(new Character('\u03CE')); // ( 974) X
+ f.add(new Character('\u03CF')); // ( 975) X
+ f.add(new Character('\u03D0')); // ( 976) X
+ f.add(new Character('\u03D1')); // ( 977) X
+ f.add(new Character('\u03D2')); // ( 978) X
+ f.add(new Character('\u03D3')); // ( 979) X
+ f.add(new Character('\u03D4')); // ( 980) X
+ f.add(new Character('\u03D5')); // ( 981) X
+ f.add(new Character('\u03D6')); // ( 982) X
+ f.add(new Character('\u03D7')); // ( 983) X
+ f.add(new Character('\u03D8')); // ( 984) X
+ f.add(new Character('\u03D9')); // ( 985) X
+ f.add(new Character('\u03DA')); // ( 986) X
+ f.add(new Character('\u03DB')); // ( 987) X
+ f.add(new Character('\u03DC')); // ( 988) X
+ f.add(new Character('\u03DD')); // ( 989) X
+ f.add(new Character('\u03DE')); // ( 990) X
+ f.add(new Character('\u03DF')); // ( 991) X
+ f.add(new Character('\u03E0')); // ( 992) X
+ f.add(new Character('\u03E1')); // ( 993) X
+ f.add(new Character('\u03E2')); // ( 994) X
+ f.add(new Character('\u03E3')); // ( 995) X
+ f.add(new Character('\u03E4')); // ( 996) X
+ f.add(new Character('\u03E5')); // ( 997) X
+ f.add(new Character('\u03E6')); // ( 998) X
+ f.add(new Character('\u03E7')); // ( 999) X
+ f.add(new Character('\u03E8')); // (1000) X
+ f.add(new Character('\u03E9')); // (1001) X
+ f.add(new Character('\u03EA')); // (1002) X
+ f.add(new Character('\u03EB')); // (1003) X
+ f.add(new Character('\u03EC')); // (1004) X
+ f.add(new Character('\u03ED')); // (1005) X
+ f.add(new Character('\u03EE')); // (1006) X
+ f.add(new Character('\u03EF')); // (1007) X
+ f.add(new Character('\u03F0')); // (1008) X
+ f.add(new Character('\u03F1')); // (1009) X
+ f.add(new Character('\u03F2')); // (1010) X
+ f.add(new Character('\u03F3')); // (1011) X
+ f.add(new Character('\u03F4')); // (1012) X
+ f.add(new Character('\u03F5')); // (1013) X
+ f.add(new Character('\u03F6')); // (1014) X
+ f.add(new Character('\u03F7')); // (1015) X
+ f.add(new Character('\u03F8')); // (1016) X
+ f.add(new Character('\u03F9')); // (1017) X
+ f.add(new Character('\u03FA')); // (1018) X
+ f.add(new Character('\u03FB')); // (1019) X
+ f.add(new Character('\u03FC')); // (1020) X
+ f.add(new Character('\u03FD')); // (1021) X
+ f.add(new Character('\u03FE')); // (1022) X
+ f.add(new Character('\u03FF')); // (1023) X
+ f.add(new Character('\u0400')); // (1024) X
+ f.add(new Character('\u0401')); // (1025) X
+ f.add(new Character('\u0402')); // (1026) X
+ f.add(new Character('\u0403')); // (1027) X
+ f.add(new Character('\u0404')); // (1028) X
+ f.add(new Character('\u0405')); // (1029) X
+ f.add(new Character('\u0406')); // (1030) X
+ f.add(new Character('\u0407')); // (1031) X
+ f.add(new Character('\u0408')); // (1032) X
+ f.add(new Character('\u0409')); // (1033) X
+ f.add(new Character('\u040A')); // (1034) X
+ f.add(new Character('\u040B')); // (1035) X
+ f.add(new Character('\u040C')); // (1036) X
+ f.add(new Character('\u040D')); // (1037) X
+ f.add(new Character('\u040E')); // (1038) X
+ f.add(new Character('\u040F')); // (1039) X
+ f.add(new Character('\u0410')); // (1040) X
+ f.add(new Character('\u0411')); // (1041) X
+ f.add(new Character('\u0412')); // (1042) X
+ f.add(new Character('\u0413')); // (1043) X
+ f.add(new Character('\u0414')); // (1044) X
+ f.add(new Character('\u0415')); // (1045) X
+ f.add(new Character('\u0416')); // (1046) X
+ f.add(new Character('\u0417')); // (1047) X
+ f.add(new Character('\u0418')); // (1048) X
+ f.add(new Character('\u0419')); // (1049) X
+ f.add(new Character('\u041A')); // (1050) X
+ f.add(new Character('\u041B')); // (1051) X
+ f.add(new Character('\u041C')); // (1052) X
+ f.add(new Character('\u041D')); // (1053) X
+ f.add(new Character('\u041E')); // (1054) X
+ f.add(new Character('\u041F')); // (1055) X
+ f.add(new Character('\u0420')); // (1056) X
+ f.add(new Character('\u0421')); // (1057) X
+ f.add(new Character('\u0422')); // (1058) X
+ f.add(new Character('\u0423')); // (1059) X
+ f.add(new Character('\u0424')); // (1060) X
+ f.add(new Character('\u0425')); // (1061) X
+ f.add(new Character('\u0426')); // (1062) X
+ f.add(new Character('\u0427')); // (1063) X
+ f.add(new Character('\u0428')); // (1064) X
+ f.add(new Character('\u0429')); // (1065) X
+ f.add(new Character('\u042A')); // (1066) X
+ f.add(new Character('\u042B')); // (1067) X
+ f.add(new Character('\u042C')); // (1068) X
+ f.add(new Character('\u042D')); // (1069) X
+ f.add(new Character('\u042E')); // (1070) X
+ f.add(new Character('\u042F')); // (1071) X
+ f.add(new Character('\u0430')); // (1072) X
+ f.add(new Character('\u0431')); // (1073) X
+ f.add(new Character('\u0432')); // (1074) X
+ f.add(new Character('\u0433')); // (1075) X
+ f.add(new Character('\u0434')); // (1076) X
+ f.add(new Character('\u0435')); // (1077) X
+ f.add(new Character('\u0436')); // (1078) X
+ f.add(new Character('\u0437')); // (1079) X
+ f.add(new Character('\u0438')); // (1080) X
+ f.add(new Character('\u0439')); // (1081) X
+ f.add(new Character('\u043A')); // (1082) X
+ f.add(new Character('\u043B')); // (1083) X
+ f.add(new Character('\u043C')); // (1084) X
+ f.add(new Character('\u043D')); // (1085) X
+ f.add(new Character('\u043E')); // (1086) X
+ f.add(new Character('\u043F')); // (1087) X
+ f.add(new Character('\u0440')); // (1088) X
+ f.add(new Character('\u0441')); // (1089) X
+ f.add(new Character('\u0442')); // (1090) X
+ f.add(new Character('\u0443')); // (1091) X
+ f.add(new Character('\u0444')); // (1092) X
+ f.add(new Character('\u0445')); // (1093) X
+ f.add(new Character('\u0446')); // (1094) X
+ f.add(new Character('\u0447')); // (1095) X
+ f.add(new Character('\u0448')); // (1096) X
+ f.add(new Character('\u0449')); // (1097) X
+ f.add(new Character('\u044A')); // (1098) X
+ f.add(new Character('\u044B')); // (1099) X
+ f.add(new Character('\u044C')); // (1100) X
+ f.add(new Character('\u044D')); // (1101) X
+ f.add(new Character('\u044E')); // (1102) X
+ f.add(new Character('\u044F')); // (1103) X
+ f.add(new Character('\u0450')); // (1104) X
+ f.add(new Character('\u0451')); // (1105) X
+ f.add(new Character('\u0452')); // (1106) X
+ f.add(new Character('\u0453')); // (1107) X
+ f.add(new Character('\u0454')); // (1108) X
+ f.add(new Character('\u0455')); // (1109) X
+ f.add(new Character('\u0456')); // (1110) X
+ f.add(new Character('\u0457')); // (1111) X
+ f.add(new Character('\u0458')); // (1112) X
+ f.add(new Character('\u0459')); // (1113) X
+ f.add(new Character('\u045A')); // (1114) X
+ f.add(new Character('\u045B')); // (1115) X
+ f.add(new Character('\u045C')); // (1116) X
+ f.add(new Character('\u045D')); // (1117) X
+ f.add(new Character('\u045E')); // (1118) X
+ f.add(new Character('\u045F')); // (1119) X
+ f.add(new Character('\u0460')); // (1120) X
+ f.add(new Character('\u0461')); // (1121) X
+ f.add(new Character('\u0462')); // (1122) X
+ f.add(new Character('\u0463')); // (1123) X
+ f.add(new Character('\u0464')); // (1124) X
+ f.add(new Character('\u0465')); // (1125) X
+ f.add(new Character('\u0466')); // (1126) X
+ f.add(new Character('\u0467')); // (1127) X
+ f.add(new Character('\u0468')); // (1128) X
+ f.add(new Character('\u0469')); // (1129) X
+ f.add(new Character('\u046A')); // (1130) X
+ f.add(new Character('\u046B')); // (1131) X
+ f.add(new Character('\u046C')); // (1132) X
+ f.add(new Character('\u046D')); // (1133) X
+ f.add(new Character('\u046E')); // (1134) X
+ f.add(new Character('\u046F')); // (1135) X
+ f.add(new Character('\u0470')); // (1136) X
+ f.add(new Character('\u0471')); // (1137) X
+ f.add(new Character('\u0472')); // (1138) X
+ f.add(new Character('\u0473')); // (1139) X
+ f.add(new Character('\u0474')); // (1140) X
+ f.add(new Character('\u0475')); // (1141) X
+ f.add(new Character('\u0476')); // (1142) X
+ f.add(new Character('\u0477')); // (1143) X
+ f.add(new Character('\u0478')); // (1144) X
+ f.add(new Character('\u0479')); // (1145) X
+ f.add(new Character('\u047A')); // (1146) X
+ f.add(new Character('\u047B')); // (1147) X
+ f.add(new Character('\u047C')); // (1148) X
+ f.add(new Character('\u047D')); // (1149) X
+ f.add(new Character('\u047E')); // (1150) X
+ f.add(new Character('\u047F')); // (1151) X
+ f.add(new Character('\u0480')); // (1152) X
+ f.add(new Character('\u0481')); // (1153) X
+ f.add(new Character('\u0482')); // (1154) X
+ f.add(new Character('\u0483')); // (1155) X
+ f.add(new Character('\u0484')); // (1156) X
+ f.add(new Character('\u0485')); // (1157) X
+ f.add(new Character('\u0486')); // (1158) X
+ f.add(new Character('\u0487')); // (1159) X
+ f.add(new Character('\u0488')); // (1160) X
+ f.add(new Character('\u0489')); // (1161) X
+ f.add(new Character('\u048A')); // (1162) X
+ f.add(new Character('\u048B')); // (1163) X
+ f.add(new Character('\u048C')); // (1164) X
+ f.add(new Character('\u048D')); // (1165) X
+ f.add(new Character('\u048E')); // (1166) X
+ f.add(new Character('\u048F')); // (1167) X
+ f.add(new Character('\u0490')); // (1168) X
+ f.add(new Character('\u0491')); // (1169) X
+ f.add(new Character('\u0492')); // (1170) X
+ f.add(new Character('\u0493')); // (1171) X
+ f.add(new Character('\u0494')); // (1172) X
+ f.add(new Character('\u0495')); // (1173) X
+ f.add(new Character('\u0496')); // (1174) X
+ f.add(new Character('\u0497')); // (1175) X
+ f.add(new Character('\u0498')); // (1176) X
+ f.add(new Character('\u0499')); // (1177) X
+ f.add(new Character('\u049A')); // (1178) X
+ f.add(new Character('\u049B')); // (1179) X
+ f.add(new Character('\u049C')); // (1180) X
+ f.add(new Character('\u049D')); // (1181) X
+ f.add(new Character('\u049E')); // (1182) X
+ f.add(new Character('\u049F')); // (1183) X
+ f.add(new Character('\u04A0')); // (1184) X
+ f.add(new Character('\u04A1')); // (1185) X
+ f.add(new Character('\u04A2')); // (1186) X
+ f.add(new Character('\u04A3')); // (1187) X
+ f.add(new Character('\u04A4')); // (1188) X
+ f.add(new Character('\u04A5')); // (1189) X
+ f.add(new Character('\u04A6')); // (1190) X
+ f.add(new Character('\u04A7')); // (1191) X
+ f.add(new Character('\u04A8')); // (1192) X
+ f.add(new Character('\u04A9')); // (1193) X
+ f.add(new Character('\u04AA')); // (1194) X
+ f.add(new Character('\u04AB')); // (1195) X
+ f.add(new Character('\u04AC')); // (1196) X
+ f.add(new Character('\u04AD')); // (1197) X
+ f.add(new Character('\u04AE')); // (1198) X
+ f.add(new Character('\u04AF')); // (1199) X
+ f.add(new Character('\u04B0')); // (1200) X
+ f.add(new Character('\u04B1')); // (1201) X
+ f.add(new Character('\u04B2')); // (1202) X
+ f.add(new Character('\u04B3')); // (1203) X
+ f.add(new Character('\u04B4')); // (1204) X
+ f.add(new Character('\u04B5')); // (1205) X
+ f.add(new Character('\u04B6')); // (1206) X
+ f.add(new Character('\u04B7')); // (1207) X
+ f.add(new Character('\u04B8')); // (1208) X
+ f.add(new Character('\u04B9')); // (1209) X
+ f.add(new Character('\u04BA')); // (1210) X
+ f.add(new Character('\u04BB')); // (1211) X
+ f.add(new Character('\u04BC')); // (1212) X
+ f.add(new Character('\u04BD')); // (1213) X
+ f.add(new Character('\u04BE')); // (1214) X
+ f.add(new Character('\u04BF')); // (1215) X
+ f.add(new Character('\u04C0')); // (1216) X
+ f.add(new Character('\u04C1')); // (1217) X
+ f.add(new Character('\u04C2')); // (1218) X
+ f.add(new Character('\u04C3')); // (1219) X
+ f.add(new Character('\u04C4')); // (1220) X
+ f.add(new Character('\u04C5')); // (1221) X
+ f.add(new Character('\u04C6')); // (1222) X
+ f.add(new Character('\u04C7')); // (1223) X
+ f.add(new Character('\u04C8')); // (1224) X
+ f.add(new Character('\u04C9')); // (1225) X
+ f.add(new Character('\u04CA')); // (1226) X
+ f.add(new Character('\u04CB')); // (1227) X
+ f.add(new Character('\u04CC')); // (1228) X
+ f.add(new Character('\u04CD')); // (1229) X
+ f.add(new Character('\u04CE')); // (1230) X
+ f.add(new Character('\u04CF')); // (1231) X
+ f.add(new Character('\u04D0')); // (1232) X
+ f.add(new Character('\u04D1')); // (1233) X
+ f.add(new Character('\u04D2')); // (1234) X
+ f.add(new Character('\u04D3')); // (1235) X
+ f.add(new Character('\u04D4')); // (1236) X
+ f.add(new Character('\u04D5')); // (1237) X
+ f.add(new Character('\u04D6')); // (1238) X
+ f.add(new Character('\u04D7')); // (1239) X
+ f.add(new Character('\u04D8')); // (1240) X
+ f.add(new Character('\u04D9')); // (1241) X
+ f.add(new Character('\u04DA')); // (1242) X
+ f.add(new Character('\u04DB')); // (1243) X
+ f.add(new Character('\u04DC')); // (1244) X
+ f.add(new Character('\u04DD')); // (1245) X
+ f.add(new Character('\u04DE')); // (1246) X
+ f.add(new Character('\u04DF')); // (1247) X
+ f.add(new Character('\u04E0')); // (1248) X
+ f.add(new Character('\u04E1')); // (1249) X
+ f.add(new Character('\u04E2')); // (1250) X
+ f.add(new Character('\u04E3')); // (1251) X
+ f.add(new Character('\u04E4')); // (1252) X
+ f.add(new Character('\u04E5')); // (1253) X
+ f.add(new Character('\u04E6')); // (1254) X
+ f.add(new Character('\u04E7')); // (1255) X
+ f.add(new Character('\u04E8')); // (1256) X
+ f.add(new Character('\u04E9')); // (1257) X
+ f.add(new Character('\u04EA')); // (1258) X
+ f.add(new Character('\u04EB')); // (1259) X
+ f.add(new Character('\u04EC')); // (1260) X
+ f.add(new Character('\u04ED')); // (1261) X
+ f.add(new Character('\u04EE')); // (1262) X
+ f.add(new Character('\u04EF')); // (1263) X
+ f.add(new Character('\u04F0')); // (1264) X
+ f.add(new Character('\u04F1')); // (1265) X
+ f.add(new Character('\u04F2')); // (1266) X
+ f.add(new Character('\u04F3')); // (1267) X
+ f.add(new Character('\u04F4')); // (1268) X
+ f.add(new Character('\u04F5')); // (1269) X
+ f.add(new Character('\u04F6')); // (1270) X
+ f.add(new Character('\u04F7')); // (1271) X
+ f.add(new Character('\u04F8')); // (1272) X
+ f.add(new Character('\u04F9')); // (1273) X
+ f.add(new Character('\u04FA')); // (1274) X
+ f.add(new Character('\u04FB')); // (1275) X
+ f.add(new Character('\u04FC')); // (1276) X
+ f.add(new Character('\u04FD')); // (1277) X
+ f.add(new Character('\u04FE')); // (1278) X
+ f.add(new Character('\u04FF')); // (1279) X
+ f.add(new Character('\u0500')); // (1280) X
+ f.add(new Character('\u0501')); // (1281) X
+ f.add(new Character('\u0502')); // (1282) X
+ f.add(new Character('\u0503')); // (1283) X
+ f.add(new Character('\u0504')); // (1284) X
+ f.add(new Character('\u0505')); // (1285) X
+ f.add(new Character('\u0506')); // (1286) X
+ f.add(new Character('\u0507')); // (1287) X
+ f.add(new Character('\u0508')); // (1288) X
+ f.add(new Character('\u0509')); // (1289) X
+ f.add(new Character('\u050A')); // (1290) X
+ f.add(new Character('\u050B')); // (1291) X
+ f.add(new Character('\u050C')); // (1292) X
+ f.add(new Character('\u050D')); // (1293) X
+ f.add(new Character('\u050E')); // (1294) X
+ f.add(new Character('\u050F')); // (1295) X
+ f.add(new Character('\u0510')); // (1296) X
+ f.add(new Character('\u0511')); // (1297) X
+ f.add(new Character('\u0512')); // (1298) X
+ f.add(new Character('\u0513')); // (1299) X
+ f.add(new Character('\u0514')); // (1300) X
+ f.add(new Character('\u0515')); // (1301) X
+ f.add(new Character('\u0516')); // (1302) X
+ f.add(new Character('\u0517')); // (1303) X
+ f.add(new Character('\u0518')); // (1304) X
+ f.add(new Character('\u0519')); // (1305) X
+ f.add(new Character('\u051A')); // (1306) X
+ f.add(new Character('\u051B')); // (1307) X
+ f.add(new Character('\u051C')); // (1308) X
+ f.add(new Character('\u051D')); // (1309) X
+ f.add(new Character('\u051E')); // (1310) X
+ f.add(new Character('\u051F')); // (1311) X
+ f.add(new Character('\u0520')); // (1312) X
+ f.add(new Character('\u0521')); // (1313) X
+ f.add(new Character('\u0522')); // (1314) X
+ f.add(new Character('\u0523')); // (1315) X
+ f.add(new Character('\u0524')); // (1316) X
+ f.add(new Character('\u0525')); // (1317) X
+ f.add(new Character('\u0526')); // (1318) X
+ f.add(new Character('\u0527')); // (1319) X
+ f.add(new Character('\u0528')); // (1320) X
+ f.add(new Character('\u0529')); // (1321) X
+ f.add(new Character('\u052A')); // (1322) X
+ f.add(new Character('\u052B')); // (1323) X
+ f.add(new Character('\u052C')); // (1324) X
+ f.add(new Character('\u052D')); // (1325) X
+ f.add(new Character('\u052E')); // (1326) X
+ f.add(new Character('\u052F')); // (1327) X
+ f.add(new Character('\u0530')); // (1328) X
+ f.add(new Character('\u0531')); // (1329) X
+ f.add(new Character('\u0532')); // (1330) X
+ f.add(new Character('\u0533')); // (1331) X
+ f.add(new Character('\u0534')); // (1332) X
+ f.add(new Character('\u0535')); // (1333) X
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the JA language.
+ * @param f The HashSet
+ */
+ protected static void initJAFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00A6')); // ( 166) BROKEN_BAR
+ f.add(new Character('\u00A7')); // ( 167) SECTION
+ f.add(new Character('\u00A8')); // ( 168) diaeresis
+ f.add(new Character('\u00B0')); // ( 176) degree
+ f.add(new Character('\u00B1')); // ( 177) plus_minus
+ f.add(new Character('\u00B4')); // ( 180) acute
+ f.add(new Character('\u00B6')); // ( 182) Pilcrow
+ f.add(new Character('\u00D7')); // ( 215) times
+ f.add(new Character('\u0100')); // ( 256) A_bar
+ f.add(new Character('\u0101')); // ( 257) a_bar
+ f.add(new Character('\u0102')); // ( 258) A_breve
+ f.add(new Character('\u0103')); // ( 259) a_breve
+ f.add(new Character('\u0104')); // ( 260) A_ogokek
+ f.add(new Character('\u0105')); // ( 261) a_ogokek
+ f.add(new Character('\u0106')); // ( 262) C_acute
+ f.add(new Character('\u0107')); // ( 263) c_acute
+ f.add(new Character('\u0108')); // ( 264) C_circumflex
+ f.add(new Character('\u0109')); // ( 265) c_circumflex
+ f.add(new Character('\u010A')); // ( 266) C_superdot
+ f.add(new Character('\u010B')); // ( 267) c_superdot
+ f.add(new Character('\u010C')); // ( 268) C_caron
+ f.add(new Character('\u010D')); // ( 269) c_caron
+ f.add(new Character('\u010E')); // ( 270) D_caron
+ f.add(new Character('\u010F')); // ( 271) d_caron
+ f.add(new Character('\u0110')); // ( 272) D_stroke
+ f.add(new Character('\u0111')); // ( 273) d_stroke
+ f.add(new Character('\u0112')); // ( 274) E_macron
+ f.add(new Character('\u0113')); // ( 275) e_macron
+ f.add(new Character('\u0114')); // ( 276) E_breve
+ f.add(new Character('\u0115')); // ( 277) e_breve
+ f.add(new Character('\u0116')); // ( 278) E_superdot
+ f.add(new Character('\u0117')); // ( 279) e_superdot
+ f.add(new Character('\u0118')); // ( 280) E_ogonek
+ f.add(new Character('\u0119')); // ( 281) e_ogonek
+ f.add(new Character('\u011A')); // ( 282) E_caron
+ f.add(new Character('\u011B')); // ( 283) e_caron
+ f.add(new Character('\u011C')); // ( 284) G_circumflex
+ f.add(new Character('\u011D')); // ( 285) g_circumflex
+ f.add(new Character('\u011E')); // ( 286) G_breve
+ f.add(new Character('\u011F')); // ( 287) g_breve
+ f.add(new Character('\u0120')); // ( 288) G_superdot
+ f.add(new Character('\u0121')); // ( 289) g_superdot
+ f.add(new Character('\u0122')); // ( 290) G_cedilla
+ f.add(new Character('\u0123')); // ( 291) g_cedilla
+ f.add(new Character('\u0124')); // ( 292) H_circumflex
+ f.add(new Character('\u0125')); // ( 293) h_circumflex
+ f.add(new Character('\u0126')); // ( 294) H_stroke
+ f.add(new Character('\u0127')); // ( 295) h_stroke
+ f.add(new Character('\u0128')); // ( 296) I_tilde
+ f.add(new Character('\u0129')); // ( 297) i_tilde
+ f.add(new Character('\u012A')); // ( 298) I_macron
+ f.add(new Character('\u012B')); // ( 299) i_macron
+ f.add(new Character('\u012C')); // ( 300) I_breve
+ f.add(new Character('\u012D')); // ( 301) i_breve
+ f.add(new Character('\u012E')); // ( 302) I_ogonek
+ f.add(new Character('\u012F')); // ( 303) i_ogonek
+ f.add(new Character('\u0130')); // ( 304) I_superdot
+ f.add(new Character('\u0131')); // ( 305) i_nodot
+ f.add(new Character('\u0132')); // ( 306) IJ_ligature
+ f.add(new Character('\u0133')); // ( 307) ij_ligature
+ f.add(new Character('\u0134')); // ( 308) J_circumflex
+ f.add(new Character('\u0135')); // ( 309) j_circumflex
+ f.add(new Character('\u0136')); // ( 310) K_cedilla
+ f.add(new Character('\u0137')); // ( 311) k_cedilla
+ f.add(new Character('\u0138')); // ( 312) kra
+ f.add(new Character('\u0139')); // ( 313) L_acute
+ f.add(new Character('\u013A')); // ( 314) l_acute
+ f.add(new Character('\u013B')); // ( 315) L_cedilla
+ f.add(new Character('\u013C')); // ( 316) l_cedilla
+ f.add(new Character('\u013D')); // ( 317) L_caron
+ f.add(new Character('\u013E')); // ( 318) l_caron
+ f.add(new Character('\u013F')); // ( 319) L_middot
+ f.add(new Character('\u0140')); // ( 320) l_middot
+ f.add(new Character('\u0141')); // ( 321) L_stoke
+ f.add(new Character('\u0142')); // ( 322) l_stoke
+ f.add(new Character('\u0143')); // ( 323) N_acute
+ f.add(new Character('\u0144')); // ( 324) n_acute
+ f.add(new Character('\u0145')); // ( 325) N_cedilla
+ f.add(new Character('\u0146')); // ( 326) n_cedilla
+ f.add(new Character('\u0147')); // ( 327) N_caron
+ f.add(new Character('\u0148')); // ( 328) n_caron
+ f.add(new Character('\u0149')); // ( 329) n_apostrophe
+ f.add(new Character('\u014A')); // ( 330) ENG
+ f.add(new Character('\u014B')); // ( 331) eng
+ f.add(new Character('\u014C')); // ( 332) O_macron
+ f.add(new Character('\u014D')); // ( 333) o_macron
+ f.add(new Character('\u014E')); // ( 334) O_breve
+ f.add(new Character('\u014F')); // ( 335) o_breve
+ f.add(new Character('\u0150')); // ( 336) O_double_acute
+ f.add(new Character('\u0151')); // ( 337) o_double_acute
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0154')); // ( 340) R_acute
+ f.add(new Character('\u0155')); // ( 341) r_acute
+ f.add(new Character('\u0156')); // ( 342) R_cedilla
+ f.add(new Character('\u0157')); // ( 343) r_cedilla
+ f.add(new Character('\u0158')); // ( 344) R_caron
+ f.add(new Character('\u0159')); // ( 345) r_caron
+ f.add(new Character('\u015A')); // ( 346) S_acute
+ f.add(new Character('\u015B')); // ( 347) s_acute
+ f.add(new Character('\u015C')); // ( 348) S_circumflex
+ f.add(new Character('\u015D')); // ( 349) s_circumflex
+ f.add(new Character('\u015E')); // ( 350) S_cedilla
+ f.add(new Character('\u015F')); // ( 351) s_cedilla
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0162')); // ( 354) T_cedilla
+ f.add(new Character('\u0163')); // ( 355) t_cedilla
+ f.add(new Character('\u0164')); // ( 356) T_caron
+ f.add(new Character('\u0165')); // ( 357) t_caron
+ f.add(new Character('\u0166')); // ( 358) T_stroke
+ f.add(new Character('\u0167')); // ( 359) t_stroke
+ f.add(new Character('\u0168')); // ( 360) U_tilde
+ f.add(new Character('\u0169')); // ( 361) u_tilde
+ f.add(new Character('\u016A')); // ( 362) U_macron
+ f.add(new Character('\u016B')); // ( 363) u_macron
+ f.add(new Character('\u016C')); // ( 364) U_breve
+ f.add(new Character('\u016D')); // ( 365) u_breve
+ f.add(new Character('\u016E')); // ( 366) U_ring
+ f.add(new Character('\u016F')); // ( 367) u_ring
+ f.add(new Character('\u0170')); // ( 368) U_double_acute
+ f.add(new Character('\u0171')); // ( 369) u_double_acute
+ f.add(new Character('\u0172')); // ( 370) U_ogonek
+ f.add(new Character('\u0173')); // ( 371) u_ogonek
+ f.add(new Character('\u0174')); // ( 372) W_circumflex
+ f.add(new Character('\u0175')); // ( 373) w_circumflex
+ f.add(new Character('\u0176')); // ( 374) Y_circumflex
+ f.add(new Character('\u0177')); // ( 375) y_circumflex
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ f.add(new Character('\u0179')); // ( 377) Z_acute
+ f.add(new Character('\u017A')); // ( 378) z_acute
+ f.add(new Character('\u017B')); // ( 379) Z_superdot
+ f.add(new Character('\u017C')); // ( 380) z_superdot
+ f.add(new Character('\u017D')); // ( 381) Z_caron
+ f.add(new Character('\u017E')); // ( 382) z_caron
+ f.add(new Character('\u017F')); // ( 383) long_s
+ f.add(new Character('\u0180')); // ( 384) X
+ f.add(new Character('\u0181')); // ( 385) X
+ f.add(new Character('\u0182')); // ( 386) X
+ f.add(new Character('\u0183')); // ( 387) X
+ f.add(new Character('\u0184')); // ( 388) X
+ f.add(new Character('\u0185')); // ( 389) X
+ f.add(new Character('\u0186')); // ( 390) X
+ f.add(new Character('\u0187')); // ( 391) X
+ f.add(new Character('\u0188')); // ( 392) X
+ f.add(new Character('\u0189')); // ( 393) X
+ f.add(new Character('\u018A')); // ( 394) X
+ f.add(new Character('\u018B')); // ( 395) X
+ f.add(new Character('\u018C')); // ( 396) X
+ f.add(new Character('\u018D')); // ( 397) X
+ f.add(new Character('\u018E')); // ( 398) X
+ f.add(new Character('\u018F')); // ( 399) X
+ f.add(new Character('\u0190')); // ( 400) X
+ f.add(new Character('\u0191')); // ( 401) X
+ f.add(new Character('\u0192')); // ( 402) X
+ f.add(new Character('\u0193')); // ( 403) X
+ f.add(new Character('\u0194')); // ( 404) X
+ f.add(new Character('\u0195')); // ( 405) X
+ f.add(new Character('\u0196')); // ( 406) X
+ f.add(new Character('\u0197')); // ( 407) X
+ f.add(new Character('\u0198')); // ( 408) X
+ f.add(new Character('\u0199')); // ( 409) X
+ f.add(new Character('\u019A')); // ( 410) X
+ f.add(new Character('\u019B')); // ( 411) X
+ f.add(new Character('\u019C')); // ( 412) X
+ f.add(new Character('\u019D')); // ( 413) X
+ f.add(new Character('\u019E')); // ( 414) X
+ f.add(new Character('\u019F')); // ( 415) X
+ f.add(new Character('\u01A0')); // ( 416) X
+ f.add(new Character('\u01A1')); // ( 417) X
+ f.add(new Character('\u01A2')); // ( 418) X
+ f.add(new Character('\u01A3')); // ( 419) X
+ f.add(new Character('\u01A4')); // ( 420) X
+ f.add(new Character('\u01A5')); // ( 421) X
+ f.add(new Character('\u01A6')); // ( 422) X
+ f.add(new Character('\u01A7')); // ( 423) X
+ f.add(new Character('\u01A8')); // ( 424) X
+ f.add(new Character('\u01A9')); // ( 425) X
+ f.add(new Character('\u01AA')); // ( 426) X
+ f.add(new Character('\u01AB')); // ( 427) X
+ f.add(new Character('\u01AC')); // ( 428) X
+ f.add(new Character('\u01AD')); // ( 429) X
+ f.add(new Character('\u01AE')); // ( 430) X
+ f.add(new Character('\u01AF')); // ( 431) X
+ f.add(new Character('\u01B0')); // ( 432) X
+ f.add(new Character('\u01B1')); // ( 433) X
+ f.add(new Character('\u01B2')); // ( 434) X
+ f.add(new Character('\u01B3')); // ( 435) X
+ f.add(new Character('\u01B4')); // ( 436) X
+ f.add(new Character('\u01B5')); // ( 437) X
+ f.add(new Character('\u01B6')); // ( 438) X
+ f.add(new Character('\u01B7')); // ( 439) X
+ f.add(new Character('\u01B8')); // ( 440) X
+ f.add(new Character('\u01B9')); // ( 441) X
+ f.add(new Character('\u01BA')); // ( 442) X
+ f.add(new Character('\u01BB')); // ( 443) X
+ f.add(new Character('\u01BC')); // ( 444) X
+ f.add(new Character('\u01BD')); // ( 445) X
+ f.add(new Character('\u01BE')); // ( 446) X
+ f.add(new Character('\u01BF')); // ( 447) X
+ f.add(new Character('\u01C0')); // ( 448) X
+ f.add(new Character('\u01C1')); // ( 449) X
+ f.add(new Character('\u01C2')); // ( 450) X
+ f.add(new Character('\u01C3')); // ( 451) X
+ f.add(new Character('\u01C4')); // ( 452) X
+ f.add(new Character('\u01C5')); // ( 453) X
+ f.add(new Character('\u01C6')); // ( 454) X
+ f.add(new Character('\u01C7')); // ( 455) X
+ f.add(new Character('\u01C8')); // ( 456) X
+ f.add(new Character('\u01C9')); // ( 457) X
+ f.add(new Character('\u01CA')); // ( 458) X
+ f.add(new Character('\u01CB')); // ( 459) X
+ f.add(new Character('\u01CC')); // ( 460) X
+ f.add(new Character('\u01CD')); // ( 461) X
+ f.add(new Character('\u01CE')); // ( 462) X
+ f.add(new Character('\u01CF')); // ( 463) X
+ f.add(new Character('\u01D0')); // ( 464) X
+ f.add(new Character('\u01D1')); // ( 465) X
+ f.add(new Character('\u01D2')); // ( 466) X
+ f.add(new Character('\u01D3')); // ( 467) X
+ f.add(new Character('\u01D4')); // ( 468) X
+ f.add(new Character('\u01D5')); // ( 469) X
+ f.add(new Character('\u01D6')); // ( 470) X
+ f.add(new Character('\u01D7')); // ( 471) X
+ f.add(new Character('\u01D8')); // ( 472) X
+ f.add(new Character('\u01D9')); // ( 473) X
+ f.add(new Character('\u01DA')); // ( 474) X
+ f.add(new Character('\u01DB')); // ( 475) X
+ f.add(new Character('\u01DC')); // ( 476) X
+ f.add(new Character('\u01DD')); // ( 477) X
+ f.add(new Character('\u01DE')); // ( 478) X
+ f.add(new Character('\u01DF')); // ( 479) X
+ f.add(new Character('\u01E0')); // ( 480) X
+ f.add(new Character('\u01E1')); // ( 481) X
+ f.add(new Character('\u01E2')); // ( 482) X
+ f.add(new Character('\u01E3')); // ( 483) X
+ f.add(new Character('\u01E4')); // ( 484) X
+ f.add(new Character('\u01E5')); // ( 485) X
+ f.add(new Character('\u01E6')); // ( 486) X
+ f.add(new Character('\u01E7')); // ( 487) X
+ f.add(new Character('\u01E8')); // ( 488) X
+ f.add(new Character('\u01E9')); // ( 489) X
+ f.add(new Character('\u01EA')); // ( 490) X
+ f.add(new Character('\u01EB')); // ( 491) X
+ f.add(new Character('\u01EC')); // ( 492) X
+ f.add(new Character('\u01ED')); // ( 493) X
+ f.add(new Character('\u01EE')); // ( 494) X
+ f.add(new Character('\u01EF')); // ( 495) X
+ f.add(new Character('\u01F0')); // ( 496) X
+ f.add(new Character('\u01F1')); // ( 497) X
+ f.add(new Character('\u01F2')); // ( 498) X
+ f.add(new Character('\u01F3')); // ( 499) X
+ f.add(new Character('\u01F4')); // ( 500) X
+ f.add(new Character('\u01F5')); // ( 501) X
+ f.add(new Character('\u01F6')); // ( 502) X
+ f.add(new Character('\u01F7')); // ( 503) X
+ f.add(new Character('\u01F8')); // ( 504) X
+ f.add(new Character('\u01F9')); // ( 505) X
+ f.add(new Character('\u01FA')); // ( 506) X
+ f.add(new Character('\u01FB')); // ( 507) X
+ f.add(new Character('\u01FC')); // ( 508) X
+ f.add(new Character('\u01FD')); // ( 509) X
+ f.add(new Character('\u01FE')); // ( 510) X
+ f.add(new Character('\u01FF')); // ( 511) X
+ f.add(new Character('\u0200')); // ( 512) X
+ f.add(new Character('\u0201')); // ( 513) X
+ f.add(new Character('\u0202')); // ( 514) X
+ f.add(new Character('\u0203')); // ( 515) X
+ f.add(new Character('\u0204')); // ( 516) X
+ f.add(new Character('\u0205')); // ( 517) X
+ f.add(new Character('\u0206')); // ( 518) X
+ f.add(new Character('\u0207')); // ( 519) X
+ f.add(new Character('\u0208')); // ( 520) X
+ f.add(new Character('\u0209')); // ( 521) X
+ f.add(new Character('\u020A')); // ( 522) X
+ f.add(new Character('\u020B')); // ( 523) X
+ f.add(new Character('\u020C')); // ( 524) X
+ f.add(new Character('\u020D')); // ( 525) X
+ f.add(new Character('\u020E')); // ( 526) X
+ f.add(new Character('\u020F')); // ( 527) X
+ f.add(new Character('\u0210')); // ( 528) X
+ f.add(new Character('\u0211')); // ( 529) X
+ f.add(new Character('\u0212')); // ( 530) X
+ f.add(new Character('\u0213')); // ( 531) X
+ f.add(new Character('\u0214')); // ( 532) X
+ f.add(new Character('\u0215')); // ( 533) X
+ f.add(new Character('\u0216')); // ( 534) X
+ f.add(new Character('\u0217')); // ( 535) X
+ f.add(new Character('\u0218')); // ( 536) X
+ f.add(new Character('\u0219')); // ( 537) X
+ f.add(new Character('\u021A')); // ( 538) X
+ f.add(new Character('\u021B')); // ( 539) X
+ f.add(new Character('\u021C')); // ( 540) X
+ f.add(new Character('\u021D')); // ( 541) X
+ f.add(new Character('\u021E')); // ( 542) X
+ f.add(new Character('\u021F')); // ( 543) X
+ f.add(new Character('\u0220')); // ( 544) X
+ f.add(new Character('\u0221')); // ( 545) X
+ f.add(new Character('\u0222')); // ( 546) X
+ f.add(new Character('\u0223')); // ( 547) X
+ f.add(new Character('\u0224')); // ( 548) X
+ f.add(new Character('\u0225')); // ( 549) X
+ f.add(new Character('\u0226')); // ( 550) X
+ f.add(new Character('\u0227')); // ( 551) X
+ f.add(new Character('\u0228')); // ( 552) X
+ f.add(new Character('\u0229')); // ( 553) X
+ f.add(new Character('\u022A')); // ( 554) X
+ f.add(new Character('\u022B')); // ( 555) X
+ f.add(new Character('\u022C')); // ( 556) X
+ f.add(new Character('\u022D')); // ( 557) X
+ f.add(new Character('\u022E')); // ( 558) X
+ f.add(new Character('\u022F')); // ( 559) X
+ f.add(new Character('\u0230')); // ( 560) X
+ f.add(new Character('\u0231')); // ( 561) X
+ f.add(new Character('\u0232')); // ( 562) X
+ f.add(new Character('\u0233')); // ( 563) X
+ f.add(new Character('\u0234')); // ( 564) X
+ f.add(new Character('\u0235')); // ( 565) X
+ f.add(new Character('\u0236')); // ( 566) X
+ f.add(new Character('\u0237')); // ( 567) X
+ f.add(new Character('\u0238')); // ( 568) X
+ f.add(new Character('\u0239')); // ( 569) X
+ f.add(new Character('\u023A')); // ( 570) X
+ f.add(new Character('\u023B')); // ( 571) X
+ f.add(new Character('\u023C')); // ( 572) X
+ f.add(new Character('\u023D')); // ( 573) X
+ f.add(new Character('\u023E')); // ( 574) X
+ f.add(new Character('\u023F')); // ( 575) X
+ f.add(new Character('\u0240')); // ( 576) X
+ f.add(new Character('\u0241')); // ( 577) X
+ f.add(new Character('\u0242')); // ( 578) X
+ f.add(new Character('\u0243')); // ( 579) X
+ f.add(new Character('\u0244')); // ( 580) X
+ f.add(new Character('\u0245')); // ( 581) X
+ f.add(new Character('\u0246')); // ( 582) X
+ f.add(new Character('\u0247')); // ( 583) X
+ f.add(new Character('\u0248')); // ( 584) X
+ f.add(new Character('\u0249')); // ( 585) X
+ f.add(new Character('\u024A')); // ( 586) X
+ f.add(new Character('\u024B')); // ( 587) X
+ f.add(new Character('\u024C')); // ( 588) X
+ f.add(new Character('\u024D')); // ( 589) X
+ f.add(new Character('\u024E')); // ( 590) X
+ f.add(new Character('\u024F')); // ( 591) X
+ f.add(new Character('\u0250')); // ( 592) X
+ f.add(new Character('\u0251')); // ( 593) X
+ f.add(new Character('\u0252')); // ( 594) X
+ f.add(new Character('\u0253')); // ( 595) X
+ f.add(new Character('\u0254')); // ( 596) X
+ f.add(new Character('\u0255')); // ( 597) X
+ f.add(new Character('\u0256')); // ( 598) X
+ f.add(new Character('\u0257')); // ( 599) X
+ f.add(new Character('\u0258')); // ( 600) X
+ f.add(new Character('\u0259')); // ( 601) X
+ f.add(new Character('\u025A')); // ( 602) X
+ f.add(new Character('\u025B')); // ( 603) X
+ f.add(new Character('\u025C')); // ( 604) X
+ f.add(new Character('\u025D')); // ( 605) X
+ f.add(new Character('\u025E')); // ( 606) X
+ f.add(new Character('\u025F')); // ( 607) X
+ f.add(new Character('\u0260')); // ( 608) X
+ f.add(new Character('\u0261')); // ( 609) X
+ f.add(new Character('\u0262')); // ( 610) X
+ f.add(new Character('\u0263')); // ( 611) X
+ f.add(new Character('\u0264')); // ( 612) X
+ f.add(new Character('\u0265')); // ( 613) X
+ f.add(new Character('\u0266')); // ( 614) X
+ f.add(new Character('\u0267')); // ( 615) X
+ f.add(new Character('\u0268')); // ( 616) X
+ f.add(new Character('\u0269')); // ( 617) X
+ f.add(new Character('\u026A')); // ( 618) X
+ f.add(new Character('\u026B')); // ( 619) X
+ f.add(new Character('\u026C')); // ( 620) X
+ f.add(new Character('\u026D')); // ( 621) X
+ f.add(new Character('\u026E')); // ( 622) X
+ f.add(new Character('\u026F')); // ( 623) X
+ f.add(new Character('\u0270')); // ( 624) X
+ f.add(new Character('\u0271')); // ( 625) X
+ f.add(new Character('\u0272')); // ( 626) X
+ f.add(new Character('\u0273')); // ( 627) X
+ f.add(new Character('\u0274')); // ( 628) X
+ f.add(new Character('\u0275')); // ( 629) X
+ f.add(new Character('\u0276')); // ( 630) X
+ f.add(new Character('\u0277')); // ( 631) X
+ f.add(new Character('\u0278')); // ( 632) X
+ f.add(new Character('\u0279')); // ( 633) X
+ f.add(new Character('\u027A')); // ( 634) X
+ f.add(new Character('\u027B')); // ( 635) X
+ f.add(new Character('\u027C')); // ( 636) X
+ f.add(new Character('\u027D')); // ( 637) X
+ f.add(new Character('\u027E')); // ( 638) X
+ f.add(new Character('\u027F')); // ( 639) X
+ f.add(new Character('\u0280')); // ( 640) X
+ f.add(new Character('\u0281')); // ( 641) X
+ f.add(new Character('\u0282')); // ( 642) X
+ f.add(new Character('\u0283')); // ( 643) X
+ f.add(new Character('\u0284')); // ( 644) X
+ f.add(new Character('\u0285')); // ( 645) X
+ f.add(new Character('\u0286')); // ( 646) X
+ f.add(new Character('\u0287')); // ( 647) X
+ f.add(new Character('\u0288')); // ( 648) X
+ f.add(new Character('\u0289')); // ( 649) X
+ f.add(new Character('\u028A')); // ( 650) X
+ f.add(new Character('\u028B')); // ( 651) X
+ f.add(new Character('\u028C')); // ( 652) X
+ f.add(new Character('\u028D')); // ( 653) X
+ f.add(new Character('\u028E')); // ( 654) X
+ f.add(new Character('\u028F')); // ( 655) X
+ f.add(new Character('\u0290')); // ( 656) X
+ f.add(new Character('\u0291')); // ( 657) X
+ f.add(new Character('\u0292')); // ( 658) X
+ f.add(new Character('\u0293')); // ( 659) X
+ f.add(new Character('\u0294')); // ( 660) X
+ f.add(new Character('\u0295')); // ( 661) X
+ f.add(new Character('\u0296')); // ( 662) X
+ f.add(new Character('\u0297')); // ( 663) X
+ f.add(new Character('\u0298')); // ( 664) X
+ f.add(new Character('\u0299')); // ( 665) X
+ f.add(new Character('\u029A')); // ( 666) X
+ f.add(new Character('\u029B')); // ( 667) X
+ f.add(new Character('\u029C')); // ( 668) X
+ f.add(new Character('\u029D')); // ( 669) X
+ f.add(new Character('\u029E')); // ( 670) X
+ f.add(new Character('\u029F')); // ( 671) X
+ f.add(new Character('\u02A0')); // ( 672) X
+ f.add(new Character('\u02A1')); // ( 673) X
+ f.add(new Character('\u02A2')); // ( 674) X
+ f.add(new Character('\u02A3')); // ( 675) X
+ f.add(new Character('\u02A4')); // ( 676) X
+ f.add(new Character('\u02A5')); // ( 677) X
+ f.add(new Character('\u02A6')); // ( 678) X
+ f.add(new Character('\u02A7')); // ( 679) X
+ f.add(new Character('\u02A8')); // ( 680) X
+ f.add(new Character('\u02A9')); // ( 681) X
+ f.add(new Character('\u02AA')); // ( 682) X
+ f.add(new Character('\u02AB')); // ( 683) X
+ f.add(new Character('\u02AC')); // ( 684) X
+ f.add(new Character('\u02AD')); // ( 685) X
+ f.add(new Character('\u02AE')); // ( 686) X
+ f.add(new Character('\u02AF')); // ( 687) X
+ f.add(new Character('\u02B0')); // ( 688) X
+ f.add(new Character('\u02B1')); // ( 689) X
+ f.add(new Character('\u02B2')); // ( 690) X
+ f.add(new Character('\u02B3')); // ( 691) X
+ f.add(new Character('\u02B4')); // ( 692) X
+ f.add(new Character('\u02B5')); // ( 693) X
+ f.add(new Character('\u02B6')); // ( 694) X
+ f.add(new Character('\u02B7')); // ( 695) X
+ f.add(new Character('\u02B8')); // ( 696) X
+ f.add(new Character('\u02B9')); // ( 697) X
+ f.add(new Character('\u02BA')); // ( 698) X
+ f.add(new Character('\u02BB')); // ( 699) X
+ f.add(new Character('\u02BC')); // ( 700) X
+ f.add(new Character('\u02BD')); // ( 701) X
+ f.add(new Character('\u02BE')); // ( 702) X
+ f.add(new Character('\u02BF')); // ( 703) X
+ f.add(new Character('\u02C0')); // ( 704) X
+ f.add(new Character('\u02C1')); // ( 705) X
+ f.add(new Character('\u02C2')); // ( 706) X
+ f.add(new Character('\u02C3')); // ( 707) X
+ f.add(new Character('\u02C4')); // ( 708) X
+ f.add(new Character('\u02C5')); // ( 709) X
+ f.add(new Character('\u02C6')); // ( 710) X
+ f.add(new Character('\u02C7')); // ( 711) X
+ f.add(new Character('\u02C8')); // ( 712) X
+ f.add(new Character('\u02C9')); // ( 713) X
+ f.add(new Character('\u02CA')); // ( 714) X
+ f.add(new Character('\u02CB')); // ( 715) X
+ f.add(new Character('\u02CC')); // ( 716) X
+ f.add(new Character('\u02CD')); // ( 717) X
+ f.add(new Character('\u02CE')); // ( 718) X
+ f.add(new Character('\u02CF')); // ( 719) X
+ f.add(new Character('\u02D0')); // ( 720) X
+ f.add(new Character('\u02D1')); // ( 721) X
+ f.add(new Character('\u02D2')); // ( 722) X
+ f.add(new Character('\u02D3')); // ( 723) X
+ f.add(new Character('\u02D4')); // ( 724) X
+ f.add(new Character('\u02D5')); // ( 725) X
+ f.add(new Character('\u02D6')); // ( 726) X
+ f.add(new Character('\u02D7')); // ( 727) X
+ f.add(new Character('\u02D8')); // ( 728) X
+ f.add(new Character('\u02D9')); // ( 729) X
+ f.add(new Character('\u02DA')); // ( 730) X
+ f.add(new Character('\u02DB')); // ( 731) X
+ f.add(new Character('\u02DC')); // ( 732) X
+ f.add(new Character('\u02DD')); // ( 733) X
+ f.add(new Character('\u02DE')); // ( 734) X
+ f.add(new Character('\u02DF')); // ( 735) X
+ f.add(new Character('\u02E0')); // ( 736) X
+ f.add(new Character('\u02E1')); // ( 737) X
+ f.add(new Character('\u02E2')); // ( 738) X
+ f.add(new Character('\u02E3')); // ( 739) X
+ f.add(new Character('\u02E4')); // ( 740) X
+ f.add(new Character('\u02E5')); // ( 741) X
+ f.add(new Character('\u02E6')); // ( 742) X
+ f.add(new Character('\u02E7')); // ( 743) X
+ f.add(new Character('\u02E8')); // ( 744) X
+ f.add(new Character('\u02E9')); // ( 745) X
+ f.add(new Character('\u02EA')); // ( 746) X
+ f.add(new Character('\u02EB')); // ( 747) X
+ f.add(new Character('\u02EC')); // ( 748) X
+ f.add(new Character('\u02ED')); // ( 749) X
+ f.add(new Character('\u02EE')); // ( 750) X
+ f.add(new Character('\u02EF')); // ( 751) X
+ f.add(new Character('\u02F0')); // ( 752) X
+ f.add(new Character('\u02F1')); // ( 753) X
+ f.add(new Character('\u02F2')); // ( 754) X
+ f.add(new Character('\u02F3')); // ( 755) X
+ f.add(new Character('\u02F4')); // ( 756) X
+ f.add(new Character('\u02F5')); // ( 757) X
+ f.add(new Character('\u02F6')); // ( 758) X
+ f.add(new Character('\u02F7')); // ( 759) X
+ f.add(new Character('\u02F8')); // ( 760) X
+ f.add(new Character('\u02F9')); // ( 761) X
+ f.add(new Character('\u02FA')); // ( 762) X
+ f.add(new Character('\u02FB')); // ( 763) X
+ f.add(new Character('\u02FC')); // ( 764) X
+ f.add(new Character('\u02FD')); // ( 765) X
+ f.add(new Character('\u02FE')); // ( 766) X
+ f.add(new Character('\u02FF')); // ( 767) X
+ f.add(new Character('\u0300')); // ( 768) X
+ f.add(new Character('\u0301')); // ( 769) X
+ f.add(new Character('\u0302')); // ( 770) X
+ f.add(new Character('\u0303')); // ( 771) X
+ f.add(new Character('\u0304')); // ( 772) X
+ f.add(new Character('\u0305')); // ( 773) X
+ f.add(new Character('\u0306')); // ( 774) X
+ f.add(new Character('\u0307')); // ( 775) X
+ f.add(new Character('\u0308')); // ( 776) X
+ f.add(new Character('\u0309')); // ( 777) X
+ f.add(new Character('\u030A')); // ( 778) X
+ f.add(new Character('\u030B')); // ( 779) X
+ f.add(new Character('\u030C')); // ( 780) X
+ f.add(new Character('\u030D')); // ( 781) X
+ f.add(new Character('\u030E')); // ( 782) X
+ f.add(new Character('\u030F')); // ( 783) X
+ f.add(new Character('\u0310')); // ( 784) X
+ f.add(new Character('\u0311')); // ( 785) X
+ f.add(new Character('\u0312')); // ( 786) X
+ f.add(new Character('\u0313')); // ( 787) X
+ f.add(new Character('\u0314')); // ( 788) X
+ f.add(new Character('\u0315')); // ( 789) X
+ f.add(new Character('\u0316')); // ( 790) X
+ f.add(new Character('\u0317')); // ( 791) X
+ f.add(new Character('\u0318')); // ( 792) X
+ f.add(new Character('\u0319')); // ( 793) X
+ f.add(new Character('\u031A')); // ( 794) X
+ f.add(new Character('\u031B')); // ( 795) X
+ f.add(new Character('\u031C')); // ( 796) X
+ f.add(new Character('\u031D')); // ( 797) X
+ f.add(new Character('\u031E')); // ( 798) X
+ f.add(new Character('\u031F')); // ( 799) X
+ f.add(new Character('\u0320')); // ( 800) X
+ f.add(new Character('\u0321')); // ( 801) X
+ f.add(new Character('\u0322')); // ( 802) X
+ f.add(new Character('\u0323')); // ( 803) X
+ f.add(new Character('\u0324')); // ( 804) X
+ f.add(new Character('\u0325')); // ( 805) X
+ f.add(new Character('\u0326')); // ( 806) X
+ f.add(new Character('\u0327')); // ( 807) X
+ f.add(new Character('\u0328')); // ( 808) X
+ f.add(new Character('\u0329')); // ( 809) X
+ f.add(new Character('\u032A')); // ( 810) X
+ f.add(new Character('\u032B')); // ( 811) X
+ f.add(new Character('\u032C')); // ( 812) X
+ f.add(new Character('\u032D')); // ( 813) X
+ f.add(new Character('\u032E')); // ( 814) X
+ f.add(new Character('\u032F')); // ( 815) X
+ f.add(new Character('\u0330')); // ( 816) X
+ f.add(new Character('\u0331')); // ( 817) X
+ f.add(new Character('\u0332')); // ( 818) X
+ f.add(new Character('\u0333')); // ( 819) X
+ f.add(new Character('\u0334')); // ( 820) X
+ f.add(new Character('\u0335')); // ( 821) X
+ f.add(new Character('\u0336')); // ( 822) X
+ f.add(new Character('\u0337')); // ( 823) X
+ f.add(new Character('\u0338')); // ( 824) X
+ f.add(new Character('\u0339')); // ( 825) X
+ f.add(new Character('\u033A')); // ( 826) X
+ f.add(new Character('\u033B')); // ( 827) X
+ f.add(new Character('\u033C')); // ( 828) X
+ f.add(new Character('\u033D')); // ( 829) X
+ f.add(new Character('\u033E')); // ( 830) X
+ f.add(new Character('\u033F')); // ( 831) X
+ f.add(new Character('\u0340')); // ( 832) X
+ f.add(new Character('\u0341')); // ( 833) X
+ f.add(new Character('\u0342')); // ( 834) X
+ f.add(new Character('\u0343')); // ( 835) X
+ f.add(new Character('\u0344')); // ( 836) X
+ f.add(new Character('\u0345')); // ( 837) X
+ f.add(new Character('\u0346')); // ( 838) X
+ f.add(new Character('\u0347')); // ( 839) X
+ f.add(new Character('\u0348')); // ( 840) X
+ f.add(new Character('\u0349')); // ( 841) X
+ f.add(new Character('\u034A')); // ( 842) X
+ f.add(new Character('\u034B')); // ( 843) X
+ f.add(new Character('\u034C')); // ( 844) X
+ f.add(new Character('\u034D')); // ( 845) X
+ f.add(new Character('\u034E')); // ( 846) X
+ f.add(new Character('\u034F')); // ( 847) X
+ f.add(new Character('\u0350')); // ( 848) X
+ f.add(new Character('\u0351')); // ( 849) X
+ f.add(new Character('\u0352')); // ( 850) X
+ f.add(new Character('\u0353')); // ( 851) X
+ f.add(new Character('\u0354')); // ( 852) X
+ f.add(new Character('\u0355')); // ( 853) X
+ f.add(new Character('\u0356')); // ( 854) X
+ f.add(new Character('\u0357')); // ( 855) X
+ f.add(new Character('\u0358')); // ( 856) X
+ f.add(new Character('\u0359')); // ( 857) X
+ f.add(new Character('\u035A')); // ( 858) X
+ f.add(new Character('\u035B')); // ( 859) X
+ f.add(new Character('\u035C')); // ( 860) X
+ f.add(new Character('\u035D')); // ( 861) X
+ f.add(new Character('\u035E')); // ( 862) X
+ f.add(new Character('\u035F')); // ( 863) X
+ f.add(new Character('\u0360')); // ( 864) X
+ f.add(new Character('\u0361')); // ( 865) X
+ f.add(new Character('\u0362')); // ( 866) X
+ f.add(new Character('\u0363')); // ( 867) X
+ f.add(new Character('\u0364')); // ( 868) X
+ f.add(new Character('\u0365')); // ( 869) X
+ f.add(new Character('\u0366')); // ( 870) X
+ f.add(new Character('\u0367')); // ( 871) X
+ f.add(new Character('\u0368')); // ( 872) X
+ f.add(new Character('\u0369')); // ( 873) X
+ f.add(new Character('\u036A')); // ( 874) X
+ f.add(new Character('\u036B')); // ( 875) X
+ f.add(new Character('\u036C')); // ( 876) X
+ f.add(new Character('\u036D')); // ( 877) X
+ f.add(new Character('\u036E')); // ( 878) X
+ f.add(new Character('\u036F')); // ( 879) X
+ f.add(new Character('\u0370')); // ( 880) X
+ f.add(new Character('\u0371')); // ( 881) X
+ f.add(new Character('\u0372')); // ( 882) X
+ f.add(new Character('\u0373')); // ( 883) X
+ f.add(new Character('\u0374')); // ( 884) X
+ f.add(new Character('\u0375')); // ( 885) X
+ f.add(new Character('\u0376')); // ( 886) X
+ f.add(new Character('\u0377')); // ( 887) X
+ f.add(new Character('\u0378')); // ( 888) X
+ f.add(new Character('\u0379')); // ( 889) X
+ f.add(new Character('\u037A')); // ( 890) X
+ f.add(new Character('\u037B')); // ( 891) X
+ f.add(new Character('\u037C')); // ( 892) X
+ f.add(new Character('\u037D')); // ( 893) X
+ f.add(new Character('\u037E')); // ( 894) X
+ f.add(new Character('\u037F')); // ( 895) X
+ f.add(new Character('\u0380')); // ( 896) X
+ f.add(new Character('\u0381')); // ( 897) X
+ f.add(new Character('\u0382')); // ( 898) X
+ f.add(new Character('\u0383')); // ( 899) X
+ f.add(new Character('\u0384')); // ( 900) X
+ f.add(new Character('\u0385')); // ( 901) X
+ f.add(new Character('\u0386')); // ( 902) X
+ f.add(new Character('\u0387')); // ( 903) X
+ f.add(new Character('\u0388')); // ( 904) X
+ f.add(new Character('\u0389')); // ( 905) X
+ f.add(new Character('\u038A')); // ( 906) X
+ f.add(new Character('\u038B')); // ( 907) X
+ f.add(new Character('\u038C')); // ( 908) X
+ f.add(new Character('\u038D')); // ( 909) X
+ f.add(new Character('\u038E')); // ( 910) X
+ f.add(new Character('\u038F')); // ( 911) X
+ f.add(new Character('\u0390')); // ( 912) X
+ f.add(new Character('\u0391')); // ( 913) X
+ f.add(new Character('\u0392')); // ( 914) X
+ f.add(new Character('\u0393')); // ( 915) X
+ f.add(new Character('\u0394')); // ( 916) X
+ f.add(new Character('\u0395')); // ( 917) X
+ f.add(new Character('\u0396')); // ( 918) X
+ f.add(new Character('\u0397')); // ( 919) X
+ f.add(new Character('\u0398')); // ( 920) X
+ f.add(new Character('\u0399')); // ( 921) X
+ f.add(new Character('\u039A')); // ( 922) X
+ f.add(new Character('\u039B')); // ( 923) X
+ f.add(new Character('\u039C')); // ( 924) X
+ f.add(new Character('\u039D')); // ( 925) X
+ f.add(new Character('\u039E')); // ( 926) X
+ f.add(new Character('\u039F')); // ( 927) X
+ f.add(new Character('\u03A0')); // ( 928) X
+ f.add(new Character('\u03A1')); // ( 929) X
+ f.add(new Character('\u03A2')); // ( 930) X
+ f.add(new Character('\u03A3')); // ( 931) X
+ f.add(new Character('\u03A4')); // ( 932) X
+ f.add(new Character('\u03A5')); // ( 933) X
+ f.add(new Character('\u03A6')); // ( 934) X
+ f.add(new Character('\u03A7')); // ( 935) X
+ f.add(new Character('\u03A8')); // ( 936) X
+ f.add(new Character('\u03A9')); // ( 937) X
+ f.add(new Character('\u03AA')); // ( 938) X
+ f.add(new Character('\u03AB')); // ( 939) X
+ f.add(new Character('\u03AC')); // ( 940) X
+ f.add(new Character('\u03AD')); // ( 941) X
+ f.add(new Character('\u03AE')); // ( 942) X
+ f.add(new Character('\u03AF')); // ( 943) X
+ f.add(new Character('\u03B0')); // ( 944) X
+ f.add(new Character('\u03B1')); // ( 945) X
+ f.add(new Character('\u03B2')); // ( 946) X
+ f.add(new Character('\u03B3')); // ( 947) X
+ f.add(new Character('\u03B4')); // ( 948) X
+ f.add(new Character('\u03B5')); // ( 949) X
+ f.add(new Character('\u03B6')); // ( 950) X
+ f.add(new Character('\u03B7')); // ( 951) X
+ f.add(new Character('\u03B8')); // ( 952) X
+ f.add(new Character('\u03B9')); // ( 953) X
+ f.add(new Character('\u03BA')); // ( 954) X
+ f.add(new Character('\u03BB')); // ( 955) X
+ f.add(new Character('\u03BC')); // ( 956) X
+ f.add(new Character('\u03BD')); // ( 957) X
+ f.add(new Character('\u03BE')); // ( 958) X
+ f.add(new Character('\u03BF')); // ( 959) X
+ f.add(new Character('\u03C0')); // ( 960) X
+ f.add(new Character('\u03C1')); // ( 961) X
+ f.add(new Character('\u03C2')); // ( 962) X
+ f.add(new Character('\u03C3')); // ( 963) X
+ f.add(new Character('\u03C4')); // ( 964) X
+ f.add(new Character('\u03C5')); // ( 965) X
+ f.add(new Character('\u03C6')); // ( 966) X
+ f.add(new Character('\u03C7')); // ( 967) X
+ f.add(new Character('\u03C8')); // ( 968) X
+ f.add(new Character('\u03C9')); // ( 969) X
+ f.add(new Character('\u03CA')); // ( 970) X
+ f.add(new Character('\u03CB')); // ( 971) X
+ f.add(new Character('\u03CC')); // ( 972) X
+ f.add(new Character('\u03CD')); // ( 973) X
+ f.add(new Character('\u03CE')); // ( 974) X
+ f.add(new Character('\u03CF')); // ( 975) X
+ f.add(new Character('\u03D0')); // ( 976) X
+ f.add(new Character('\u03D1')); // ( 977) X
+ f.add(new Character('\u03D2')); // ( 978) X
+ f.add(new Character('\u03D3')); // ( 979) X
+ f.add(new Character('\u03D4')); // ( 980) X
+ f.add(new Character('\u03D5')); // ( 981) X
+ f.add(new Character('\u03D6')); // ( 982) X
+ f.add(new Character('\u03D7')); // ( 983) X
+ f.add(new Character('\u03D8')); // ( 984) X
+ f.add(new Character('\u03D9')); // ( 985) X
+ f.add(new Character('\u03DA')); // ( 986) X
+ f.add(new Character('\u03DB')); // ( 987) X
+ f.add(new Character('\u03DC')); // ( 988) X
+ f.add(new Character('\u03DD')); // ( 989) X
+ f.add(new Character('\u03DE')); // ( 990) X
+ f.add(new Character('\u03DF')); // ( 991) X
+ f.add(new Character('\u03E0')); // ( 992) X
+ f.add(new Character('\u03E1')); // ( 993) X
+ f.add(new Character('\u03E2')); // ( 994) X
+ f.add(new Character('\u03E3')); // ( 995) X
+ f.add(new Character('\u03E4')); // ( 996) X
+ f.add(new Character('\u03E5')); // ( 997) X
+ f.add(new Character('\u03E6')); // ( 998) X
+ f.add(new Character('\u03E7')); // ( 999) X
+ f.add(new Character('\u03E8')); // (1000) X
+ f.add(new Character('\u03E9')); // (1001) X
+ f.add(new Character('\u03EA')); // (1002) X
+ f.add(new Character('\u03EB')); // (1003) X
+ f.add(new Character('\u03EC')); // (1004) X
+ f.add(new Character('\u03ED')); // (1005) X
+ f.add(new Character('\u03EE')); // (1006) X
+ f.add(new Character('\u03EF')); // (1007) X
+ f.add(new Character('\u03F0')); // (1008) X
+ f.add(new Character('\u03F1')); // (1009) X
+ f.add(new Character('\u03F2')); // (1010) X
+ f.add(new Character('\u03F3')); // (1011) X
+ f.add(new Character('\u03F4')); // (1012) X
+ f.add(new Character('\u03F5')); // (1013) X
+ f.add(new Character('\u03F6')); // (1014) X
+ f.add(new Character('\u03F7')); // (1015) X
+ f.add(new Character('\u03F8')); // (1016) X
+ f.add(new Character('\u03F9')); // (1017) X
+ f.add(new Character('\u03FA')); // (1018) X
+ f.add(new Character('\u03FB')); // (1019) X
+ f.add(new Character('\u03FC')); // (1020) X
+ f.add(new Character('\u03FD')); // (1021) X
+ f.add(new Character('\u03FE')); // (1022) X
+ f.add(new Character('\u03FF')); // (1023) X
+ f.add(new Character('\u0400')); // (1024) X
+ f.add(new Character('\u0401')); // (1025) X
+ f.add(new Character('\u0402')); // (1026) X
+ f.add(new Character('\u0403')); // (1027) X
+ f.add(new Character('\u0404')); // (1028) X
+ f.add(new Character('\u0405')); // (1029) X
+ f.add(new Character('\u0406')); // (1030) X
+ f.add(new Character('\u0407')); // (1031) X
+ f.add(new Character('\u0408')); // (1032) X
+ f.add(new Character('\u0409')); // (1033) X
+ f.add(new Character('\u040A')); // (1034) X
+ f.add(new Character('\u040B')); // (1035) X
+ f.add(new Character('\u040C')); // (1036) X
+ f.add(new Character('\u040D')); // (1037) X
+ f.add(new Character('\u040E')); // (1038) X
+ f.add(new Character('\u040F')); // (1039) X
+ f.add(new Character('\u0410')); // (1040) X
+ f.add(new Character('\u0411')); // (1041) X
+ f.add(new Character('\u0412')); // (1042) X
+ f.add(new Character('\u0413')); // (1043) X
+ f.add(new Character('\u0414')); // (1044) X
+ f.add(new Character('\u0415')); // (1045) X
+ f.add(new Character('\u0416')); // (1046) X
+ f.add(new Character('\u0417')); // (1047) X
+ f.add(new Character('\u0418')); // (1048) X
+ f.add(new Character('\u0419')); // (1049) X
+ f.add(new Character('\u041A')); // (1050) X
+ f.add(new Character('\u041B')); // (1051) X
+ f.add(new Character('\u041C')); // (1052) X
+ f.add(new Character('\u041D')); // (1053) X
+ f.add(new Character('\u041E')); // (1054) X
+ f.add(new Character('\u041F')); // (1055) X
+ f.add(new Character('\u0420')); // (1056) X
+ f.add(new Character('\u0421')); // (1057) X
+ f.add(new Character('\u0422')); // (1058) X
+ f.add(new Character('\u0423')); // (1059) X
+ f.add(new Character('\u0424')); // (1060) X
+ f.add(new Character('\u0425')); // (1061) X
+ f.add(new Character('\u0426')); // (1062) X
+ f.add(new Character('\u0427')); // (1063) X
+ f.add(new Character('\u0428')); // (1064) X
+ f.add(new Character('\u0429')); // (1065) X
+ f.add(new Character('\u042A')); // (1066) X
+ f.add(new Character('\u042B')); // (1067) X
+ f.add(new Character('\u042C')); // (1068) X
+ f.add(new Character('\u042D')); // (1069) X
+ f.add(new Character('\u042E')); // (1070) X
+ f.add(new Character('\u042F')); // (1071) X
+ f.add(new Character('\u0430')); // (1072) X
+ f.add(new Character('\u0431')); // (1073) X
+ f.add(new Character('\u0432')); // (1074) X
+ f.add(new Character('\u0433')); // (1075) X
+ f.add(new Character('\u0434')); // (1076) X
+ f.add(new Character('\u0435')); // (1077) X
+ f.add(new Character('\u0436')); // (1078) X
+ f.add(new Character('\u0437')); // (1079) X
+ f.add(new Character('\u0438')); // (1080) X
+ f.add(new Character('\u0439')); // (1081) X
+ f.add(new Character('\u043A')); // (1082) X
+ f.add(new Character('\u043B')); // (1083) X
+ f.add(new Character('\u043C')); // (1084) X
+ f.add(new Character('\u043D')); // (1085) X
+ f.add(new Character('\u043E')); // (1086) X
+ f.add(new Character('\u043F')); // (1087) X
+ f.add(new Character('\u0440')); // (1088) X
+ f.add(new Character('\u0441')); // (1089) X
+ f.add(new Character('\u0442')); // (1090) X
+ f.add(new Character('\u0443')); // (1091) X
+ f.add(new Character('\u0444')); // (1092) X
+ f.add(new Character('\u0445')); // (1093) X
+ f.add(new Character('\u0446')); // (1094) X
+ f.add(new Character('\u0447')); // (1095) X
+ f.add(new Character('\u0448')); // (1096) X
+ f.add(new Character('\u0449')); // (1097) X
+ f.add(new Character('\u044A')); // (1098) X
+ f.add(new Character('\u044B')); // (1099) X
+ f.add(new Character('\u044C')); // (1100) X
+ f.add(new Character('\u044D')); // (1101) X
+ f.add(new Character('\u044E')); // (1102) X
+ f.add(new Character('\u044F')); // (1103) X
+ f.add(new Character('\u0450')); // (1104) X
+ f.add(new Character('\u0451')); // (1105) X
+ f.add(new Character('\u0452')); // (1106) X
+ f.add(new Character('\u0453')); // (1107) X
+ f.add(new Character('\u0454')); // (1108) X
+ f.add(new Character('\u0455')); // (1109) X
+ f.add(new Character('\u0456')); // (1110) X
+ f.add(new Character('\u0457')); // (1111) X
+ f.add(new Character('\u0458')); // (1112) X
+ f.add(new Character('\u0459')); // (1113) X
+ f.add(new Character('\u045A')); // (1114) X
+ f.add(new Character('\u045B')); // (1115) X
+ f.add(new Character('\u045C')); // (1116) X
+ f.add(new Character('\u045D')); // (1117) X
+ f.add(new Character('\u045E')); // (1118) X
+ f.add(new Character('\u045F')); // (1119) X
+ f.add(new Character('\u0460')); // (1120) X
+ f.add(new Character('\u0461')); // (1121) X
+ f.add(new Character('\u0462')); // (1122) X
+ f.add(new Character('\u0463')); // (1123) X
+ f.add(new Character('\u0464')); // (1124) X
+ f.add(new Character('\u0465')); // (1125) X
+ f.add(new Character('\u0466')); // (1126) X
+ f.add(new Character('\u0467')); // (1127) X
+ f.add(new Character('\u0468')); // (1128) X
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the IT language.
+ * @param f The HashSet
+ */
+ private static void initITFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00AA')); // ( 170) feminine_ordinal
+ f.add(new Character('\u00BA')); // ( 186) masculine_ordinal
+ f.add(new Character('\u00C0')); // ( 192) A_grave
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C3')); // ( 195) A_tilde
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C5')); // ( 197) A_ring
+ f.add(new Character('\u00C6')); // ( 198) AE_ligature
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C8')); // ( 200) E_grave
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CA')); // ( 202) E_circumflex
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CC')); // ( 204) I_grave
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00CF')); // ( 207) I_umlaut
+ f.add(new Character('\u00D0')); // ( 208) ETH_Q
+ f.add(new Character('\u00D1')); // ( 209) N_tilde
+ f.add(new Character('\u00D2')); // ( 210) O_grave
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D5')); // ( 213) O_tilde
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00D8')); // ( 216) O_slash
+ f.add(new Character('\u00D9')); // ( 217) U_grave
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DB')); // ( 219) U_circumflex
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DE')); // ( 222) THORN
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E0')); // ( 224) a_grave
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E3')); // ( 227) a_tilde
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E5')); // ( 229) a_ring
+ f.add(new Character('\u00E6')); // ( 230) ae_ligature
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E8')); // ( 232) e_grave
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EA')); // ( 234) e_circumflex
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00EC')); // ( 236) i_grave
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00EF')); // ( 239) i_umlaut
+ f.add(new Character('\u00F0')); // ( 240) eth
+ f.add(new Character('\u00F1')); // ( 241) n_tilde
+ f.add(new Character('\u00F2')); // ( 242) o_grave
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F5')); // ( 245) o_tilde
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00F8')); // ( 248) o_slash
+ f.add(new Character('\u00F9')); // ( 249) u_grave
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FB')); // ( 251) u_circumflex
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u00FE')); // ( 254) thorn
+ f.add(new Character('\u00FF')); // ( 255) y_umlaut
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the HU language.
+ * @param f The HashSet
+ */
+ protected static void initHUFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00B5')); // ( 181) micro
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u0102')); // ( 258) A_breve
+ f.add(new Character('\u0103')); // ( 259) a_breve
+ f.add(new Character('\u0104')); // ( 260) A_ogokek
+ f.add(new Character('\u0105')); // ( 261) a_ogokek
+ f.add(new Character('\u0106')); // ( 262) C_acute
+ f.add(new Character('\u0107')); // ( 263) c_acute
+ f.add(new Character('\u010C')); // ( 268) C_caron
+ f.add(new Character('\u010D')); // ( 269) c_caron
+ f.add(new Character('\u010E')); // ( 270) D_caron
+ f.add(new Character('\u010F')); // ( 271) d_caron
+ f.add(new Character('\u0110')); // ( 272) D_stroke
+ f.add(new Character('\u0111')); // ( 273) d_stroke
+ f.add(new Character('\u0118')); // ( 280) E_ogonek
+ f.add(new Character('\u0119')); // ( 281) e_ogonek
+ f.add(new Character('\u011A')); // ( 282) E_caron
+ f.add(new Character('\u011B')); // ( 283) e_caron
+ f.add(new Character('\u0139')); // ( 313) L_acute
+ f.add(new Character('\u013A')); // ( 314) l_acute
+ f.add(new Character('\u013D')); // ( 317) L_caron
+ f.add(new Character('\u013E')); // ( 318) l_caron
+ f.add(new Character('\u0141')); // ( 321) L_stoke
+ f.add(new Character('\u0142')); // ( 322) l_stoke
+ f.add(new Character('\u0143')); // ( 323) N_acute
+ f.add(new Character('\u0144')); // ( 324) n_acute
+ f.add(new Character('\u0147')); // ( 327) N_caron
+ f.add(new Character('\u0148')); // ( 328) n_caron
+ f.add(new Character('\u0150')); // ( 336) O_double_acute
+ f.add(new Character('\u0151')); // ( 337) o_double_acute
+ f.add(new Character('\u0154')); // ( 340) R_acute
+ f.add(new Character('\u0155')); // ( 341) r_acute
+ f.add(new Character('\u0158')); // ( 344) R_caron
+ f.add(new Character('\u0159')); // ( 345) r_caron
+ f.add(new Character('\u015A')); // ( 346) S_acute
+ f.add(new Character('\u015B')); // ( 347) s_acute
+ f.add(new Character('\u015E')); // ( 350) S_cedilla
+ f.add(new Character('\u015F')); // ( 351) s_cedilla
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0162')); // ( 354) T_cedilla
+ f.add(new Character('\u0163')); // ( 355) t_cedilla
+ f.add(new Character('\u0164')); // ( 356) T_caron
+ f.add(new Character('\u0165')); // ( 357) t_caron
+ f.add(new Character('\u016E')); // ( 366) U_ring
+ f.add(new Character('\u016F')); // ( 367) u_ring
+ f.add(new Character('\u0170')); // ( 368) U_double_acute
+ f.add(new Character('\u0171')); // ( 369) u_double_acute
+ f.add(new Character('\u0179')); // ( 377) Z_acute
+ f.add(new Character('\u017A')); // ( 378) z_acute
+ f.add(new Character('\u017B')); // ( 379) Z_superdot
+ f.add(new Character('\u017C')); // ( 380) z_superdot
+ f.add(new Character('\u017D')); // ( 381) Z_caron
+ f.add(new Character('\u017E')); // ( 382) z_caron
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the FR language.
+ * @param f The HashSet
+ */
+ protected static void initFRFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00AA')); // ( 170) feminine_ordinal
+ f.add(new Character('\u00BA')); // ( 186) masculine_ordinal
+ f.add(new Character('\u00C0')); // ( 192) A_grave
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C3')); // ( 195) A_tilde
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C5')); // ( 197) A_ring
+ f.add(new Character('\u00C6')); // ( 198) AE_ligature
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C8')); // ( 200) E_grave
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CA')); // ( 202) E_circumflex
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CC')); // ( 204) I_grave
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00CF')); // ( 207) I_umlaut
+ f.add(new Character('\u00D0')); // ( 208) ETH_Q
+ f.add(new Character('\u00D1')); // ( 209) N_tilde
+ f.add(new Character('\u00D2')); // ( 210) O_grave
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D5')); // ( 213) O_tilde
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00D8')); // ( 216) O_slash
+ f.add(new Character('\u00D9')); // ( 217) U_grave
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DB')); // ( 219) U_circumflex
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DE')); // ( 222) THORN
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E0')); // ( 224) a_grave
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E3')); // ( 227) a_tilde
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E5')); // ( 229) a_ring
+ f.add(new Character('\u00E6')); // ( 230) ae_ligature
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E8')); // ( 232) e_grave
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EA')); // ( 234) e_circumflex
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00EC')); // ( 236) i_grave
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00EF')); // ( 239) i_umlaut
+ f.add(new Character('\u00F0')); // ( 240) eth
+ f.add(new Character('\u00F1')); // ( 241) n_tilde
+ f.add(new Character('\u00F2')); // ( 242) o_grave
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F5')); // ( 245) o_tilde
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00F8')); // ( 248) o_slash
+ f.add(new Character('\u00F9')); // ( 249) u_grave
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FB')); // ( 251) u_circumflex
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u00FE')); // ( 254) thorn
+ f.add(new Character('\u00FF')); // ( 255) y_umlaut
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the ES language.
+ * @param f The HashSet
+ */
+ protected static void initESFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00AA')); // ( 170) feminine_ordinal
+ f.add(new Character('\u00BA')); // ( 186) masculine_ordinal
+ f.add(new Character('\u00C0')); // ( 192) A_grave
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C3')); // ( 195) A_tilde
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C5')); // ( 197) A_ring
+ f.add(new Character('\u00C6')); // ( 198) AE_ligature
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C8')); // ( 200) E_grave
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CA')); // ( 202) E_circumflex
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CC')); // ( 204) I_grave
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00CF')); // ( 207) I_umlaut
+ f.add(new Character('\u00D0')); // ( 208) ETH_Q
+ f.add(new Character('\u00D1')); // ( 209) N_tilde
+ f.add(new Character('\u00D2')); // ( 210) O_grave
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D5')); // ( 213) O_tilde
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00D8')); // ( 216) O_slash
+ f.add(new Character('\u00D9')); // ( 217) U_grave
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DB')); // ( 219) U_circumflex
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DE')); // ( 222) THORN
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E0')); // ( 224) a_grave
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E3')); // ( 227) a_tilde
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E5')); // ( 229) a_ring
+ f.add(new Character('\u00E6')); // ( 230) ae_ligature
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E8')); // ( 232) e_grave
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EA')); // ( 234) e_circumflex
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00EC')); // ( 236) i_grave
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00EF')); // ( 239) i_umlaut
+ f.add(new Character('\u00F0')); // ( 240) eth
+ f.add(new Character('\u00F1')); // ( 241) n_tilde
+ f.add(new Character('\u00F2')); // ( 242) o_grave
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F5')); // ( 245) o_tilde
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00F8')); // ( 248) o_slash
+ f.add(new Character('\u00F9')); // ( 249) u_grave
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FB')); // ( 251) u_circumflex
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u00FE')); // ( 254) thorn
+ f.add(new Character('\u00FF')); // ( 255) y_umlaut
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO for the DE language.
+ * @param f The HashSet
+ */
+ protected static void initDEFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u00AA')); // ( 170) feminine_ordinal
+ f.add(new Character('\u00BA')); // ( 186) masculine_ordinal
+ f.add(new Character('\u00C0')); // ( 192) A_grave
+ f.add(new Character('\u00C1')); // ( 193) A_acute
+ f.add(new Character('\u00C2')); // ( 194) A_circumflex
+ f.add(new Character('\u00C3')); // ( 195) A_tilde
+ f.add(new Character('\u00C4')); // ( 196) A_umlaut
+ f.add(new Character('\u00C5')); // ( 197) A_ring
+ f.add(new Character('\u00C6')); // ( 198) AE_ligature
+ f.add(new Character('\u00C7')); // ( 199) C_cedilla
+ f.add(new Character('\u00C8')); // ( 200) E_grave
+ f.add(new Character('\u00C9')); // ( 201) E_acute
+ f.add(new Character('\u00CA')); // ( 202) E_circumflex
+ f.add(new Character('\u00CB')); // ( 203) E_umlaut
+ f.add(new Character('\u00CC')); // ( 204) I_grave
+ f.add(new Character('\u00CD')); // ( 205) I_acute
+ f.add(new Character('\u00CE')); // ( 206) I_circumflex
+ f.add(new Character('\u00CF')); // ( 207) I_umlaut
+ f.add(new Character('\u00D0')); // ( 208) ETH_Q
+ f.add(new Character('\u00D1')); // ( 209) N_tilde
+ f.add(new Character('\u00D2')); // ( 210) O_grave
+ f.add(new Character('\u00D3')); // ( 211) O_acute
+ f.add(new Character('\u00D4')); // ( 212) O_circumflex
+ f.add(new Character('\u00D5')); // ( 213) O_tilde
+ f.add(new Character('\u00D6')); // ( 214) O_umlaut
+ f.add(new Character('\u00D8')); // ( 216) O_slash
+ f.add(new Character('\u00D9')); // ( 217) U_grave
+ f.add(new Character('\u00DA')); // ( 218) U_acute
+ f.add(new Character('\u00DB')); // ( 219) U_circumflex
+ f.add(new Character('\u00DC')); // ( 220) U_umlaut
+ f.add(new Character('\u00DD')); // ( 221) Y_acute
+ f.add(new Character('\u00DE')); // ( 222) THORN
+ f.add(new Character('\u00DF')); // ( 223) sharp_s
+ f.add(new Character('\u00E0')); // ( 224) a_grave
+ f.add(new Character('\u00E1')); // ( 225) a_acute
+ f.add(new Character('\u00E2')); // ( 226) a_circumflex
+ f.add(new Character('\u00E3')); // ( 227) a_tilde
+ f.add(new Character('\u00E4')); // ( 228) a_umlaut
+ f.add(new Character('\u00E5')); // ( 229) a_ring
+ f.add(new Character('\u00E6')); // ( 230) ae_ligature
+ f.add(new Character('\u00E7')); // ( 231) c_cedilla
+ f.add(new Character('\u00E8')); // ( 232) e_grave
+ f.add(new Character('\u00E9')); // ( 233) e_acute
+ f.add(new Character('\u00EA')); // ( 234) e_circumflex
+ f.add(new Character('\u00EB')); // ( 235) e_umlaut
+ f.add(new Character('\u00EC')); // ( 236) i_grave
+ f.add(new Character('\u00ED')); // ( 237) i_acute
+ f.add(new Character('\u00EE')); // ( 238) i_circumflex
+ f.add(new Character('\u00EF')); // ( 239) i_umlaut
+ f.add(new Character('\u00F0')); // ( 240) eth
+ f.add(new Character('\u00F1')); // ( 241) n_tilde
+ f.add(new Character('\u00F2')); // ( 242) o_grave
+ f.add(new Character('\u00F3')); // ( 243) o_acute
+ f.add(new Character('\u00F4')); // ( 244) o_circumflex
+ f.add(new Character('\u00F5')); // ( 245) o_tilde
+ f.add(new Character('\u00F6')); // ( 246) o_umlaut
+ f.add(new Character('\u00F8')); // ( 248) o_slash
+ f.add(new Character('\u00F9')); // ( 249) u_grave
+ f.add(new Character('\u00FA')); // ( 250) u_acute
+ f.add(new Character('\u00FB')); // ( 251) u_circumflex
+ f.add(new Character('\u00FC')); // ( 252) u_umlaut
+ f.add(new Character('\u00FD')); // ( 253) y_acute
+ f.add(new Character('\u00FE')); // ( 254) thorn
+ f.add(new Character('\u00FF')); // ( 255) y_umlaut
+ f.add(new Character('\u0152')); // ( 338) OE_ligature
+ f.add(new Character('\u0153')); // ( 339) oe_ligature
+ f.add(new Character('\u0160')); // ( 352) S_caron
+ f.add(new Character('\u0161')); // ( 353) s_caron
+ f.add(new Character('\u0178')); // ( 376) Y_diaeresis
+ }
+
+
+ /**
+ * Initializes ordinary characters for LUWO for the CS language.
+ * @param f The HashSet
+ */
+ protected static void initCSFlags(HashSet<Character> f)
+ {
+ f.add(new Character('\u05D0')); // ( 1488) X
+ f.add(new Character('\u05D1')); // ( 1489) X
+ f.add(new Character('\u05D2')); // ( 1490) X
+ f.add(new Character('\u05D3')); // ( 1491) X
+ f.add(new Character('\u05D4')); // ( 1492) X
+ f.add(new Character('\u05D5')); // ( 1493) X
+ f.add(new Character('\u05D6')); // ( 1494) X
+ f.add(new Character('\u05D7')); // ( 1495) X
+ f.add(new Character('\u05D8')); // ( 1496) X
+ f.add(new Character('\u05D9')); // ( 1497) X
+ f.add(new Character('\u05DA')); // ( 1498) X
+ f.add(new Character('\u05DB')); // ( 1499) X
+ f.add(new Character('\u05DC')); // ( 1500) X
+ f.add(new Character('\u05DD')); // ( 1501) X
+ f.add(new Character('\u05DE')); // ( 1502) X
+ f.add(new Character('\u05DF')); // ( 1503) X
+ f.add(new Character('\u05E0')); // ( 1504) X
+ f.add(new Character('\u05E1')); // ( 1505) X
+ f.add(new Character('\u05E2')); // ( 1506) X
+ f.add(new Character('\u05E3')); // ( 1507) X
+ f.add(new Character('\u05E4')); // ( 1508) X
+ f.add(new Character('\u05E5')); // ( 1509) X
+ f.add(new Character('\u05E6')); // ( 1510) X
+ f.add(new Character('\u05E7')); // ( 1511) X
+ f.add(new Character('\u05E8')); // ( 1512) X
+ f.add(new Character('\u05E9')); // ( 1513) X
+ f.add(new Character('\u05EA')); // ( 1514) X
+ f.add(new Character('\u05F0')); // ( 1520) X
+ f.add(new Character('\u05F1')); // ( 1521) X
+ f.add(new Character('\u05F2')); // ( 1522) X
+ }
+
+ /**
+ * Initializes ordinary characters for LUWO.
+ * Has a side-effect of adding the HashSet to ordinaryFlagsSet.
+ * @return The HashSet
+ */
+ protected static HashSet<Character> initOrdinaryFlagsLUWO()
+ {
+ langsUNO = new ArrayList<String>(); // Part of workaround til we get codeset info
+ langsUNO.add("en"); //$NON-NLS-1$
+ langsUNO.add("cs"); //$NON-NLS-1$
+ langsUNO.add("de"); //$NON-NLS-1$
+ langsUNO.add("es"); //$NON-NLS-1$
+ langsUNO.add("fr"); //$NON-NLS-1$
+ langsUNO.add("hu"); //$NON-NLS-1$
+ langsUNO.add("it"); //$NON-NLS-1$
+ langsUNO.add("ja"); //$NON-NLS-1$
+ langsUNO.add("ko"); //$NON-NLS-1$
+ langsUNO.add("pl"); //$NON-NLS-1$
+ langsUNO.add("pt"); //$NON-NLS-1$
+ langsUNO.add("ru"); //$NON-NLS-1$
+ langsUNO.add("zh"); //$NON-NLS-1$
+ HashSet<Character> f = new HashSet<Character>(349);
+ ordinaryFlagsSet.put(PLATFORM_LUWO_KEY, f);
+ // First add characters for all LUWO locales:
+ f.add(new Character('\u0023')); // ( 35) #
+ f.add(new Character('\u0024')); // ( 36) $
+ f.add(new Character('\u0040')); // ( 64) @
+ initCommonOrdinaryFlags(f);
+ // Then for the locale:
+ Locale locale = Locale.getDefault();
+ initOrdinaryFlagsLUWO(f, locale);
+ return f;
+ }
+
+ /**
+ * Formats {0}.{1}.
+ * @param schema The schema name, in catalog format.
+ * @param name The routine name, in catalog format.
+ * @param conInfo The ConnnectionInfo.
+ * @return The qualified name in SQL format.
+ */
+ public static String getQualifiedName(String schema, String name, ConnectionInfo conInfo)
+ {
+ String sqlName = toSQLFormat(name, conInfo);
+ if (schema != null && schema.length() > 0)
+ {
+ String sqlSchema = toSQLFormat(schema, conInfo);
+ return NLS.bind(QUALIFIED_NAME_TEMPLATE, sqlSchema, sqlName);
+ }
+ else
+ {
+ return sqlName;
+ }
+ }
+
+ /**
+ * Formats {0}.{1}.
+ * @param schema The schema name, in catalog format.
+ * @param name The routine name, in catalog format.
+ * @param dbDef Defines the database.
+ * @return The qualified name in SQL format.
+ */
+ public static String getQualifiedName(String schema, String name, DatabaseDefinition dbDef)
+ {
+ String sqlName = toSQLFormat(name, dbDef);
+ if (schema != null && schema.length() > 0)
+ {
+ String sqlSchema = toSQLFormat(schema, dbDef);
+ return NLS.bind(QUALIFIED_NAME_TEMPLATE, sqlSchema, sqlName);
+ }
+ else
+ {
+ return sqlName;
+ }
+ }
+
+ /**
+ * Formats {0}.{1}.{2}....
+ * @param names An array of the unqualified names, in catalog format.
+ * @param conInfo The ConnnectionInfo.
+ * @return The qualified name in SQL format.
+ */
+ public static String getQualifiedName(String[] names, ConnectionInfo conInfo)
+ {
+ String sqlName1 = null;
+ int count = names.length;
+ ArrayList<String> nns = new ArrayList<String>(count);
+ int n = 0;
+ while (n < count)
+ {
+ if (names[n] != null && names[n].length() > 0)
+ nns.add(names[n]);
+ n++;
+ }
+ count = nns.size();
+ if (count > 0)
+ {
+ sqlName1 = toSQLFormat(nns.get(0), conInfo);
+ if (count > 1)
+ {
+ String sqlName2;
+ n = 1;
+ while (n < count)
+ {
+ sqlName2 = toSQLFormat(nns.get(n), conInfo);
+ sqlName1 = NLS.bind(QUALIFIED_NAME_TEMPLATE, sqlName1, sqlName2);
+ n++;
+ }
+ }
+ }
+ return sqlName1;
+ }
+
+ /**
+ * Formats {0}.{1}.{2}....
+ * @param names An array of the unqualified names, in catalog format.
+ * @param dbDef Defines the database.
+ * @return The qualified name in SQL format.
+ */
+ public static String getQualifiedName(String[] names, DatabaseDefinition dbDef)
+ {
+ String sqlName1 = null;
+ int count = names.length;
+ ArrayList<String> nns = new ArrayList<String>(count);
+ int n = 0;
+ while (n < count)
+ {
+ if (names[n] != null && names[n].length() > 0)
+ nns.add(names[n]);
+ n++;
+ }
+ count = nns.size();
+ if (count > 0)
+ {
+ sqlName1 = toSQLFormat(nns.get(0), dbDef);
+ if (count > 1)
+ {
+ String sqlName2;
+ n = 1;
+ while (n < count)
+ {
+ sqlName2 = toSQLFormat(nns.get(n), dbDef);
+ sqlName1 = NLS.bind(QUALIFIED_NAME_TEMPLATE, sqlName1, sqlName2);
+ n++;
+ }
+ }
+ }
+ return sqlName1;
+ }
+
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SimpleColumnDetails.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SimpleColumnDetails.java
new file mode 100644
index 0000000..ef0e74b
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SimpleColumnDetails.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import org.eclipse.datatools.modelbase.sql.datatypes.DataType;
+import org.eclipse.datatools.modelbase.sql.tables.Column;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class SimpleColumnDetails {
+ public String name;
+ public String type;
+ public int length;
+ public int scale;
+
+ public SimpleColumnDetails(Column col) {
+ this.name = col.getName();
+ DataType type = col.getDataType();
+ this.type = type.getName();
+ EStructuralFeature f = type.eClass().getEStructuralFeature("length"); //$NON-NLS-1$
+ if (f != null) {
+ this.length = ((Integer) type.eGet(f)).intValue();
+ }
+ f = type.eClass().getEStructuralFeature("precision"); //$NON-NLS-1$
+ if (f != null) {
+ this.length = ((Integer) type.eGet(f)).intValue();
+ }
+ f = type.eClass().getEStructuralFeature("scale"); //$NON-NLS-1$
+ if (f != null) {
+ this.scale = ((Integer) type.eGet(f)).intValue();
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SliceKey.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SliceKey.java
new file mode 100644
index 0000000..8a332fc
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/SliceKey.java
@@ -0,0 +1,218 @@
+/*******************************************************************************
+ * Copyright (c) 2012, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+public class SliceKey
+{
+ public static final SliceKey EMPTY = new SliceKey( new String[ 0 ] );
+
+ String[] keyvalues;
+ String keystring;
+
+ public SliceKey( String... values )
+ {
+ if ( values == null )
+ {
+ this.keyvalues = new String[ 0 ];
+ }
+ else
+ {
+ this.keyvalues = new String[ values.length ];
+
+ for ( int ii = 0; ii < values.length; ++ii )
+ {
+ if ( values[ ii ] == null )
+ {
+ values[ ii ] = ""; //$NON-NLS-1$
+ }
+
+ this.keyvalues[ ii ] = StringCache.getUniqueString( values[ ii ].trim() );
+ }
+ }
+
+ StringBuilder sb = new StringBuilder();
+
+ for ( String s : this.keyvalues )
+ {
+ if ( s == null )
+ {
+ sb.setLength( 0 );
+ break;
+ }
+
+ addKeyValue( sb, s );
+ }
+
+ this.keystring = StringCache.getUniqueString( sb.toString() );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ if ( keyvalues == null )
+ {
+ return 0;
+ }
+
+ int hash = 0;
+
+ for ( int ii = 0; ii < this.keyvalues.length; ++ii )
+ {
+ hash <<= 1;
+
+ String kv = this.keyvalues[ ii ];
+
+ if ( kv != null )
+ {
+ hash ^= kv.hashCode();
+ }
+ }
+
+ return hash;
+ }
+
+ @Override
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+
+ if ( !(o instanceof SliceKey) )
+ {
+ return false;
+ }
+
+ SliceKey other = (SliceKey)o;
+
+ if ( this.keyvalues.length != other.keyvalues.length )
+ {
+ return false;
+ }
+
+ for ( int ii = 0; ii < this.keyvalues.length; ++ii )
+ {
+ String kv1 = this.keyvalues[ ii ];
+ String kv2 = other.keyvalues[ ii ];
+
+ if ( kv1 == null )
+ {
+ if ( kv2 != null )
+ {
+ return false;
+ }
+ }
+ else if ( !kv1.equals( kv2 ) )
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public boolean isEmpty()
+ {
+ return (this.keyvalues == null) || (this.keyvalues.length == 0);
+ }
+
+ public String toString()
+ {
+ return getKeyString();
+ }
+
+ public String getKeyString()
+ {
+ return this.keystring;
+ }
+
+ public static String[] extractFilterValues( String keystring )
+ {
+ if ( keystring == null )
+ {
+ return new String[ 0 ];
+ }
+ StringTokenizer toker = new StringTokenizer( keystring, "." ); //$NON-NLS-1$
+
+ List<String> filterValues = new ArrayList<String>();
+
+ while ( toker.hasMoreTokens() )
+ {
+ filterValues.add( decode( toker.nextToken() ) );
+ }
+
+ return filterValues.toArray( new String[ filterValues.size() ] );
+ }
+
+ private static String decode( String encoded )
+ {
+ int amp = encoded.indexOf( '&' );
+
+ if ( amp < 0 )
+ {
+ return encoded;
+ }
+
+ StringBuilder sb = new StringBuilder( encoded );
+
+ while ( (amp >= 0) && (amp < sb.length() - 1) )
+ {
+ sb.deleteCharAt( amp );
+
+ if ( sb.charAt( amp ) == 'd' )
+ {
+ sb.setCharAt( amp, '.' );
+ }
+
+ amp = sb.indexOf( "&", amp + 1 ); //$NON-NLS-1$
+ }
+
+ return sb.toString();
+ }
+
+ private static void addKeyValue( StringBuilder sb, String value )
+ {
+ if ( sb.length() > 0 )
+ {
+ sb.append( '.' );
+ }
+
+ if ( (value.indexOf( '.' ) >= 0) || (value.indexOf( '&' ) >= 0) )
+ {
+ for ( int ii = 0; ii < value.length(); ++ii )
+ {
+ char c = value.charAt( ii );
+
+ switch (c)
+ {
+ case '.':
+ sb.append( "&d" ); //$NON-NLS-1$
+ break;
+ case '&':
+ sb.append( "&&" ); //$NON-NLS-1$
+ break;
+ default:
+ sb.append( c );
+ break;
+ }
+ }
+ }
+ else
+ {
+ sb.append( value );
+ }
+ }
+}
diff --git a/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/StringCache.java b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/StringCache.java
new file mode 100644
index 0000000..19ffaa4
--- /dev/null
+++ b/plugins/org.eclipse.datatools.enablement.ibm/src/org/eclipse/datatools/enablement/ibm/util/StringCache.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.datatools.enablement.ibm.util;
+
+import java.lang.ref.WeakReference;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+/** Cache small strings */
+public class StringCache
+{
+ // Don't keep strong references to the strings
+ private static int INITIAL_SIZE = 32768;
+ private static Map<String, WeakReference<String>> stringCache = new WeakHashMap<String, WeakReference<String>>( INITIAL_SIZE );
+
+ public static final String EMPTY = getUniqueString( "" ); //$NON-NLS-1$
+
+ /**
+ * Get the cached object for a value
+ *
+ * @return The common object, or the argument if it was not yet in the cache
+ */
+ public static String getUniqueString( String value )
+ {
+ if ( value == null )
+ {
+ return value;
+ }
+
+ synchronized (stringCache)
+ {
+ WeakReference<String> existingRef = stringCache.get( value );
+ String existing = (existingRef != null)
+ ? existingRef.get()
+ : null;
+
+ if ( existing == null )
+ {
+ stringCache.put( value, new WeakReference<String>( value ) );
+ }
+ else if ( value != existing )
+ {
+ value = existing;
+ }
+ }
+
+ return value;
+ }
+
+ private StringCache()
+ {
+ // no instances
+ }
+}