@Override
  public Object apply(Object input) {
    return PropertyOrFieldSupport.EXTRACTION.getValueOf(propertyOrFieldName, input);
  }
@Test
  void should_extract_property_field_combinations() {
    // GIVEN
    Employee darth = new Employee(1L, new Name("Darth", "Vader"), 100);
    Employee luke = new Employee(2L, new Name("Luke", "Skywalker"), 26);
    darth.field = luke;
    luke.field = darth;
    luke.surname = new Name("Young", "Padawan");
    ByNameSingleExtractor underTest = new ByNameSingleExtractor("me.field.me.field.me.field.surname.name");
    // WHEN
    Object result = underTest.apply(darth);
    // THEN
    then(result).isEqualTo("Young Padawan");
  }