You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2025/02/14 13:22:42 UTC
(jackrabbit-oak) 01/02: OAK-11397 Expose methods to get the expanded name/path from Item in JackrabbitSession
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 <kw...@apache.org>
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
*/
-@org.osgi.annotation.versioning.Version("2.9.0")
+@org.osgi.annotation.versioning.Version("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());
+ }
}