abstractMethodSubTypeSeparator property Null safety

String abstractMethodSubTypeSeparator
final

For the generated Switcher classes this is an optional separator that will be placed between the sub type names in the abstract method names.

For example abstractMethodSubTypeSeparator: 'With' results in abstract methods named like subTypeAWithOtherClassSubTypeA. A full example is shown below:

abstract class Event {}
class EventA extends Event {}
class EventB extends Event {}

abstract class State {}
class StateA extends State {}
class StateB extends State {}

// This will generate a Switcher which when mixed in has abstract
// methods named using the provided abstractMethodSubTypeSeparator:
@ClassSwitch(
  classes: [State, Event],
  options: ClassSwitchOptions(abstractMethodSubTypeSeparator:"With"))
class MyStateAndEventHandler with _$MyStateAndEventHandlerSwitcher {
  @override
  int stateAWithEventA(StateA stateA, EventA eventA) => 1;
  @override
  int stateAWithEventB(StateA stateA, EventB eventB) => 2;
  @override
  int stateBWithEventA(StateB stateB, EventA eventB) => 3;
  @override
  int stateBWithEventB(StateB stateB, EventB eventB) => 4;
}

This is useful for when you want to create a more readable API for one of your switcher classes when switching over multiple classes at once.

Implementation

final String abstractMethodSubTypeSeparator;