code: protected final ProviderExpression<S, D> when(Condition<?, ?> condition) {
      assertBuilder();
      return builder.when(condition);
    }
docs: Specifies the {@code condition} that must apply in order for mapping to take place for a
  particular destination property hierarchy. See the <a href="#5">EDSL examples</a>.
  
  @param condition that must apply when mapping the property
  @throws IllegalStateException if called from outside the context of
  {@link PropertyMap#configure()}.