org.javatuples.Quartet 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;
import org.javatuples.valueintf.IValue3;
/**
*
* A tuple of four elements.
*
*
* @since 1.0
*
* @author Daniel Fernández
*
*/
public final class Quartet
extends Tuple
implements IValue0,
IValue1,
IValue2,
IValue3 {
private static final long serialVersionUID = 2445136048617019549L;
private static final int SIZE = 4;
private final A val0;
private final B val1;
private final C val2;
private final D val3;
public static Quartet with(final A value0, final B value1, final C value2, final D value3) {
return new Quartet(value0,value1,value2,value3);
}
/**
*
* Create tuple from array. Array has to have exactly four elements.
*
*
* @param the array component type
* @param array the array to be converted to a tuple
* @return the tuple
*/
public static Quartet fromArray(final X[] array) {
if (array == null) {
throw new IllegalArgumentException("Array cannot be null");
}
if (array.length != 4) {
throw new IllegalArgumentException("Array must have exactly 4 elements in order to create a Quartet. Size is " + array.length);
}
return new Quartet(array[0],array[1],array[2],array[3]);
}
/**
*
* Create tuple from collection. Collection has to have exactly four elements.
*
*
* @param the collection component type
* @param collection the collection to be converted to a tuple
* @return the tuple
*/
public static Quartet fromCollection(final Collection collection) {
return fromIterable(collection);
}
/**
*
* Create tuple from iterable. Iterable has to have exactly four elements.
*
*
* @param the iterable component type
* @param iterable the iterable to be converted to a tuple
* @return the tuple
*/
public static Quartet 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 Quartet fromIterable(final Iterable iterable, int index) {
return fromIterable(iterable, index, false);
}
private static Quartet 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;
X element3 = 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 (iter.hasNext()) {
element3 = iter.next();
} else {
tooFewElements = true;
}
if (tooFewElements && exactSize) {
throw new IllegalArgumentException("Not enough elements for creating a Quartet (4 needed)");
}
if (iter.hasNext() && exactSize) {
throw new IllegalArgumentException("Iterable must have exactly 4 available elements in order to create a Quartet.");
}
return new Quartet(element0, element1, element2, element3);
}
public Quartet(
final A value0,
final B value1,
final C value2,
final D value3) {
super(value0, value1, value2, value3);
this.val0 = value0;
this.val1 = value1;
this.val2 = value2;
this.val3 = value3;
}
public A getValue0() {
return this.val0;
}
public B getValue1() {
return this.val1;
}
public C getValue2() {
return this.val2;
}
public D getValue3() {
return this.val3;
}
@Override
public int getSize() {
return SIZE;
}
public Quintet addAt0(final X0 value0) {
return new Quintet(
value0, this.val0, this.val1, this.val2, this.val3);
}
public Quintet addAt1(final X0 value0) {
return new Quintet(
this.val0, value0, this.val1, this.val2, this.val3);
}
public Quintet addAt2(final X0 value0) {
return new Quintet(
this.val0, this.val1, value0, this.val2, this.val3);
}
public Quintet addAt3(final X0 value0) {
return new Quintet(
this.val0, this.val1, this.val2, value0, this.val3);
}
public Quintet addAt4(final X0 value0) {
return new Quintet(
this.val0, this.val1, this.val2, this.val3, value0);
}
public Sextet addAt0(final X0 value0, final X1 value1) {
return new Sextet(
value0, value1, this.val0, this.val1, this.val2, this.val3);
}
public Sextet addAt1(final X0 value0, final X1 value1) {
return new Sextet(
this.val0, value0, value1, this.val1, this.val2, this.val3);
}
public Sextet addAt2(final X0 value0, final X1 value1) {
return new Sextet(
this.val0, this.val1, value0, value1, this.val2, this.val3);
}
public Sextet addAt3(final X0 value0, final X1 value1) {
return new Sextet(
this.val0, this.val1, this.val2, value0, value1, this.val3);
}
public Sextet addAt4(final X0 value0, final X1 value1) {
return new Sextet(
this.val0, this.val1, this.val2, this.val3, value0, value1);
}
public Septet addAt0(final X0 value0, final X1 value1, final X2 value2) {
return new Septet(
value0, value1, value2, this.val0, this.val1, this.val2, this.val3);
}
public Septet addAt1(final X0 value0, final X1 value1, final X2 value2) {
return new Septet(
this.val0, value0, value1, value2, this.val1, this.val2, this.val3);
}
public Septet addAt2(final X0 value0, final X1 value1, final X2 value2) {
return new Septet(
this.val0, this.val1, value0, value1, value2, this.val2, this.val3);
}
public Septet addAt3(final X0 value0, final X1 value1, final X2 value2) {
return new Septet(
this.val0, this.val1, this.val2, value0, value1, value2, this.val3);
}
public Septet addAt4(final X0 value0, final X1 value1, final X2 value2) {
return new Septet(
this.val0, this.val1, this.val2, this.val3, value0, value1, value2);
}
public Octet addAt0(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Octet(
value0, value1, value2, value3, this.val0, this.val1, this.val2, this.val3);
}
public Octet addAt1(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Octet(
this.val0, value0, value1, value2, value3, this.val1, this.val2, this.val3);
}
public Octet addAt2(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Octet(
this.val0, this.val1, value0, value1, value2, value3, this.val2, this.val3);
}
public Octet addAt3(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Octet(
this.val0, this.val1, this.val2, value0, value1, value2, value3, this.val3);
}
public Octet addAt4(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return new Octet(
this.val0, this.val1, this.val2, this.val3, value0, value1, value2, value3);
}
public Ennead addAt0(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Ennead(
value0, value1, value2, value3, value4, this.val0, this.val1, this.val2, this.val3);
}
public Ennead addAt1(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Ennead(
this.val0, value0, value1, value2, value3, value4, this.val1, this.val2, this.val3);
}
public Ennead addAt2(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Ennead(
this.val0, this.val1, value0, value1, value2, value3, value4, this.val2, this.val3);
}
public Ennead addAt3(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Ennead(
this.val0, this.val1, this.val2, value0, value1, value2, value3, value4, this.val3);
}
public Ennead addAt4(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return new Ennead(
this.val0, this.val1, this.val2, this.val3, value0, value1, value2, value3, value4);
}
public Decade addAt0(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Decade(
value0, value1, value2, value3, value4, value5, this.val0, this.val1, this.val2, this.val3);
}
public Decade addAt1(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Decade(
this.val0, value0, value1, value2, value3, value4, value5, this.val1, this.val2, this.val3);
}
public Decade addAt2(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Decade(
this.val0, this.val1, value0, value1, value2, value3, value4, value5, this.val2, this.val3);
}
public Decade addAt3(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Decade(
this.val0, this.val1, this.val2, value0, value1, value2, value3, value4, value5, this.val3);
}
public Decade addAt4(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return new Decade(
this.val0, this.val1, this.val2, this.val3, value0, value1, value2, value3, value4, value5);
}
public Quintet addAt0(final Unit tuple) {
return addAt0(tuple.getValue0());
}
public Quintet addAt1(final Unit tuple) {
return addAt1(tuple.getValue0());
}
public Quintet addAt2(final Unit tuple) {
return addAt2(tuple.getValue0());
}
public Quintet addAt3(final Unit tuple) {
return addAt3(tuple.getValue0());
}
public Quintet addAt4(final Unit tuple) {
return addAt4(tuple.getValue0());
}
public Sextet addAt0(final Pair tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1());
}
public Sextet addAt1(final Pair tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1());
}
public Sextet addAt2(final Pair tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1());
}
public Sextet addAt3(final Pair tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1());
}
public Sextet addAt4(final Pair tuple) {
return addAt4(tuple.getValue0(),tuple.getValue1());
}
public Septet addAt0(final Triplet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Septet addAt1(final Triplet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Septet addAt2(final Triplet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Septet addAt3(final Triplet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Septet addAt4(final Triplet tuple) {
return addAt4(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Octet addAt0(final Quartet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Octet addAt1(final Quartet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Octet addAt2(final Quartet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Octet addAt3(final Quartet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Octet addAt4(final Quartet tuple) {
return addAt4(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3());
}
public Ennead addAt0(final Quintet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Ennead addAt1(final Quintet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Ennead addAt2(final Quintet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Ennead addAt3(final Quintet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Ennead addAt4(final Quintet tuple) {
return addAt4(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4());
}
public Decade addAt0(final Sextet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Decade addAt1(final Sextet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Decade addAt2(final Sextet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Decade addAt3(final Sextet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Decade addAt4(final Sextet tuple) {
return addAt4(tuple.getValue0(),tuple.getValue1(),tuple.getValue2(),tuple.getValue3(),tuple.getValue4(),tuple.getValue5());
}
public Quintet add(final X0 value0) {
return addAt4(value0);
}
public Quintet add(final Unit tuple) {
return addAt4(tuple);
}
public Sextet add(final X0 value0, final X1 value1) {
return addAt4(value0, value1);
}
public Sextet add(final Pair tuple) {
return addAt4(tuple);
}
public Septet add(final X0 value0, final X1 value1, final X2 value2) {
return addAt4(value0, value1, value2);
}
public Septet add(final Triplet tuple) {
return addAt4(tuple);
}
public Octet add(final X0 value0, final X1 value1, final X2 value2, final X3 value3) {
return addAt4(value0, value1, value2, value3);
}
public Octet add(final Quartet tuple) {
return addAt4(tuple);
}
public Ennead add(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4) {
return addAt4(value0, value1, value2, value3, value4);
}
public Ennead add(final Quintet tuple) {
return addAt4(tuple);
}
public Decade add(final X0 value0, final X1 value1, final X2 value2, final X3 value3, final X4 value4, final X5 value5) {
return addAt4(value0, value1, value2, value3, value4, value5);
}
public Decade add(final Sextet tuple) {
return addAt4(tuple);
}
public Quartet setAt0(final X value) {
return new Quartet(
value, this.val1, this.val2, this.val3);
}
public Quartet setAt1(final X value) {
return new Quartet(
this.val0, value, this.val2, this.val3);
}
public Quartet setAt2(final X value) {
return new Quartet(
this.val0, this.val1, value, this.val3);
}
public Quartet setAt3(final X value) {
return new Quartet(
this.val0, this.val1, this.val2, value);
}
public Triplet removeFrom0() {
return new Triplet(
this.val1, this.val2, this.val3);
}
public Triplet removeFrom1() {
return new Triplet(
this.val0, this.val2, this.val3);
}
public Triplet removeFrom2() {
return new Triplet(
this.val0, this.val1, this.val3);
}
public Triplet removeFrom3() {
return new Triplet(
this.val0, this.val1, this.val2);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy