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()); + } }
