X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Ftext%2FIdentityTextInterpreter.java;h=79f6ede2c67690bd3ae3c1074be4407989e83b17;hb=c873a0359345503b8e3ca07828bd99d525ec7cc0;hp=db90ea0f83e1b24c91a987225fd7893debc3db07;hpb=d546fc1b9e19a86eb0e33ac4be824b52239316fc;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/text/IdentityTextInterpreter.java b/org.argeo.cms/src/org/argeo/cms/text/IdentityTextInterpreter.java index db90ea0f8..79f6ede2c 100644 --- a/org.argeo.cms/src/org/argeo/cms/text/IdentityTextInterpreter.java +++ b/org.argeo.cms/src/org/argeo/cms/text/IdentityTextInterpreter.java @@ -19,6 +19,7 @@ public class IdentityTextInterpreter implements TextInterpreter, CmsNames { Node node = (Node) item; if (node.isNodeType(CmsTypes.CMS_STYLED)) { String raw = convertToStorage(node, content); + validateBeforeStoring(raw); node.setProperty(CMS_CONTENT, raw); } else { throw new CmsException("Don't know how to interpret " @@ -28,7 +29,7 @@ public class IdentityTextInterpreter implements TextInterpreter, CmsNames { Property property = (Property) item; property.setValue(content); } - item.getSession().save(); + // item.getSession().save(); } catch (RepositoryException e) { throw new CmsException("Cannot set content on " + item, e); } @@ -47,6 +48,7 @@ public class IdentityTextInterpreter implements TextInterpreter, CmsNames { @Override public String raw(Item item) { try { + item.getSession().refresh(true); if (item instanceof Node) { Node node = (Node) item; if (node.isNodeType(CmsTypes.CMS_STYLED)) { @@ -55,7 +57,7 @@ public class IdentityTextInterpreter implements TextInterpreter, CmsNames { node.setProperty(CMS_CONTENT, ""); node.getSession().save(); } - + return node.getProperty(CMS_CONTENT).getString(); } else { throw new CmsException("Don't know how to interpret " @@ -70,12 +72,22 @@ public class IdentityTextInterpreter implements TextInterpreter, CmsNames { } } + // EXTENSIBILITY + /** + * To be overridden, in order to make sure that only valid strings are being + * stored. + */ + protected void validateBeforeStoring(String raw) { + } + + /** To be overridden, in order to support additional formatting. */ protected String convertToStorage(Item item, String content) throws RepositoryException { return content; } + /** To be overridden, in order to support additional formatting. */ protected String convertFromStorage(Item item, String content) throws RepositoryException { return content;