package org.etk.kernel.container.xml.object; import java.util.Collection; import java.util.Date; import java.util.Map; public class XMLBaseObject { final static public String STRING = "string"; final static public String INT = "int"; final static public String LONG = "long"; final static public String BOOLEAN = "boolean"; final static public String FLOAT = "float"; final static public String DOUBLE = "double"; final static public String DATE = "date"; final static public String MAP = "map"; final static public String COLLECTION = "collection"; final static public String ARRAY = "array"; final static public String NATIVE_ARRAY = "native-array"; final static public String OBJECT = "object"; protected String type; protected Object value; public XMLBaseObject() { } public XMLBaseObject(Class objecttype, Object val) throws Exception { if (val == null) { setType(objecttype); } else { setObjectValue(val); } } public String getType() { return type; } public void setType(String s) { type = s; } public void setType(Class clazz) { if (String.class.equals(clazz)) type = STRING; else if (Integer.class.equals(clazz)) type = INT; else if (Long.class.equals(clazz)) type = LONG; else if (Float.class.equals(clazz)) type = FLOAT; else if (Double.class.equals(clazz)) type = DOUBLE; else if (Boolean.class.equals(clazz)) type = BOOLEAN; else if (Date.class.equals(clazz)) type = DATE; else if (Map.class.equals(clazz)) type = MAP; else if (Collection.class.equals(clazz)) type = COLLECTION; else if (XMLNativeArray.isNativeArray(clazz)) type = NATIVE_ARRAY; else type = OBJECT; } public Object getValue() { return value; } public void setValue(Object v) { value = v; } public Object getObjectValue() throws Exception { if (value instanceof XMLCollection) return ((XMLCollection) value).getCollection(); if (value instanceof XMLMap) return ((XMLMap) value).getMap(); if (value instanceof XMLNativeArray) return ((XMLNativeArray) value).getValue(); if (value instanceof XMLObject) return ((XMLObject) value).toObject(); return value; } public void setObjectValue(Object o) throws Exception { if (o instanceof String) setString((String) o); else if (o instanceof Integer) setInt((Integer) o); else if (o instanceof Long) setLong((Long) o); else if (o instanceof Float) setFloat((Float) o); else if (o instanceof Double) setDouble((Double) o); else if (o instanceof Boolean) setBoolean((Boolean) o); else if (o instanceof Date) setDate((Date) o); else if (o instanceof Map) setMapValue((Map) o); else if (o instanceof Collection) setCollectiontValue((Collection) o); else if (o instanceof XMLObject) setObject((XMLObject) o); else if (XMLNativeArray.isNativeArray(o)) setNativeArrayValue(o); else setObject(new XMLObject(o)); } public XMLObject getObject() { if (value instanceof XMLObject) return (XMLObject) value; return null; } public void setObject(XMLObject o) { if (o == null) return; type = OBJECT; value = o; } public String getString() { if (value instanceof String) return (String) value; return null; } public void setString(String s) { if (s == null) return; type = STRING; value = s; } public Integer getInt() { if (value instanceof Integer) return (Integer) value; return null; } public void setInt(Integer i) { if (i == null) return; type = INT; value = i; } public Long getLong() { if (value instanceof Long) return (Long) value; return null; } public void setLong(Long l) { if (l == null) return; type = LONG; value = l; } public Float getFloat() { if (value instanceof Float) return (Float) value; return null; } public void setFloat(Float f) { if (f == null) return; type = DOUBLE; value = f; } public Double getDouble() { if (value instanceof Double) return (Double) value; return null; } public void setDouble(Double d) { if (d == null) return; type = FLOAT; value = d; } public Boolean getBoolean() { if (value instanceof Boolean) return (Boolean) value; return null; } public void setBoolean(Boolean b) { if (b == null) return; type = BOOLEAN; value = b; } public Date getDate() { if (value instanceof Date) return (Date) value; return null; } public void setDate(Date date) { if (date == null) return; type = DATE; value = date; } public XMLMap getMap() { if (value instanceof XMLMap) return (XMLMap) value; return null; } public void setMapValue(Map map) throws Exception { if (map == null) return; type = MAP; value = new XMLMap(map); } public void setMap(XMLMap map) { if (map == null) return; type = MAP; value = map; } public XMLCollection getCollection() { if (value instanceof XMLCollection) return (XMLCollection) value; return null; } public void setCollectiontValue(Collection collection) throws Exception { if (collection == null) return; type = COLLECTION; value = new XMLCollection(collection); } public void setCollection(XMLCollection collection) { if (collection == null) return; type = COLLECTION; value = collection; } public XMLNativeArray getNativeArray() { if (value instanceof XMLNativeArray) return (XMLNativeArray) value; return null; } public void setNativeArrayValue(Object array) throws Exception { if (array == null) return; type = NATIVE_ARRAY; value = new XMLNativeArray(array); } public void setNativeArray(XMLNativeArray array) { if (array == null) return; type = NATIVE_ARRAY; value = array; } }