code: public <T extends DataObject> T collect(T data, Map<String, String> binder) throws SecurityException, DataValidationException {
          return collect(data, binder, null);
      }
docs: Populates a data object by collecting and validating the named values from a Map&lt;String, String&gt;.
  
  @throws EmptyDataObjectException if a required member is missing and the data object is empty
  @throws MissingParameterException if a required member is missing but the data object has other members
  @throws DataValidationException if all other data validation fails
  @throws SecurityException if the data object is inproperly designed