This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new af33059  EMPIREDB-362 more cleanup and beautification
af33059 is described below

commit af33059b1147c46826fbc7973d254701e4a4ed70
Author: Rainer Döbele <[email protected]>
AuthorDate: Sun Mar 6 22:26:10 2022 +0100

    EMPIREDB-362 more cleanup and beautification
---
 .../apache/empire/jsf2/utils/TagEncodingHelper.java    |  8 +++-----
 .../java/org/apache/empire/commons/ObjectUtils.java    |  8 ++++----
 .../main/java/org/apache/empire/data/ColumnExpr.java   |  2 +-
 .../java/org/apache/empire/data/bean/BeanProperty.java | 13 -------------
 .../org/apache/empire/data/list/DataListEntry.java     |  2 +-
 .../src/main/java/org/apache/empire/db/DBColumn.java   | 16 +++-------------
 .../main/java/org/apache/empire/db/DBColumnExpr.java   | 18 ------------------
 .../src/main/java/org/apache/empire/db/DBQuery.java    |  2 +-
 .../main/java/org/apache/empire/db/DBTableColumn.java  |  3 +++
 .../org/apache/empire/db/expr/column/DBAliasExpr.java  |  3 ++-
 .../apache/empire/db/expr/column/DBCoalesceExpr.java   |  3 ++-
 .../empire/db/expr/column/DBParenthesisExpr.java       |  3 ++-
 .../empire/db/expr/compare/DBCompareColExpr.java       | 11 +++--------
 13 files changed, 25 insertions(+), 67 deletions(-)

diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
index 026be5e..e360fb6 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
@@ -46,6 +46,7 @@ import org.apache.empire.commons.Attributes;
 import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.commons.Options;
 import org.apache.empire.commons.StringUtils;
+import org.apache.empire.commons.Unwrappable;
 import org.apache.empire.data.Column;
 import org.apache.empire.data.ColumnExpr;
 import org.apache.empire.data.DataType;
@@ -88,7 +89,7 @@ public class TagEncodingHelper implements NamingContainer
      * wraps a ColumnExpr object into a Column interface object
      * @author doebele
      */
