package org.xson.tangyuan.ognl; import java.util.Map; import org.xson.common.object.XCO; import org.xson.tangyuan.ognl.map.OgnlMap; import org.xson.tangyuan.ognl.vars.vo.VariableItemWraper; import org.xson.tangyuan.ognl.xco.OgnlXCO; public class Ognl { @SuppressWarnings({ "unchecked", "rawtypes" }) public static void setValue(Object container, String key, Object value) { if (null == container) { return; } if (XCO.class == container.getClass()) { ((XCO) container).setObjectValue(key, value); } else if (Map.class.isAssignableFrom(container.getClass())) { ((Map) container).put(key, value); } else { throw new OgnlException("Ognl.setValue不支持的类型:" + container.getClass()); } } @SuppressWarnings("unchecked") public static Object getValue(Object container, VariableItemWraper varVo) { if (null == container) { return null; } if (XCO.class == container.getClass()) { return OgnlXCO.getValue((XCO) container, varVo); } else if (Map.class.isAssignableFrom(container.getClass())) { return OgnlMap.getValue((Map<String, Object>) container, varVo); } else { throw new OgnlException("Ognl.getValue不支持的类型:" + container.getClass()); } } }