code: public static void populate(Object bean, Map<String, Object> values, Options options) throws BeanException {
  		try {
  			for (Entry<String, Object> entry : values.entrySet()) {
  				populate(bean, entry, options);
  			}
  		} catch (InvocationTargetException | IllegalAccessException e) {
  			throw new BeanException("Failed to populate bean", bean, e);
  		}
  	}
docs: <p>
  Fills a Java object with the provided values. The key of the map
  corresponds to the name of the property to set. The value of the map
  corresponds to the value to set on the Java object.
  </p>
  <p>
  The keys can contain '.' to set nested values.
  </p>
  Override parameter allows to indicate which source has higher priority:
  <ul>
  <li>If true, then all values provided in the map will be always set on
  the bean</li>
  <li>If false then there are two cases:
  <ul>
  <li>If the property value of the bean is null, then the value that comes
  from the map is used</li>
  <li>If the property value of the bean is not null, then this value is
  unchanged and the value in the map is not used</li>
  </ul>
  </li>
  </ul>
  Skip unknown parameter allows to indicate if execution should fail or
  not:
  <ul>
  <li>If true and a property provided in the map doesn't exist, then there
  is no failure and no change is applied to the bean</li>
  <li>If false and a property provided in the map doesn't exist, then the
  method fails immediately.</li>
  </ul>
  
  @param bean
  the bean to populate
  @param values
  the name/value pairs
  @param options
  options used to
  @throws BeanException
  when the bean couldn't be populated