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 2012/02/15 10:16:54 UTC

svn commit: r1244408 - in /empire-db/trunk: empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/ empire-db/src/main/java/org/apache/empire/db/ empire-db/src/test/java/org/apache/empire/db/

Author: doebele
Date: Wed Feb 15 09:16:53 2012
New Revision: 1244408

URL: http://svn.apache.org/viewvc?rev=1244408&view=rev
Log:
EMPIREDB-133

Added:
    empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java   (with props)
Modified:
    empire-db/trunk/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
    empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
    empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
    empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
    empire-db/trunk/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java

Modified: empire-db/trunk/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java?rev=1244408&r1=1244407&r2=1244408&view=diff
==============================================================================
--- empire-db/trunk/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java (original)
+++ empire-db/trunk/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java Wed Feb 15 09:16:53 2012
@@ -28,6 +28,7 @@ import org.apache.empire.commons.Options
 import org.apache.empire.commons.StringUtils;
 import org.apache.empire.data.DataMode;
 import org.apache.empire.data.DataType;
+import org.apache.empire.db.DBCmdParam;
 import org.apache.empire.db.DBCmdType;
 import org.apache.empire.db.DBColumnExpr;
 import org.apache.empire.db.DBCommand;
@@ -37,7 +38,6 @@ import org.apache.empire.db.DBReader;
 import org.apache.empire.db.DBRecord;
 import org.apache.empire.db.DBSQLScript;
 import org.apache.empire.db.DBTableColumn;
-import org.apache.empire.db.DBCommand.DBCommandParam;
 import org.apache.empire.db.h2.DBDatabaseDriverH2;
 import org.apache.empire.db.postgresql.DBDatabaseDriverPostgreSQL;
 import org.slf4j.Logger;
@@ -375,8 +375,8 @@ public class SampleAdvApp 
         // create a command
         DBCommand cmd = db.createCommand();
         // Create cmd parameters
-        DBCommandParam curDepParam = cmd.addParam(); // Current Department
-        DBCommandParam genderParam = cmd.addParam(); // Gender ('M' or 'F')
+        DBCmdParam curDepParam = cmd.addParam(); // Current Department
+        DBCmdParam genderParam = cmd.addParam(); // Gender ('M' or 'F')
         // Define the query
         cmd.select(T_EMP.C_FULLNAME);
         cmd.join  (T_EMP.C_EMPLOYEE_ID, db.V_EMPLOYEE_INFO.C_EMPLOYEE_ID);

Added: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java?rev=1244408&view=auto
==============================================================================
--- empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java (added)
+++ empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java Wed Feb 15 09:16:53 2012
@@ -0,0 +1,86 @@
+/*
+ * ESTEAM Software GmbH, 15.02.2012
+ */
+package org.apache.empire.db;
+
+import java.util.Set;
+
+import org.apache.empire.data.DataType;
+
+public class DBCmdParam extends DBExpr
+{
+    private final static long serialVersionUID = 1L;
+    protected DBCommand cmd;
+    protected DataType  type;
+    protected Object    value;
+    
+    protected DBCmdParam(DBCommand cmd, DataType type, Object value)
+    {
+        this.cmd = cmd;
+        this.type = type;
+        this.value = getCmdParamValue(value);
+    }
+    
+    protected Object getCmdParamValue(Object value)
+    {        
+        switch (type)
+        {
+            case BLOB:
+                if (value == null)
+                    return null;
+                if (value instanceof DBBlobData)
+                    return value;
+                if (value instanceof byte[])
+                    return new DBBlobData((byte[])value);
+                // create a blob data
+                return new DBBlobData(value.toString());
+            case CLOB:
+                if (value == null)
+                    return null;
+                if (value instanceof DBClobData)
+                    return value;
+                // create a clob data
+                return new DBClobData(value.toString());
+            default:
+                return value;
+        }
+    }
+    
+    @Override
+    public void addSQL(StringBuilder buf, long context)
+    {
+        buf.append("?"); //$NON-NLS-1$
+        // Move to current usage position
+        cmd.notifyParamUsage(this);
+    }
+    
+    /**
+     * @see org.apache.empire.db.DBExpr#addReferencedColumns(Set)
+     */
+    @Override
+    public void addReferencedColumns(Set<DBColumn> list)
+    {
+        // Nothing to add
+    }
+    
+    @Override
+    public DBDatabase getDatabase()
+    {
+        return cmd.getDatabase();
+    }
+    
+    public DataType getDataType()
+    {
+        return type;
+    }
+    
+    public Object getValue()
+    {
+        return value;
+    }
+    
+    public void setValue(Object value)
+    {
+        this.value = getCmdParamValue(value);
+    }
+}

