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-vfs.git
The following commit(s) were added to refs/heads/master by this push: new 873b3a5 Add RandomAccessMode.toAccessModes(). 873b3a5 is described below commit 873b3a5b25e2d72340e8d2136a7239a45be009e5 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Mon Dec 6 09:43:04 2021 -0500 Add RandomAccessMode.toAccessModes(). --- .../apache/commons/vfs2/util/RandomAccessMode.java | 26 ++++++++++++++++++++-- .../commons/vfs2/util/RandomAccessModeTest.java | 7 ++++++ src/changes/changes.xml | 2 +- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/RandomAccessMode.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/RandomAccessMode.java index 0d4ff23..c20daeb 100644 --- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/RandomAccessMode.java +++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/RandomAccessMode.java @@ -33,12 +33,25 @@ public enum RandomAccessMode { /** * Read access mode. */ - READ(true, false), + READ(true, false) { + @Override + public AccessMode[] toAccessModes() { + return ACCESS_MODE_READ.clone(); + } + }, /** * Read-write access mode. */ - READWRITE(true, true); + READWRITE(true, true) { + @Override + public AccessMode[] toAccessModes() { + return ACCESS_MODE_READ_WRITE.clone(); + } + }; + + private static final AccessMode[] ACCESS_MODE_READ = {AccessMode.READ}; + private static final AccessMode[] ACCESS_MODE_READ_WRITE = {AccessMode.READ, AccessMode.WRITE}; private final boolean read; private final boolean write; @@ -108,4 +121,13 @@ public enum RandomAccessMode { public boolean requestWrite() { return write; } + + /** + * Converts this instance to an array of {@link AccessMode}. + * + * @return an array of {@link AccessMode}. + * @since 2.10.0 + */ + public abstract AccessMode[] toAccessModes(); + } diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/RandomAccessModeTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/RandomAccessModeTest.java index 14e20c1..d9ca070 100644 --- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/RandomAccessModeTest.java +++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/util/RandomAccessModeTest.java @@ -16,6 +16,7 @@ */ package org.apache.commons.vfs2.util; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; @@ -64,4 +65,10 @@ public class RandomAccessModeTest { assertTrue(RandomAccessMode.READWRITE.requestRead()); assertTrue(RandomAccessMode.READWRITE.requestWrite()); } + + @Test + public void test_toAccessModes() { + assertArrayEquals(new AccessMode[] {AccessMode.READ}, RandomAccessMode.READ.toAccessModes()); + assertArrayEquals(new AccessMode[] {AccessMode.READ, AccessMode.WRITE}, RandomAccessMode.READWRITE.toAccessModes()); + } } diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 3a7b62a..c6bd5bc 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -91,7 +91,7 @@ The <action> type attribute can be add,update,fix,remove. FileSystemOptions implements Comparable. </action> <action type="add" dev="ggregory" due-to="Gary Gregory"> - Add RandomAccessMode.from(AccessMode). + Add RandomAccessMode.from(AccessMode) and toAccessModes(). </action> <!-- UDPATE --> <action type="update" dev="ggregory" due-to="Dependabot">