From: adam Date: Sat, 17 Mar 2007 08:50:10 +0000 (+0000) Subject: clean up Fountain.Concat, add Fountain.Util X-Git-Url: http://git.megacz.com/?p=org.ibex.io.git;a=commitdiff_plain;h=f24a25bd4b457e97d578f2a1dc86f40b517a35da;ds=sidebyside clean up Fountain.Concat, add Fountain.Util darcs-hash:20070317085010-5007d-c5a4c97be6287b2d0053ace9e69e7399eeeedb95.gz --- diff --git a/src/org/ibex/io/Fountain.java b/src/org/ibex/io/Fountain.java index 8e2561c..dd21658 100644 --- a/src/org/ibex/io/Fountain.java +++ b/src/org/ibex/io/Fountain.java @@ -54,14 +54,56 @@ public interface Fountain { } public static class Concatenate implements Fountain { - Fountain f1, f2; - public Concatenate(Fountain f1, Fountain f2) { this.f1 = f1; this.f2 = f2; } - public Stream getStream() { return f1.getStream().appendStream(f2.getStream()); } - public int getLength() { return f1.getLength()+f2.getLength(); } - public int getNumLines() { return f1.getNumLines()+f2.getNumLines(); } + private Fountain[] founts; + public Concatenate(Fountain f1, Fountain f2) { this(new Fountain[] { f1, f2 }); } + public Concatenate(Fountain[] f) { this.founts = f; } + public Stream getStream() { + Stream ret = null; + for(int i=founts.length-1; i>=0; i--) + ret = ret==null ? founts[i].getStream() : founts[i].getStream().appendStream(ret); + return ret; + } + public long getLength() { + long ret = 0; + for(int i=0; i