code: private void assign(final Object val,
                        final Collection<Object> col,
                        final Object o,
                        final Method meth) throws Throwable {
      if (col != null) {
        col.add(val);
      } else {
        Object[] pars = new Object[]{val};
  
        meth.invoke(o, pars);
      }
    }
docs: Assign a value - either to collection col or to a setter of o defined by meth
  @param val
  @param col - if non-null add to this.
  @param o
  @param meth
  @throws Throwable