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 c140fc8154e8c680aad63239eaaaac14d85d5683 Author: Gary D. Gregory <[email protected]> AuthorDate: Wed Oct 8 17:52:04 2025 -0400 Add MutablePair.ofNonNull(Map.Entry) A variation of PR #1461 --- src/changes/changes.xml | 1 + .../java/org/apache/commons/lang3/tuple/MutablePair.java | 14 ++++++++++++++ .../org/apache/commons/lang3/tuple/MutablePairTest.java | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index c58a798b5..33c80507b 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -55,6 +55,7 @@ The <action> type attribute can be add,update,fix,remove. <action type="add" dev="ggregory" due-to="Gary Gregory">Add SystemProperties.getPath(String, Supplier<Path>).</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add JavaVersion.JAVA_25.</action> <action type="add" dev="ggregory" due-to="Gary Gregory">Add SystemUtils.IS_JAVA_25.</action> + <action type="add" dev="ggregory" due-to="jack5505, Gary Gregory">Add MutablePair.ofNonNull(Map.Entry).</action> <!-- UPDATE --> <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 88 to 89.</action> </release> 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 1940c7a85..71c022346 100644 --- a/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java +++ b/src/main/java/org/apache/commons/lang3/tuple/MutablePair.java @@ -114,6 +114,20 @@ public static <L, R> MutablePair<L, R> ofNonNull(final L left, final R right) { return of(Objects.requireNonNull(left, "left"), Objects.requireNonNull(right, "right")); } + /** + * Creates a mutable pair from a map entry. + * + * @param <L> the left element type + * @param <R> the right element type + * @param pair the existing map entry. + * @return a mutable pair formed from the map entry + * @throws NullPointerException if the pair is null. + * @since 3.20 + */ + public static <L, R> MutablePair<L, R> ofNonNull(final Map.Entry<L, R> pair) { + return of(Objects.requireNonNull(pair, "pair")); + } + /** Left object. */ public L left; 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 84157dce7..b45df091f 100644 --- a/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java +++ b/src/test/java/org/apache/commons/lang3/tuple/MutablePairTest.java @@ -114,6 +114,15 @@ void testOfNonNull() { assertEquals("y", pair.right); } + @Test + void testOfNonNullMapEntry() { + assertNullPointerException(() -> MutablePair.ofNonNull(null)); + final Pair<Integer, String> pair = Pair.of(0, "foo"); + final MutablePair<Integer, String> mutablePair = MutablePair.ofNonNull(pair); + assertEquals(pair.getLeft(), mutablePair.getLeft()); + assertEquals(pair.getRight(), mutablePair.getRight()); + } + @Test void testPairOfMapEntry() { assertNull(MutablePair.of(null).getLeft());
