org.javatuples.Septet Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javatuples Show documentation
Show all versions of javatuples Show documentation
Java library for tuples in Java.
The newest version!
/*
* =============================================================================
*
* 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;
import org.javatuples.valueintf.IValue4;
import org.javatuples.valueintf.IValue5;
import org.javatuples.valueintf.IValue6;
/**
*
* A tuple of seven elements.
*
*
* @since 1.0
*
* @author Daniel Fernández
*
*/
public final class Septet
extends Tuple
implements IValue0,
IValue1,
IValue2,
IValue3,
IValue4,
IValue5,
IValue6 {
private static final long serialVersionUID = -2133846648934305169L;
private static final int SIZE = 7;
private final A val0;
private final B val1;
private final C val2;
private final D val3;
private final E val4;
private final F val5;
private final G val6;
public static Septet with(final A value0, final B value1, final C value2, final D value3, final E value4, final F value5, final G value6) {
return new Septet(value0,value1,value2,value3,value4,value5,value6);
}
/**
*
* Create tuple from array. Array has to have exactly seven elements.
*
*
* @param the array component type
* @param array the array to be converted to a tuple
* @return the tuple
*/
public static Septet fromArray(final X[] array) {
if (array == null) {
throw new IllegalArgumentException("Array cannot be null");
}
if (array.length != 7) {
throw new IllegalArgumentException("Array must have exactly 7 elements in order to create a Septet. Size is " + array.length);
}
return new Septet(
array[0],array[1],array[2],array[3],array[4],
array[5],array[6]);
}
/**
*
* Create tuple from collection. Collection has to have exactly seven elements.
*
*
* @param the collection component type
* @param collection the collection to be converted to a tuple
* @return the tuple
*/
public static Septet fromCollection(final Collection collection) {
return fromIterable(collection);
}
/**
*
* Create tuple from iterable. Iterable has to have exactly seven elements.
*
*
* @param the iterable component type
* @param iterable the iterable to be converted to a tuple
* @return the tuple
*/
public static Septet 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 Septet fromIterable(final Iterable iterable, int index) {
return fromIterable(iterable, index, false);
}
private static Septet 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;
X element4 = null;
X element5 = null;
X element6 = 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 (iter.hasNext()) {
element4 = iter.next();
} else {
tooFewElements = true;
}
if (iter.hasNext()) {
element5 = iter.next();
} else {
tooFewElements = true;
}
if (iter.hasNext()) {
element6 = iter.next();
} else {
tooFewElements = true;
}
if (tooFewElements && exactSize) {
throw new IllegalArgumentException("Not enough elements for creating a Septet (7 needed)");
}
if (iter.hasNext() && exactSize) {
throw new IllegalArgumentException("Iterable must have exactly 7 available elements in order to create a Septet.");
}
return new Septet(
element0, element1, element2, element3, element4,
element5, element6);
}
public Septet(
final A value0,
final B value1,
final C value2,
final D value3,
final E value4,
final F value5,
final G value6) {
super(value0, value1, value2, value3, value4, value5, value6);
this.val0 = value0;
this.val1 = value1;
this.val2 = value2;
this.val3 = value3;
this.val4 = value4;
this.val5 = value5;
this.val6 = value6;
}
public A getValue0() {
return this.val0;
}
public B getValue1() {
return this.val1;
}
public C getValue2() {
return this.val2;
}
public D getValue3() {
return this.val3;
}
public E getValue4() {
return this.val4;
}
public F getValue5() {
return this.val5;
}
public G getValue6() {
return this.val6;
}
@Override
public int getSize() {
return SIZE;
}
public Octet addAt0(final X0 value0) {
return new Octet(
value0, this.val0, this.val1, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Octet addAt1(final X0 value0) {
return new Octet(
this.val0, value0, this.val1, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Octet addAt2(final X0 value0) {
return new Octet(
this.val0, this.val1, value0, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Octet addAt3(final X0 value0) {
return new Octet(
this.val0, this.val1, this.val2, value0, this.val3, this.val4, this.val5,
this.val6);
}
public Octet addAt4(final X0 value0) {
return new Octet(
this.val0, this.val1, this.val2, this.val3, value0, this.val4, this.val5,
this.val6);
}
public Octet addAt5(final X0 value0) {
return new Octet(
this.val0, this.val1, this.val2, this.val3, this.val4, value0, this.val5,
this.val6);
}
public Octet addAt6(final X0 value0) {
return new Octet(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5, value0,
this.val6);
}
public Octet addAt7(final X0 value0) {
return new Octet(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5, this.val6,
value0);
}
public Ennead addAt0(final X0 value0, final X1 value1) {
return new Ennead(
value0, value1, this.val0, this.val1, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Ennead addAt1(final X0 value0, final X1 value1) {
return new Ennead(
this.val0, value0, value1, this.val1, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Ennead addAt2(final X0 value0, final X1 value1) {
return new Ennead(
this.val0, this.val1, value0, value1, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Ennead addAt3(final X0 value0, final X1 value1) {
return new Ennead(
this.val0, this.val1, this.val2, value0, value1, this.val3, this.val4, this.val5,
this.val6);
}
public Ennead addAt4(final X0 value0, final X1 value1) {
return new Ennead(
this.val0, this.val1, this.val2, this.val3, value0, value1, this.val4, this.val5,
this.val6);
}
public Ennead addAt5(final X0 value0, final X1 value1) {
return new Ennead(
this.val0, this.val1, this.val2, this.val3, this.val4, value0, value1, this.val5,
this.val6);
}
public Ennead addAt6(final X0 value0, final X1 value1) {
return new Ennead(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5, value0, value1,
this.val6);
}
public Ennead addAt7(final X0 value0, final X1 value1) {
return new Ennead(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5, this.val6,
value0, value1);
}
public Decade addAt0(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
value0, value1, value2, this.val0, this.val1, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Decade addAt1(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
this.val0, value0, value1, value2, this.val1, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Decade addAt2(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
this.val0, this.val1, value0, value1, value2, this.val2, this.val3, this.val4, this.val5,
this.val6);
}
public Decade addAt3(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
this.val0, this.val1, this.val2, value0, value1, value2, this.val3, this.val4, this.val5,
this.val6);
}
public Decade addAt4(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
this.val0, this.val1, this.val2, this.val3, value0, value1, value2, this.val4, this.val5,
this.val6);
}
public Decade addAt5(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
this.val0, this.val1, this.val2, this.val3, this.val4, value0, value1, value2, this.val5,
this.val6);
}
public Decade addAt6(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5, value0, value1,
value2, this.val6);
}
public Decade addAt7(final X0 value0, final X1 value1, final X2 value2) {
return new Decade(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5, this.val6,
value0, value1, value2);
}
public Octet addAt0(final Unit tuple) {
return addAt0(tuple.getValue0());
}
public Octet addAt1(final Unit tuple) {
return addAt1(tuple.getValue0());
}
public Octet addAt2(final Unit tuple) {
return addAt2(tuple.getValue0());
}
public Octet addAt3(final Unit tuple) {
return addAt3(tuple.getValue0());
}
public Octet addAt4(final Unit tuple) {
return addAt4(tuple.getValue0());
}
public Octet addAt5(final Unit tuple) {
return addAt5(tuple.getValue0());
}
public Octet addAt6(final Unit tuple) {
return addAt6(tuple.getValue0());
}
public Octet addAt7(final Unit tuple) {
return addAt7(tuple.getValue0());
}
public Ennead addAt0(final Pair tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1());
}
public Ennead addAt1(final Pair tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1());
}
public Ennead addAt2(final Pair tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1());
}
public Ennead addAt3(final Pair tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1());
}
public Ennead addAt4(final Pair tuple) {
return addAt4(tuple.getValue0(),tuple.getValue1());
}
public Ennead addAt5(final Pair tuple) {
return addAt5(tuple.getValue0(),tuple.getValue1());
}
public Ennead addAt6(final Pair tuple) {
return addAt6(tuple.getValue0(),tuple.getValue1());
}
public Ennead addAt7(final Pair tuple) {
return addAt7(tuple.getValue0(),tuple.getValue1());
}
public Decade addAt0(final Triplet tuple) {
return addAt0(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Decade addAt1(final Triplet tuple) {
return addAt1(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Decade addAt2(final Triplet tuple) {
return addAt2(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Decade addAt3(final Triplet tuple) {
return addAt3(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Decade addAt4(final Triplet tuple) {
return addAt4(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Decade addAt5(final Triplet tuple) {
return addAt5(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Decade addAt6(final Triplet tuple) {
return addAt6(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Decade addAt7(final Triplet tuple) {
return addAt7(tuple.getValue0(),tuple.getValue1(),tuple.getValue2());
}
public Octet add(final X0 value0) {
return addAt7(value0);
}
public Octet add(final Unit tuple) {
return addAt7(tuple);
}
public Ennead add(final X0 value0, final X1 value1) {
return addAt7(value0, value1);
}
public Ennead add(final Pair tuple) {
return addAt7(tuple);
}
public Decade add(final X0 value0, final X1 value1, final X2 value2) {
return addAt7(value0, value1, value2);
}
public Decade add(final Triplet tuple) {
return addAt7(tuple);
}
public Septet setAt0(final X value) {
return new Septet(
value, this.val1, this.val2, this.val3, this.val4, this.val5, this.val6);
}
public Septet setAt1(final X value) {
return new Septet(
this.val0, value, this.val2, this.val3, this.val4, this.val5, this.val6);
}
public Septet setAt2(final X value) {
return new Septet(
this.val0, this.val1, value, this.val3, this.val4, this.val5, this.val6);
}
public Septet setAt3(final X value) {
return new Septet(
this.val0, this.val1, this.val2, value, this.val4, this.val5, this.val6);
}
public Septet setAt4(final X value) {
return new Septet(
this.val0, this.val1, this.val2, this.val3, value, this.val5, this.val6);
}
public Septet setAt5(final X value) {
return new Septet(
this.val0, this.val1, this.val2, this.val3, this.val4, value, this.val6);
}
public Septet setAt6(final X value) {
return new Septet(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5, value);
}
public Sextet removeFrom0() {
return new Sextet(
this.val1, this.val2, this.val3, this.val4, this.val5, this.val6);
}
public Sextet removeFrom1() {
return new Sextet(
this.val0, this.val2, this.val3, this.val4, this.val5, this.val6);
}
public Sextet removeFrom2() {
return new Sextet(
this.val0, this.val1, this.val3, this.val4, this.val5, this.val6);
}
public Sextet removeFrom3() {
return new Sextet(
this.val0, this.val1, this.val2, this.val4, this.val5, this.val6);
}
public Sextet removeFrom4() {
return new Sextet(
this.val0, this.val1, this.val2, this.val3, this.val5, this.val6);
}
public Sextet removeFrom5() {
return new Sextet(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val6);
}
public Sextet removeFrom6() {
return new Sextet(
this.val0, this.val1, this.val2, this.val3, this.val4, this.val5);
}
}