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 2018/03/10 17:10:11 UTC

empire-db git commit: EMPIREDB-268 improved valdity check for columns

Repository: empire-db
Updated Branches:
  refs/heads/master 805278fa4 -> 7fd982eea


EMPIREDB-268
improved valdity check for columns


Project: http://git-wip-us.apache.org/repos/asf/empire-db/repo
Commit: http://git-wip-us.apache.org/repos/asf/empire-db/commit/7fd982ee
Tree: http://git-wip-us.apache.org/repos/asf/empire-db/tree/7fd982ee
Diff: http://git-wip-us.apache.org/repos/asf/empire-db/diff/7fd982ee

Branch: refs/heads/master
Commit: 7fd982eea5e0e7cfc0289820dc6ae65ba9cc820a
Parents: 805278f
Author: Rainer Döbele <do...@apache.org>
Authored: Sat Mar 10 18:11:05 2018 +0100
Committer: Rainer Döbele <do...@apache.org>
Committed: Sat Mar 10 18:11:05 2018 +0100

----------------------------------------------------------------------
 .../apache/empire/jsf2/components/InputTag.java | 13 +++++-
 .../main/java/org/apache/empire/db/DBQuery.java | 43 +++++++++++++++-----
 2 files changed, 43 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/empire-db/blob/7fd982ee/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
----------------------------------------------------------------------
diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
index 80d0da7..8ee076d 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
@@ -152,8 +152,17 @@ public class InputTag extends UIInput implements NamingContainer
             Object record = helper.getRecord();
             if (record!=null && (record instanceof DBRecord))
             {   // Record is not null
-                String rowsetName = (((DBRecord)record).isValid())  ? ((DBRecord)record).getRowSet().getName() : "[INVALID]";
-                log.warn("Column {} is not visible for record of {} and will not be rendered!", column.getName(), rowsetName);
+                if (((DBRecord)record).isValid())
+                {   // Check if column exists
+                    if (((DBRecord)record).getFieldIndex(column)<0)
+                        throw new InvalidArgumentException("column", column.getName());
+                    // not visible
+                    log.info("Column {} is not visible for record of {} and will not be rendered!", column.getName(), ((DBRecord)record).getRowSet().getName());
+                }    
+                else
+                {   // Record not valid
+                    log.warn("Invalid Record provided for column {}. Input will not be rendered!", column.getName());
+                }    
             }
             else
             {   // Column not visible

http://git-wip-us.apache.org/repos/asf/empire-db/blob/7fd982ee/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
index aaab557..0615956 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBQuery.java
@@ -60,10 +60,10 @@ public class DBQuery extends DBRowSet
 
     private static AtomicInteger queryCount = new AtomicInteger(0);
 
-    protected DBCommandExpr   cmdExpr;
-    protected DBColumn[]      keyColumns = null;
-    protected DBQueryColumn[] queryColumns = null;
-    protected String          alias;
+    protected final DBCommandExpr   cmdExpr;
+    protected final DBColumn[]      keyColumns;
+    protected final DBQueryColumn[] queryColumns;
+    protected final String          alias;
 
     /**
      * Constructor initializes the query object.
@@ -79,7 +79,7 @@ public class DBQuery extends DBRowSet
         this.cmdExpr = cmd;
         // Set Query Columns
         DBColumnExpr[] exprList = cmd.getSelectExprList();
-        queryColumns = new DBQueryColumn[exprList.length];
+        this.queryColumns = new DBQueryColumn[exprList.length];
         for (int i = 0; i < exprList.length; i++)
         {   // Init Columns 
             columns.add(exprList[i].getUpdateColumn());
@@ -164,7 +164,7 @@ public class DBQuery extends DBRowSet
     @Override
     public String getName()
     {
-        return null;
+        return alias;
     }
 
     /**
@@ -197,11 +197,10 @@ public class DBQuery extends DBRowSet
     }
 
     /**
-     * This function searchs for equal columns given by the
-     * specified DBColumnExpr object.
+     * This function provides the query column object for a particular query command expression 
      * 
      * @param expr the DBColumnExpr object
-     * @return the located column
+     * @return the query column
      */
     public DBQueryColumn findQueryColumn(DBColumnExpr expr)
     {
@@ -215,10 +214,10 @@ public class DBQuery extends DBRowSet
     }
     
     /**
-     * This function searchs for a query column by name
+     * This function provides the query column object for a particular query command expression 
      * 
      * @param the column name
-     * @return the located column
+     * @return the query column
      */
     public DBQueryColumn findQueryColumn(String name)
     {
@@ -232,6 +231,28 @@ public class DBQuery extends DBRowSet
     }
 
     /**
+     * This is a convenience shortcut for findQueryColumn
+     * 
+     * @param expr the DBColumnExpr object
+     * @return the query column
+     */
+    public DBQueryColumn column(DBColumnExpr expr)
+    {
+        return findQueryColumn(expr);
+    }
+    
+    /**
+     * This is a convenience shortcut for findQueryColumn
+     * 
+     * @param the column name
+     * @return the located column
+     */
+    public DBQueryColumn column(String name)
+    {
+        return findQueryColumn(name);
+    }
+    
+    /**
      * return query key columns
      */
     @Override