import java.util.*;
import java.util.zip.*;
import org.ibex.util.*;
+import java.sql.*;
/** a source of streams */
public interface Fountain {
public Stream getStream();
- public int getLength();
- public int getNumLines();
- /*
- public static interface Transformer {
- public Fountain transform(Fountain in);
-
- public static class Lift implements Fountain.Transformer {
- private final Stream.Transformer func;
- public Lift(Stream.Transformer func) { this.func = func; }
- public Fountain transform(final Fountain in) {
- return new Fountain() {
- public Stream getStream() {
- return func.transform(in.getStream()); } };
- }
- }
- }
- */
+ public long getLength();
+ public int getNumLines();
public static class File implements Fountain {
private final java.io.File file;
public File(java.io.File file) { this.file = file; }
public Stream getStream() { return new Stream(file); }
- public int getLength() { return (int)file.length(); }
+ public long getLength() { return (int)file.length(); }
public int getNumLines() { return Stream.countLines(getStream()); }
}
public ByteArray(byte[] bytes) { this(bytes, 0, bytes.length); }
public ByteArray(byte[] bytes, int off, int len) { this.bytes = bytes; this.off=off; this.len=len; }
public Stream getStream() { return new Stream(bytes, off, len); }
- public int getLength() { return len; }
+ public long getLength() { return len; }
public int getNumLines() { return Stream.countLines(getStream()); }
}