code: public S unmarshal(T object) {
  
      	if (object != null && !targetClass.isAssignableFrom(object.getClass())) {
      		throw new IllegalArgumentException("Supplied object was not instance of target class");
      	}
      	
          try {
              return getBoundClass().cast(unmarshalHandle.invoke(object));
          } catch (Throwable ex) {
          	if (ex.getCause() instanceof RuntimeException) {
                  throw (RuntimeException) ex.getCause();
              }
              throw new BindingException(ex.getMessage(), ex.getCause());
          }
      }
docs: /* @Override