You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/05/10 12:27:39 UTC
[commons-lang] 02/02: [LANG-1458] Add EMPTY_ARRAY constants to
classes in org.apache.commons.lang3.tuple
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git
commit 86cf126f1373c783766cd2957f536d721b68f297
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri May 10 08:27:33 2019 -0400
[LANG-1458] Add EMPTY_ARRAY constants to classes in
org.apache.commons.lang3.tuple
---
src/changes/changes.xml | 3 ++-
.../apache/commons/lang3/tuple/ImmutablePair.java | 22 ++++++++++++++++++++++
.../commons/lang3/tuple/ImmutableTriple.java | 22 ++++++++++++++++++++++
.../apache/commons/lang3/tuple/MutablePair.java | 22 ++++++++++++++++++++++
.../apache/commons/lang3/tuple/MutableTriple.java | 22 ++++++++++++++++++++++
.../commons/lang3/tuple/ImmutablePairTest.java | 13 +++++++++++++
.../commons/lang3/tuple/ImmutableTripleTest.java | 13 +++++++++++++
.../commons/lang3/tuple/MutablePairTest.java | 13 +++++++++++++
.../commons/lang3/tuple/MutableTripleTest.java | 13 +++++++++++++
9 files changed, 142 insertions(+), 1 deletion(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index e59d33a..56f724a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -47,7 +47,8 @@ The <action> type attribute can be add,update,fix,remove.
<release version="3.10" date="YYYY-MM-DD" description="TBD">
<action issue="LANG-1450" type="fix" dev="chtompki">Generate javadoc jar on build.</action>
- <action issue="LANG-1457" type="fix" dev="ggregory">Add ExceptionUtils.throwableOfType(Throwable, Class) and friends.</action>
+ <action issue="LANG-1457" type="add" dev="ggregory">Add ExceptionUtils.throwableOfType(Throwable, Class) and friends.</action>
+ <action issue="LANG-1458" type="add" dev="ggregory">Add EMPTY_ARRAY constants to classes in org.apache.commons.lang3.tuple.</action>
</release>
<release version="3.9" date="2019-04-09" description="New features and bug fixes. Requires Java 8, supports Java 9, 10, 11">
diff --git a/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java b/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java
index abc8c3b..c0934bf 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java
@@ -34,6 +34,28 @@ package org.apache.commons.lang3.tuple;
public final class ImmutablePair<L, R> extends Pair<L, R> {
/**
+ * An empty array.
+ * <p>
+ * Consider using {@link #emptyArray()} to avoid generics warnings.
+ * </p>
+ *
+ * @since 3.10.
+ */
+ public static final ImmutablePair<?, ?>[] EMPTY_ARRAY = new ImmutablePair[0];
+
+ /**
+ * Returns the empty array singleton that can be assigned without compiler warning.
+ *
+ * @return the empty array singleton that can be assigned without compiler warning.
+ *
+ * @since 3.10.
+ */
+ @SuppressWarnings("unchecked")
+ public static final <L, R> ImmutablePair<L, R>[] emptyArray() {
+ return (ImmutablePair<L, R>[]) EMPTY_ARRAY;
+ }
+
+ /**
* An immutable pair of nulls.
*/
// This is not defined with generics to avoid warnings in call sites.
diff --git a/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java b/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java
index 2d9dda6..baf4ad1 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java
@@ -35,6 +35,28 @@ package org.apache.commons.lang3.tuple;
public final class ImmutableTriple<L, M, R> extends Triple<L, M, R> {
/**
+ * An empty array.
+ * <p>
+ * Consider using {@link #emptyArray()} to avoid generics warnings.
+ * </p>
+ *
+ * @since 3.10.
+ */
+ public static final ImmutableTriple<?, ?, ?>[] EMPTY_ARRAY = new ImmutableTriple[0];
+
+ /**
+ * Returns the empty array singleton that can be assigned without compiler warning.
+ *
+ * @return the empty array singleton that can be assigned without compiler warning.
+ *
+ * @since 3.10.
+ */
+ @SuppressWarnings("unchecked")
+ public static final <L, M, R> ImmutableTriple<L, M, R>[] emptyArray() {
+ return (ImmutableTriple<L, M, R>[]) EMPTY_ARRAY;
+ }
+
+ /**
* An immutable triple of nulls.
*/
// This is not defined with generics to avoid warnings in call sites.
diff --git a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
index 386988b..1779b58 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
@@ -28,6 +28,28 @@ package org.apache.commons.lang3.tuple;
*/
public class MutablePair<L, R> extends Pair<L, R> {
+ /**
+ * An empty array.
+ * <p>
+ * Consider using {@link #emptyArray()} to avoid generics warnings.
+ * </p>
+ *
+ * @since 3.10.
+ */
+ public static final MutablePair<?, ?>[] EMPTY_ARRAY = new MutablePair[0];
+
+ /**
+ * Returns the empty array singleton that can be assigned without compiler warning.
+ *
+ * @return the empty array singleton that can be assigned without compiler warning.
+ *
+ * @since 3.10.
+ */
+ @SuppressWarnings("unchecked")
+ public static final <L, R> MutablePair<L, R>[] emptyArray() {
+ return (MutablePair<L, R>[]) EMPTY_ARRAY;
+ }
+
/** Serialization version */
private static final long serialVersionUID = 4954918890077093841L;
diff --git a/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java b/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java
index f5d92be..cfd8bf3 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java
@@ -29,6 +29,28 @@ package org.apache.commons.lang3.tuple;
*/
public class MutableTriple<L, M, R> extends Triple<L, M, R> {
+ /**
+ * The empty array singleton.
+ * <p>
+ * Consider using {@link #emptyArray()} to avoid generics warnings.
+ * </p>
+ *
+ * @since 3.10.
+ */
+ public static final MutableTriple<?, ?, ?>[] EMPTY_ARRAY = new MutableTriple[0];
+
+ /**
+ * Returns the empty array singleton that can be assigned without compiler warning.
+ *
+ * @return the empty array singleton that can be assigned without compiler warning.
+ *
+ * @since 3.10.
+ */
+ @SuppressWarnings("unchecked")
+ public static final <L, M, R> MutableTriple<L, M, R>[] emptyArray() {
+ return (MutableTriple<L, M, R>[]) EMPTY_ARRAY;
+ }
+
/** Serialization version */
private static final long serialVersionUID = 1L;
diff --git a/src/test/java/org/apache/commons/lang3/tuple/ImmutablePairTest.java b/src/test/java/org/apache/commons/lang3/tuple/ImmutablePairTest.java
index 2aca73c..896840c 100644
--- a/src/test/java/org/apache/commons/lang3/tuple/ImmutablePairTest.java
+++ b/src/test/java/org/apache/commons/lang3/tuple/ImmutablePairTest.java
@@ -40,6 +40,19 @@ import org.junit.jupiter.api.Test;
public class ImmutablePairTest {
@Test
+ public void testEmptyArrayLength() {
+ @SuppressWarnings("unchecked")
+ final ImmutablePair<Integer, String>[] empty = (ImmutablePair<Integer, String>[]) ImmutablePair.EMPTY_ARRAY;
+ assertEquals(0, empty.length);
+ }
+
+ @Test
+ public void testEmptyArrayGenerics() {
+ final ImmutablePair<Integer, String>[] empty = ImmutablePair.emptyArray();
+ assertEquals(0, empty.length);
+ }
+
+ @Test
public void testBasic() {
final ImmutablePair<Integer, String> pair = new ImmutablePair<>(0, "foo");
assertEquals(0, pair.left.intValue());
diff --git a/src/test/java/org/apache/commons/lang3/tuple/ImmutableTripleTest.java b/src/test/java/org/apache/commons/lang3/tuple/ImmutableTripleTest.java
index fc27ac8..02014e9 100644
--- a/src/test/java/org/apache/commons/lang3/tuple/ImmutableTripleTest.java
+++ b/src/test/java/org/apache/commons/lang3/tuple/ImmutableTripleTest.java
@@ -40,6 +40,19 @@ import org.junit.jupiter.api.Test;
public class ImmutableTripleTest {
@Test
+ public void testEmptyArrayLength() {
+ @SuppressWarnings("unchecked")
+ final ImmutableTriple<Integer, String, Boolean>[] empty = (ImmutableTriple<Integer, String, Boolean>[]) ImmutableTriple.EMPTY_ARRAY;
+ assertEquals(0, empty.length);
+ }
+
+ @Test
+ public void testEmptyArrayGenerics() {
+ final ImmutableTriple<Integer, String, Boolean>[] empty = ImmutableTriple.emptyArray();
+ assertEquals(0, empty.length);
+ }
+
+ @Test
public void testBasic() {
final ImmutableTriple<Integer, String, Boolean> triple = new ImmutableTriple<>(0, "foo", Boolean.TRUE);
assertEquals(0, triple.left.intValue());
diff --git a/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java b/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java
index 2e2da23..f138c97 100644
--- a/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java
+++ b/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java
@@ -33,6 +33,19 @@ import org.junit.jupiter.api.Test;
public class MutablePairTest {
@Test
+ public void testEmptyArrayLength() {
+ @SuppressWarnings("unchecked")
+ final MutablePair<Integer, String>[] empty = (MutablePair<Integer, String>[]) MutablePair.EMPTY_ARRAY;
+ assertEquals(0, empty.length);
+ }
+
+ @Test
+ public void testEmptyArrayGenerics() {
+ final MutablePair<Integer, String>[] empty = MutablePair.emptyArray();
+ assertEquals(0, empty.length);
+ }
+
+ @Test
public void testBasic() {
final MutablePair<Integer, String> pair = new MutablePair<>(0, "foo");
assertEquals(0, pair.getLeft().intValue());
diff --git a/src/test/java/org/apache/commons/lang3/tuple/MutableTripleTest.java b/src/test/java/org/apache/commons/lang3/tuple/MutableTripleTest.java
index 0c513c6..626f6a6 100644
--- a/src/test/java/org/apache/commons/lang3/tuple/MutableTripleTest.java
+++ b/src/test/java/org/apache/commons/lang3/tuple/MutableTripleTest.java
@@ -33,6 +33,19 @@ import org.junit.jupiter.api.Test;
public class MutableTripleTest {
@Test
+ public void testEmptyArrayLength() {
+ @SuppressWarnings("unchecked")
+ final MutableTriple<Integer, String, Boolean>[] empty = (MutableTriple<Integer, String, Boolean>[]) MutableTriple.EMPTY_ARRAY;
+ assertEquals(0, empty.length);
+ }
+
+ @Test
+ public void testEmptyArrayGenerics() {
+ final MutableTriple<Integer, String, Boolean>[] empty = MutableTriple.emptyArray();
+ assertEquals(0, empty.length);
+ }
+
+ @Test
public void testBasic() {
final MutableTriple<Integer, String, Boolean> triple = new MutableTriple<>(0, "foo", Boolean.FALSE);
assertEquals(0, triple.getLeft().intValue());