Add more support for AnchoredTypes (%ROWTYPE, %TYPE)
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java
index c860b38..92e870b 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/PLSQLPackageType.java
@@ -58,6 +58,9 @@
}
public List<PLSQLType> getTypes() {
+ if (types == null) {
+ types = new ArrayList<PLSQLType>();
+ }
return types;
}
@@ -71,14 +74,23 @@
}
public List<PLSQLCursorType> getCursors() {
+ if (cursors == null) {
+ cursors = new ArrayList<PLSQLCursorType>();
+ }
return cursors;
}
public List<ProcedureType> getProcedures() {
+ if (procedures == null) {
+ procedures = new ArrayList<ProcedureType>();
+ }
return procedures;
}
public List<FieldType> getLocalVariables() {
+ if (localVariables == null) {
+ localVariables = new ArrayList<FieldType>();
+ }
return localVariables;
}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java
index 6e00da1..522290f 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/BaseDatabaseTypeVisitor.java
@@ -154,17 +154,22 @@
}
public void visit(PLSQLPackageType databaseType) {
beginVisit(databaseType);
- if (databaseType.getTypes() != null) {
+ if (!databaseType.getTypes().isEmpty()) {
for (PLSQLType plsqlType : databaseType.getTypes()) {
plsqlType.accept(this);
}
}
- if (databaseType.getCursors() != null) {
+ if (!databaseType.getLocalVariables().isEmpty()) {
+ for (FieldType fieldType : databaseType.getLocalVariables()) {
+ fieldType.accept(this);
+ }
+ }
+ if (!databaseType.getCursors().isEmpty()) {
for (PLSQLCursorType cursorType : databaseType.getCursors()) {
cursorType.accept(this);
}
}
- if (databaseType.getProcedures() != null) {
+ if (!databaseType.getProcedures().isEmpty()) {
for (ProcedureType procType : databaseType.getProcedures()) {
procType.accept(this);
}
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/UnresolvedTypesVisitor.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/UnresolvedTypesVisitor.java
index 94936f3..dace163 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/UnresolvedTypesVisitor.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/metadata/visit/UnresolvedTypesVisitor.java
@@ -14,7 +14,9 @@
//javase imports
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
//DDL parser imports
import org.eclipse.persistence.tools.oracleddl.metadata.UnresolvedSizedType;
@@ -23,16 +25,33 @@
public class UnresolvedTypesVisitor extends BaseDatabaseTypeVisitor {
protected List<UnresolvedType> unresolvedTypes = new ArrayList<UnresolvedType>();
+ protected Map<String, List<UnresolvedType>> uniq = new HashMap<String, List<UnresolvedType>>();
public List<UnresolvedType> getUnresolvedTypes() {
return unresolvedTypes;
}
public void visit(UnresolvedType unresolvedType) {
- unresolvedTypes.add(unresolvedType);
+ String typeName = unresolvedType.getTypeName();
+ List<UnresolvedType> similarUnresolvedTypes = uniq.get(typeName);
+ if (similarUnresolvedTypes == null) {
+ similarUnresolvedTypes = new ArrayList<UnresolvedType>();
+ uniq.put(typeName, similarUnresolvedTypes);
+ }
+ boolean addToUnresolvedTypes = false;
+ for (UnresolvedType similarUnresolvedType : similarUnresolvedTypes) {
+ if (unresolvedType.getOwningType() != similarUnresolvedType.getOwningType()) {
+ addToUnresolvedTypes = true;
+ break;
+ }
+ }
+ if (addToUnresolvedTypes || similarUnresolvedTypes.isEmpty()) {
+ similarUnresolvedTypes.add(unresolvedType);
+ unresolvedTypes.add(unresolvedType);
+ }
}
public void visit(UnresolvedSizedType unresolvedType) {
- unresolvedTypes.add(unresolvedType);
+ visit((UnresolvedType)unresolvedType);
}
}
\ No newline at end of file
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
index 4ade00b..d971c98 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.java
@@ -2009,6 +2009,9 @@
jj_consume_token(O_SEMICOLON);
PLSQLSubType newPLSQLSubType = new PLSQLSubType(subtypeName);
newPLSQLSubType.addCompositeType(subtype);
+ if (subtype instanceof UnresolvedType) {
+ ((UnresolvedType)subtype).setOwningType(newPLSQLSubType);
+ }
packageType.addType(newPLSQLSubType);
if (notNull != null) {
newPLSQLSubType.setNotNull(true);
@@ -2186,7 +2189,13 @@
default:
;
}
- cursorType.setDataType(new UnresolvedType(s));
+ DatabaseType localType = localTypes.get(s);
+ if (localType == null) {
+ cursorType.setDataType(new UnresolvedType(s));
+ }
+ else {
+ cursorType.setDataType(localType);
+ }
}
final public void cursorDeclaration(PLSQLPackageType packageType) throws ParseException {
@@ -2699,13 +2708,18 @@
return false;
}
+ private boolean jj_3R_11() {
+ if (jj_scan_token(K_TYPE2)) return true;
+ return false;
+ }
+
private boolean jj_3R_57() {
if (jj_scan_token(K_VARCHAR2)) return true;
return false;
}
- private boolean jj_3R_11() {
- if (jj_scan_token(K_TYPE2)) return true;
+ private boolean jj_3R_13() {
+ if (jj_scan_token(K_ROWTYPE)) return true;
return false;
}
@@ -2715,11 +2729,6 @@
return false;
}
- private boolean jj_3R_13() {
- if (jj_scan_token(K_ROWTYPE)) return true;
- return false;
- }
-
private boolean jj_3_5() {
if (jj_3R_6()) return true;
if (jj_scan_token(O_DOT)) return true;
@@ -2910,17 +2919,25 @@
return false;
}
+ private boolean jj_3_18() {
+ if (jj_3R_10()) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_11()) jj_scanpos = xsp;
+ return false;
+ }
+
private boolean jj_3_10() {
if (jj_scan_token(K_CHARACTER)) return true;
if (jj_scan_token(K_SET)) return true;
return false;
}
- private boolean jj_3_18() {
- if (jj_3R_10()) return true;
+ private boolean jj_3_19() {
+ if (jj_3R_12()) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_11()) jj_scanpos = xsp;
+ if (jj_3R_13()) jj_scanpos = xsp;
return false;
}
@@ -2940,14 +2957,6 @@
return false;
}
- private boolean jj_3_19() {
- if (jj_3R_12()) return true;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_13()) jj_scanpos = xsp;
- return false;
- }
-
private boolean jj_3_4() {
if (jj_3R_6()) return true;
if (jj_scan_token(O_DOT)) return true;
@@ -3049,6 +3058,26 @@
return false;
}
+ private boolean jj_3R_15() {
+ if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_14() {
+ if (jj_scan_token(S_IDENTIFIER)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_6() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_14()) {
+ jj_scanpos = xsp;
+ if (jj_3R_15()) return true;
+ }
+ return false;
+ }
+
private boolean jj_3R_41() {
if (jj_scan_token(K_FLOAT)) return true;
return false;
@@ -3075,26 +3104,6 @@
return false;
}
- private boolean jj_3R_15() {
- if (jj_scan_token(S_QUOTED_IDENTIFIER)) return true;
- return false;
- }
-
- private boolean jj_3R_14() {
- if (jj_scan_token(S_IDENTIFIER)) return true;
- return false;
- }
-
- private boolean jj_3R_6() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_14()) {
- jj_scanpos = xsp;
- if (jj_3R_15()) return true;
- }
- return false;
- }
-
private boolean jj_3_16() {
if (jj_scan_token(K_CHARACTER)) return true;
if (jj_scan_token(K_SET)) return true;
@@ -3147,17 +3156,17 @@
return false;
}
- private boolean jj_3R_8() {
- if (jj_3R_6()) return true;
- return false;
- }
-
private boolean jj_3_20() {
if (jj_scan_token(K_IN)) return true;
if (jj_scan_token(K_OUT)) return true;
return false;
}
+ private boolean jj_3R_8() {
+ if (jj_3R_6()) return true;
+ return false;
+ }
+
private boolean jj_3R_17() {
if (jj_3R_10()) return true;
return false;
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
index e9bb809..7bc7840 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jj
Binary files differ
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
index 2751ac3..4a8c8a1 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/parser/DDLParser.jjt
Binary files differ
diff --git a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java
index 782d43e..15bb5b6 100644
--- a/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java
+++ b/oracleddlparser/src/main/java/org/eclipse/persistence/tools/oracleddl/util/DatabaseTypeBuilder.java
@@ -502,7 +502,9 @@
// fix up the databaseType's object-graph
Stack<UnresolvedType> stac = new Stack<UnresolvedType>();
for (UnresolvedType uType : unresolvedTypes) {
- stac.push(uType);
+ if (!stac.contains(uType)) {
+ stac.push(uType);
+ }
}
boolean done = false;
DatabaseTypesRepository typesRepository = parser.getTypesRepository();
@@ -522,14 +524,14 @@
if (rowtypeCompositeType == null) {
List<TableType> tables = buildTables(conn, null, tableName, false);
if (tables != null && tables.size() > 0) {
- rowtypeCompositeType = tables.get(0);
- typesRepository.setDatabaseType(rowtypeCompositeType.getTypeName(),
- rowtypeCompositeType);
+ TableType tableType = tables.get(0);
+ typesRepository.setDatabaseType(tableType.getTableName(), tableType);
+ ROWTYPEType rType = new ROWTYPEType(typeName);
+ rType.addCompositeType(tableType);
+ uType.getOwningType().addCompositeType(rType);
+ typesRepository.setDatabaseType(rType.getTypeName(), rType);
+ rowtypeCompositeType = tableType;
}
- ROWTYPEType rType = new ROWTYPEType(typeName);
- rType.addCompositeType(rowtypeCompositeType);
- uType.getOwningType().addCompositeType(rType);
- typesRepository.setDatabaseType(typeName, rType);
}
else {
uType.getOwningType().addCompositeType(rowtypeCompositeType);
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/AnchoredTypesResolutionTestSuite.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/AnchoredTypesResolutionTestSuite.java
new file mode 100644
index 0000000..5edc63d
--- /dev/null
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/AnchoredTypesResolutionTestSuite.java
@@ -0,0 +1,141 @@
+/*******************************************************************************
+ * Copyright (c) 2012 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
+ * which accompanies this distribution.
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ * Mike Norman - Feb 1 2012, created anchored types (%TYPE, %ROWTYPE) tests
+ ******************************************************************************/
+package org.eclipse.persistence.tools.oracleddl.test.databasetypebuilder;
+
+//javase imports
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+//JUnit4 imports
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+//DDL imports
+import org.eclipse.persistence.tools.oracleddl.util.DatabaseTypeBuilder;
+
+//testing imports
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLCursorType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLPackageType;
+import org.eclipse.persistence.tools.oracleddl.metadata.PLSQLType;
+import org.eclipse.persistence.tools.oracleddl.test.AllTests;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_CREATE_KEY;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DEBUG_KEY;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DROP_KEY;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DEFAULT_DATABASE_DDL_CREATE;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DEFAULT_DATABASE_DDL_DEBUG;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DEFAULT_DATABASE_DDL_DROP;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.buildConnection;
+import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.runDdl;
+
+public class AnchoredTypesResolutionTestSuite {
+
+ static final String CREATE_TABLE_PREFIX = "CREATE TABLE ";
+ static final String CREATE_PACKAGE_PREFIX = "CREATE PACKAGE ";
+ static final String ANCHORED_TYPES_TEST4_PACKAGE = "ANCHORED_TYPES_TEST4";
+ static final String ANCHORED_TYPES_TABLE2 = "ANCHORED_TYPES_TABLE2";
+ static final String CREATE_ANCHORED_TYPES_TABLE2 =
+ CREATE_TABLE_PREFIX + ANCHORED_TYPES_TABLE2 + " (" +
+ "\nID NUMBER NOT NULL," +
+ "\nNAME VARCHAR2(80)," +
+ "\nSINCE DATE," +
+ "\nPRIMARY KEY (ID)" +
+ "\n)";
+ static final String ANCHORED_TYPES_TABLE_FIELD = "NAME";
+ static final String ANCHORED_TYPE1_NAME = "W" + ANCHORED_TYPES_TABLE_FIELD;
+ static final String ANCHORED_TYPE1 =
+ ANCHORED_TYPES_TABLE2 + "." + ANCHORED_TYPES_TABLE_FIELD + "%TYPE";
+ static final String ANCHORED_TYPE2_NAME = "ANCHORED_TYPE2";
+ static final String ANCHORED_TYPE2 = ANCHORED_TYPES_TABLE2 + "%ROWTYPE";
+ static final String ANCHORED_TYPE3_NAME = "ANCHORED_CURSOR";
+ static final String CREATE_ANCHORED_TYPES_TEST1_PACKAGE =
+ CREATE_PACKAGE_PREFIX + ANCHORED_TYPES_TEST4_PACKAGE + " AS" +
+ "\nSUBTYPE " + ANCHORED_TYPE1_NAME + " IS " + ANCHORED_TYPE1 + ";" +
+ "\nSUBTYPE " + ANCHORED_TYPE2_NAME + " IS " + ANCHORED_TYPE2 + ";" +
+ "\nTYPE " + ANCHORED_TYPE3_NAME + " IS REF CURSOR RETURN " + ANCHORED_TYPE2_NAME + ";" +
+ "\nEND " + ANCHORED_TYPES_TEST4_PACKAGE + ";";
+
+ static final String DROP_ANCHORED_TYPES_TABLE2 =
+ "DROP TABLE " + ANCHORED_TYPES_TABLE2;
+ static final String DROP_ANCHORED_TYPES_TEST1_PACKAGE =
+ "DROP PACKAGE " + ANCHORED_TYPES_TEST4_PACKAGE;
+
+ //JUnit fixture(s)
+ static DatabaseTypeBuilder dtBuilder = DatabaseTypeBuilderTestSuite.dtBuilder;
+ static Connection conn = AllTests.conn;
+ static List<String> expectedFieldNames = new ArrayList<String>();
+ static List<String> expectedPKFieldNames = new ArrayList<String>();
+
+ static boolean ddlCreate = false;
+ static boolean ddlDrop = false;
+ static boolean ddlDebug = false;
+
+ @BeforeClass
+ static public void setUp() throws ClassNotFoundException, SQLException {
+ conn = buildConnection();
+ dtBuilder = new DatabaseTypeBuilder();
+ String ddlCreateProp = System.getProperty(DATABASE_DDL_CREATE_KEY, DEFAULT_DATABASE_DDL_CREATE);
+ if ("true".equalsIgnoreCase(ddlCreateProp)) {
+ ddlCreate = true;
+ }
+ String ddlDropProp = System.getProperty(DATABASE_DDL_DROP_KEY, DEFAULT_DATABASE_DDL_DROP);
+ if ("true".equalsIgnoreCase(ddlDropProp)) {
+ ddlDrop = true;
+ }
+ String ddlDebugProp = System.getProperty(DATABASE_DDL_DEBUG_KEY, DEFAULT_DATABASE_DDL_DEBUG);
+ if ("true".equalsIgnoreCase(ddlDebugProp)) {
+ ddlDebug = true;
+ }
+ if (ddlCreate) {
+ runDdl(conn, CREATE_ANCHORED_TYPES_TABLE2, ddlDebug);
+ runDdl(conn, CREATE_ANCHORED_TYPES_TEST1_PACKAGE, ddlDebug);
+ }
+ }
+
+ @AfterClass
+ static public void tearDown() {
+ if (ddlDrop) {
+ runDdl(conn, DROP_ANCHORED_TYPES_TABLE2, ddlDebug);
+ runDdl(conn, DROP_ANCHORED_TYPES_TEST1_PACKAGE, ddlDebug);
+ }
+ }
+
+ @Test
+ public void anchoredTypesTest1() {
+ boolean worked = true;
+ PLSQLPackageType plsqlPackageType = null;
+ try {
+ plsqlPackageType = dtBuilder.buildPackages(conn, "", ANCHORED_TYPES_TEST4_PACKAGE).get(0);
+ }
+ catch (Exception e) {
+ worked = false;
+ }
+ assertTrue(ANCHORED_TYPES_TEST4_PACKAGE + " should parse", worked);
+ PLSQLType plsqlType1 = plsqlPackageType.getTypes().get(0);
+ assertTrue(ANCHORED_TYPE1_NAME+ "'s enclosedType is supposed to be resolved",
+ plsqlType1.isResolved());
+ PLSQLType plsqlType2 = plsqlPackageType.getTypes().get(1);
+ assertTrue(ANCHORED_TYPE2_NAME + "'s enclosedType is supposed to be resolved",
+ plsqlType2.isResolved());
+ PLSQLCursorType cursorType = plsqlPackageType.getCursors().get(0);
+ assertTrue(ANCHORED_TYPE3_NAME + " is supposed to be resolved",
+ cursorType.isResolved());
+ assertSame(ANCHORED_TYPE2_NAME + " is supposed to be identical to " +
+ ANCHORED_TYPE3_NAME + "'s return type", plsqlType2, cursorType.getDataType());
+ }
+
+}
\ No newline at end of file
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java
index 8743d66..46d3a8a 100644
--- a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/DatabaseTypeBuilderTestSuite.java
@@ -30,6 +30,7 @@
@RunWith(Suite.class)
@SuiteClasses({
+ AnchoredTypesResolutionTestSuite.class,
IOTTableDDLTestSuite.class,
ProcedureDDLTestSuite.class,
TableDDLTestSuite.class,
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java
index b64de17..6ed8b46 100644
--- a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/IOTTableDDLTestSuite.java
@@ -40,7 +40,6 @@
//testing imports
import org.eclipse.persistence.tools.oracleddl.test.AllTests;
-
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_CREATE_KEY;
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DEBUG_KEY;
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DROP_KEY;
@@ -50,7 +49,6 @@
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.buildConnection;
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.runDdl;
-
public class IOTTableDDLTestSuite {
static final String IOTTABLE = "DTB_IOTTABLE";
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/ProcedureDDLTestSuite.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/ProcedureDDLTestSuite.java
index 47a2a61..dc4b4ec 100644
--- a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/ProcedureDDLTestSuite.java
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/ProcedureDDLTestSuite.java
@@ -34,7 +34,6 @@
//testing imports
import org.eclipse.persistence.tools.oracleddl.test.AllTests;
-
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_CREATE_KEY;
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DEBUG_KEY;
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DROP_KEY;
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java
index 838694b..1690b1c 100644
--- a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/databasetypebuilder/TableDDLTestSuite.java
@@ -39,7 +39,6 @@
//testing imports
import org.eclipse.persistence.tools.oracleddl.test.AllTests;
-
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_CREATE_KEY;
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DEBUG_KEY;
import static org.eclipse.persistence.tools.oracleddl.test.TestHelper.DATABASE_DDL_DROP_KEY;
diff --git a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/ddlparser/PackageDDLTestSuite.java b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/ddlparser/PackageDDLTestSuite.java
index 48b78f4..ea4c66a 100644
--- a/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/ddlparser/PackageDDLTestSuite.java
+++ b/oracleddlparser/src/test/java/org/eclipse/persistence/tools/oracleddl/test/ddlparser/PackageDDLTestSuite.java
@@ -24,8 +24,6 @@
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
@@ -79,8 +77,8 @@
}
assertTrue("empty package should parse", worked);
assertEquals("empty package wrong name", packageType.getPackageName(), EMPTY_PACKAGE);
- assertNull("empty package should have no procedures", packageType.getProcedures());
- assertNull("empty package should have no types", packageType.getTypes());
+ assertTrue("empty package should have no procedures", packageType.getProcedures().isEmpty());
+ assertTrue("empty package should have no types", packageType.getTypes().isEmpty());
}
/*
@@ -123,8 +121,8 @@
}
assertTrue("simple package should parse", worked);
assertEquals("simple package has wrong name", packageType.getPackageName(), SIMPLE_PACKAGE);
- assertNull("simple package should have no procedures", packageType.getProcedures());
- assertNotNull("simple package should have types", packageType.getTypes());
+ assertTrue("simple package should have no procedures", packageType.getProcedures().isEmpty());
+ assertFalse("simple package should have types", packageType.getTypes().isEmpty());
assertEquals("simple package should have exactly 1 type", 1, packageType.getTypes().size());
PLSQLType type = packageType.getTypes().get(0);
assertEquals("type has wrong name", SIMPLE_TYPE, type.getTypeName());
@@ -194,8 +192,8 @@
}
assertTrue("npackage should parse", worked);
assertEquals("npackage has wrong name", packageType.getPackageName(), NPACKAGE);
- assertNull("npackage should have no procedures", packageType.getProcedures());
- assertNotNull("npackage should have types", packageType.getTypes());
+ assertTrue("npackage should have no procedures", packageType.getProcedures().isEmpty());
+ assertFalse("npackage should have types", packageType.getTypes().isEmpty());
assertEquals("npackage should have exactly 2 types", 2, packageType.getTypes().size());
PLSQLType ntype1 = packageType.getTypes().get(0);
assertEquals("ntype1 has wrong name", NTYPE1, ntype1.getTypeName());
@@ -241,8 +239,8 @@
assertTrue("package with collection should parse", worked);
assertEquals("package with collection has wrong name", packageType.getPackageName(),
PACKAGE_WCOLLECTION);
- assertNull("package with collection should have no procedures", packageType.getProcedures());
- assertNotNull("package with collection should have types", packageType.getTypes());
+ assertTrue("package with collection should have no procedures", packageType.getProcedures().isEmpty());
+ assertFalse("package with collection should have types", packageType.getTypes().isEmpty());
assertEquals("package with collection should have exactly 1 type", 1,
packageType.getTypes().size());
PLSQLType t1 = packageType.getTypes().get(0);
@@ -310,10 +308,10 @@
assertTrue("package with collection containing record should parse", worked);
assertEquals("package with collection containing record has wrong name",
packageType.getPackageName(), PACKAGE_WCOLLECTION_WRECORD);
- assertNull("package with collection containing record should have no procedures",
- packageType.getProcedures());
- assertNotNull("package with collection containing record should have types",
- packageType.getTypes());
+ assertTrue("package with collection containing record should have no procedures",
+ packageType.getProcedures().isEmpty());
+ assertFalse("package with collection containing record should have types",
+ packageType.getTypes().isEmpty());
assertEquals("package with collection containing record should have exactly 2 types", 2,
packageType.getTypes().size());
PLSQLType t1 = packageType.getTypes().get(0);
@@ -432,10 +430,10 @@
assertTrue("package with deeply nested types should parse", worked);
assertEquals("package with deeply nested types has wrong name",
packageType.getPackageName(), PACKAGE_WDEEPLY_NESTED_TYPES);
- assertNull("package with deeply nested types should have no procedures",
- packageType.getProcedures());
- assertNotNull("package with deeply nested types should have types",
- packageType.getTypes());
+ assertTrue("package with deeply nested types should have no procedures",
+ packageType.getProcedures().isEmpty());
+ assertFalse("package with deeply nested types should have types",
+ packageType.getTypes().isEmpty());
assertEquals("package with deeply nested types should have exactly 5 types", 5,
packageType.getTypes().size());
PLSQLType t1 = packageType.getTypes().get(0);