Package mondrian.util

Class Pair<L,R>

java.lang.Object
mondrian.util.Pair<L,R>
All Implemented Interfaces:
Comparable<Pair<L,R>>, Map.Entry<L,R>
Direct Known Subclasses:
SchemaKey

public class Pair<L,R> extends Object implements Comparable<Pair<L,R>>, Map.Entry<L,R>
Pair of values.

Because a pair implements equals(Object), hashCode() and compareTo(Pair), it can be used in any kind of Collection.

Since:
Apr 19, 2007
Author:
jhyde
  • Field Details

    • left

      public L left
  • Constructor Details

    • Pair

      public Pair(L left, R right)
      Creates a pair.
      Parameters:
      left - Left value
      right - Right value
    • Pair

      public Pair(Map.Entry<? extends L,? extends R> entry)
      Creates a pair representing the same mapping as the specified entry.
      Parameters:
      entry - the entry to copy
  • Method Details

    • of

      public static <L, R> Pair<L,R> of(L left, R right)
      Creates a Pair.
      Parameters:
      left - Left value
      right - Right value
      Returns:
      a new Pair
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in interface Map.Entry<L,R>
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in interface Map.Entry<L,R>
      Overrides:
      hashCode in class Object
    • compareTo

      public int compareTo(Pair<L,R> that)
      Specified by:
      compareTo in interface Comparable<L>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getKey

      public L getKey()
      Specified by:
      getKey in interface Map.Entry<L,R>
    • getValue

      public R getValue()
      Specified by:
      getValue in interface Map.Entry<L,R>
    • setValue

      public R setValue(R value)
      Specified by:
      setValue in interface Map.Entry<L,R>
    • leftIter

      public static <L, R> Iterable<L> leftIter(Iterable<Pair<L,R>> iterable)
      Returns an iterable over the left slice of an iterable.
      Type Parameters:
      L - Left type
      R - Right type
      Parameters:
      iterable - Iterable over pairs
      Returns:
      Iterable over the left elements
    • rightIter

      public static <L, R> Iterable<R> rightIter(Iterable<Pair<L,R>> iterable)
      Returns an iterable over the right slice of an iterable.
      Type Parameters:
      L - right type
      R - Right type
      Parameters:
      iterable - Iterable over pairs
      Returns:
      Iterable over the right elements
    • left

      public static <L, R> List<L> left(List<Pair<L,R>> list)
      Returns a list of the left elements of a list of pairs.
    • right

      public static <L, R> List<R> right(List<Pair<L,R>> list)
      Returns a list of the right elements of a list of pairs.