You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/06/01 16:54:54 UTC
[commons-io] branch master updated: Add AbstractOrigin.size()
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push:
new ec50f298 Add AbstractOrigin.size()
ec50f298 is described below
commit ec50f2987e0fa7f7503154eca25666d78c75a549
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Jun 1 12:54:50 2023 -0400
Add AbstractOrigin.size()
---
src/changes/changes.xml | 3 +++
.../org/apache/commons/io/build/AbstractOrigin.java | 21 +++++++++++++++++++++
.../apache/commons/io/build/AbstractOriginTest.java | 6 ++++++
.../commons/io/build/OutputStreamOriginTest.java | 7 +++++++
.../commons/io/build/WriterStreamOriginTest.java | 7 +++++++
5 files changed, 44 insertions(+)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c733565c..eff21635 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -86,6 +86,9 @@ The <action> type attribute can be add,update,fix,remove.
<action dev="ggregory" type="add" due-to="Gary Gregory">
Add and use RandomAccessFiles.
</action>
+ <action dev="ggregory" type="add" due-to="Gary Gregory">
+ Add AbstractOrigin.size().
+ </action>
<!-- UPDATE -->
<action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot">
Bump commons-parent from 57 to 58.
diff --git a/src/main/java/org/apache/commons/io/build/AbstractOrigin.java b/src/main/java/org/apache/commons/io/build/AbstractOrigin.java
index efb3d051..2e19a163 100644
--- a/src/main/java/org/apache/commons/io/build/AbstractOrigin.java
+++ b/src/main/java/org/apache/commons/io/build/AbstractOrigin.java
@@ -86,6 +86,11 @@ public abstract class AbstractOrigin<T, B extends AbstractOrigin<T, B>> extends
return new InputStreamReader(getInputStream(), charset);
}
+ @Override
+ public long size() throws IOException {
+ return origin.length;
+ }
+
}
/**
@@ -127,6 +132,11 @@ public abstract class AbstractOrigin<T, B extends AbstractOrigin<T, B>> extends
return new InputStreamReader(getInputStream(), charset);
}
+ @Override
+ public long size() throws IOException {
+ return origin.length();
+ }
+
}
/**
@@ -501,6 +511,17 @@ public abstract class AbstractOrigin<T, B extends AbstractOrigin<T, B>> extends
return Files.newBufferedWriter(getPath(), charset, options);
}
+ /**
+ * Gets the size of the origin, if possible.
+ *
+ * @return the size of the origin in bytes or characters.
+ * @throws IOException if an I/O error occurs.
+ * @since 2.13.0
+ */
+ public long size() throws IOException {
+ return Files.size(getPath());
+ }
+
@Override
public String toString() {
return origin.toString();
diff --git a/src/test/java/org/apache/commons/io/build/AbstractOriginTest.java b/src/test/java/org/apache/commons/io/build/AbstractOriginTest.java
index b36332b7..8cd1c1ff 100644
--- a/src/test/java/org/apache/commons/io/build/AbstractOriginTest.java
+++ b/src/test/java/org/apache/commons/io/build/AbstractOriginTest.java
@@ -17,6 +17,7 @@
package org.apache.commons.io.build;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.io.IOException;
@@ -124,4 +125,9 @@ public abstract class AbstractOriginTest<T, B extends AbstractOrigin<T, B>> {
assertNotNull(writer);
}
}
+
+ @Test
+ public void testSize() throws IOException {
+ assertEquals(Files.size(Paths.get(FILE_NAME_RO)), getOriginRo().getByteArray().length);
+ }
}
diff --git a/src/test/java/org/apache/commons/io/build/OutputStreamOriginTest.java b/src/test/java/org/apache/commons/io/build/OutputStreamOriginTest.java
index 231fc3c6..fcd6f10d 100644
--- a/src/test/java/org/apache/commons/io/build/OutputStreamOriginTest.java
+++ b/src/test/java/org/apache/commons/io/build/OutputStreamOriginTest.java
@@ -102,4 +102,11 @@ public class OutputStreamOriginTest extends AbstractOriginTest<OutputStream, Out
assertThrows(UnsupportedOperationException.class, super::testGetReader);
}
+ @Override
+ @Test
+ public void testSize() {
+ // Cannot convert a Writer to a size.
+ assertThrows(UnsupportedOperationException.class, super::testSize);
+ }
+
}
diff --git a/src/test/java/org/apache/commons/io/build/WriterStreamOriginTest.java b/src/test/java/org/apache/commons/io/build/WriterStreamOriginTest.java
index 36e703dc..c7779e39 100644
--- a/src/test/java/org/apache/commons/io/build/WriterStreamOriginTest.java
+++ b/src/test/java/org/apache/commons/io/build/WriterStreamOriginTest.java
@@ -101,4 +101,11 @@ public class WriterStreamOriginTest extends AbstractOriginTest<Writer, WriterOri
assertThrows(UnsupportedOperationException.class, super::testGetReader);
}
+ @Override
+ @Test
+ public void testSize() {
+ // Cannot convert a Writer to a size.
+ assertThrows(UnsupportedOperationException.class, super::testSize);
+ }
+
}