svn commit: r949608 - in /ofbiz/trunk/framework/sql/src/org/ofbiz/sql: Atom.java SQLSelect.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r949608 - in /ofbiz/trunk/framework/sql/src/org/ofbiz/sql: Atom.java SQLSelect.java

doogie-3
Author: doogie
Date: Sun May 30 22:07:04 2010
New Revision: 949608

URL: http://svn.apache.org/viewvc?rev=949608&view=rev
Log:
Allow fieldAlls, fieldDefs, and relations to be null; if they are empty,
then force them to null instead.

Modified:
    ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Atom.java
    ofbiz/trunk/framework/sql/src/org/ofbiz/sql/SQLSelect.java

Modified: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Atom.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Atom.java?rev=949608&r1=949607&r2=949608&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Atom.java (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/Atom.java Sun May 30 22:07:04 2010
@@ -18,14 +18,26 @@
  */
 package org.ofbiz.sql;
 
+import java.util.Collection;
+import java.util.Map;
+
 import org.ofbiz.base.lang.Appender;
 import org.ofbiz.base.util.UtilObject;
+import org.ofbiz.base.util.UtilValidate;
 
 public abstract class Atom implements Appender<StringBuilder> {
     public static boolean equalsHelper(Object l, Object r) {
         return UtilObject.equalsHelper(l, r);
     }
 
+    public static <T extends Collection<I>, I> T checkEmpty(T col) {
+        return UtilValidate.isEmpty(col) ? null : col;
+    }
+
+    public static <T extends Map<K, V>, K, V> T checkEmpty(T map) {
+        return UtilValidate.isEmpty(map) ? null : map;
+    }
+
     public String toString() {
         return appendTo(new StringBuilder()).toString();
     }

Modified: ofbiz/trunk/framework/sql/src/org/ofbiz/sql/SQLSelect.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/sql/src/org/ofbiz/sql/SQLSelect.java?rev=949608&r1=949607&r2=949608&view=diff
==============================================================================
--- ofbiz/trunk/framework/sql/src/org/ofbiz/sql/SQLSelect.java (original)
+++ ofbiz/trunk/framework/sql/src/org/ofbiz/sql/SQLSelect.java Sun May 30 22:07:04 2010
@@ -41,10 +41,10 @@ public final class SQLSelect extends SQL
 
     public SQLSelect(boolean isDistinct, List<FieldAll> fieldAlls, Map<String, FieldDef> fieldDefs, Table table, Map<String, Relation> relations, Condition whereCondition, Condition havingCondition, List<String> groupBy, List<OrderByItem> orderBy, int offset, int limit) {
         this.isDistinct = isDistinct;
-        this.fieldAlls = fieldAlls;
-        this.fieldDefs = fieldDefs;
+        this.fieldAlls = checkEmpty(fieldAlls);
+        this.fieldDefs = checkEmpty(fieldDefs);
         this.table = table;
-        this.relations = relations;
+        this.relations = checkEmpty(relations);
         this.whereCondition = whereCondition;
         this.havingCondition = havingCondition;
         this.groupBy = groupBy;
@@ -108,10 +108,10 @@ public final class SQLSelect extends SQL
 
         SQLSelect other = (SQLSelect) o;
         return isDistinct == other.isDistinct
-            && fieldAlls.equals(other.fieldAlls)
-            && fieldDefs.equals(other.fieldDefs)
+            && equalsHelper(fieldAlls, other.fieldAlls)
+            && equalsHelper(fieldDefs, other.fieldDefs)
             && table.equals(other.table)
-            && relations.equals(other.relations)
+            && equalsHelper(relations, other.relations)
             && equalsHelper(whereCondition, other.whereCondition)
             && equalsHelper(havingCondition, other.havingCondition)
             && offset == other.offset
@@ -126,14 +126,18 @@ public final class SQLSelect extends SQL
         if (isDistinct) {
             sb.append(" DISTINCT");
         }
-        StringUtil.appendTo(sb, fieldAlls, " ", null, ",");
-        if (!fieldAlls.isEmpty() && !fieldDefs.isEmpty()) {
+        if (fieldAlls != null) {
+            StringUtil.appendTo(sb, fieldAlls, " ", null, ",");
+        }
+        if (fieldAlls != null && fieldDefs != null) {
             sb.append(',');
         }
-        StringUtil.appendTo(sb, fieldDefs.values(), " ", null, ",");
+        if (fieldDefs != null) {
+            StringUtil.appendTo(sb, fieldDefs.values(), " ", null, ",");
+        }
         sb.append(" FROM ");
         table.appendTo(sb);
-        if (!relations.isEmpty()) {
+        if (relations != null) {
             StringUtil.appendTo(sb, relations.values(), " ", null, ",");
         }
         if (whereCondition != null) {