]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/execution/PrimitiveFieldHandler.java
XML format for executions
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.castor / src / main / java / org / argeo / slc / castor / execution / PrimitiveFieldHandler.java
index e27a3af79cb6f8502d8dfba0314434b9d79dce57..bee2acb66ca2c7f762660f6bbd8fcf2bfeb28afa 100644 (file)
@@ -1,7 +1,7 @@
 package org.argeo.slc.castor.execution;
 
+import org.argeo.slc.core.execution.PrimitiveAccessor;
 import org.argeo.slc.core.execution.PrimitiveSpecAttribute;
-import org.argeo.slc.core.execution.PrimitiveValue;
 import org.exolab.castor.mapping.AbstractFieldHandler;
 
 public class PrimitiveFieldHandler extends AbstractFieldHandler {
@@ -11,53 +11,32 @@ public class PrimitiveFieldHandler extends AbstractFieldHandler {
                if (object == null)
                        return null;
 
-               Object value = null;
-               if (object instanceof PrimitiveSpecAttribute)
-                       value = ((PrimitiveSpecAttribute) object).getValue();
-               else if (object instanceof PrimitiveValue)
-                       value = ((PrimitiveValue) object).getValue();
-               else
-                       throw new IllegalStateException("Unkown type " + object.getClass());
-
-               return value != null ? value.toString() : null;
+               return ((PrimitiveAccessor) object).getValue().toString();
        }
 
        @Override
        public Object newInstance(Object parent, Object[] args)
                        throws IllegalStateException {
-               // TODO Auto-generated method stub
                return null;
        }
 
        @Override
        public Object newInstance(Object parent) throws IllegalStateException {
-               // TODO Auto-generated method stub
                return null;
        }
 
        @Override
        public void resetValue(Object object) throws IllegalStateException,
                        IllegalArgumentException {
-               // TODO Auto-generated method stub
-
        }
 
        @Override
        public void setValue(Object object, Object value)
                        throws IllegalStateException, IllegalArgumentException {
-               // TODO: could probably be more generic
-
-               PrimitiveSpecAttribute attr = (PrimitiveSpecAttribute) object;
-               String type = attr.getType();
+               PrimitiveAccessor primitiveAccessor = (PrimitiveAccessor) object;
+               String type = primitiveAccessor.getType();
                String str = value.toString();
-
-               // FIXME: generalize
-               if (object instanceof PrimitiveSpecAttribute)
-                       ((PrimitiveSpecAttribute) object).setValue(convert(type, str));
-               else if (object instanceof PrimitiveValue)
-                       ((PrimitiveValue) object).setValue(convert(type, str));
-               else
-                       throw new IllegalStateException("Unkown type " + object.getClass());
+               primitiveAccessor.setValue(convert(type, str));
        }
 
        protected Object convert(String type, String str) {