docs: public static void setProperty(Object obj, String name, Object value) {
  		if (obj == null)
  			throw new NullPointerException("Object cannot be null");
  		if (name == null)
  			throw new NullPointerException("Property name cannot be null");
  
  		Class<?> objClass = obj.getClass();
  
  		for (Field field : objClass.getFields()) {
  			try {
  				if (matchField(field, name)) {
  					field.set(obj, value);
  					return;
  				}
  			} catch (Exception ex) {
  				// Ignore exception
  			}
  		}
  
  		name = "set" + name;
  		for (Method method : objClass.getMethods()) {
  			try {
  				if (matchPropertySetter(method, name)) {
  					method.invoke(obj, value);
  					return;
  				}
  			} catch (Exception ex) {
  				// Ignore exception
  			}
  		}
  	}