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 2016/02/20 13:20:10 UTC
empire-db git commit: EMPIREDB-239 special enum treatment
Repository: empire-db
Updated Branches:
refs/heads/master 5e314f54c -> 4182161bb
EMPIREDB-239
special enum treatment
Project: http://git-wip-us.apache.org/repos/asf/empire-db/repo
Commit: http://git-wip-us.apache.org/repos/asf/empire-db/commit/4182161b
Tree: http://git-wip-us.apache.org/repos/asf/empire-db/tree/4182161b
Diff: http://git-wip-us.apache.org/repos/asf/empire-db/diff/4182161b
Branch: refs/heads/master
Commit: 4182161bb761668ccb1f9e83e24848720040ffa8
Parents: 5e314f5
Author: Rainer Döbele <do...@esteam.de>
Authored: Sat Feb 20 13:20:06 2016 +0100
Committer: Rainer Döbele <do...@esteam.de>
Committed: Sat Feb 20 13:20:06 2016 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/empire/db/DBExpr.java | 7 +++++++
.../java/org/apache/empire/db/DBTableColumn.java | 16 ++++++++++++++++
2 files changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4182161b/empire-db/src/main/java/org/apache/empire/db/DBExpr.java
----------------------------------------------------------------------
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBExpr.java b/empire-db/src/main/java/org/apache/empire/db/DBExpr.java
index 48d8f16..f0c573d 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBExpr.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBExpr.java
@@ -82,6 +82,13 @@ public abstract class DBExpr extends DBObject
((DBExpr) value).addSQL(buf, context);
return buf.toString();
}
+ else if (value!=null && value.getClass().isEnum())
+ { // check enum
+ if (dataType.isNumeric())
+ value = ((Enum<?>)value).ordinal();
+ else
+ value = ((Enum<?>)value).name();
+ }
else if (value instanceof Collection<?>)
{
value = ((Collection<?>)value).toArray();
http://git-wip-us.apache.org/repos/asf/empire-db/blob/4182161b/empire-db/src/main/java/org/apache/empire/db/DBTableColumn.java
----------------------------------------------------------------------
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 593e790..d23c9ad 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
@@ -402,6 +402,12 @@ public class DBTableColumn extends DBColumn
case DECIMAL:
if (value==null)
break;
+ // check enum
+ if (value!=null && value.getClass().isEnum())
+ {
+ value = ((Enum<?>)value).ordinal();
+ }
+ // check number
if (!(value instanceof java.lang.Number))
{ try
{ // Convert to String and check
@@ -438,6 +444,12 @@ public class DBTableColumn extends DBColumn
case INTEGER:
if (value==null)
break;
+ // check enum
+ if (value!=null && value.getClass().isEnum())
+ {
+ value = ((Enum<?>)value).ordinal();
+ }
+ // check number
if (!(value instanceof java.lang.Number))
{ try
{ // Convert to String and check
@@ -455,6 +467,10 @@ public class DBTableColumn extends DBColumn
case TEXT:
case CHAR:
+ if (value!=null && value.getClass().isEnum())
+ { // check enum
+ value = ((Enum<?>)value).name();
+ }
if (value!=null && value.toString().length() > size)
throw new FieldValueTooLongException(this);
break;