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 2020/02/26 10:52:03 UTC

[empire-db] branch master updated: EMPIREDB-304 added enum detection for query columns

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 dcf7998  EMPIREDB-304 added enum detection for query columns
dcf7998 is described below

commit dcf799867ad97b6383b14ed1843d79fe22f15062
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Wed Feb 26 11:51:58 2020 +0100

    EMPIREDB-304
    added enum detection for query columns
---
 .../src/main/java/org/apache/empire/db/DBColumn.java    |  2 +-
 .../main/java/org/apache/empire/db/DBQueryColumn.java   | 17 +++++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

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 b84ed1f..2b4ca20 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
@@ -387,7 +387,7 @@ public abstract class DBColumn extends DBColumnExpr
     /**
      * Returns true if an enum type has been set for this column
      * <P>
-     * @return eturns true if an enum type has been set for this column
+     * @return true if an enum type has been set for this column or false otherwise
      */
     public final boolean isEnum()
     {
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java b/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java
index 2bee498..c088512 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBQueryColumn.java
@@ -19,6 +19,7 @@
 package org.apache.empire.db;
 
 import org.apache.empire.commons.Options;
+import org.apache.empire.data.Column;
 import org.apache.empire.data.DataType;
 import org.w3c.dom.Element;
 
@@ -89,6 +90,22 @@ public class DBQueryColumn extends DBColumn
     }
 
     @Override
+    @SuppressWarnings("unchecked")
+    public Class<Enum<?>> getEnumType()
+    {
+        // check expression attribute
+        Object enumType = expr.getAttribute(Column.COLATTR_ENUMTYPE);
+        if (enumType!=null)
+            return ((Class<Enum<?>>)enumType);        
+        // otherwise check update column
+        DBColumn col = expr.getUpdateColumn();
+        if (col!=null)
+            return col.getEnumType();
+        // otherwise 
+        return super.getEnumType();
+    }
+
+    @Override
     public Object validate(Object value)
     {
         DBColumn column = expr.getUpdateColumn();