diff options
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/util/tuples')
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java b/src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java index ee2b74d..172e249 100644 --- a/src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java +++ b/src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java | |||
| @@ -1,18 +1,31 @@ | |||
| 1 | package uk.ac.ox.cs.pagoda.util.tuples; | 1 | package uk.ac.ox.cs.pagoda.util.tuples; |
| 2 | 2 | ||
| 3 | import java.util.Collections; | ||
| 4 | |||
| 3 | /** | 5 | /** |
| 4 | * Allows to create an immutable <tt>Tuple</tt> in a non-atomic way. | 6 | * Allows to create an immutable <tt>Tuple</tt> in a non-atomic way. |
| 5 | * It can create only one <tt>Tuple</tt>. | 7 | * It can create only one <tt>Tuple</tt>. |
| 6 | * */ | 8 | * */ |
| 7 | public class TupleBuilder<T> { | 9 | public class TupleBuilder<T> { |
| 8 | 10 | ||
| 9 | private Tuple tuple = new Tuple(); | 11 | private Tuple<T> tuple = new Tuple<T>(); |
| 10 | 12 | ||
| 11 | private boolean building = true; | 13 | private boolean building = true; |
| 12 | 14 | ||
| 13 | public boolean append(T t) { | 15 | public TupleBuilder<T> append(T t) { |
| 14 | if(building) tuple.elements.add(t); | 16 | if(building) { |
| 15 | return building; | 17 | tuple.elements.add(t); |
| 18 | return this; | ||
| 19 | } | ||
| 20 | return null; | ||
| 21 | } | ||
| 22 | |||
| 23 | public TupleBuilder<T> append(T[] t) { | ||
| 24 | if(building) { | ||
| 25 | Collections.addAll(tuple.elements, t); | ||
| 26 | return this; | ||
| 27 | } | ||
| 28 | return null; | ||
| 16 | } | 29 | } |
| 17 | 30 | ||
| 18 | public Tuple<T> build() { | 31 | public Tuple<T> build() { |
