class ReadMethod extends AbstractMethod<T> {

    public V readValue(T boundObject) {
        if (canRead()) {
            return readValueWithExceptionHandling(boundObject);
        } else {
            throw new IllegalStateException(
                    "Cannot find getter method for "
                            + boundObject.getClass().getName()
                            + "#" + getPropertyName());
        }
    }

      ReadMethod(PropertyAccessDescriptor<T, V> descriptor);

}