You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/05/31 00:22:51 UTC
incubator-juneau git commit: @QueryIfNE should ignore empty
collections.
Repository: incubator-juneau
Updated Branches:
refs/heads/master ce2d7fbe1 -> 25e490e59
@QueryIfNE should ignore empty collections.
This closes #2
Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/25e490e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/25e490e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/25e490e5
Branch: refs/heads/master
Commit: 25e490e59fcece2379b8a06f0d0d52c6de903923
Parents: ce2d7fb
Author: JamesBognar <ja...@apache.org>
Authored: Tue May 30 20:22:47 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Tue May 30 20:22:47 2017 -0400
----------------------------------------------------------------------
.../org/apache/juneau/internal/ObjectUtils.java | 29 ++++++++++++++++++++
.../org/apache/juneau/rest/client/RestCall.java | 7 +++--
2 files changed, 33 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/25e490e5/juneau-core/src/main/java/org/apache/juneau/internal/ObjectUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/internal/ObjectUtils.java b/juneau-core/src/main/java/org/apache/juneau/internal/ObjectUtils.java
index fac4337..699b0fc 100644
--- a/juneau-core/src/main/java/org/apache/juneau/internal/ObjectUtils.java
+++ b/juneau-core/src/main/java/org/apache/juneau/internal/ObjectUtils.java
@@ -12,6 +12,9 @@
// ***************************************************************************************************************************
package org.apache.juneau.internal;
+import java.lang.reflect.*;
+import java.util.*;
+
/**
* Object-related utility methods.
*/
@@ -33,4 +36,30 @@ public class ObjectUtils {
return false;
return o1.equals(o2);
}
+
+ /**
+ * Returns <jk>true</jk> if the specified object is empty.
+ * <p>
+ * Return <jk>true</jk> if the value is any of the following:
+ * <ul>
+ * <li><jk>null</jk>
+ * <li>An empty Collection
+ * <li>An empty array
+ * <li>An empty CharSequence
+ * <li>An empty String when serialized to a string using {@link Object#toString()}.
+ * </ul>
+ *
+ * @param o The object to test.
+ * @return <jk>true</jk> if the specified object is empty.
+ */
+ @SuppressWarnings("rawtypes")
+ public static boolean isEmpty(Object o) {
+ if (o == null)
+ return true;
+ if (o instanceof Collection)
+ return ((Collection)o).isEmpty();
+ if (o.getClass().isArray())
+ return (Array.getLength(o) == 0);
+ return o.toString().isEmpty();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/25e490e5/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
----------------------------------------------------------------------
diff --git a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
index ca1f541..769e5eb 100644
--- a/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
+++ b/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
@@ -33,6 +33,7 @@ import org.apache.http.util.*;
import org.apache.juneau.*;
import org.apache.juneau.encoders.*;
import org.apache.juneau.internal.*;
+import org.apache.juneau.internal.ObjectUtils;
import org.apache.juneau.parser.*;
import org.apache.juneau.parser.ParseException;
import org.apache.juneau.serializer.*;
@@ -186,7 +187,7 @@ public final class RestCall {
if (partSerializer == null)
partSerializer = client.getPartSerializer();
if (! ("*".equals(name) || isEmpty(name))) {
- if (value != null && ! (isEmpty(value) && skipIfEmpty))
+ if (value != null && ! (ObjectUtils.isEmpty(value) && skipIfEmpty))
uriBuilder.addParameter(name, partSerializer.serialize(PartType.QUERY, value));
} else if (value instanceof NameValuePairs) {
for (NameValuePair p : (NameValuePairs)value)
@@ -286,7 +287,7 @@ public final class RestCall {
if (partSerializer == null)
partSerializer = client.getPartSerializer();
if (! ("*".equals(name) || isEmpty(name))) {
- if (value != null && ! (isEmpty(value) && skipIfEmpty))
+ if (value != null && ! (ObjectUtils.isEmpty(value) && skipIfEmpty))
formData.add(new SerializedNameValuePair(name, value, partSerializer));
} else if (value instanceof NameValuePairs) {
for (NameValuePair p : (NameValuePairs)value)
@@ -503,7 +504,7 @@ public final class RestCall {
if (partSerializer == null)
partSerializer = client.getPartSerializer();
if (! ("*".equals(name) || isEmpty(name))) {
- if (value != null && ! (isEmpty(value) && skipIfEmpty))
+ if (value != null && ! (ObjectUtils.isEmpty(value) && skipIfEmpty))
request.setHeader(name, partSerializer.serialize(PartType.HEADER, value));
} else if (value instanceof NameValuePairs) {
for (NameValuePair p : (NameValuePairs)value)