code: private void assign(final Object val,
                               final Element el,
                               final Collection<Object> col,
                               final Object o,
                               final Method meth) throws Throwable {
      if (col != null) {
        col.add(val);
      } else if (!cb.save(el, o, val)) {
        final 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 the value
  @param el the element for the current node
  @param col - if non-null add to this.
  @param o the object
  @param meth the method
  @throws Throwable on error