package photoSpreadParser.photoSpreadExpression.photoSpreadFunctions; import java.util.ArrayList; import java.util.Iterator; import photoSpreadUtilities.TreeSetRandomSubsetIterable; public class ArgEvalResult<T> { public ArrayList<T> _argResultArray = new ArrayList<T>(); /**************************************************** * Constructors for ArgEvalResult *****************************************************/ public ArgEvalResult () { } public ArgEvalResult (T initialValue) { _argResultArray.add(initialValue); } public ArgEvalResult (ArrayList<T> initialValues) { _argResultArray.addAll(initialValues); } public ArgEvalResult (TreeSetRandomSubsetIterable<T> initialValues) { addAll(initialValues); } public ArgEvalResult (T[] initialValues) { addAll(initialValues); } /**************************************************** * Methods for ArgEvalResult *****************************************************/ public void add (T newResult) { _argResultArray.add(newResult); } public void addAll (ArrayList<T> results) { _argResultArray.addAll(results); } public void addAll (TreeSetRandomSubsetIterable<T> results) { for (T obj : ((T[]) results.toArray())) _argResultArray.add(obj); } public void addAll (T[] results) { for (T obj : results) _argResultArray.add(obj); } public void addAll (ArgEvalResult<T> results) { // Recursive: The passed-in results is a different // object than this instance: _argResultArray.addAll(results._argResultArray); } public boolean isEmpty() { return _argResultArray.isEmpty(); } public ArrayList<T> getAll() { return _argResultArray; } public <T> Iterator<T> iterator() { return ((ArrayList<T>) _argResultArray).iterator(); } }