@Override
  protected Object getValueOf(T t) {
    if (myProperty.equals(t)) {
      return myValue;
    }
    throw new IllegalArgumentException("Property " + t.getName() + " not found");
  }
@Override
  protected Object getValueOf(T t)