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">

Reply via email to