+++ /dev/null
-package org.argeo.entity;
-
-import javax.jcr.Node;
-import javax.jcr.RepositoryException;
-
-/** JCR utilities around the entity concepts. */
-public class EntityJcrUtils {
- /**
- * The name of a node which will be serialized as XML text, as per section 7.3.1
- * of the JCR 2.0 specifications.
- */
- private final static String JCR_XMLTEXT = "jcr:xmltext";
-
- /**
- * The name of a property which will be serialized as XML text, as per section
- * 7.3.1 of the JCR 2.0 specifications.
- */
- private final static String JCR_XMLCHARACTERS = "jcr:xmlcharacters";
-
- /*
- * XML
- */
- /**
- * Set both as a property and as a subnode which will be exported as an XML
- * element.
- */
-
-// public static void setAttrAndElem(Node node, String name, String value) {
-// Jcr.set(node, name, value);
-// setElem(node, name, value);
-// }
- /**
- * Set as a subnode which will be exported as an XML element.
- */
- public static String getXmlValue(Node node, String name) {
- try {
- if (!node.hasNode(name))
- throw new IllegalArgumentException("No XML text named " + name);
- return node.getNode(name).getNode(JCR_XMLTEXT).getProperty(JCR_XMLCHARACTERS).getString();
- } catch (RepositoryException e) {
- throw new IllegalStateException("Cannot get " + name + " as XML text", e);
- }
- }
-
- /**
- * Set as a subnode which will be exported as an XML element.
- */
- public static void setXmlValue(Node node, String name, String value) {
- try {
- if (node.hasNode(name))
- node.getNode(name).getNode(JCR_XMLTEXT).setProperty(JCR_XMLCHARACTERS, value);
- else
- node.addNode(name, EntityType.xmlvalue.qualified()).addNode(JCR_XMLTEXT, EntityType.xmltext.qualified())
- .setProperty(JCR_XMLCHARACTERS, value);
- } catch (RepositoryException e) {
- throw new IllegalStateException("Cannot set " + name + " as XML text", e);
- }
- }
-
-}