code: @Override
      public S unmarshal(T str) {
          try {
              return unmarshal.newInstance(str);
          } catch (IllegalAccessException ex) {
              throw new IllegalStateException("Constructor is not accessible");
          } catch (InstantiationException ex) {
              throw new IllegalStateException("Constructor is not valid");
          } catch (InvocationTargetException ex) {
              if (ex.getCause() instanceof RuntimeException) {
                  throw (RuntimeException) ex.getCause();
              }
              throw new BindingException(ex.getMessage(), ex.getCause());
          }
      }
docs: {@inheritDoc}