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
,c3
etc...). 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-ClassTupleN
will always contains fields which are not declared using the'final'
modifier. These classes are, therefore, "Mutable Tuples" - meaning their contents may be changed whenever necessary.
Remember: The classesRet8
andTuple8
completely identical, with the sole difference being thatRet8
fields are all declared final, but theTuple8
fields 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,559 Bytes Line Count: 137 '\n' Characters Found
-
-
Method Summary
Retrieve the Number of Fields in this Class Modifier and Type Method int
n()
Retrieve a Field by Field-Number Modifier and Type Method Object
get(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 theSerializable
Implementation 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 theith
field of this instance. This can be useful when you wish to use the Ancestor / Parent classses:TupleN
orMultiType
for 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 - namelyTupleN
orMultiType
- 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 actualTuple8
instance, you will have to use one of the provided'get'
methods to retrieve a field inside theTuple8
instance. 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:
get
in 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 anIndexOutOfBoundsException
throw.- Returns:
- This returns the
ith
field 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:
toImmutable
in classTupleN
- Returns:
- A
RetN
of 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);
-
-