diff options
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java')
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java | 25 |
1 files changed, 25 insertions, 0 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 new file mode 100644 index 0000000..aacd15e --- /dev/null +++ b/src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | package uk.ac.ox.cs.pagoda.util.tuples; | ||
| 2 | |||
| 3 | /** | ||
| 4 | * Allows to create an immutable <tt>Tuple</tt> in a non-atomic way. | ||
| 5 | * It can create only one <tt>Tuple</tt>. | ||
| 6 | * */ | ||
| 7 | public class TupleBuilder<T> { | ||
| 8 | |||
| 9 | private Tuple tuple = new Tuple(); | ||
| 10 | |||
| 11 | private boolean building = true; | ||
| 12 | |||
| 13 | public boolean add(T t) { | ||
| 14 | if(building) tuple.elements.add(t); | ||
| 15 | return building; | ||
| 16 | } | ||
| 17 | |||
| 18 | public Tuple<T> create() { | ||
| 19 | if(building) { | ||
| 20 | building = false; | ||
| 21 | return tuple; | ||
| 22 | } | ||
| 23 | return null; | ||
| 24 | } | ||
| 25 | } | ||
