PropertyPathExpressionValueSetter implements ValueSetter { @Override public void setValue(BeanWrapper bean, String propertyName) { Object result = _expression.invoke(bean.getWrappedInstance(Object.class)); Object resolvedValue = _converter.convertValue(bean, propertyName, result); bean.setPropertyValue(propertyName, resolvedValue); } PropertyPathExpressionValueSetter(GtfsReader reader,
      EntitySchemaCache schemaCache, GtfsRelationalDao dao,
      PropertyPathExpression expression); @Override void setValue(BeanWrapper bean, String propertyName);  }
@Test public void test() { PropertyPathExpression expression = new PropertyPathExpression( "route.shortName"); PropertyPathExpressionValueSetter setter = new PropertyPathExpressionValueSetter( _reader, _schemaCache, _dao, expression); Route route = new Route(); route.setShortName("10"); Trip trip = new Trip(); trip.setRoute(route); setter.setValue(BeanWrapperFactory.wrap(trip), "tripShortName"); assertEquals("10", trip.getTripShortName()); }