public boolean setValue(Object obj, String propName, Object value){
		boolean done = false;
		PropInfo propInfo = propInfoByPropName.get(propName);
		Method writeMethod = (propInfo != null)?propInfo.getWriteMethod():null;
		if (writeMethod != null){
			try {
				if (value == null){
					writeMethod.invoke(obj,new Object[]{ null });
					done = true;
				}else{
					// if value is null, it means the transformer fail to convert it.
					// TODO: perhaps to use strict transformer.
					if (value != null){
						writeMethod.invoke(obj,value);
						done = true;
					}
				}
			} catch (Throwable e) {
				throw new RuntimeException(e);
			}

		}
		return done;
	}