EMPIREDB-362 more cleanup and beautification
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.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 @@
* 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 @@
@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 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 @@
* 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.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 @@
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 @@
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 @@
// *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 @@
}
/**
- * 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 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 @@
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 @@
// *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 @@
// 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 @@
* 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 @@
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 @@
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 @@
* 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 @@
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 @@
{
// 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: