code: @Override
      public void readFromObject(Object object) {
          try {
              Method method = BeanUtils.getReadMethod(object.getClass(), getName());
              if (method != null) {
                  Object value = method.invoke(object);
                  initializeValue(value); // avoid updating parent or firing property change
                  if (value != null) {
                      for (Property subProperty : subProperties) {
                          subProperty.readFromObject(value);
                      }
                  }
              }
          } catch (IllegalAccessException e) {
              throw new RuntimeException(e);
          } catch (IllegalArgumentException e) {
              throw new RuntimeException(e);
          } catch (InvocationTargetException e) {
              throw new RuntimeException(e);
          }
      }
docs: Reads the value of this Property from the given object. It uses
  reflection and looks for a method starting with "is" or "get" followed by
  the capitalized Property name.
  
  @param object