code: public static void populate(Object bean, Map<String, Object> values) throws BeanException {
  		populate(bean, values, new Options(false, true));
  	}
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>
  It doesn't override the value of properties of the bean that are not
  null. For example, if the bean looks like:
  
  <pre>
  public class SampleBean {
  private String foo = &quot;foo&quot;;
  private String bar = null;
  
  // ...
  // getters and setters
  // ...
  }
  </pre>
  
  If the map is:
  
  <pre>
  Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();
  map.put(&quot;foo&quot;, &quot;newfoo&quot;);
  map.put(&quot;bar&quot;, &quot;newbar&quot;);
  </pre>
  
  Then the bean will be:
  
  <pre>
  System.out.println(bean.getFoo());
  // foo
  System.out.println(bean.getBar());
  // newbar
  </pre>
  
  <p>
  It doesn't fail if a property doesn't exist.
  </p>
  
  @param bean
  the bean to populate
  @param values
  the name/value pairs
  @throws BeanException
  when the bean couldn't be populated