-    protected static class ColumnExprWrapper implements Column
+    protected static class ColumnExprWrapper implements Column, 
Unwrappable<ColumnExpr>
     {
         private final ColumnExpr expr;
 
@@ -164,10 +165,7 @@ public class TagEncodingHelper implements NamingContainer
 
         @Override
         public ColumnExpr unwrap()
-        {   // unwrap the expression
-            if (expr.isWrapper())
-                return expr.unwrap();
-            // the wrapped expression
+        {   // the wrapped expression
             return expr;
         }
 
diff --git a/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java 
b/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
index 8e13af1..f871f81 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
@@ -282,10 +282,10 @@ public final class ObjectUtils
      */
     public static boolean compareEqual(ColumnExpr expr, ColumnExpr other)
     {
-        if (other.isWrapper() && !expr.isWrapper())
-            return expr.equals(other.unwrap());
-        else if (!other.isWrapper() && expr.isWrapper())
-            return expr.unwrap().equals(other);
+        if (isWrapper(other) && !isWrapper(expr))
+            return expr.equals(unwrap(other));
+        else  if (!isWrapper(other) && isWrapper(expr))
+            return unwrap(expr).equals(other);
         // both wrapped or both unwrapped
         return expr.equals(other);
     }
diff --git a/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java 
b/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java
index 29ed800..2b8feb2 100644
--- a/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/data/ColumnExpr.java
@@ -25,7 +25,7 @@ import org.apache.empire.commons.Unwrappable;
  * The column interface provides methods for accessing metadata that is 
relevant for managing
  * and displaying data available through the RecordData interface.
  */
-public interface ColumnExpr extends Unwrappable<ColumnExpr>
+public interface ColumnExpr
 {
     /**
      * Returns the column's data type.
diff --git 
a/empire-db/src/main/java/org/apache/empire/data/bean/BeanProperty.java 
b/empire-db/src/main/java/org/apache/empire/data/bean/BeanProperty.java
index 9c66574..57a14ed 100644
--- a/empire-db/src/main/java/org/apache/empire/data/bean/BeanProperty.java
+++ b/empire-db/src/main/java/org/apache/empire/data/bean/BeanProperty.java
@@ -25,7 +25,6 @@ import org.apache.empire.commons.Attributes;
 import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.commons.Options;
 import org.apache.empire.data.Column;
-import org.apache.empire.data.ColumnExpr;
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.exceptions.FieldNotNullException;
 
@@ -214,18 +213,6 @@ public class BeanProperty implements Column
         return this;
     }
 
-    @Override
-    public boolean isWrapper()
-    {   // Nope
-        return false; 
-    }
-
-    @Override
-    public ColumnExpr unwrap()
-    {   // Nothing to unwrap
-        return this; 
-    }
-
     // --- Column interface implementation ---
     
     @Override
diff --git 
a/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java 
b/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
index 20e4f2b..7e25fb0 100644
--- a/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
+++ b/empire-db/src/main/java/org/apache/empire/data/list/DataListEntry.java
@@ -129,7 +129,7 @@ public class DataListEntry implements RecordData, 
Serializable
         ColumnExpr[] cols = head.getColumns(); 
         for (int i=0; i<cols.length; i++)
         {
-            ColumnExpr col = cols[i].unwrap();
+            ColumnExpr col = ObjectUtils.unwrap(cols[i]);
             // must be a column!
             if (!(col instanceof Column))
             {   // not a true column
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBColumn.java 
b/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
index c8e68d4..4a7d814 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBColumn.java
@@ -54,16 +54,6 @@ public abstract class DBColumn extends DBColumnExpr
     // *Deprecated* private static final long serialVersionUID = 1L;
   
     private static final Logger log = LoggerFactory.getLogger(DBColumn.class);
-    
-    /**
-     * Read only column (Boolean)
-     */
-    // private static final String DBCOLATTR_READONLY  = "readonly";
-    
-    /**
-     * Read only column (Boolean)
-     */
-    public static final String DBCOLATTR_SINGLEBYTECHARS  = "singleByteChars";
 
     // basic data
     protected final DBRowSet  rowset; /* transient */
@@ -311,11 +301,11 @@ public abstract class DBColumn extends DBColumnExpr
     }
 
     /**
-     * Returns the name of the column as a value expression
-     * This may be used to reference a parent column in a subquery 
+     * Returns a reference expression for this column
+     * This can be used to reference a parent column in a subquery 
      * @return the column value expression
      */
-    public DBValueExpr value()
+    public DBValueExpr reference()
     {
         return new DBValueExpr(getDatabase(), this, DataType.UNKNOWN);    
     }
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java 
b/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java
index 112817f..d3e440d 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBColumnExpr.java
@@ -119,24 +119,6 @@ public abstract class DBColumnExpr extends DBExpr
     public abstract Element addXml(Element parent, long flags);
 
     /**
-     * @link {#org.apache.empire.commons.Unwrappable#isWrapper()}
-     */
-    @Override
-    public boolean isWrapper()
-    {   // Nope
-        return false;
-    }
-
-    /**
-     * @link {#org.apache.empire.commons.Unwrappable#unwrap()}
-     */
-    @Override
-    public DBColumnExpr unwrap()
-    {   // Noting to unwrap
-        return this;
-    }
-
-    /**
      * returns an expression that renames the column with its alias name
      */
     public DBColumnExpr qualified()
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 5547767..b36b1e4 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
@@ -663,7 +663,7 @@ public class DBQuery extends DBRowSet
                     return i; // found
             }
         // try unwrap
-        ColumnExpr unwrapped = columnExpr.unwrap();
+        ColumnExpr unwrapped = ObjectUtils.unwrap(columnExpr);
         if (unwrapped!=columnExpr)
             return getColumnIndex(unwrapped);
         // not found
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java 
b/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java
index a4f608e..9ee2f0e 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java
@@ -47,6 +47,9 @@ public class DBTableColumn extends DBColumn
     // *Deprecated* private static final long serialVersionUID = 1L;
     private static final Logger log = 
LoggerFactory.getLogger(DBTableColumn.class);
     
+    // Additional Attributes
+    public static final String DBCOLATTR_SINGLEBYTECHARS  = "singleByteChars";
+    
     // Column Information
     protected DataType  type;
     protected double    size;
diff --git 
a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java 
b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java
index dea582f..e25b18d 100644
--- a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBAliasExpr.java
@@ -22,6 +22,7 @@ import java.util.Set;
 
 // Java
 import org.apache.empire.commons.StringUtils;
+import org.apache.empire.commons.Unwrappable;
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.DBColumn;
 import org.apache.empire.db.DBColumnExpr;
@@ -36,7 +37,7 @@ import org.w3c.dom.Element;
  * There is no need to explicitly create instances of this class.<BR>
  * Instead use {@link DBColumnExpr#as(String) }
  */
-public class DBAliasExpr extends DBColumnExpr
+public class DBAliasExpr extends DBColumnExpr implements 
Unwrappable<DBColumnExpr>
 {
     // *Deprecated* private static final long serialVersionUID = 1L;
   
diff --git 
a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCoalesceExpr.java 
b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCoalesceExpr.java
index 2c0d136..cbc226c 100644
--- 
a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCoalesceExpr.java
+++ 
b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBCoalesceExpr.java
@@ -6,12 +6,13 @@ package org.apache.empire.db.expr.column;
 import java.util.Set;
 
 import org.apache.empire.commons.StringUtils;
+import org.apache.empire.commons.Unwrappable;
 import org.apache.empire.db.DBColumn;
 import org.apache.empire.db.DBColumnExpr;
 import org.apache.empire.db.DBExpr;
 import org.apache.empire.dbms.DBSqlPhrase;
 
-public class DBCoalesceExpr extends DBAbstractFuncExpr
+public class DBCoalesceExpr extends DBAbstractFuncExpr implements 
Unwrappable<DBColumnExpr>
 {
     private final Object nullValue;
     
diff --git 
a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java
 
b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java
index 699eb0f..df6cce3 100644
--- 
a/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java
+++ 
b/empire-db/src/main/java/org/apache/empire/db/expr/column/DBParenthesisExpr.java
@@ -20,6 +20,7 @@ package org.apache.empire.db.expr.column;
 
 import java.util.Set;
 
+import org.apache.empire.commons.Unwrappable;
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.DBColumn;
 import org.apache.empire.db.DBColumnExpr;
@@ -32,7 +33,7 @@ import org.w3c.dom.Element;
  * There is no need to explicitly create instances of this class.<BR>
  * Instead use {@link DBColumnExpr#as(String) }
  */
-public class DBParenthesisExpr extends DBColumnExpr
+public class DBParenthesisExpr extends DBColumnExpr implements 
Unwrappable<DBColumnExpr>
 {
     // *Deprecated* private static final long serialVersionUID = 1L;
   
diff --git 
a/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java
 
b/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java
index 6d38d99..77f12a3 100644
--- 
a/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java
+++ 
b/empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java
@@ -20,6 +20,7 @@ package org.apache.empire.db.expr.compare;
 
 import java.util.Set;
 
+import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.DBCmdParam;
 import org.apache.empire.db.DBCmpType;
@@ -300,17 +301,11 @@ public class DBCompareColExpr extends DBCompareExpr
     {
         // check type 
        if (other instanceof DBCompareColExpr)
-       {   // unwrap
-            DBColumnExpr texpr = expr;
-            if (texpr.isWrapper())
-                texpr = texpr.unwrap();
-            // other
+       {   // other
             DBCompareColExpr o = (DBCompareColExpr)other;
             DBColumnExpr oexpr = o.getColumnExpr();
-            if (oexpr.isWrapper())
-                oexpr = oexpr.unwrap();
                // Compare
-               if (texpr.equals(oexpr))
+               if (ObjectUtils.compareEqual(expr, oexpr))
                        return true;
                /*
             // probably not a good idea to do this:

Reply via email to