docs: public <X> X cast(final Class<X> iface) {
          if (iface == null) {
              throw new IllegalArgumentException("Parameter 'cls' muss angegeben werden");
          }
  
          final Class<?> clazz = this.getClass();
          if (iface.isAssignableFrom(clazz)) {
              return iface.cast(this);
          } else {
              if (this.editable == null) {
                  throw new IllegalStateException("Delegate ist nicht definiert");
              }
              return this.editable.cast(iface);
          }
      }