org.javatuples.Triplet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of driver-cql-shaded Show documentation
Show all versions of driver-cql-shaded Show documentation
A Shaded CQL ActivityType driver for http://nosqlbench.io/
/*
* =============================================================================
*
* Copyright (c) 2010, The JAVATUPLES team (http://www.javatuples.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* =============================================================================
*/
package org.javatuples;
import java.util.Collection;
import java.util.Iterator;
import org.javatuples.valueintf.IValue0;
import org.javatuples.valueintf.IValue1;
import org.javatuples.valueintf.IValue2;
/**
*
* A tuple of three elements.
*
*
* @since 1.0
*
* @author Daniel Fernández
*
*/
public final class Triplet
extends Tuple
implements IValue0,
IValue1,
IValue2 {
private static final long serialVersionUID = -1877265551599483740L;
private static final int SIZE = 3;
private final A val0;
private final B val1;
private final C val2;
public static Triplet with(final A value0, final B value1, final C value2) {
return new Triplet(value0,value1,value2);
}
/**
*
* Create tuple from array. Array has to have exactly three elements.
*
*
* @param the array component type
* @param array the array to be converted to a tuple
* @return the tuple
*/
public static Triplet fromArray(final X[] array) {
if (array == null) {
throw new IllegalArgumentException("Array cannot be null");
}
if (array.length != 3) {
throw new IllegalArgumentException("Array must have exactly 3 elements in order to create a Triplet. Size is " + array.length);
}
return new Triplet(array[0],array[1],array[2]);
}
/**
*
* Create tuple from collection. Collection has to have exactly three elements.
*
*
* @param the collection component type
* @param collection the collection to be converted to a tuple
* @return the tuple
*/
public static Triplet fromCollection(final Collection collection) {
return fromIterable(collection);
}
/**
*
* Create tuple from iterable. Iterable has to have exactly three elements.
*
*
* @param the iterable component type
* @param iterable the iterable to be converted to a tuple
* @return the tuple
*/
public static Triplet fromIterable(final Iterable iterable) {
return fromIterable(iterable, 0, true);
}
/**
*
* Create tuple from iterable, starting from the specified index. Iterable
* can have more (or less) elements than the tuple to be created.
*
*
* @param the iterable component type
* @param iterable the iterable to be converted to a tuple
* @return the tuple
*/
public static Triplet fromIterable(final Iterable iterable, int index) {
return fromIterable(iterable, index, false);
}
private static Triplet fromIterable(final Iterable iterable, int index, final boolean exactSize) {
if (iterable == null) {
throw new IllegalArgumentException("Iterable cannot be null");
}
boolean tooFewElements = false;
X element0 = null;
X element1 = null;
X element2 = null;
final Iterator iter = iterable.iterator();
int i = 0;
while (i < index) {
if (iter.hasNext()) {
iter.next();
} else {
tooFewElements = true;
}
i++;
}
if (iter.hasNext()) {
element0 = iter.next();
} else {
tooFewElements = true;
}
if (iter.hasNext()) {
element1 = iter.next();
} else {
tooFewElements = true;
}
if (iter.hasNext()) {
element2 = iter.next();
} else {
tooFewElements = true;
}
if (tooFewElements && exactSize) {
throw new IllegalArgumentException("Not enough elements for creating a Triplet (3 needed)");
}
if (iter.hasNext() && exactSize) {
throw new IllegalArgumentException("Iterable must have exactly 3 available elements in order to create a Triplet.");
}
return new Triplet(element0, element1, element2);
}
public Triplet(
final A value0,
final B value1,
final C value2) {
super(value0, value1, value2);
this.val0 = value0;
this.val1 = value1;
this.val2 = value2;
}
public A getValue0() {
return this.val0;
}
public B getValue1() {
return this.val1;
}
public C getValue2() {
return this.val2;
}
@Override
public int getSize() {
return SIZE;
}
public Quartet addAt0(final X0 value0) {
return new Quartet(
value0, this.val0, this.val1, this.val2);
}
public Quartet addAt1(final X0 value0) {
return new Quartet(
this.val0, value0, this.val1, this.val2);
}
public Quartet addAt2(final X0 value0) {
return new Quartet(
this.val0, this.val1, value0, this.val2);
}
public Quartet addAt3(final X0 value0) {
return new Quartet(
this.val0, this.val1, this.val2, value0);
}
public Quintet addAt0(final X0 value0, final X1 value1) {
return new Quintet(
value0, value1, this.val0, this.val1, this.val2);
}
public Quintet addAt1(final X0 value0, final X1 value1) {
return new Quintet(
this.val0, value0, value1, this.val1, this.val2);
}
public Quintet addAt2(final X0 value0, final X1 value1) {
return new Quintet(
this.val0, this.val1, value0, value1, this.val2);
}
public Quintet addAt3(final X0 value0, final X1 value1) {
return new Quintet(
this.val0, this.val1, this.val2, value0, value1);
}
public Sextet addAt0(final X0 value0, final X1 value1, final X2 value2) {
return new Sextet(
value0, value1, value2, this.val0, this.val1, this.val2);
}
public Sextet addAt1(final X0 value0, final X1 value1, final X2 value2) {
return new Sextet(
this.val0, value0, value1, value2, this.val1, this.val2);
}
public Sextet addAt2(final X0 value0, final X1 value1, final X2 value2) {
return new Sextet(
this.val0, this.val1, value0, value1, value2, this.val2);
}
public Sextet addAt3(final X0 value0, final X1 value1, final X2 value2) {
return new Sextet(
this.val0, this.val1, this.val2, value0, value1, value2);
}
public Septet addAt0(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Septet(
value0, value1, value2, value3, this.val0, this.val1, this.val2);
}
public Septet addAt1(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Septet(
this.val0, value0, value1, value2, value3, this.val1, this.val2);
}
public Septet addAt2(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Septet(
this.val0, this.val1, value0, value1, value2, value3, this.val2);
}
public Septet addAt3(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Septet(
this.val0, this.val1, this.val2, value0, value1, value2, value3);
}
public Octet addAt0(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Octet(
value0, value1, value2, value3, value4, this.val0, this.val1, this.val2);
}
public Octet addAt1(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Octet(
this.val0, value0, value1, value2, value3, value4, this.val1, this.val2);
}
public Octet addAt2(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Octet(
this.val0, this.val1, value0, value1, value2, value3, value4, this.val2);
}
public Octet addAt3(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Octet(
this.val0, this.val1, this.val2, value0, value1, value2, value3, value4);
}
public Ennead addAt0(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Ennead(
value0, value1, value2, value3, value4, value5, this.val0, this.val1, this.val2);
}
public Ennead addAt1(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Ennead(
this.val0, value0, value1, value2, value3, value4, value5, this.val1, this.val2);
}
public Ennead addAt2(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Ennead(
this.val0, this.val1, value0, value1, value2, value3, value4, value5, this.val2);
}
public Ennead addAt3(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Ennead(
this.val0, this.val1, this.val2, value0, value1, value2, value3, value4, value5);
}
public Decade addAt0(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5, final X6 value6) {
return new Decade(
value0, value1, value2, value3, value4, value5, value6, this.val0, this.val1, this.val2);
}
public Decade addAt1(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5, final X6 value6) {
return new Decade(
this.val0, value0, value1, value2, value3, value4, value5, value6, this.val1, this.val2);
}
public Decade addAt2(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5, final X6 value6) {
return new Decade(
this.val0, this.val1, value0, value1, value2, value3, value4, value5, value6, this.val2);
}
public Decade addAt3(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5, final X6 value6) {
return new Decade(
this.val0, this.val1, this.val2, value0, value1, value2, value3, value4, value5, value6);
}
public Quartet addAt0(final Unit tuple) {
return addAt0(tuple.getValue0());
}
public Quartet addAt1(final Unit tuple) {
return addAt1(tuple.getValue0());
}
public Quartet addAt2(final Unit tuple) {
return addAt2(tuple.getValue0());
}
public Quartet addAt3(final Unit tuple) {
return addAt3(tuple.getValue0());
}
public Quintet addAt0(final Pair tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1());
}
public Quintet addAt1(final Pair tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1());
}
public Quintet addAt2(final Pair tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1());
}
public Quintet addAt3(final Pair tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1());
}
public Sextet addAt0(final Triplet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Sextet addAt1(final Triplet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Sextet addAt2(final Triplet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Sextet addAt3(final Triplet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Septet addAt0(final Quartet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Septet addAt1(final Quartet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Septet addAt2(final Quartet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Septet addAt3(final Quartet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Octet addAt0(final Quintet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Octet addAt1(final Quintet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Octet addAt2(final Quintet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Octet addAt3(final Quintet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Ennead addAt0(final Sextet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Ennead addAt1(final Sextet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Ennead addAt2(final Sextet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Ennead addAt3(final Sextet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Decade addAt0(final Septet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5(),tuple.getValue6());
}
public Decade addAt1(final Septet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5(),tuple.getValue6());
}
public Decade addAt2(final Septet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5(),tuple.getValue6());
}
public Decade addAt3(final Septet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5(),tuple.getValue6());
}
public Quartet add(final X0 value0) {
return addAt3(value0);
}
public Quartet add(final Unit tuple) {
return addAt3(tuple);
}
public Quintet add(final X0 value0, final X1 value1) {
return addAt3(value0, value1);
}
public Quintet add(final Pair tuple) {
return addAt3(tuple);
}
public Sextet add(final X0 value0, final X1 value1, final X2 value2) {
return addAt3(value0, value1, value2);
}
public Sextet add(final Triplet tuple) {
return addAt3(tuple);
}
public Septet add(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return addAt3(value0, value1, value2, value3);
}
public Septet add(final Quartet tuple) {
return addAt3(tuple);
}
public Octet add(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return addAt3(value0, value1, value2, value3, value4);
}
public Octet add(final Quintet tuple) {
return addAt3(tuple);
}
public Ennead add(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return addAt3(value0, value1, value2, value3, value4, value5);
}
public Ennead add(final Sextet tuple) {
return addAt3(tuple);
}
public Decade add(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5, final X6 value6) {
return addAt3(value0, value1, value2, value3, value4, value5, value6);
}
public Decade add(final Septet tuple) {
return addAt3(tuple);
}
public Triplet setAt0(final X value) {
return new Triplet(
value, this.val1, this.val2);
}
public Triplet setAt1(final X value) {
return new Triplet(
this.val0, value, this.val2);
}
public Triplet setAt2(final X value) {
return new Triplet(
this.val0, this.val1, value);
}
public Pair removeFrom0() {
return new Pair(
this.val1, this.val2);
}
public Pair removeFrom1() {
return new Pair(
this.val0, this.val2);
}
public Pair removeFrom2() {
return new Pair(
this.val0, this.val1);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy