You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2017/01/07 05:05:44 UTC
[2/2] logging-log4j2 git commit: Add Assert.requireNonEmpty() and
stop supporting Iterable
Add Assert.requireNonEmpty() and stop supporting Iterable
Some Iterable<T> classes do not support returning an iterator more than once!
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f6a856d0
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f6a856d0
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f6a856d0
Branch: refs/heads/master
Commit: f6a856d08545fd58cfca1ead2acd43ccb96923a6
Parents: 16bfee4
Author: Matt Sicker <ma...@spr.com>
Authored: Fri Jan 6 23:05:37 2017 -0600
Committer: Matt Sicker <ma...@spr.com>
Committed: Fri Jan 6 23:05:37 2017 -0600
----------------------------------------------------------------------
.../apache/logging/log4j/core/util/Assert.java | 33 ++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f6a856d0/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Assert.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Assert.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Assert.java
index d46c06a..da7f45a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Assert.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Assert.java
@@ -16,6 +16,7 @@
*/
package org.apache.logging.log4j.core.util;
+import java.util.Collection;
import java.util.Map;
/**
@@ -49,8 +50,8 @@ public final class Assert {
if (o.getClass().isArray()) {
return ((Object[]) o).length == 0;
}
- if (o instanceof Iterable) {
- return !((Iterable<?>) o).iterator().hasNext();
+ if (o instanceof Collection) {
+ return ((Collection<?>) o).isEmpty();
}
if (o instanceof Map) {
return ((Map<?, ?>) o).isEmpty();
@@ -69,6 +70,34 @@ public final class Assert {
return !isEmpty(o);
}
+ /**
+ * Checks a value for emptiness and throws an IllegalArgumentException if it's empty.
+ *
+ * @param value value to check for emptiness
+ * @param <T> type of value
+ * @return the provided value if non-empty
+ * @since 2.8
+ */
+ public static <T> T requireNonEmpty(final T value) {
+ return requireNonEmpty(value, "");
+ }
+
+ /**
+ * Checks a value for emptiness and throws an IllegalArgumentException if it's empty.
+ *
+ * @param value value to check for emptiness
+ * @param message message to provide in exception
+ * @param <T> type of value
+ * @return the provided value if non-empty
+ * @since 2.8
+ */
+ public static <T> T requireNonEmpty(final T value, final String message) {
+ if (isEmpty(value)) {
+ throw new IllegalArgumentException(message);
+ }
+ return value;
+ }
+
public static int valueIsAtLeast(final int value, final int minValue) {
if (value < minValue) {
throw new IllegalArgumentException("Value should be at least " + minValue + " but was " + value);