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();