@Override
  public Object invoke(final DomInvocationHandler handler, final Object[] args) throws Throwable {
    handler.assertValid();
    final SubTag annotation = handler.getAnnotation(SubTag.class);
    final Object arg = args[0];
    if (annotation != null && annotation.indicator() && arg instanceof Boolean) {
      if ((Boolean)arg) {
        handler.ensureTagExists();
      } else {
        handler.undefineInternal();
      }
    } else {
      String value = myConverter.toString(arg, new ConvertContextImpl(handler));
      if (value == null) {
        handler.undefineInternal();
      } else {
        handler.setValue(value);
      }
    }
    return null;
  }
@Override
  public Object invoke(final DomInvocationHandler handler, final Object[] args)