aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/apache/commons/lang3/tuple
diff options
context:
space:
mode:
authorGary Gregory <gardgregory@gmail.com>2019-05-10 09:10:40 -0400
committerGary Gregory <gardgregory@gmail.com>2019-05-10 09:10:40 -0400
commit13354cd13269bdf9d1cbe7356f770f8ed8eb2f09 (patch)
treeb67bdca34d56e7cfb1fab5b5f833e5fc26607603 /src/main/java/org/apache/commons/lang3/tuple
parent992e7cf6c8cb1a83c23f2499efe06856ca8b59c4 (diff)
downloadapache-commons-lang-13354cd13269bdf9d1cbe7356f770f8ed8eb2f09.tar.gz
[LANG-1458] Add EMPTY_ARRAY constants to classes in
org.apache.commons.lang3.tuple
Diffstat (limited to 'src/main/java/org/apache/commons/lang3/tuple')
-rw-r--r--src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java2
-rw-r--r--src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java2
-rw-r--r--src/main/java/org/apache/commons/lang3/tuple/MutablePair.java2
-rw-r--r--src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java2
-rw-r--r--src/main/java/org/apache/commons/lang3/tuple/Pair.java45
-rw-r--r--src/main/java/org/apache/commons/lang3/tuple/Triple.java46
6 files changed, 95 insertions, 4 deletions
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 39d1effb3..e494e12b6 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutablePair.java
@@ -53,7 +53,7 @@ public final class ImmutablePair<L, R> extends Pair<L, R> {
* @since 3.10.
*/
@SuppressWarnings("unchecked")
- public static final <L, R> ImmutablePair<L, R>[] emptyArray() {
+ public static <L, R> ImmutablePair<L, R>[] emptyArray() {
return (ImmutablePair<L, R>[]) EMPTY_ARRAY;
}
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 b35234030..2588f6afa 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/ImmutableTriple.java
@@ -55,7 +55,7 @@ public final class ImmutableTriple<L, M, R> extends Triple<L, M, R> {
* @since 3.10.
*/
@SuppressWarnings("unchecked")
- public static final <L, M, R> ImmutableTriple<L, M, R>[] emptyArray() {
+ public static <L, M, R> ImmutableTriple<L, M, R>[] emptyArray() {
return (ImmutableTriple<L, M, R>[]) EMPTY_ARRAY;
}
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 d0e06d938..a4800713a 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java
@@ -48,7 +48,7 @@ public class MutablePair<L, R> extends Pair<L, R> {
* @since 3.10.
*/
@SuppressWarnings("unchecked")
- public static final <L, R> MutablePair<L, R>[] emptyArray() {
+ public static <L, R> MutablePair<L, R>[] emptyArray() {
return (MutablePair<L, R>[]) EMPTY_ARRAY;
}
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 15db8b9e4..4cf9474c5 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/MutableTriple.java
@@ -50,7 +50,7 @@ public class MutableTriple<L, M, R> extends Triple<L, M, R> {
* @since 3.10.
*/
@SuppressWarnings("unchecked")
- public static final <L, M, R> MutableTriple<L, M, R>[] emptyArray() {
+ public static <L, M, R> MutableTriple<L, M, R>[] emptyArray() {
return (MutableTriple<L, M, R>[]) EMPTY_ARRAY;
}
diff --git a/src/main/java/org/apache/commons/lang3/tuple/Pair.java b/src/main/java/org/apache/commons/lang3/tuple/Pair.java
index 55f1f8ac3..1a25f1739 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/Pair.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/Pair.java
@@ -43,6 +43,51 @@ public abstract class Pair<L, R> implements Map.Entry<L, R>, Comparable<Pair<L,
/** Serialization version */
private static final long serialVersionUID = 4954918890077093841L;
+ private static final class PairAdapter<L, R> extends Pair<L, R> {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public L getLeft() {
+ return null;
+ }
+
+ @Override
+ public R getRight() {
+ return null;
+ }
+
+ @Override
+ public R setValue(R value) {
+ return null;
+ }
+
+ }
+
+ /**
+ * An empty array.
+ * <p>
+ * Consider using {@link #emptyArray()} to avoid generics warnings.
+ * </p>
+ *
+ * @since 3.10.
+ */
+ public static final Pair<?, ?>[] EMPTY_ARRAY = new PairAdapter[0];
+
+ /**
+ * Returns the empty array singleton that can be assigned without compiler warning.
+ *
+ * @param <L> the left element type
+ * @param <R> the right element type
+ * @return the empty array singleton that can be assigned without compiler warning.
+ *
+ * @since 3.10.
+ */
+ @SuppressWarnings("unchecked")
+ public static <L, R> Pair<L, R>[] emptyArray() {
+ return (Pair<L, R>[]) EMPTY_ARRAY;
+ }
+
/**
* <p>Obtains an immutable pair of two objects inferring the generic types.</p>
*
diff --git a/src/main/java/org/apache/commons/lang3/tuple/Triple.java b/src/main/java/org/apache/commons/lang3/tuple/Triple.java
index c139a6c27..f99f24636 100644
--- a/src/main/java/org/apache/commons/lang3/tuple/Triple.java
+++ b/src/main/java/org/apache/commons/lang3/tuple/Triple.java
@@ -42,6 +42,52 @@ public abstract class Triple<L, M, R> implements Comparable<Triple<L, M, R>>, Se
/** Serialization version */
private static final long serialVersionUID = 1L;
+ private static final class TripleAdapter<L, M, R> extends Triple<L, M, R> {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public L getLeft() {
+ return null;
+ }
+
+ @Override
+ public M getMiddle() {
+ return null;
+ }
+
+ @Override
+ public R getRight() {
+ return null;
+ }
+
+ }
+
+ /**
+ * An empty array.
+ * <p>
+ * Consider using {@link #emptyArray()} to avoid generics warnings.
+ * </p>
+ *
+ * @since 3.10.
+ */
+ public static final Triple<?, ?, ?>[] EMPTY_ARRAY = new TripleAdapter[0];
+
+ /**
+ * Returns the empty array singleton that can be assigned without compiler warning.
+ *
+ * @param <L> the left element type
+ * @param <M> the middle element type
+ * @param <R> the right element type
+ * @return the empty array singleton that can be assigned without compiler warning.
+ *
+ * @since 3.10.
+ */
+ @SuppressWarnings("unchecked")
+ public static <L, M, R> Triple<L, M, R>[] emptyArray() {
+ return (Triple<L, M, R>[]) EMPTY_ARRAY;
+ }
+
/**
* <p>Obtains an immutable triple of three objects inferring the generic types.</p>
*