This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit fa72a7a5bf1d5cc830834d48d073f10dd3680668 Author: Andy Seaborne <[email protected]> AuthorDate: Sat Apr 6 14:11:22 2024 +0100 Pair add to map --- .../main/java/org/apache/jena/atlas/lib/Pair.java | 48 +++++++++++++--------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java index 88fdd0b130..4693989dc3 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Pair.java @@ -18,35 +18,45 @@ package org.apache.jena.atlas.lib; -import static org.apache.jena.atlas.lib.Lib.hashCodeObject ; -import static org.apache.jena.atlas.lib.StrUtils.str ; +import static org.apache.jena.atlas.lib.Lib.hashCodeObject; +import static org.apache.jena.atlas.lib.StrUtils.str; +import java.util.Map; import java.util.Objects; +/** A pair */ public class Pair<A, B> { - public static <L, R> Pair<L,R> create(L x, R y) { return new Pair<>(x,y) ; } + public static <L, R> Pair<L,R> create(L x, R y) { return new Pair<>(x,y); } - final A a ; - final B b ; - public Pair(A a, B b) { this.a = a; this.b = b ; } + final A a; + final B b; + public Pair(A a, B b) { this.a = a; this.b = b; } - public A getLeft() { return a ; } - public B getRight() { return b ; } + public A getLeft() { return a; } + public B getRight() { return b; } - public A car() { return a ; } - public B cdr() { return b ; } + public A car() { return a; } + public B cdr() { return b; } + + /** Add to a map using the pair as key-value. */ + public static <L, R> void addToMap(Map<L, R> map, Pair<L, R> pair) { + map.put(pair.getLeft(), pair.getRight()); + } + + /** Add to a map using this pair as key-value. */ + public void addToMap(Map<A, B> map) { + map.put(getLeft(), getRight()); + } @Override - public int hashCode() - { - return hashCodeObject(car()) ^ hashCodeObject(cdr())<<1 ; + public int hashCode() { + return hashCodeObject(car()) ^ hashCodeObject(cdr())<<1; } @Override - public boolean equals(Object other) - { - if ( this == other ) return true ; + public boolean equals(Object other){ + if ( this == other ) return true; // If it's a pair of a different <A,B> then .equals // Pair<A,B>(null,null) is equal to Pair<C,D>(null ,null) @@ -56,14 +66,14 @@ public class Pair<A, B> if ( !(other instanceof Pair<? , ? > p2) ) return false; - return Objects.equals(car(), p2.car()) && Objects.equals(cdr(), p2.cdr()) ; + return Objects.equals(car(), p2.car()) && Objects.equals(cdr(), p2.cdr()); } /** Test whether the arguments are equal to the elements of this pair */ public boolean equalElts(A left, B right) { - return Objects.equals(car(), left) && Objects.equals(cdr(), right) ; + return Objects.equals(car(), left) && Objects.equals(cdr(), right); } @Override - public String toString() { return "("+str(a)+", "+str(b)+")" ; } + public String toString() { return "("+str(a)+", "+str(b)+")"; } }
