projects
/
lgpl
/
argeo-commons.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add cached path to content
[lgpl/argeo-commons.git]
/
org.argeo.cms
/
src
/
org
/
argeo
/
cms
/
acr
/
AbstractContent.java
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 fd4ef4cfc2c8dddc6870c91d2df8184a4c202289..0aa4e9d4f783d770d9c2e1b44ecdef76ec854129 100644
(file)
--- 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<QName, Object> implements ProvidedContent {
private final ProvidedSession session;
public abstract class AbstractContent extends AbstractMap<QName, Object> implements ProvidedContent {
private final ProvidedSession session;
+ // cache
+ private String _path = null;
+
public AbstractContent(ProvidedSession session) {
this.session = session;
}
public AbstractContent(ProvidedSession session) {
this.session = session;
}
@@
-88,6
+91,8
@@
public abstract class AbstractContent extends AbstractMap<QName, Object> impleme
@Override
public String getPath() {
@Override
public String getPath() {
+ if (_path != null)
+ return _path;
List<Content> ancestors = new ArrayList<>();
collectAncestors(ancestors, this);
StringBuilder path = new StringBuilder();
List<Content> ancestors = new ArrayList<>();
collectAncestors(ancestors, this);
StringBuilder path = new StringBuilder();
@@
-97,7
+102,8
@@
public abstract class AbstractContent extends AbstractMap<QName, Object> impleme
if (!CrName.root.qName().equals(name))
path.append('/').append(name);
}
if (!CrName.root.qName().equals(name))
path.append('/').append(name);
}
- return path.toString();
+ _path = path.toString();
+ return _path;
}
private void collectAncestors(List<Content> ancestors, Content content) {
}
private void collectAncestors(List<Content> ancestors, Content content) {
@@
-231,4
+237,12
@@
public abstract class AbstractContent extends AbstractMap<QName, Object> impleme
}
}
}
}
+
+ /*
+ * OBJECT METHODS
+ */
+ @Override
+ public String toString() {
+ return "content " + getPath();
+ }
}
}