From d0c209780ac209ba20de1ef2ba68551dd3321b3c Mon Sep 17 00:00:00 2001 From: RncLsn Date: Wed, 13 May 2015 16:04:41 +0100 Subject: Implemented SkolemTermsManager. --- src/uk/ac/ox/cs/pagoda/util/tuples/Tuple.java | 44 ++++++++++++++++++++++ .../ac/ox/cs/pagoda/util/tuples/TupleBuilder.java | 25 ++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/uk/ac/ox/cs/pagoda/util/tuples/Tuple.java create mode 100644 src/uk/ac/ox/cs/pagoda/util/tuples/TupleBuilder.java (limited to 'src/uk/ac/ox/cs/pagoda/util') diff --git a/src/uk/ac/ox/cs/pagoda/util/tuples/Tuple.java b/src/uk/ac/ox/cs/pagoda/util/tuples/Tuple.java new file mode 100644 index 0000000..3e72748 --- /dev/null +++ b/src/uk/ac/ox/cs/pagoda/util/tuples/Tuple.java @@ -0,0 +1,44 @@ +package uk.ac.ox.cs.pagoda.util.tuples; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Spliterator; +import java.util.function.Consumer; + +public class Tuple implements Iterable { + + final ArrayList elements = new ArrayList<>(); + + Tuple() { } + + public Tuple(T... elements) { + for(T t: elements) { + this.elements.add(t); + } + } + + public Tuple(Iterable iterable) { + for (T t : iterable) { + this.elements.add(t); + } + } + + public T get(int i) { + return elements.get(i); + } + + @Override + public Iterator iterator() { + return elements.iterator(); + } + + @Override + public void forEach(Consumer action) { + elements.forEach(action); + } + + @Override + public Spliterator spliterator() { + return elements.spliterator(); + } +} 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 @@ +package uk.ac.ox.cs.pagoda.util.tuples; + +/** + * Allows to create an immutable Tuple in a non-atomic way. + * It can create only one Tuple. + * */ +public class TupleBuilder { + + private Tuple tuple = new Tuple(); + + private boolean building = true; + + public boolean add(T t) { + if(building) tuple.elements.add(t); + return building; + } + + public Tuple create() { + if(building) { + building = false; + return tuple; + } + return null; + } +} -- cgit v1.2.3