--- /dev/null
+package org.argeo.slc.castor.structure.tree;
+
+import org.exolab.castor.mapping.AbstractFieldHandler;
+import org.exolab.castor.mapping.MapItem;
+
+import org.argeo.slc.core.structure.tree.TreeSPath;
+
+public class TreeSPathFieldHandler extends AbstractFieldHandler {
+
+ @Override
+ public Object getValue(Object object) throws IllegalStateException {
+ MapItem part = (MapItem) object;
+ return ((TreeSPath) part.getKey()).getAsUniqueString();
+ }
+
+ @Override
+ public Object newInstance(Object parent) throws IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public Object newInstance(Object parent, Object[] args)
+ throws IllegalStateException {
+ return null;
+ }
+
+ @Override
+ public void resetValue(Object object) throws IllegalStateException,
+ IllegalArgumentException {
+ MapItem part = (MapItem) object;
+ part.setKey(null);
+ }
+
+ @Override
+ public void setValue(Object object, Object value)
+ throws IllegalStateException, IllegalArgumentException {
+ MapItem part = (MapItem) object;
+ part.setKey(TreeSPath.parseToCreatePath(value.toString()));
+ }
+
+}
import org.springframework.context.ApplicationContext;\r
import org.springframework.context.support.ClassPathXmlApplicationContext;\r
\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
import org.argeo.slc.core.SlcException;\r
import org.argeo.slc.core.process.SlcExecution;\r
\r
/** Helper for tests using a Spring application co,text. */\r
public abstract class AbstractSpringTestCase extends TestCase {\r
+ protected final Log log = LogFactory.getLog(getClass());\r
private ApplicationContext context;\r
\r
/**\r
<map-to\r
ns-uri="http://argeo.org/projects/slc/schemas" ns-prefix="slc" />\r
<field name="key"\r
- type="org.argeo.slc.core.structure.tree.TreeSPath">\r
+ type="org.argeo.slc.core.structure.tree.TreeSPath"\r
+ handler="org.argeo.slc.castor.structure.tree.TreeSPathFieldHandler">\r
<bind-xml name="path" node="attribute" />\r
</field>\r
<field name="value"\r
<map-to\r
ns-uri="http://argeo.org/projects/slc/schemas" ns-prefix="slc" />\r
<field name="key"\r
- type="org.argeo.slc.core.structure.tree.TreeSPath">\r
+ type="org.argeo.slc.core.structure.tree.TreeSPath"\r
+ handler="org.argeo.slc.castor.structure.tree.TreeSPathFieldHandler">\r
<bind-xml name="path" node="attribute" />\r
</field>\r
<field name="value"\r
import org.springframework.xml.transform.StringResult;\r
import org.springframework.xml.transform.StringSource;\r
\r
+import org.argeo.slc.core.structure.tree.TreeSPath;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
import org.argeo.slc.core.test.tree.TreeTestResultTestUtils;\r
import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
TreeTestResult ttrUnm = (TreeTestResult) getBean(Unmarshaller.class)\r
.unmarshal(source);\r
\r
+ for (TreeSPath path : ttrUnm.getResultParts().keySet()) {\r
+ log.debug("Path: " + path.getClass() + ": " + path);\r
+ }\r
+\r
TreeTestResultDao ttrDao = getBean(TreeTestResultDao.class);\r
ttrDao.create(ttrUnm);\r
TreeTestResult ttrPersist = ttrDao.getTestResult(ttr.getUuid());\r