This is an automated email from the ASF dual-hosted git repository.

reschke pushed a commit to branch OAK-11397
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 7c77a180bfbd5aa1b3e1101127f642d93950a900
Author: Konrad Windszus <[email protected]>
AuthorDate: Fri Jan 17 11:07:55 2025 +0100

    OAK-11397 Expose methods to get the expanded name/path from Item in
    JackrabbitSession
---
 .../org/apache/jackrabbit/api/JackrabbitSession.java | 20 ++++++++++++++++++++
 .../java/org/apache/jackrabbit/api/package-info.java |  2 +-
 .../jackrabbit/oak/jcr/session/SessionContext.java   |  6 ++++++
 .../jackrabbit/oak/jcr/session/SessionImpl.java      | 12 ++++++++++++
 4 files changed, 39 insertions(+), 1 deletion(-)

diff --git 
a/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/JackrabbitSession.java
 
b/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/JackrabbitSession.java
index 5ad47e6b3d..69da2d8ac4 100644
--- 
a/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/JackrabbitSession.java
+++ 
b/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/JackrabbitSession.java
@@ -277,4 +277,24 @@ public interface JackrabbitSession extends Session {
             return null;
         }
     }
+
+    /**
+     * Returns the expanded name of the given {@code Item}.
+     * @param item the item for which to retrieve the name
+     * @return the name of the item in expanded form.
+     * @throws RepositoryException if another error occurs.
+     * @since 1.76.0
+     * @see <a 
href="https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.5.1%20Expanded%20Form";>JCR
 2.0, 3.2.5.1 Expanded Form</a>
+     */
+    @NotNull String getExpandedName(@NotNull Item item) throws 
RepositoryException;
+    
+    /**
+     * Returns the expanded path of the given {@code Item}.
+     * @param item the item for which to retrieve the name
+     * @return the path of the item in expanded form.
+     * @throws RepositoryException if another error occurs.
+     * @since 1.76.0
+     * @see <a 
href="https://s.apache.org/jcr-2.0-spec/3_Repository_Model.html#3.2.5.1%20Expanded%20Form";>JCR
 2.0, 3.2.5.1 Expanded Form</a>
+     */
+    @NotNull String getExpandedPath(@NotNull Item item) throws 
RepositoryException;
 }
diff --git 
a/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/package-info.java 
b/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/package-info.java
index 9d79c4bf19..fdbb2c7688 100644
--- 
a/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/package-info.java
+++ 
b/oak-jackrabbit-api/src/main/java/org/apache/jackrabbit/api/package-info.java
@@ -18,6 +18,6 @@
 /**
  * Jackrabbit extensions for JCR core interfaces
  */
[email protected]("2.9.0")
[email protected]("2.10.0")
 package org.apache.jackrabbit.api;
 
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
index 902e2200c5..ebc3781783 100644
--- 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
+++ 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionContext.java
@@ -371,6 +371,12 @@ public class SessionContext implements NamePathMapper {
         return namePathMapper.getJcrPath(oakPath);
     }
 
+    @Override
+    @NotNull
+    public String getExpandedJcrPath(@NotNull String oakPath) {
+        return namePathMapper.getExpandedJcrPath(oakPath);
+    }
+
     /**
      * Returns the Oak path for the given JCR path, or throws a
      * {@link javax.jcr.RepositoryException} if the path can not be mapped.
diff --git 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
index cce9688439..02b9da0d08 100644
--- 
a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
+++ 
b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/SessionImpl.java
@@ -852,4 +852,16 @@ public class SessionImpl implements JackrabbitSession {
         }
         return "null";
     }
+
+    @Override
+    @NotNull
+    public String getExpandedName(@NotNull Item item) throws 
RepositoryException {
+        return 
checkItemImpl(item).sessionContext.getExpandedJcrName(item.getName());
+    }
+
+    @Override
+    @NotNull
+    public String getExpandedPath(@NotNull Item item) throws 
RepositoryException {
+        return 
checkItemImpl(item).sessionContext.getExpandedJcrPath(item.getPath());
+    }
 }

Reply via email to