X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.castor%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcastor%2Fstructure%2Ftree%2FTreeSPathFieldHandler.java;fp=runtime%2Forg.argeo.slc.support.castor%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcastor%2Fstructure%2Ftree%2FTreeSPathFieldHandler.java;h=ad117ff14149d5f81a8aad7b2c1360cd921f18f4;hb=c64525cc73c704705e4fa629fc0cca7f98c13b90;hp=0000000000000000000000000000000000000000;hpb=19a9d8d57baf647f8a1a9aac3d9cb55c86dccbcc;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/structure/tree/TreeSPathFieldHandler.java b/runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/structure/tree/TreeSPathFieldHandler.java new file mode 100644 index 000000000..ad117ff14 --- /dev/null +++ b/runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/structure/tree/TreeSPathFieldHandler.java @@ -0,0 +1,41 @@ +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())); + } + +}