All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.javatuples.Septet Maven / Gradle / Ivy

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); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy