io.vlingo.common.Tuple2 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of vlingo-common Show documentation
Show all versions of vlingo-common Show documentation
These are just a few common tools shared across various vlingo projects.
// Copyright © 2012-2020 VLINGO LABS. All rights reserved.
//
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v. 2.0. If a copy of the MPL
// was not distributed with this file, You can obtain
// one at https://mozilla.org/MPL/2.0/.
package io.vlingo.common;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
public class Tuple2 {
public final A _1;
public final B _2;
public static Tuple2 from(final A a, final B b) {
return new Tuple2(a, b);
}
public static Tuple2 tuple(final A a, final B b) {
return new Tuple2(a, b);
}
@SuppressWarnings("unchecked")
void forEach(final Consumer super T> consumer) {
consumer.accept((T) _1);
consumer.accept((T) _2);
}
@SuppressWarnings("unchecked")
Collection map(final Function super TA, ? super TB> function) {
final List list = new ArrayList<>(2);
list.add((TB) function.apply((TA) _1));
list.add((TB) function.apply((TA) _2));
return list;
}
private Tuple2(final A a, final B b) {
this._1 = a;
this._2 = b;
}
@Override
public String toString() {
return "Tuple2 [_1=" + _1 + ", _2=" + _2 + "]";
}
}