code: public static void setProperties(Object obj, Map<String, Object> values) {
  		if (values == null || values.size() == 0)
  			return;
  
  		for (Map.Entry<String, Object> entry : values.entrySet()) {
  			setProperty(obj, entry.getKey(), entry.getValue());
  		}
  	}
docs: Recursively sets values of some (all) object and its subobjects properties.
  
  The object can be a user defined object, map or array. Property values
  correspondently are object properties, map key-pairs or array elements with
  their indexes.
  
  If some properties do not exist or introspection fails they are just silently
  skipped and no errors thrown.
  
  @param obj    an object to write properties to.
  @param values a map, containing property names and their values.
  
  @see #setProperty(Object, String, Object)