You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2011/07/19 18:53:41 UTC
svn commit: r1148444 [3/4] - in
/incubator/empire-db/branches/EMPIREDB-99/empire-db/src:
main/java/org/apache/empire/ main/java/org/apache/empire/commons/
main/java/org/apache/empire/data/ main/java/org/apache/empire/data/bean/
main/java/org/apache/emp...
Modified: incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/DBView.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/DBView.java?rev=1148444&r1=1148443&r2=1148444&view=diff
==============================================================================
--- incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/DBView.java (original)
+++ incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/DBView.java Tue Jul 19 16:53:34 2011
@@ -21,6 +21,7 @@ package org.apache.empire.db;
import java.sql.Connection;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.empire.EmpireException;
import org.apache.empire.commons.Errors;
import org.apache.empire.commons.Options;
import org.apache.empire.data.DataType;
@@ -117,11 +118,11 @@ public abstract class DBView extends DBR
}
@Override
- public boolean checkValue(Object value)
+ public void checkValue(Object value)
{
if (updateColumn==null)
- return true;
- return updateColumn.checkValue(value);
+ return;
+ updateColumn.checkValue(value);
}
@Override
@@ -283,15 +284,14 @@ public abstract class DBView extends DBR
* @param col a view column object
* @return true if the column was successfully added or false otherwise
*/
- protected boolean addColumn(DBViewColumn col)
+ protected void addColumn(DBViewColumn col)
{ // find column by name
if (col == null || col.getRowSet() != this)
- return error(Errors.InvalidArg, col, "col");
+ throw new EmpireException(Errors.InvalidArg, col, "col");
if (columns.contains(col) == true)
- return error(Errors.ItemExists, col.getName());
+ throw new EmpireException(Errors.ItemExists, col.getName());
// add now
columns.add(col);
- return true;
}
/**
@@ -304,7 +304,8 @@ public abstract class DBView extends DBR
protected final DBViewColumn addColumn(String columnName, DataType dataType)
{ // find column by name
DBViewColumn vc = new DBViewColumn(this, columnName, new DBValueExpr(db, null, dataType));
- return (addColumn(vc) ? vc : null);
+ addColumn(vc);
+ return vc;
}
/**
@@ -317,7 +318,8 @@ public abstract class DBView extends DBR
protected final DBViewColumn addColumn(String columnName, DBColumnExpr columnExpr)
{ // find column by name
DBViewColumn vc = new DBViewColumn(this, columnName, columnExpr);
- return (addColumn(vc) ? vc : null);
+ addColumn(vc);
+ return vc;
}
/**
@@ -329,14 +331,15 @@ public abstract class DBView extends DBR
protected final DBViewColumn addColumn(DBTableColumn sourceColumn)
{ // find column by name
DBViewColumn vc = new DBViewColumn(this, sourceColumn.getName(), sourceColumn);
- return (addColumn(vc) ? vc : null);
+ addColumn(vc);
+ return vc;
}
/**
* This function searchs for equal columns given by the specified DBColumnExpr object.
*
* @param expr the DBColumnExpr object
- * @return the located column (only DBViewColumn onjects)
+ * @return the located column (only DBViewColumn objects)
*/
public DBViewColumn findViewColumn(DBColumnExpr expr)
{
@@ -377,12 +380,12 @@ public abstract class DBView extends DBR
}
@Override
- public boolean updateRecord(DBRecord rec, Connection conn)
+ public void updateRecord(DBRecord rec, Connection conn)
{
if (updateable==false)
- return error(Errors.NotSupported, "updateRecord");
+ throw new EmpireException(Errors.NotSupported, "updateRecord");
// Update the record
- return super.updateRecord(rec, conn);
+ super.updateRecord(rec, conn);
}
/*
@@ -391,9 +394,9 @@ public abstract class DBView extends DBR
* @see org.apache.empire.db.DBRowSet#addRecord(org.apache.empire.db.DBRecord, java.sql.Connection)
*/
@Override
- public boolean createRecord(DBRecord rec, Connection conn)
+ public void createRecord(DBRecord rec, Connection conn)
{
- return error(Errors.NotSupported, "addRecord");
+ throw new EmpireException(Errors.NotSupported, "addRecord");
}
/*
@@ -402,8 +405,8 @@ public abstract class DBView extends DBR
* @see org.apache.empire.db.DBRowSet#deleteRecord(java.lang.Object[], java.sql.Connection, boolean)
*/
@Override
- public boolean deleteRecord(Object[] keys, Connection conn)
+ public void deleteRecord(Object[] keys, Connection conn)
{
- return error(Errors.NotSupported, "deleteRecord");
+ throw new EmpireException(Errors.NotSupported, "deleteRecord");
}
}
\ No newline at end of file
Modified: incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java?rev=1148444&r1=1148443&r2=1148444&view=diff
==============================================================================
--- incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java (original)
+++ incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/derby/DBDatabaseDriverDerby.java Tue Jul 19 16:53:34 2011
@@ -22,6 +22,7 @@ import java.sql.Connection;
import java.util.GregorianCalendar;
import java.util.Iterator;
+import org.apache.empire.EmpireException;
import org.apache.empire.commons.Errors;
import org.apache.empire.commons.StringUtils;
import org.apache.empire.data.DataType;
@@ -283,22 +284,24 @@ public class DBDatabaseDriverDerby exten
/** {@inheritDoc} */
@Override
- public boolean getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
+ public void getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
{
// The Object's database must be attached to this driver
if (dbo == null || dbo.getDatabase().getDriver() != this)
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
// Check Type of object
if (dbo instanceof DBDatabase)
{ // Database
switch (type)
{
case CREATE:
- return createDatabase((DBDatabase) dbo, script, true);
+ createDatabase((DBDatabase) dbo, script, true);
+ return;
case DROP:
- return dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTable)
@@ -306,11 +309,13 @@ public class DBDatabaseDriverDerby exten
switch (type)
{
case CREATE:
- return createTable((DBTable) dbo, script);
+ createTable((DBTable) dbo, script);
+ return;
case DROP:
- return dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBView)
@@ -318,11 +323,13 @@ public class DBDatabaseDriverDerby exten
switch (type)
{
case CREATE:
- return createView((DBView) dbo, script);
+ createView((DBView) dbo, script);
+ return;
case DROP:
- return dropObject(((DBView) dbo).getName(), "VIEW", script);
+ dropObject(((DBView) dbo).getName(), "VIEW", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBRelation)
@@ -330,20 +337,23 @@ public class DBDatabaseDriverDerby exten
switch (type)
{
case CREATE:
- return createRelation((DBRelation) dbo, script);
+ createRelation((DBRelation) dbo, script);
+ return;
case DROP:
- return dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTableColumn)
{ // Table Column
- return alterTable((DBTableColumn) dbo, type, script);
+ alterTable((DBTableColumn) dbo, type, script);
+ return;
}
else
{ // an invalid argument has been supplied
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
}
}
@@ -363,7 +373,7 @@ public class DBDatabaseDriverDerby exten
/*
* return the sql for creating a Database
*/
- protected boolean createDatabase(DBDatabase db, DBSQLScript script, boolean createSchema)
+ protected void createDatabase(DBDatabase db, DBSQLScript script, boolean createSchema)
{
// // User Master to create Database
// if (createSchema)
@@ -382,25 +392,20 @@ public class DBDatabaseDriverDerby exten
Iterator<DBTable> tables = db.getTables().iterator();
while (tables.hasNext())
{
- if (!createTable(tables.next(), script))
- return false;
+ createTable(tables.next(), script);
}
// Create Relations
Iterator<DBRelation> relations = db.getRelations().iterator();
while (relations.hasNext())
{
- if (!createRelation(relations.next(), script))
- return false;
+ createRelation(relations.next(), script);
}
// Create Views
Iterator<DBView> views = db.getViews().iterator();
while (views.hasNext())
{
- if (!createView(views.next(), script))
- return false;
+ createView(views.next(), script);
}
- // Done
- return true;
}
/**
@@ -408,7 +413,7 @@ public class DBDatabaseDriverDerby exten
*
* @return true if the table has been created successfully
*/
- protected boolean createTable(DBTable t, DBSQLScript script)
+ protected void createTable(DBTable t, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("-- creating table ");
@@ -453,8 +458,7 @@ public class DBDatabaseDriverDerby exten
sql.append("'");
}
// Create the table
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
// Create other Indexes (except primary key)
Iterator<DBIndex> indexes = t.getIndexes().iterator();
while (indexes.hasNext())
@@ -482,11 +486,8 @@ public class DBDatabaseDriverDerby exten
}
sql.append(")");
// Create Index
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
}
- // done
- return success();
}
/**
@@ -614,7 +615,7 @@ public class DBDatabaseDriverDerby exten
*
* @return true if the relation has been created successfully
*/
- protected boolean createRelation(DBRelation r, DBSQLScript script)
+ protected void createRelation(DBRelation r, DBSQLScript script)
{
DBTable sourceTable = (DBTable) r.getReferences()[0].getSourceColumn().getRowSet();
DBTable targetTable = (DBTable) r.getReferences()[0].getTargetColumn().getRowSet();
@@ -651,20 +652,17 @@ public class DBDatabaseDriverDerby exten
}
// done
sql.append(")");
- if (script.addStmt(sql) == false)
- return false;
- // done
- return success();
+ script.addStmt(sql);
}
/**
- * Creates an alter table dll statement for adding, modifiying or droping a column.
+ * Creates an alter table dll statement for adding, modifying or dropping a column.
* @param col the column which to add, modify or drop
* @param type the type of operation to perform
* @param script to which to append the sql statement to
* @return true if the statement was successfully appended to the buffer
*/
- protected boolean alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
+ protected void alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ");
@@ -685,7 +683,7 @@ public class DBDatabaseDriverDerby exten
break;
}
// done
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
@@ -693,17 +691,15 @@ public class DBDatabaseDriverDerby exten
*
* @return true if the view has been created successfully
*/
- protected boolean createView(DBView v, DBSQLScript script)
+ protected void createView(DBView v, DBSQLScript script)
{
// Create the Command
DBCommandExpr cmd = v.createCommand();
if (cmd==null)
{ // Check whether Error information is available
log.error("No command has been supplied for view " + v.getName());
- if (v.hasError())
- return error(v);
// No error information available: Use Errors.NotImplemented
- return error(Errors.NotImplemented, v.getName() + ".createCommand");
+ throw new EmpireException(Errors.NotImplemented, v.getName() + ".createCommand");
}
// Make sure there is no OrderBy
cmd.clearOrderBy();
@@ -726,7 +722,7 @@ public class DBDatabaseDriverDerby exten
sql.append(")\r\nAS\r\n");
cmd.addSQL( sql, DBExpr.CTX_DEFAULT);
// done
- return script.addStmt(sql.toString());
+ script.addStmt(sql.toString());
}
/**
@@ -734,17 +730,17 @@ public class DBDatabaseDriverDerby exten
*
* @return true if the object has been dropped successfully
*/
- protected boolean dropObject(String name, String objType, DBSQLScript script)
+ protected void dropObject(String name, String objType, DBSQLScript script)
{
if (name == null || name.length() == 0)
- return error(Errors.InvalidArg, name, "name");
+ throw new EmpireException(Errors.InvalidArg, name, "name");
// Create Drop Statement
StringBuilder sql = new StringBuilder();
sql.append("DROP ");
sql.append(objType);
sql.append(" ");
appendElementName(sql, name);
- return script.addStmt(sql);
+ script.addStmt(sql);
}
}
Modified: incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java?rev=1148444&r1=1148443&r2=1148444&view=diff
==============================================================================
--- incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java (original)
+++ incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/h2/DBDatabaseDriverH2.java Tue Jul 19 16:53:34 2011
@@ -22,6 +22,7 @@ import java.sql.Connection;
import java.util.GregorianCalendar;
import java.util.Iterator;
+import org.apache.empire.EmpireException;
import org.apache.empire.commons.Errors;
import org.apache.empire.commons.StringUtils;
import org.apache.empire.data.DataType;
@@ -288,22 +289,24 @@ public class DBDatabaseDriverH2 extends
* @see DBDatabaseDriver#getDDLScript(DBCmdType, DBObject, DBSQLScript)
*/
@Override
- public boolean getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
+ public void getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
{
// The Object's database must be attached to this driver
if (dbo==null || dbo.getDatabase().getDriver()!=this)
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
// Check Type of object
if (dbo instanceof DBDatabase)
{ // Database
switch (type)
{
case CREATE:
- return createDatabase((DBDatabase) dbo, script, true);
+ createDatabase((DBDatabase) dbo, script, true);
+ return;
case DROP:
- return dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTable)
@@ -311,11 +314,13 @@ public class DBDatabaseDriverH2 extends
switch (type)
{
case CREATE:
- return createTable((DBTable) dbo, script);
+ createTable((DBTable) dbo, script);
+ return;
case DROP:
- return dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBView)
@@ -323,11 +328,13 @@ public class DBDatabaseDriverH2 extends
switch (type)
{
case CREATE:
- return createView((DBView) dbo, script);
+ createView((DBView) dbo, script);
+ return;
case DROP:
- return dropObject(((DBView) dbo).getName(), "VIEW", script);
+ dropObject(((DBView) dbo).getName(), "VIEW", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBRelation)
@@ -335,20 +342,23 @@ public class DBDatabaseDriverH2 extends
switch (type)
{
case CREATE:
- return createRelation((DBRelation) dbo, script);
+ createRelation((DBRelation) dbo, script);
+ return;
case DROP:
- return dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTableColumn)
{ // Table Column
- return alterTable((DBTableColumn) dbo, type, script);
+ alterTable((DBTableColumn) dbo, type, script);
+ return;
}
else
{ // an invalid argument has been supplied
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
}
}
@@ -387,22 +397,19 @@ public class DBDatabaseDriverH2 extends
Iterator<DBTable> tables = db.getTables().iterator();
while (tables.hasNext())
{
- if (!createTable(tables.next(), script))
- return false;
+ createTable(tables.next(), script);
}
// Create Relations
Iterator<DBRelation> relations = db.getRelations().iterator();
while (relations.hasNext())
{
- if (!createRelation(relations.next(), script))
- return false;
+ createRelation(relations.next(), script);
}
// Create Views
Iterator<DBView> views = db.getViews().iterator();
while (views.hasNext())
{
- if (!createView(views.next(), script))
- return false;
+ createView(views.next(), script);
}
// Done
return true;
@@ -413,7 +420,7 @@ public class DBDatabaseDriverH2 extends
*
* @return true if the table has been created successfully
*/
- protected boolean createTable(DBTable t, DBSQLScript script)
+ protected void createTable(DBTable t, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("-- creating table ");
@@ -458,8 +465,7 @@ public class DBDatabaseDriverH2 extends
sql.append("'");
}
// Create the table
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
// Create other Indexes (except primary key)
Iterator<DBIndex> indexes = t.getIndexes().iterator();
while (indexes.hasNext())
@@ -487,11 +493,8 @@ public class DBDatabaseDriverH2 extends
}
sql.append(")");
// Create Index
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
}
- // done
- return success();
}
/**
@@ -581,8 +584,8 @@ public class DBDatabaseDriverH2 extends
sql.append("CHAR(36)");
break;
case UNKNOWN:
- log.error("Cannot append column of Data-Type 'UNKNOWN'");
- return false;
+ log.warn("Cannot append column of Data-Type 'UNKNOWN'");
+ return false;
}
// Default Value
if (isDDLColumnDefaults() && !c.isAutoGenerated() && c.getDefaultValue()!=null)
@@ -601,7 +604,7 @@ public class DBDatabaseDriverH2 extends
*
* @return true if the relation has been created successfully
*/
- protected boolean createRelation(DBRelation r, DBSQLScript script)
+ protected void createRelation(DBRelation r, DBSQLScript script)
{
DBTable sourceTable = (DBTable) r.getReferences()[0].getSourceColumn().getRowSet();
DBTable targetTable = (DBTable) r.getReferences()[0].getTargetColumn().getRowSet();
@@ -638,20 +641,17 @@ public class DBDatabaseDriverH2 extends
}
// done
sql.append(")");
- if (script.addStmt(sql) == false)
- return false;
- // done
- return success();
+ script.addStmt(sql);
}
/**
- * Creates an alter table dll statement for adding, modifiying or droping a column.
+ * Creates an alter table dll statement for adding, modifying or dropping a column.
* @param col the column which to add, modify or drop
* @param type the type of operation to perform
* @param script to which to append the sql statement to
* @return true if the statement was successfully appended to the buffer
*/
- protected boolean alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
+ protected void alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ");
@@ -672,7 +672,7 @@ public class DBDatabaseDriverH2 extends
break;
}
// done
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
@@ -680,17 +680,14 @@ public class DBDatabaseDriverH2 extends
*
* @return true if the view has been created successfully
*/
- protected boolean createView(DBView v, DBSQLScript script)
+ protected void createView(DBView v, DBSQLScript script)
{
// Create the Command
DBCommandExpr cmd = v.createCommand();
if (cmd==null)
{ // Check whether Error information is available
log.error("No command has been supplied for view " + v.getName());
- if (v.hasError())
- return error(v);
- // No error information available: Use Errors.NotImplemented
- return error(Errors.NotImplemented, v.getName() + ".createCommand");
+ throw new EmpireException(Errors.NotImplemented, v.getName() + ".createCommand");
}
// Make sure there is no OrderBy
cmd.clearOrderBy();
@@ -713,7 +710,7 @@ public class DBDatabaseDriverH2 extends
sql.append(")\r\nAS\r\n");
cmd.addSQL( sql, DBExpr.CTX_DEFAULT);
// done
- return script.addStmt(sql.toString());
+ script.addStmt(sql.toString());
}
/**
@@ -721,17 +718,17 @@ public class DBDatabaseDriverH2 extends
*
* @return true if the object has been dropped successfully
*/
- protected boolean dropObject(String name, String objType, DBSQLScript script)
+ protected void dropObject(String name, String objType, DBSQLScript script)
{
if (name == null || name.length() == 0)
- return error(Errors.InvalidArg, name, "name");
+ throw new EmpireException(Errors.InvalidArg, name, "name");
// Create Drop Statement
StringBuilder sql = new StringBuilder();
sql.append("DROP ");
sql.append(objType);
sql.append(" ");
appendElementName(sql, name);
- return script.addStmt(sql);
+ script.addStmt(sql);
}
}
Modified: incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java?rev=1148444&r1=1148443&r2=1148444&view=diff
==============================================================================
--- incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java (original)
+++ incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/hsql/DBDatabaseDriverHSql.java Tue Jul 19 16:53:34 2011
@@ -22,6 +22,7 @@ import java.sql.Connection;
import java.util.GregorianCalendar;
import java.util.Iterator;
+import org.apache.empire.EmpireException;
import org.apache.empire.commons.Errors;
import org.apache.empire.data.DataType;
import org.apache.empire.db.DBCmdType;
@@ -253,22 +254,24 @@ public class DBDatabaseDriverHSql extend
* @see DBDatabaseDriver#getDDLScript(DBCmdType, DBObject, DBSQLScript)
*/
@Override
- public boolean getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
+ public void getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
{
// The Object's database must be attached to this driver
if (dbo==null || dbo.getDatabase().getDriver()!=this)
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
// Check Type of object
if (dbo instanceof DBDatabase)
{ // Database
switch (type)
{
case CREATE:
- return createDatabase((DBDatabase) dbo, script);
+ createDatabase((DBDatabase) dbo, script);
+ return;
case DROP:
- return dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTable)
@@ -276,11 +279,13 @@ public class DBDatabaseDriverHSql extend
switch (type)
{
case CREATE:
- return createTable((DBTable) dbo, script);
+ createTable((DBTable) dbo, script);
+ return;
case DROP:
- return dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBView)
@@ -288,11 +293,13 @@ public class DBDatabaseDriverHSql extend
switch (type)
{
case CREATE:
- return createView((DBView) dbo, script);
+ createView((DBView) dbo, script);
+ return;
case DROP:
- return dropObject(((DBView) dbo).getName(), "VIEW", script);
+ dropObject(((DBView) dbo).getName(), "VIEW", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBRelation)
@@ -300,20 +307,23 @@ public class DBDatabaseDriverHSql extend
switch (type)
{
case CREATE:
- return alterRelation((DBRelation) dbo, type, script);
+ alterRelation((DBRelation) dbo, type, script);
+ return;
case DROP:
- return alterRelation((DBRelation) dbo, type, script);
+ alterRelation((DBRelation) dbo, type, script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTableColumn)
{ // Table Column
- return alterTable((DBTableColumn) dbo, type, script);
+ alterTable((DBTableColumn) dbo, type, script);
+ return;
}
else
{ // an invalid argument has been supplied
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
}
}
@@ -333,7 +343,7 @@ public class DBDatabaseDriverHSql extend
/*
* return the sql for creating a Database
*/
- protected boolean createDatabase(DBDatabase db, DBSQLScript script)
+ protected void createDatabase(DBDatabase db, DBSQLScript script)
{
// Create all Sequences
Iterator<DBTable> seqtabs = db.getTables().iterator();
@@ -354,25 +364,20 @@ public class DBDatabaseDriverHSql extend
Iterator<DBTable> tables = db.getTables().iterator();
while (tables.hasNext())
{
- if (!createTable(tables.next(), script))
- return false;
+ createTable(tables.next(), script);
}
// Create Relations
Iterator<DBRelation> relations = db.getRelations().iterator();
while (relations.hasNext())
{
- if (!alterRelation(relations.next(), DBCmdType.CREATE, script))
- return false;
+ alterRelation(relations.next(), DBCmdType.CREATE, script);
}
// Create Views
Iterator<DBView> views = db.getViews().iterator();
while (views.hasNext())
{
- if (!createView(views.next(), script))
- return false;
+ createView(views.next(), script);
}
- // Done
- return true;
}
/**
@@ -380,7 +385,7 @@ public class DBDatabaseDriverHSql extend
*
* @return true if the sequence has been created successfully
*/
- protected boolean createSequence(DBDatabase db, DBTableColumn c, DBSQLScript script)
+ protected void createSequence(DBDatabase db, DBTableColumn c, DBSQLScript script)
{
Object defValue = c.getDefaultValue();
String seqName = (defValue != null) ? defValue.toString() : c.toString();
@@ -393,7 +398,7 @@ public class DBDatabaseDriverHSql extend
db.appendQualifiedName(sql, seqName, detectQuoteName(seqName));
sql.append(" START WITH 1");
// executeDLL
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
@@ -401,7 +406,7 @@ public class DBDatabaseDriverHSql extend
*
* @return true if the table has been created successfully
*/
- protected boolean createTable(DBTable t, DBSQLScript script)
+ protected void createTable(DBTable t, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("-- creating table ");
@@ -440,8 +445,7 @@ public class DBDatabaseDriverHSql extend
}
sql.append(")");
// Create the table
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
// Create other Indexes (except primary key)
Iterator<DBIndex> indexes = t.getIndexes().iterator();
while (indexes.hasNext())
@@ -469,11 +473,8 @@ public class DBDatabaseDriverHSql extend
}
sql.append(")");
// Create Index
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
}
- // done
- return success();
}
/**
@@ -552,8 +553,8 @@ public class DBDatabaseDriverHSql extend
sql.append("CHAR(36)");
break;
case UNKNOWN:
- log.error("Cannot append column of Data-Type 'UNKNOWN'");
- return false;
+ log.warn("Cannot append column of Data-Type 'UNKNOWN'");
+ return false;
}
// Default Value
if (isDDLColumnDefaults() && !c.isAutoGenerated() && c.getDefaultValue()!=null)
@@ -572,7 +573,7 @@ public class DBDatabaseDriverHSql extend
*
* @return true if the relation has been altered successfully
*/
- protected boolean alterRelation(DBRelation r, DBCmdType type, DBSQLScript script)
+ protected void alterRelation(DBRelation r, DBCmdType type, DBSQLScript script)
{
switch(type)
{
@@ -613,11 +614,8 @@ public class DBDatabaseDriverHSql extend
}
// done
sql.append(")");
- if (script.addStmt(sql.toString()) == false)
- return false;
- // done
- return success();
-
+ script.addStmt(sql.toString());
+ break;
}
case DROP:
{
@@ -631,22 +629,23 @@ public class DBDatabaseDriverHSql extend
sql.append(" DROP CONSTRAINT ");
appendElementName(sql, r.getName());
// done
- return script.addStmt(sql.toString());
+ script.addStmt(sql.toString());
+ break;
}
default:
- return error(Errors.NotImplemented, "Type not supported (" + type + ")");
+ throw new EmpireException(Errors.NotImplemented, "Type not supported (" + type + ")");
}
}
/**
- * Creates an alter table dll statement for adding, modifiying or droping a column.
+ * Creates an alter table dll statement for adding, modifying or dropping a column.
* @param col the column which to add, modify or drop
* @param type the type of operation to perform
* @param script to which to append the sql statement to
* @return true if the statement was successfully appended to the buffer
*/
- protected boolean alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
+ protected void alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ");
@@ -667,7 +666,7 @@ public class DBDatabaseDriverHSql extend
break;
}
// done
- return script.addStmt(sql.toString());
+ script.addStmt(sql.toString());
}
/**
@@ -675,17 +674,14 @@ public class DBDatabaseDriverHSql extend
*
* @return true if the view has been created successfully
*/
- protected boolean createView(DBView v, DBSQLScript script)
+ protected void createView(DBView v, DBSQLScript script)
{
// Create the Command
DBCommandExpr cmd = v.createCommand();
if (cmd==null)
{ // Check whether Error information is available
log.error("No command has been supplied for view " + v.getName());
- if (v.hasError())
- return error(v);
- // No error information available: Use Errors.NotImplemented
- return error(Errors.NotImplemented, v.getName() + ".createCommand");
+ throw new EmpireException(Errors.NotImplemented, v.getName() + ".createCommand");
}
// Make sure there is no OrderBy
cmd.clearOrderBy();
@@ -708,7 +704,7 @@ public class DBDatabaseDriverHSql extend
sql.append(")\r\nAS\r\n");
cmd.addSQL( sql, DBExpr.CTX_DEFAULT);
// done
- return script.addStmt(sql.toString());
+ script.addStmt(sql.toString());
}
/**
@@ -716,10 +712,10 @@ public class DBDatabaseDriverHSql extend
*
* @return true if the object has been dropped successfully
*/
- protected boolean dropObject(String name, String objType, DBSQLScript script)
+ protected void dropObject(String name, String objType, DBSQLScript script)
{
if (name == null || name.length() == 0)
- return error(Errors.InvalidArg, name, "name");
+ throw new EmpireException(Errors.InvalidArg, name, "name");
// Create Drop Statement
StringBuilder sql = new StringBuilder();
sql.append("DROP ");
@@ -727,7 +723,7 @@ public class DBDatabaseDriverHSql extend
sql.append(" ");
appendElementName(sql, name);
// Done
- return script.addStmt(sql);
+ script.addStmt(sql);
}
}
Modified: incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java?rev=1148444&r1=1148443&r2=1148444&view=diff
==============================================================================
--- incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java (original)
+++ incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/mysql/DBDatabaseDriverMySQL.java Tue Jul 19 16:53:34 2011
@@ -23,6 +23,7 @@ import java.sql.SQLException;
import java.util.GregorianCalendar;
import java.util.Iterator;
+import org.apache.empire.EmpireException;
import org.apache.empire.commons.Errors;
import org.apache.empire.commons.StringUtils;
import org.apache.empire.data.DataType;
@@ -33,6 +34,7 @@ import org.apache.empire.db.DBCommandExp
import org.apache.empire.db.DBDatabase;
import org.apache.empire.db.DBDatabaseDriver;
import org.apache.empire.db.DBDriverFeature;
+import org.apache.empire.db.DBErrors;
import org.apache.empire.db.DBExpr;
import org.apache.empire.db.DBIndex;
import org.apache.empire.db.DBObject;
@@ -68,17 +70,15 @@ public class DBDatabaseDriverMySQL exten
}
@Override
- public boolean limitRows(int numRows)
+ public void limitRows(int numRows)
{
limit = numRows;
- return success();
}
@Override
- public boolean skipRows(int numRows)
+ public void skipRows(int numRows)
{
skip = numRows;
- return success();
}
@Override
@@ -89,10 +89,9 @@ public class DBDatabaseDriverMySQL exten
}
@Override
- public boolean getSelect(StringBuilder buf)
+ public void getSelect(StringBuilder buf)
{ // call base class
- if (super.getSelect(buf)==false)
- return false;
+ super.getSelect(buf);
// add limit and offset
if (limit>=0)
{ buf.append("\r\nLIMIT ");
@@ -103,8 +102,6 @@ public class DBDatabaseDriverMySQL exten
buf.append(String.valueOf(skip));
}
}
- // done
- return success();
}
}
@@ -208,7 +205,7 @@ public class DBDatabaseDriverMySQL exten
* @see org.apache.empire.db.DBDatabaseDriver#openDatabase(org.apache.empire.db.DBDatabase, java.sql.Connection)
*/
@Override
- public boolean attachDatabase(DBDatabase db, Connection conn)
+ public void attachDatabase(DBDatabase db, Connection conn)
{
// Prepare
try
@@ -219,11 +216,12 @@ public class DBDatabaseDriverMySQL exten
if (useSequenceTable && db.getTable(sequenceTableName)==null)
new DBSeqTable(sequenceTableName, db);
// call Base implementation
- return super.attachDatabase(db, conn);
+ super.attachDatabase(db, conn);
- } catch (SQLException e)
- {
- return error(e);
+ } catch (SQLException e) {
+ // throw exception
+ String msg = extractErrorMessage(e);
+ throw new EmpireException(DBErrors.SQLException, new Object[] { msg }, e);
}
}
@@ -243,7 +241,7 @@ public class DBDatabaseDriverMySQL exten
/**
* Returns whether or not a particular feature is supported by this driver
- * @param type type of requrested feature. @see DBDriverFeature
+ * @param type type of requested feature. @see DBDriverFeature
* @return true if the features is supported or false otherwise
*/
@Override
@@ -378,22 +376,24 @@ public class DBDatabaseDriverMySQL exten
* @see DBDatabaseDriver#getDDLScript(DBCmdType, DBObject, DBSQLScript)
*/
@Override
- public boolean getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
+ public void getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
{
// The Object's database must be attached to this driver
if (dbo==null || dbo.getDatabase().getDriver()!=this)
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
// Check Type of object
if (dbo instanceof DBDatabase)
{ // Database
switch (type)
{
case CREATE:
- return createDatabase((DBDatabase) dbo, script, true);
+ createDatabase((DBDatabase) dbo, script, true);
+ return;
case DROP:
- return dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ dropObject(((DBDatabase) dbo).getSchema(), "DATABASE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTable)
@@ -401,11 +401,13 @@ public class DBDatabaseDriverMySQL exten
switch (type)
{
case CREATE:
- return createTable((DBTable) dbo, script);
+ createTable((DBTable) dbo, script);
+ return;
case DROP:
- return dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBView)
@@ -413,11 +415,13 @@ public class DBDatabaseDriverMySQL exten
switch (type)
{
case CREATE:
- return createView((DBView) dbo, script);
+ createView((DBView) dbo, script);
+ return;
case DROP:
- return dropObject(((DBView) dbo).getName(), "VIEW", script);
+ dropObject(((DBView) dbo).getName(), "VIEW", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBRelation)
@@ -425,20 +429,23 @@ public class DBDatabaseDriverMySQL exten
switch (type)
{
case CREATE:
- return createRelation((DBRelation) dbo, script);
+ createRelation((DBRelation) dbo, script);
+ return;
case DROP:
- return dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTableColumn)
{ // Table Column
- return alterTable((DBTableColumn) dbo, type, script);
+ alterTable((DBTableColumn) dbo, type, script);
+ return;
}
else
{ // an invalid argument has been supplied
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
}
}
@@ -458,13 +465,13 @@ public class DBDatabaseDriverMySQL exten
/*
* return the sql for creating a Database
*/
- protected boolean createDatabase(DBDatabase db, DBSQLScript script, boolean createSchema)
+ protected void createDatabase(DBDatabase db, DBSQLScript script, boolean createSchema)
{
// User Master to create Database
if (createSchema)
{ // check database Name
if (StringUtils.isEmpty(databaseName))
- return error(Errors.InvalidProperty, "databaseName");
+ throw new EmpireException(Errors.InvalidProperty, "databaseName");
// Create Database
script.addStmt("CREATE DATABASE IF NOT EXISTS " + databaseName + " CHARACTER SET " + characterSet);
script.addStmt("USE " + databaseName);
@@ -477,25 +484,20 @@ public class DBDatabaseDriverMySQL exten
Iterator<DBTable> tables = db.getTables().iterator();
while (tables.hasNext())
{
- if (!createTable(tables.next(), script))
- return false;
+ createTable(tables.next(), script);
}
// Create Relations
Iterator<DBRelation> relations = db.getRelations().iterator();
while (relations.hasNext())
{
- if (!createRelation(relations.next(), script))
- return false;
+ createRelation(relations.next(), script);
}
// Create Views
Iterator<DBView> views = db.getViews().iterator();
while (views.hasNext())
{
- if (!createView(views.next(), script))
- return false;
+ createView(views.next(), script);
}
- // Done
- return true;
}
/**
@@ -503,7 +505,7 @@ public class DBDatabaseDriverMySQL exten
*
* @return true if the table has been created successfully
*/
- protected boolean createTable(DBTable t, DBSQLScript script)
+ protected void createTable(DBTable t, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("-- creating table ");
@@ -554,8 +556,7 @@ public class DBDatabaseDriverMySQL exten
sql.append("'");
}
// Create the table
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
// Create other Indexes (except primary key)
Iterator<DBIndex> indexes = t.getIndexes().iterator();
while (indexes.hasNext())
@@ -583,11 +584,8 @@ public class DBDatabaseDriverMySQL exten
}
sql.append(")");
// Create Index
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
}
- // done
- return success();
}
/**
@@ -685,8 +683,8 @@ public class DBDatabaseDriverMySQL exten
sql.append("CHAR(36)");
break;
case UNKNOWN:
- log.error("Cannot append column of Data-Type 'UNKNOWN'");
- return false;
+ log.warn("Cannot append column of Data-Type 'UNKNOWN'");
+ return false;
}
// Default Value
if (isDDLColumnDefaults() && !c.isAutoGenerated() && c.getDefaultValue()!=null)
@@ -705,7 +703,7 @@ public class DBDatabaseDriverMySQL exten
*
* @return true if the relation has been created successfully
*/
- protected boolean createRelation(DBRelation r, DBSQLScript script)
+ protected void createRelation(DBRelation r, DBSQLScript script)
{
DBTable sourceTable = (DBTable) r.getReferences()[0].getSourceColumn().getRowSet();
DBTable targetTable = (DBTable) r.getReferences()[0].getTargetColumn().getRowSet();
@@ -742,10 +740,7 @@ public class DBDatabaseDriverMySQL exten
}
// done
sql.append(")");
- if (script.addStmt(sql) == false)
- return false;
- // done
- return success();
+ script.addStmt(sql);
}
/**
@@ -755,7 +750,7 @@ public class DBDatabaseDriverMySQL exten
* @param script to which to append the sql statement to
* @return true if the statement was successfully appended to the buffer
*/
- protected boolean alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
+ protected void alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ");
@@ -776,7 +771,7 @@ public class DBDatabaseDriverMySQL exten
break;
}
// done
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
@@ -784,17 +779,14 @@ public class DBDatabaseDriverMySQL exten
*
* @return true if the view has been created successfully
*/
- protected boolean createView(DBView v, DBSQLScript script)
+ protected void createView(DBView v, DBSQLScript script)
{
// Create the Command
DBCommandExpr cmd = v.createCommand();
if (cmd==null)
{ // Check whether Error information is available
log.error("No command has been supplied for view " + v.getName());
- if (v.hasError())
- return error(v);
- // No error information available: Use Errors.NotImplemented
- return error(Errors.NotImplemented, v.getName() + ".createCommand");
+ throw new EmpireException(Errors.NotImplemented, v.getName() + ".createCommand");
}
// Make sure there is no OrderBy
cmd.clearOrderBy();
@@ -817,7 +809,7 @@ public class DBDatabaseDriverMySQL exten
sql.append(")\r\nAS\r\n");
cmd.addSQL( sql, DBExpr.CTX_DEFAULT);
// done
- return script.addStmt(sql.toString());
+ script.addStmt(sql.toString());
}
/**
@@ -825,17 +817,17 @@ public class DBDatabaseDriverMySQL exten
*
* @return true if the object has been dropped successfully
*/
- protected boolean dropObject(String name, String objType, DBSQLScript script)
+ protected void dropObject(String name, String objType, DBSQLScript script)
{
if (name == null || name.length() == 0)
- return error(Errors.InvalidArg, name, "name");
+ throw new EmpireException(Errors.InvalidArg, name, "name");
// Create Drop Statement
StringBuilder sql = new StringBuilder();
sql.append("DROP ");
sql.append(objType);
sql.append(" ");
appendElementName(sql, name);
- return script.addStmt(sql);
+ script.addStmt(sql);
}
}
Modified: incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBCommandOracle.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBCommandOracle.java?rev=1148444&r1=1148443&r2=1148444&view=diff
==============================================================================
--- incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBCommandOracle.java (original)
+++ incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBCommandOracle.java Tue Jul 19 16:53:34 2011
@@ -19,6 +19,7 @@
package org.apache.empire.db.oracle;
// Imports
+import org.apache.empire.EmpireException;
import org.apache.empire.commons.Errors;
import org.apache.empire.db.DBCommand;
import org.apache.empire.db.DBDatabase;
@@ -94,13 +95,12 @@ public class DBCommandOracle extends DBC
}
@Override
- public boolean limitRows(int numRows)
+ public void limitRows(int numRows)
{
if (rowNumExpr==null)
rowNumExpr = new OracleRowNumExpr(getDatabase());
// Add the constraint
where(rowNumExpr.isLessOrEqual(numRows));
- return success();
}
@Override
@@ -116,15 +116,15 @@ public class DBCommandOracle extends DBC
* Creates the SQL statement the special characteristics of
* the Oracle database are supported.
*
- * @param buf the SQL statment
+ * @param buf the SQL statement
* @return true if the creation was successful
*/
@Override
- public synchronized boolean getSelect(StringBuilder buf)
+ public synchronized void getSelect(StringBuilder buf)
{
resetParamUsage();
if (select == null)
- return error(Errors.ObjectNotValid, getClass().getName()); // invalid!
+ throw new EmpireException(Errors.ObjectNotValid, getClass().getName()); // invalid!
// Prepares statement
buf.append("SELECT ");
if (optimizerHint != null)
@@ -164,8 +164,6 @@ public class DBCommandOracle extends DBC
// Add List of Order By Expressions
addListExpr(buf, orderBy, CTX_DEFAULT, ", ");
}
- // Done
- return success();
}
/**
Modified: incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java
URL: http://svn.apache.org/viewvc/incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java?rev=1148444&r1=1148443&r2=1148444&view=diff
==============================================================================
--- incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java (original)
+++ incubator/empire-db/branches/EMPIREDB-99/empire-db/src/main/java/org/apache/empire/db/oracle/DBDatabaseDriverOracle.java Tue Jul 19 16:53:34 2011
@@ -24,6 +24,7 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
+import org.apache.empire.EmpireException;
import org.apache.empire.commons.Errors;
import org.apache.empire.data.DataType;
import org.apache.empire.db.DBCmdType;
@@ -33,6 +34,7 @@ import org.apache.empire.db.DBCommandExp
import org.apache.empire.db.DBDatabase;
import org.apache.empire.db.DBDatabaseDriver;
import org.apache.empire.db.DBDriverFeature;
+import org.apache.empire.db.DBErrors;
import org.apache.empire.db.DBExpr;
import org.apache.empire.db.DBIndex;
import org.apache.empire.db.DBObject;
@@ -97,7 +99,7 @@ public class DBDatabaseDriverOracle exte
/**
* Returns whether or not a particular feature is supported by this driver
- * @param type type of requrested feature. @see DBDriverFeature
+ * @param type type of requested feature. @see DBDriverFeature
* @return true if the features is supported or false otherwise
*/
@Override
@@ -315,22 +317,24 @@ public class DBDatabaseDriverOracle exte
* @see DBDatabaseDriver#getDDLScript(DBCmdType, DBObject, DBSQLScript)
*/
@Override
- public boolean getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
+ public void getDDLScript(DBCmdType type, DBObject dbo, DBSQLScript script)
{
// The Object's database must be attached to this driver
if (dbo==null || dbo.getDatabase().getDriver()!=this)
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
// Check Type of object
if (dbo instanceof DBDatabase)
{ // Database
switch (type)
{
case CREATE:
- return createDatabase((DBDatabase) dbo, script);
+ createDatabase((DBDatabase) dbo, script);
+ return;
case DROP:
- return dropObject(((DBDatabase) dbo).getSchema(), "USER", script);
+ dropObject(((DBDatabase) dbo).getSchema(), "USER", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTable)
@@ -338,11 +342,13 @@ public class DBDatabaseDriverOracle exte
switch (type)
{
case CREATE:
- return createTable((DBTable) dbo, script);
+ createTable((DBTable) dbo, script);
+ return;
case DROP:
- return dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ dropObject(((DBTable) dbo).getName(), "TABLE", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBView)
@@ -350,11 +356,13 @@ public class DBDatabaseDriverOracle exte
switch (type)
{
case CREATE:
- return createView((DBView) dbo, script);
+ createView((DBView) dbo, script);
+ return;
case DROP:
- return dropObject(((DBView) dbo).getName(), "VIEW", script);
+ dropObject(((DBView) dbo).getName(), "VIEW", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBRelation)
@@ -362,20 +370,23 @@ public class DBDatabaseDriverOracle exte
switch (type)
{
case CREATE:
- return createRelation((DBRelation) dbo, script);
+ createRelation((DBRelation) dbo, script);
+ return;
case DROP:
- return dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ dropObject(((DBRelation) dbo).getName(), "CONSTRAINT", script);
+ return;
default:
- return error(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
+ throw new EmpireException(Errors.NotImplemented, "getDDLScript." + dbo.getClass().getName() + "." + type);
}
}
else if (dbo instanceof DBTableColumn)
{ // Table Column
- return alterTable((DBTableColumn) dbo, type, script);
+ alterTable((DBTableColumn) dbo, type, script);
+ return;
}
else
{ // an invalid argument has been supplied
- return error(Errors.InvalidArg, dbo, "dbo");
+ throw new EmpireException(Errors.InvalidArg, dbo, "dbo");
}
}
@@ -393,11 +404,10 @@ public class DBDatabaseDriverOracle exte
{ // Oracle Timestamp query
rs = executeQuery("select sysdate from dual", null, false, conn);
return (rs.next() ? rs.getTimestamp(1) : null);
- } catch (Exception e)
- {
- log.error("getUpdateTimestamp exception: " + e);
- error(e);
- return null;
+ } catch (SQLException e) {
+ // throw exception
+ String msg = extractErrorMessage(e);
+ throw new EmpireException(DBErrors.SQLException, new Object[] { msg }, e);
} finally
{ // Cleanup
try
@@ -407,9 +417,10 @@ public class DBDatabaseDriverOracle exte
rs.close();
if (stmt != null)
stmt.close();
- } catch (SQLException sqle)
- {
- log.error("getUpdateTimestamp close exception: " + sqle);
+ } catch (SQLException e) {
+ // throw exception
+ String msg = extractErrorMessage(e);
+ throw new EmpireException(DBErrors.SQLException, new Object[] { msg }, e);
}
}
}
@@ -419,7 +430,7 @@ public class DBDatabaseDriverOracle exte
*
* @return true if the database has been created successfully
*/
- protected boolean createDatabase(DBDatabase db, DBSQLScript script)
+ protected void createDatabase(DBDatabase db, DBSQLScript script)
{
// Create all Sequences
Iterator<DBTable> seqtabs = db.getTables().iterator();
@@ -440,26 +451,30 @@ public class DBDatabaseDriverOracle exte
Iterator<DBTable> tables = db.getTables().iterator();
while (tables.hasNext())
{
- if (!createTable(tables.next(), script))
- return false;
+ createTable(tables.next(), script);
}
// Create Relations
Iterator<DBRelation> relations = db.getRelations().iterator();
while (relations.hasNext())
{
- if (!createRelation(relations.next(), script))
- return false;
+ createRelation(relations.next(), script);
}
// Create Views
Iterator<DBView> views = db.getViews().iterator();
while (views.hasNext())
{
- if (!createView(views.next(), script))
- if (getErrorType()!=Errors.NotImplemented)
- return false;
+ try {
+ createView(views.next(), script);
+ } catch(EmpireException e) {
+ // Error
+ if (e.getErrorType()!=Errors.NotImplemented)
+ { // View command not implemented
+ log.warn("Error creating the view {0}. This view will be ignored.");
+ continue;
+ }
+ else throw e;
+ }
}
- // Done
- return true;
}
/**
@@ -467,7 +482,7 @@ public class DBDatabaseDriverOracle exte
*
* @return true if the sequence has been created successfully
*/
- protected boolean createSequence(DBDatabase db, DBTableColumn c, DBSQLScript script)
+ protected void createSequence(DBDatabase db, DBTableColumn c, DBSQLScript script)
{
Object defValue = c.getDefaultValue();
String seqName = (defValue != null) ? defValue.toString() : c.toString();
@@ -480,14 +495,14 @@ public class DBDatabaseDriverOracle exte
db.appendQualifiedName(sql, seqName, detectQuoteName(seqName));
sql.append(" INCREMENT BY 1 START WITH 1 MINVALUE 0 NOCYCLE NOCACHE NOORDER");
// executeDLL
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
* Returns true if the table has been created successfully.
* @return true if the table has been created successfully
*/
- protected boolean createTable(DBTable t, DBSQLScript script)
+ protected void createTable(DBTable t, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("-- creating table ");
@@ -527,8 +542,7 @@ public class DBDatabaseDriverOracle exte
sql.append(")");
// Create the table
DBDatabase db = t.getDatabase();
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
// Create other Indexes (except primary key)
Iterator<DBIndex> indexes = t.getIndexes().iterator();
while (indexes.hasNext())
@@ -557,8 +571,7 @@ public class DBDatabaseDriverOracle exte
}
sql.append(")");
// Create Index
- if (script.addStmt(sql) == false)
- return false;
+ script.addStmt(sql);
}
// add Comments
createComment(db, "TABLE", t, t.getComment(), script);
@@ -570,8 +583,6 @@ public class DBDatabaseDriverOracle exte
if (com != null)
createComment(db, "COLUMN", c, com, script);
}
- // done
- return success();
}
/**
@@ -652,7 +663,7 @@ public class DBDatabaseDriverOracle exte
sql.append("CHAR(36)");
break;
case UNKNOWN:
- log.error("Cannot append column of Data-Type 'UNKNOWN'");
+ log.warn("Cannot append column of Data-Type 'UNKNOWN'");
return false;
}
// Default Value
@@ -671,7 +682,7 @@ public class DBDatabaseDriverOracle exte
* Create a sql string for creating a relation and appends it to the supplied buffer
* @return true if the relation has been created successfully
*/
- protected boolean createRelation(DBRelation r, DBSQLScript script)
+ protected void createRelation(DBRelation r, DBSQLScript script)
{
DBTable sourceTable = (DBTable) r.getReferences()[0].getSourceColumn().getRowSet();
DBTable targetTable = (DBTable) r.getReferences()[0].getTargetColumn().getRowSet();
@@ -709,7 +720,7 @@ public class DBDatabaseDriverOracle exte
// done
sql.append(")");
// done
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
@@ -719,7 +730,7 @@ public class DBDatabaseDriverOracle exte
* @param script to which to append the sql statement to
* @return true if the statement was successfully appended to the buffer
*/
- protected boolean alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
+ protected void alterTable(DBTableColumn col, DBCmdType type, DBSQLScript script)
{
StringBuilder sql = new StringBuilder();
sql.append("ALTER TABLE ");
@@ -740,7 +751,7 @@ public class DBDatabaseDriverOracle exte
break;
}
// done
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
@@ -748,17 +759,14 @@ public class DBDatabaseDriverOracle exte
*
* @return true if the view has been created successfully
*/
- protected boolean createView(DBView v, DBSQLScript script)
+ protected void createView(DBView v, DBSQLScript script)
{
// Create the Command
DBCommandExpr cmd = v.createCommand();
if (cmd==null)
{ // Check whether Error information is available
log.error("No command has been supplied for view " + v.getName());
- if (v.hasError())
- return error(v);
- // No error information available: Use Errors.NotImplemented
- return error(Errors.NotImplemented, v.getName() + ".createCommand");
+ throw new EmpireException(Errors.NotImplemented, v.getName() + ".createCommand");
}
// Make sure there is no OrderBy
cmd.clearOrderBy();
@@ -781,7 +789,7 @@ public class DBDatabaseDriverOracle exte
sql.append(")\r\nAS\r\n");
cmd.addSQL( sql, DBExpr.CTX_DEFAULT);
// done
- return script.addStmt(sql.toString());
+ script.addStmt(sql.toString());
}
/**
@@ -789,10 +797,10 @@ public class DBDatabaseDriverOracle exte
*
* @return true if the comment has been created successfully
*/
- protected boolean createComment(DBDatabase db, String type, DBExpr expr, String comment, DBSQLScript script)
+ protected void createComment(DBDatabase db, String type, DBExpr expr, String comment, DBSQLScript script)
{
if (comment==null || comment.length()==0)
- return true;
+ return; // Nothing to do
StringBuilder sql = new StringBuilder();
sql.append("COMMENT ON ");
sql.append(type);
@@ -808,7 +816,7 @@ public class DBDatabaseDriverOracle exte
sql.append(comment);
sql.append("'");
// Create Index
- return script.addStmt(sql);
+ script.addStmt(sql);
}
/**
@@ -816,17 +824,17 @@ public class DBDatabaseDriverOracle exte
*
* @return true if the object has been dropped successfully
*/
- protected boolean dropObject(String name, String objType, DBSQLScript script)
+ protected void dropObject(String name, String objType, DBSQLScript script)
{
if (name == null || name.length() == 0)
- return error(Errors.InvalidArg, name, "name");
+ throw new EmpireException(Errors.InvalidArg, name, "name");
// Create Drop Statement
StringBuilder sql = new StringBuilder();
sql.append("DROP ");
sql.append(objType);
sql.append(" ");
appendElementName(sql, name);
- return script.addStmt(sql);
+ script.addStmt(sql);
}
@@ -836,12 +844,12 @@ public class DBDatabaseDriverOracle exte
* @return true if the database definition matches the real database structure.
*/
@Override
- public boolean checkDatabase(DBDatabase db, String owner, Connection conn)
+ public void checkDatabase(DBDatabase db, String owner, Connection conn)
{
// Check Params
if (owner==null || owner.length()==0)
- return error(Errors.InvalidArg, owner, "owner");
- // Datebase definition
+ throw new EmpireException(Errors.InvalidArg, owner, "owner");
+ // Database definition
OracleSYSDatabase sysDB = new OracleSYSDatabase(this);
// Check Columns
DBCommand sysDBCommand = sysDB.createCommand();
@@ -852,78 +860,74 @@ public class DBDatabaseDriverOracle exte
DBReader rd = new DBReader();
try
{
- if (rd.open(sysDBCommand, conn))
+ rd.open(sysDBCommand, conn);
+ // read all
+ log.info("---------------------------------------------------------------------------------");
+ log.info("checkDatabase start: " + db.getClass().getName());
+ String skipTable = "";
+ while (rd.moveNext())
{
- log.info("---------------------------------------------------------------------------------");
- log.info("checkDatabase start: " + db.getClass().getName());
- String skipTable = "";
- while (rd.moveNext())
- {
- String tableName = rd.getString(sysDB.CI.C_TABLE_NAME);
-
- // if a table wasn't found before, skip it
- if (tableName.equals(skipTable))
- continue;
+ String tableName = rd.getString(sysDB.CI.C_TABLE_NAME);
- // check if the found table exists in the DBDatabase object
- String columnName = rd.getString(sysDB.CI.C_COLUMN_NAME);
- DBTable dbTable = db.getTable(tableName);
- DBView dbView = db.getView(tableName);
-
- String dataType = rd.getString(sysDB.CI.C_DATA_TYPE);
- int charLength = rd.getInt(sysDB.CI.C_CHAR_LENGTH);
- int dataLength = rd.getInt(sysDB.CI.C_DATA_LENGTH);
- int dataPrecision = rd.getInt(sysDB.CI.C_DATA_PRECISION);
- int dataScale = rd.getInt(sysDB.CI.C_DATA_SCALE);
- String nullable = rd.getString(sysDB.CI.C_NULLABLE);
-
- dataDictionnary.fillDataDictionnary(tableName, columnName, dataType,
- charLength, dataLength, dataPrecision, dataScale, nullable);
+ // if a table wasn't found before, skip it
+ if (tableName.equals(skipTable))
+ continue;
+
+ // check if the found table exists in the DBDatabase object
+ String columnName = rd.getString(sysDB.CI.C_COLUMN_NAME);
+ DBTable dbTable = db.getTable(tableName);
+ DBView dbView = db.getView(tableName);
+
+ String dataType = rd.getString(sysDB.CI.C_DATA_TYPE);
+ int charLength = rd.getInt(sysDB.CI.C_CHAR_LENGTH);
+ int dataLength = rd.getInt(sysDB.CI.C_DATA_LENGTH);
+ int dataPrecision = rd.getInt(sysDB.CI.C_DATA_PRECISION);
+ int dataScale = rd.getInt(sysDB.CI.C_DATA_SCALE);
+ String nullable = rd.getString(sysDB.CI.C_NULLABLE);
+
+ dataDictionnary.fillDataDictionnary(tableName, columnName, dataType,
+ charLength, dataLength, dataPrecision, dataScale, nullable);
+
+ if (dbTable != null)
+ {
- if (dbTable != null)
- {
-
- // check if the found column exists in the found DBTable
- DBColumn col = dbTable.getColumn(columnName);
- if (col == null)
- {
- log.warn("COLUMN NOT FOUND IN " + db.getClass().getName() + "\t: [" + tableName + "]["
- + columnName + "][" + dataType + "][" + dataLength + "]");
- continue;
- }
- /*
- else
- { // check the DBTableColumn definition
- int length = (charLength>0) ? charLength : dataLength;
- dataDictionnary.checkColumnDefinition(col, dataType, length, dataPrecision, dataScale, nullable.equals("N"));
- }
- */
- }
- else if (dbView!=null)
+ // check if the found column exists in the found DBTable
+ DBColumn col = dbTable.getColumn(columnName);
+ if (col == null)
{
- log.debug("Column check for view " + tableName + " not yet implemented.");
- }
- else
- {
- log.debug("TABLE OR VIEW NOT FOUND IN " + db.getClass().getName() + "\t: [" + tableName + "]");
- // skip this table
- skipTable = tableName;
+ log.warn("COLUMN NOT FOUND IN " + db.getClass().getName() + "\t: [" + tableName + "]["
+ + columnName + "][" + dataType + "][" + dataLength + "]");
continue;
}
+ /*
+ else
+ { // check the DBTableColumn definition
+ int length = (charLength>0) ? charLength : dataLength;
+ dataDictionnary.checkColumnDefinition(col, dataType, length, dataPrecision, dataScale, nullable.equals("N"));
+ }
+ */
+ }
+ else if (dbView!=null)
+ {
+ log.debug("Column check for view " + tableName + " not yet implemented.");
+ }
+ else
+ {
+ log.debug("TABLE OR VIEW NOT FOUND IN " + db.getClass().getName() + "\t: [" + tableName + "]");
+ // skip this table
+ skipTable = tableName;
+ continue;
}
- // check Tables
- dataDictionnary.checkDBTableDefinition(db.getTables());
- // check Views
- dataDictionnary.checkDBViewDefinition (db.getViews());
- }
- else {
- return error(Errors.NotAuthorized);
}
+ // check Tables
+ dataDictionnary.checkDBTableDefinition(db.getTables());
+ // check Views
+ dataDictionnary.checkDBViewDefinition (db.getViews());
+ // done
log.info("checkDatabase end: " + db.getClass().getName());
log.info("---------------------------------------------------------------------------------");
- return success();
- } finally
- {
+ } finally {
+ // close
rd.close();
}
}