]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/IdentityTextInterpreter.java
5 import javax
.jcr
.Property
;
6 import javax
.jcr
.RepositoryException
;
8 /** Based on HTML with a few Wiki-like shortcuts. */
9 public class IdentityTextInterpreter
implements TextInterpreter
, CmsNames
{
12 public void write(Item item
, String content
) {
14 if (item
instanceof Node
) {
15 Node node
= (Node
) item
;
16 if (node
.isNodeType(CmsTypes
.CMS_STYLED
)) {
17 String raw
= convertToStorage(node
, content
);
18 node
.setProperty(CMS_CONTENT
, raw
);
20 throw new CmsException("Don't know how to interpret "
24 Property property
= (Property
) item
;
25 property
.setValue(content
);
27 item
.getSession().save();
28 } catch (RepositoryException e
) {
29 throw new CmsException("Cannot set content on " + item
, e
);
34 public String
read(Item item
) {
36 String raw
= raw(item
);
37 return convertFromStorage(item
, raw
);
38 } catch (RepositoryException e
) {
39 throw new CmsException("Cannot get " + item
+ " for edit", e
);
44 public String
raw(Item item
) {
46 if (item
instanceof Node
) {
47 Node node
= (Node
) item
;
48 if (node
.isNodeType(CmsTypes
.CMS_STYLED
)) {
49 // WORKAROUND FOR BROKEN PARARAPHS
50 if (!node
.hasProperty(CMS_CONTENT
)) {
51 node
.setProperty(CMS_CONTENT
, "");
52 node
.getSession().save();
55 return node
.getProperty(CMS_CONTENT
).getString();
57 throw new CmsException("Don't know how to interpret "
61 Property property
= (Property
) item
;
62 return property
.getString();
64 } catch (RepositoryException e
) {
65 throw new CmsException("Cannot get " + item
+ " content", e
);
69 protected String
convertToStorage(Item item
, String content
)
70 throws RepositoryException
{
75 protected String
convertFromStorage(Item item
, String content
)
76 throws RepositoryException
{