abstractMethodSubTypeSeparator property Null safety
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;