Propchange: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java?rev=1244408&r1=1244407&r2=1244408&view=diff
==============================================================================
--- empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java (original)
+++ empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBCommand.java Wed Feb 15 09:16:53 2012
@@ -48,84 +48,6 @@ public abstract class DBCommand extends 
 {
     private final static long serialVersionUID = 1L;
 
-    public static final class DBCommandParam extends DBExpr
-    {
-        private final static long serialVersionUID = 1L;
-        protected DBCommand cmd;
-        protected DataType  type;
-        protected Object    value;
-        
-        protected DBCommandParam(DBCommand cmd, DataType type, Object value)
-        {
-            this.cmd = cmd;
-            this.type = type;
-            this.value = getCmdParamValue(value);
-        }
-        
-        protected Object getCmdParamValue(Object value)
-        {        
-            switch (type)
-            {
-                case BLOB:
-                    if (value == null)
-                        return null;
-                    if (value instanceof DBBlobData)
-                        return value;
-                    if (value instanceof byte[])
-                        return new DBBlobData((byte[])value);
-                    // create a blob data
-                    return new DBBlobData(value.toString());
-                case CLOB:
-                    if (value == null)
-                        return null;
-                    if (value instanceof DBClobData)
-                        return value;
-                    // create a clob data
-                    return new DBClobData(value.toString());
-                default:
-                    return value;
-            }
-        }
-        
-        @Override
-        public void addSQL(StringBuilder buf, long context)
-        {
-            buf.append("?"); //$NON-NLS-1$
-            // Move to current usage position
-            cmd.notifyParamUsage(this);
-        }
-        
-        /**
-         * @see org.apache.empire.db.DBExpr#addReferencedColumns(Set)
-         */
-        @Override
-        public void addReferencedColumns(Set<DBColumn> list)
-        {
-            // Nothing to add
-        }
-        
-        @Override
-        public DBDatabase getDatabase()
-        {
-            return cmd.getDatabase();
-        }
-        
-        public DataType getDataType()
-        {
-        	return type;
-        }
-        
-        public Object getValue()
-        {
-            return value;
-        }
-        
-        public void setValue(Object value)
-        {
-            this.value = getCmdParamValue(value);
-        }
-    }
-
     // Logger
     protected static final Logger log = LoggerFactory.getLogger(DBCommand.class);
     // Distinct Select
@@ -138,7 +60,7 @@ public abstract class DBCommand extends 
     protected List<DBCompareExpr>    having         = null;
     protected List<DBColumnExpr>     groupBy        = null;
     // Parameters for prepared Statements
-    protected Vector<DBCommandParam> cmdParams      = null;
+    protected Vector<DBCmdParam> cmdParams      = null;
     private int                      paramUsageCount= 0;
     // Database
     private DBDatabase               db;
@@ -165,7 +87,7 @@ public abstract class DBCommand extends 
     /**
      * internally used to reorder the command params to match their order of occurance
      */
-    private synchronized void notifyParamUsage(DBCommandParam param)
+    protected synchronized void notifyParamUsage(DBCmdParam param)
     {
         int index = cmdParams.indexOf(param);
         if (index < paramUsageCount)
@@ -185,7 +107,7 @@ public abstract class DBCommand extends 
      */
    	private void removeCommandParam(DBCompareColExpr cmp) 
    	{
-        if (cmdParams!=null && (cmp.getValue() instanceof DBCommandParam))
+        if (cmdParams!=null && (cmp.getValue() instanceof DBCmdParam))
    			cmdParams.remove(cmp.getValue());
    	}
 
@@ -344,11 +266,11 @@ public abstract class DBCommand extends 
             DBSetExpr chk = set.get(i);
             if (chk.column.equals(expr.column))
             { // Overwrite existing value
-                if (useCmdParam(expr.column, expr.value) && chk.value instanceof DBCommandParam)
+                if (useCmdParam(expr.column, expr.value) && chk.value instanceof DBCmdParam)
                 {   // replace parameter value
                     // int index = ((DBCommandParam) chk.value).index;
                     // this.setCmdParam(index, getCmdParamValue(expr.column, expr.value));
-                    ((DBCommandParam)chk.value).setValue(expr.value);
+                    ((DBCmdParam)chk.value).setValue(expr.value);
                 } 
                 else
                 { // replace value
@@ -392,12 +314,12 @@ public abstract class DBCommand extends 
      * 
      * @return the command parameter object 
      */
-    public DBCommandParam addParam(DataType type, Object value)
+    public DBCmdParam addParam(DataType type, Object value)
     {
         if (cmdParams==null)
-            cmdParams= new Vector<DBCommandParam>();
+            cmdParams= new Vector<DBCmdParam>();
         // Adds the parameter 
-        DBCommandParam param = new DBCommandParam(this, type, value);
+        DBCmdParam param = new DBCmdParam(this, type, value);
         if (cmdParams.add(param)==false)
             return null; // unknown error
         // Creates a Parameter expression
@@ -413,7 +335,7 @@ public abstract class DBCommand extends 
      * 
      * @return the command parameter object 
      */
-    public final DBCommandParam addParam(DBColumnExpr colExpr, Object value)
+    public final DBCmdParam addParam(DBColumnExpr colExpr, Object value)
     {
         return addParam(colExpr.getDataType(), value);
     }
@@ -424,7 +346,7 @@ public abstract class DBCommand extends 
      *  
      * @return the command parameter object
      */
-    public final DBCommandParam addParam(Object value)
+    public final DBCmdParam addParam(Object value)
     {
         return addParam(DataType.UNKNOWN, value);
     }
@@ -435,7 +357,7 @@ public abstract class DBCommand extends 
      *  
      * @return the command parameter object
      */
-    public final DBCommandParam addParam()
+    public final DBCmdParam addParam()
     {
         return addParam(DataType.UNKNOWN, null);
     }

Modified: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java?rev=1244408&r1=1244407&r2=1244408&view=diff
==============================================================================
--- empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java (original)
+++ empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBDatabaseDriver.java Wed Feb 15 09:16:53 2012
@@ -38,7 +38,7 @@ import org.apache.empire.commons.ObjectU
 import org.apache.empire.commons.StringUtils;
 import org.apache.empire.data.DataMode;
 import org.apache.empire.data.DataType;
-import org.apache.empire.db.DBCommand.DBCommandParam;
+import org.apache.empire.db.DBCmdParam;
 import org.apache.empire.db.exceptions.InternalSQLException;
 import org.apache.empire.exceptions.NotImplementedException;
 import org.apache.empire.exceptions.NotSupportedException;
@@ -167,7 +167,7 @@ public abstract class DBDatabaseDriver i
             try
             {   // The select Statement
                 DBCommand cmd = driver.createCommand(db);
-                DBCommandParam nameParam = cmd.addParam(SeqName);
+                DBCmdParam nameParam = cmd.addParam(SeqName);
                 cmd.select(C_SEQVALUE);
                 cmd.select(C_TIMESTAMP);
                 cmd.where (C_SEQNAME.is(nameParam));
@@ -188,8 +188,8 @@ public abstract class DBDatabaseDriver i
                         db.closeResultSet(rs);
                         // Update existing Record
                         cmd.clear();
-                        DBCommandParam name = cmd.addParam(SeqName);
-                        DBCommandParam time = cmd.addParam(current);
+                        DBCmdParam name = cmd.addParam(SeqName);
+                        DBCmdParam time = cmd.addParam(current);
                         cmd.set(C_SEQVALUE.to(seqValue));
                         cmd.set(C_TIMESTAMP.to(DBDatabase.SYSDATE));
                         cmd.where(C_SEQNAME.is(name));

Modified: empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBQuery.java?rev=1244408&r1=1244407&r2=1244408&view=diff
==============================================================================
--- empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBQuery.java (original)
+++ empire-db/trunk/empire-db/src/main/java/org/apache/empire/db/DBQuery.java Wed Feb 15 09:16:53 2012
@@ -27,7 +27,7 @@ import java.util.concurrent.atomic.Atomi
 import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.commons.Options;
 import org.apache.empire.data.DataType;
-import org.apache.empire.db.DBCommand.DBCommandParam;
+import org.apache.empire.db.DBCmdParam;
 import org.apache.empire.db.exceptions.InvalidKeyException;
 import org.apache.empire.db.exceptions.NoPrimaryKeyException;
 import org.apache.empire.db.exceptions.QueryNoResultException;
@@ -468,11 +468,11 @@ public class DBQuery extends DBRowSet
                     DBColumn col = cmpExpr.getColumnExpr().getUpdateColumn();
                     if (col!=null && col.getRowSet() == table)
                     {	// add the constraint
-                    	if (cmpExpr.getValue() instanceof DBCommandParam)
+                    	if (cmpExpr.getValue() instanceof DBCmdParam)
                     	{	// Create a new command param
                     		DBColumnExpr colExpr = cmpExpr.getColumnExpr();
-                    		DBCommandParam param =(DBCommandParam)cmpExpr.getValue(); 
-                    		DBCommandParam value = upd.addParam(colExpr, param.getValue());
+                    		DBCmdParam param =(DBCmdParam)cmpExpr.getValue(); 
+                    		DBCmdParam value = upd.addParam(colExpr, param.getValue());
                     		cmp = new DBCompareColExpr(colExpr, cmpExpr.getCmpop(), value);
                     	}
                         upd.where(cmp);

Modified: empire-db/trunk/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java?rev=1244408&r1=1244407&r2=1244408&view=diff
==============================================================================
--- empire-db/trunk/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java (original)
+++ empire-db/trunk/empire-db/src/test/java/org/apache/empire/db/PreparedStatementTest.java Wed Feb 15 09:16:53 2012
@@ -26,7 +26,7 @@ import java.sql.Connection;
 
 import org.apache.empire.DBResource;
 import org.apache.empire.DBResource.DB;
-import org.apache.empire.db.DBCommand.DBCommandParam;
+import org.apache.empire.db.DBCmdParam;
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -63,7 +63,7 @@ public class PreparedStatementTest{
         // Define the query
         DBCommand cmd = db.createCommand();
         // Create parameters
-        DBCommandParam empIdParam  = cmd.addParam(null);
+        DBCmdParam empIdParam  = cmd.addParam(null);
         // the previous line could be shorter
         // DBCommandParam empIdParam  = cmd.addCmdParam(id);
         // create statement