From e5f2dcdb553b5da76c7727af8aa24c83ed397d35 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 17 Jun 2023 07:04:07 +0200 Subject: [PATCH] Extend ACR api. --- .../org/argeo/api/acr/spi/ProvidedContent.java | 18 ++++++++++++++++++ .../src/org/argeo/cms/acr/AbstractContent.java | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedContent.java b/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedContent.java index e2807c0ef..3cf130a7c 100644 --- a/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedContent.java +++ b/org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedContent.java @@ -12,6 +12,15 @@ public interface ProvidedContent extends Content { int getDepth(); + /** + * Whether this is the root node of the related repository. Default checks + * whether {@link #getDepth()} == 0, but it can be optimised by + * implementations. + */ + default boolean isRoot() { + return getDepth() == 0; + } + /** * An opaque ID which is guaranteed to uniquely identify this content within the * session return by {@link #getSession()}. Typically used for UI. @@ -32,4 +41,13 @@ public interface ProvidedContent extends Content { } return (ProvidedContent) fileNode; } + + /* + * ACCESS + */ + /** Whether the session has the right to access the parent. */ + default boolean isParentAccessible() { + return true; + } + } diff --git a/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java b/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java index 16f39609e..c6e07e638 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java @@ -120,6 +120,11 @@ public abstract class AbstractContent extends AbstractMap impleme return ancestors.size(); } + @Override + public boolean isRoot() { + return CrName.root.qName().equals(getName()); + } + @Override public String getSessionLocalId() { return getPath(); -- 2.30.2