Package Torello.Java.Additional
Class Tuple8<A1,B2,C3,D4,E5,F6,G7,H8>
- java.lang.Object
-
- Torello.Java.Additional.MultiType
-
- Torello.Java.Additional.TupleN
-
- Torello.Java.Additional.Tuple8<A1,B2,C3,D4,E5,F6,G7,H8>
-
- Type Parameters:
A1- The type of the first member-field ('a1').B2- The type of the second member-field ('b2').C3- The type of the third member-field ('c3').D4- The type of the fourth member-field ('d4').E5- The type of the fifth member-field ('e5').F6- The type of the sixth member-field ('f6').G7- The type of the seventh member-field ('g7').H8- The type of the last member-field ('h8').
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable
public class Tuple8<A1,B2,C3,D4,E5,F6,G7,H8> extends TupleN implements java.io.Serializable, java.lang.Cloneable
This simple generic-class allows for storing eight objects with a single reference.
Field Name Change:
For the classesTuple6,Tuple7&Tuple8- the field names include a number as well (seea1,b2,c3etc...). This is simply due to the fact that these Field-Names become progressively more difficult to read or even look at after the first four or five letters -'a', 'b', 'c', 'd'and'e'.Modifiable, Read-Write: Classes which inherit Ancestor-ClassTupleNwill always contains fields which have been declared without the use of the'final'modifier. These classes are, therefore, "Mutable Tuples" - meaning their contents may be changed whenever necessary.Remember: The classesRet8andTuple8completely identical, with the sole difference being thatRet8fields are all declared'final', but theTuple8fields are not!- See Also:
- Serialized Form
Hi-Lited Source-Code:- View Here: Torello/Java/Additional/Tuple8.java
- Open New Browser-Tab: Torello/Java/Additional/Tuple8.java
File Size: 4,560 Bytes Line Count: 138 '\n' Characters Found
-
-
Method Summary
Retrieve the Number of Fields in this Class Modifier and Type Method intn()Retrieve a Field by Field-Number Modifier and Type Method Objectget(int i)Convert this instance to an Immutable RetN instance, of the same size Modifier and Type Method Ret8<A1,
B2,
C3,
D4,
E5,
F6,
G7,
H8>toImmutable()Methods: interface java.lang.Cloneable Modifier and Type Method Tuple8<A1,
B2,
C3,
D4,
E5,
F6,
G7,
H8>clone()
-
-
-
Field Detail
-
serialVersionUID
protected static final long serialVersionUID
This fulfils the SerialVersion UID requirement for all classes that implement Java'sinterface java.io.Serializable. Using theSerializableImplementation offered by java is very easy, and can make saving program state when debugging a lot easier. It can also be used in place of more complicated systems like "hibernate" to store data as well.- See Also:
- Constant Field Values
- Code:
- Exact Field Declaration Expression:
protected static final long serialVersionUID = 1;
-
a1
-
b2
-
c3
-
d4
-
e5
-
f6
-
g7
-
h8
-
-
Constructor Detail
-
Tuple8
-
Tuple8
public Tuple8()
Constructs this object. Initializes all fields to null.
-
-
Method Detail
-
n
-
get
public java.lang.Object get(int i)
This method will retreive theithfield of this instance. This can be useful when you wish to use the Ancestor / Parent classses:TupleNorMultiTypefor handling'this'instance.
As a reminder, the fields inside this class have all been declaredpublic! Referencing this instance' fields, directly, will always work in place of calling any of theget(...)methods.
Type Casting:
This method can make for easier typing. When using either of the super-classes of this class - namelyTupleNorMultiType- you simply do not have to type (into your computer's keyboard) all of the FieldGeneric Types(the stuff between the'<'and'>'less-than & greater-than symbols).
However, anytime one of these ancestor classes are used instead of the actualTuple8instance, you will have to use one of the provided'get'methods to retrieve a field inside theTuple8instance. This is because the parent-ancestor classes do not actually have any fields to retrieve.
There are three'get'methods provided in Root-Ancestor ClassMultiType. Each of these three 'getters' allows for casting (this) sub-class' returned fields in a slightly different way. When you aren't referencing the actual instance, itself, but rather one of the two Parent-Tuple Classes, you must use one of their getters, and you will have to cast the fields that you wish to use, eventually!
Example:
// *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // No Cast Necessary // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // This line makes for longer typing, but DOES NOT REQUIRE A CAST TO RETRIEVE FIELDS. // Here the example Multi-Type Identifier is used: Tuple8. Tuple8<String, Integer, Date, File, DotPair, HTMLNode, TagNode, TextNode> ref8 = some_function_returns_8(); String neededStrField = ref8.a1; // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // Less Keyboard-Typing (Less Eyesores), but Requires a Cast // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // If the Tuple8 super-class TupleN is used to reference this class data, // YOU WILL NEED TO CAST THE FIELDS BEFORE YOU CAN THEM, AS IN THE EXAMPLES BELOW: TupleN refN = some_function_returns8(); // Version #1: (this method) - simple 'get' @SuppressWarnings("unchecked") String neededStrField = (String) refN.get(1); // Version #2: The second Method-Parameter is a 'Class<T>' Type-Parameter // Note, again, that passing a '1' to the first parameter retrieves Tuple8.a1 String neededStrField = refN.get(1, String.class); // Version #3: "GET" (in all caps) utilizes Java "Type-Inferencing" - the Return-Type // is specified by the left side of the assignments statement. String needesStrField = refN.GET(1);
- Specified by:
getin classMultiType- Parameters:
i- This specifies which field of the instance is being requested.Important: Unlike a Java array, when a'1'is passed to this parameter, it is requesting the first field in this instance. Passing a value of'0'shall cause anIndexOutOfBoundsExceptionthrow.- Returns:
- This returns the
ithfield of this class. - See Also:
MultiType.get(int, Class),MultiType.GET(int)- Code:
- Exact Method Body:
// Throws Exception if i not in [1..8] CHECK_GET(i); if (i <= 4) switch (i) { case 1: return a1; case 2: return b2; case 3: return c3; default: return d4; } else switch (i) { case 5: return e5; case 6: return f6; case 7: return g7; default: return h8; }
-
toImmutable
public Ret8<A1,B2,C3,D4,E5,F6,G7,H8> toImmutable()
Description copied from class:TupleN- Specified by:
toImmutablein classTupleN- Returns:
- A
RetNof the same size, which is an immutable type whose fields have been decorated with the'final'modifier - and therefore cannot be changed once the instance has been constructed. - Code:
- Exact Method Body:
return new Ret8<> (this.a1, this.b2, this.c3, this.d4, this.e5, this.f6, this.g7, this.h8);
-
-