code: public void setProperty(Object target, String property, Object value) {
  		NestedResolver resolver = new NestedResolver(target, property);
  
  		if (value instanceof String) {
  			convertStringValue(resolver.getNestedTarget(), resolver.getProperty(), (String) value);
  		} else {
  			setObjectValue(resolver.getNestedTarget(), resolver.getProperty(), value);
  		}
  	}
docs: Set property in object target. If values has type other than String setter method or field
  with specified type will be used to set value. If value has String type value will be converted
  using available converters. If conversion to all of the types accepted by setters fails, field
  with corresponding name will be used
  
  @param target Java bean where a property will be set
  @param property property to be set
  @param value value to be set