X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.castor%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcastor%2Fexecution%2FPrimitiveFieldHandler.java;h=4a250e4cf840f495cc5160681cafce3a77418d19;hb=c1cadd631138302ddd6700aa2eb7376eb657002d;hp=e27a3af79cb6f8502d8dfba0314434b9d79dce57;hpb=743ecb28b3c0236bc91a5d0993f70477236d96fd;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/execution/PrimitiveFieldHandler.java b/runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/execution/PrimitiveFieldHandler.java index e27a3af79..4a250e4cf 100644 --- a/runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/execution/PrimitiveFieldHandler.java +++ b/runtime/org.argeo.slc.support.castor/src/main/java/org/argeo/slc/castor/execution/PrimitiveFieldHandler.java @@ -1,7 +1,22 @@ +/* + * Copyright (C) 2007-2012 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.argeo.slc.castor.execution; -import org.argeo.slc.core.execution.PrimitiveSpecAttribute; -import org.argeo.slc.core.execution.PrimitiveValue; +import org.argeo.slc.core.execution.PrimitiveAccessor; +import org.argeo.slc.core.execution.PrimitiveUtils; import org.exolab.castor.mapping.AbstractFieldHandler; public class PrimitiveFieldHandler extends AbstractFieldHandler { @@ -11,70 +26,33 @@ 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()); - + Object value = ((PrimitiveAccessor) object).getValue(); return value != null ? value.toString() : null; } @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(PrimitiveUtils.convert(type, str)); } - protected Object convert(String type, String str) { - if (PrimitiveSpecAttribute.TYPE_STRING.equals(type)) { - return str; - } else if (PrimitiveSpecAttribute.TYPE_INTEGER.equals(type)) { - return (Integer.parseInt(str)); - } else if (PrimitiveSpecAttribute.TYPE_LONG.equals(type)) { - return (Long.parseLong(str)); - } else if (PrimitiveSpecAttribute.TYPE_FLOAT.equals(type)) { - return (Float.parseFloat(str)); - } else if (PrimitiveSpecAttribute.TYPE_DOUBLE.equals(type)) { - return (Double.parseDouble(str)); - } else if (PrimitiveSpecAttribute.TYPE_BOOLEAN.equals(type)) { - return (Boolean.parseBoolean(str)); - } else { - return str; - } - } }