X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2FAbstractContent.java;h=0aa4e9d4f783d770d9c2e1b44ecdef76ec854129;hb=1d9f61172318be0dbf7f219d140ba01c4c29cdc9;hp=fd4ef4cfc2c8dddc6870c91d2df8184a4c202289;hpb=87351c5000313de237947d57d6c328d07bad0c40;p=lgpl%2Fargeo-commons.git 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(); + } }