Package Torello.Java.Additional
Class Tuple6<A1,B2,C3,D4,E5,F6>
- java.lang.Object
-
- Torello.Java.Additional.MultiType
-
- Torello.Java.Additional.TupleN
-
- Torello.Java.Additional.Tuple6<A1,B2,C3,D4,E5,F6>
-
- 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 last member-field ('f6
').
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class Tuple6<A1,B2,C3,D4,E5,F6> extends TupleN implements java.io.Serializable, java.lang.Cloneable
This simple generic-class allows for storing six 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 classesRet6
andTuple6
completely identical, with the sole difference being thatRet6
fields are all declared final, but theTuple6
fields are not!- See Also:
- Serialized Form
Hi-Lited Source-Code:- View Here: Torello/Java/Additional/Tuple6.java
- Open New Browser-Tab: Torello/Java/Additional/Tuple6.java
File Size: 3,891 Bytes Line Count: 117 '\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 Ret6<A1,B2,C3,D4,E5,F6>
toImmutable()
Methods: interface java.lang.Cloneable Modifier and Type Method Tuple6<A1,B2,C3,D4,E5,F6>
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
-
-
Constructor Detail
-
Tuple6
-
Tuple6
public Tuple6()
Constructs this object. Initializes all fields top 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 actualTuple6
instance, you will have to use one of the provided'get'
methods to retrieve a field inside theTuple6
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: Tuple6. Tuple6<String, Integer, Date, File, DotPair, HTMLNode> ref6 = some_function_returns_6(); String neededStrField = ref6.a1; // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // Less Keyboard-Typing (Less Eyesores), but Requires a Cast // *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** // If the Tuple6 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_returns6(); // 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 Tuple6.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..6] CHECK_GET(i); if (i <= 3) switch (i) { case 1: return a1; case 2: return b2; default: return c3; } else switch (i) { case 4: return d4; case 5: return e5; default: return f6; }
-
toImmutable
public Ret6<A1,B2,C3,D4,E5,F6> 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 Ret6<>(this.a1, this.b2, this.c3, this.d4, this.e5, this.f6);
-
-