From: Mathieu Baudier Date: Mon, 5 Sep 2022 06:29:31 +0000 (+0200) Subject: Add cached path to content X-Git-Tag: v2.3.10~54 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=1d9f61172318be0dbf7f219d140ba01c4c29cdc9 Add cached path to content --- 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 fd4ef4cfc..0aa4e9d4f 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/AbstractContent.java @@ -22,6 +22,9 @@ import org.argeo.util.LangUtils; public abstract class AbstractContent extends AbstractMap implements ProvidedContent { private final ProvidedSession session; + // cache + private String _path = null; + public AbstractContent(ProvidedSession session) { this.session = session; } @@ -88,6 +91,8 @@ public abstract class AbstractContent extends AbstractMap impleme @Override public String getPath() { + if (_path != null) + return _path; List ancestors = new ArrayList<>(); collectAncestors(ancestors, this); StringBuilder path = new StringBuilder(); @@ -97,7 +102,8 @@ public abstract class AbstractContent extends AbstractMap impleme if (!CrName.root.qName().equals(name)) path.append('/').append(name); } - return path.toString(); + _path = path.toString(); + return _path; } private void collectAncestors(List ancestors, Content content) { @@ -231,4 +237,12 @@ public abstract class AbstractContent extends AbstractMap impleme } } + + /* + * OBJECT METHODS + */ + @Override + public String toString() { + return "content " + getPath(); + } }