code: public static void setPropertyEL(Object obj, String prop, Object value) {
  
  	// first check for field
  	Field[] fields = getFieldsIgnoreCase(obj.getClass(), prop, null);
  	if (!ArrayUtil.isEmpty(fields)) {
  	    try {
  		fields[0].set(obj, value);
  		return;
  	    }
  	    catch (Throwable t) {
  		ExceptionUtil.rethrowIfNecessary(t);
  	    }
  	}
  
  	// then check for setter
  	try {
  	    getSetter(obj, prop, value).invoke(obj);
  	}
  	catch (Throwable t) {
  	    ExceptionUtil.rethrowIfNecessary(t);
  	}
  
      }
docs: assign a value to a visible Property (Field or Setter) of a object
  
  @param obj Object to assign value to his property
  @param prop name of property
  @param value Value to assign