Skip to content

Allow FieldSelection to simultaneously include and exclude fields

The basic use of FieldSelection is to construct the class with a mode (None, Any, Select, Exclude), and then specify particular fields based off of this mode. This works fine for basic uses where the same code that constructs a FieldSelection sets all the fields.

But what happens, for example, if you have code that takes an existing FieldSelection and wants to exclude the field named foo? If the FieldSelection mode happens to be anything other than Exclude, the code would have to go through several hoops to construct a new FieldSelection object with this modified selection.

To make this case easier, FieldSelection now has the ability to specify the mode independently for each field. The AddField method now has an optional mode argument the specifies whether the mode for that field should be Select or Exclude.

In the example above, the code can simply add the foo field with the Exclude mode. Regardless of whatever state the FieldSelection was in before, it will now report the foo field as not selected.

Merge request reports