bayard 2004/06/12 22:35:44
Modified: io/src/java/org/apache/commons/io/input
CountingInputStream.java
io/src/java/org/apache/commons/io/output
CountingOutputStream.java
io/src/test/org/apache/commons/io/input
CountingInputStreamTest.java
io/src/test/org/apache/commons/io/output
CountingOutputStreamTest.java
Log:
reset feature added to counting classes as requested by Lars Beuster
Revision Changes Path
1.9 +12 -1
jakarta-commons/io/src/java/org/apache/commons/io/input/CountingInputStream.java
Index: CountingInputStream.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/io/src/java/org/apache/commons/io/input/CountingInputStream.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- CountingInputStream.java 23 Feb 2004 04:38:52 -0000 1.8
+++ CountingInputStream.java 13 Jun 2004 05:35:44 -0000 1.9
@@ -78,4 +78,15 @@
return this.count;
}
+ /**
+ * Set the count back to 0.
+ *
+ * @return the count previous to resetting.
+ */
+ public synchronized int resetCount() {
+ int tmp = this.count;
+ this.count = 0;
+ return tmp;
+ }
+
}
1.6 +11 -1
jakarta-commons/io/src/java/org/apache/commons/io/output/CountingOutputStream.java
Index: CountingOutputStream.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/io/src/java/org/apache/commons/io/output/CountingOutputStream.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- CountingOutputStream.java 23 Feb 2004 04:40:29 -0000 1.5
+++ CountingOutputStream.java 13 Jun 2004 05:35:44 -0000 1.6
@@ -63,4 +63,14 @@
return this.count;
}
+ /**
+ * Set the count back to 0.
+ *
+ * @return the count previous to resetting.
+ */
+ public synchronized int resetCount() {
+ int tmp = this.count;
+ this.count = 0;
+ return tmp;
+ }
}
1.5 +16 -0
jakarta-commons/io/src/test/org/apache/commons/io/input/CountingInputStreamTest.java
Index: CountingInputStreamTest.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/io/src/test/org/apache/commons/io/input/CountingInputStreamTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CountingInputStreamTest.java 23 Feb 2004 05:02:25 -0000 1.4
+++ CountingInputStreamTest.java 13 Jun 2004 05:35:44 -0000 1.5
@@ -62,5 +62,21 @@
String textResult = new String(result).trim();
assertEquals(textResult, text);
}
+
+ public void testResetting() throws Exception {
+ String text = "A piece of text";
+ byte[] bytes = text.getBytes();
+ ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
+ CountingInputStream cis = new CountingInputStream(bais);
+
+ byte[] result = new byte[bytes.length];
+
+ int found = cis.read(result, 0, 5);
+ assertEquals( found, cis.getCount() );
+
+ int count = cis.resetCount();
+ found = cis.read(result, 6, 5);
+ assertEquals( found, cis.getCount() );
+ }
}
1.3 +12 -6
jakarta-commons/io/src/test/org/apache/commons/io/output/CountingOutputStreamTest.java
Index: CountingOutputStreamTest.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/io/src/test/org/apache/commons/io/output/CountingOutputStreamTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CountingOutputStreamTest.java 23 Feb 2004 05:02:25 -0000 1.2
+++ CountingOutputStreamTest.java 13 Jun 2004 05:35:44 -0000 1.3
@@ -59,15 +59,21 @@
cos.write(array, 5, 5);
assertByteArrayEquals("CountingOutputStream.write(byte[], int, int)",
baos.toByteArray(), 0, 35);
assertEquals("CountingOutputStream.getCount()", cos.getCount(), 35);
+
+ int count = cos.resetCount();
+ assertEquals("CountingOutputStream.resetCount()", count, 35);
+
+ for(int i = 0; i < 10; i++) {
+ cos.write(i);
+ }
+ assertByteArrayEquals("CountingOutputStream.write(int)",
baos.toByteArray(), 35, 45);
+ assertEquals("CountingOutputStream.getCount()", cos.getCount(), 10);
+
}
private void assertByteArrayEquals(String msg, byte[] array, int start, int
end) {
- assertEquals(msg+": array size mismatch", end-start,
- array.length );
-
for (int i = start; i < end; i++) {
- assertEquals(msg+": array[ " + i + "] mismatch", array[i],
- i);
+ assertEquals(msg+": array[" + i + "] mismatch", array[i], i-start);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]