code: public void fromDmr(Object entity, String javaName, ModelType dmrType, Class<?> propertyType, ModelNode dmrPayload) throws Exception {
  
          Method target = entity.getClass().getMethod(javaName, propertyType);
          @SuppressWarnings("unchecked")
          List<Property> properties = dmrPayload.isDefined() ? dmrPayload.asPropertyList() : EMPTY_LIST;
          if(properties.isEmpty())
          {
              target.invoke(entity, EMPTY_MAP);
          }
          else
          {
              Map<String, Object> map = new HashMap<>(properties.size());
  
              for (Property prop : properties) {
                  map.put(prop.getName(), toJavaValue(prop.getValue().getType(), prop.getValue()));
              }
  
              target.invoke(entity, map);
          }
      }
docs: TODO handle composite values