when static method
Gets the name index for a list of names based on the count
of elements
and their order
of appearance.
Implementation
static NameIndex when(NameOrder order, [int count = 2]) {
if (order == NameOrder.firstName) {
switch (count) {
case 2: // first name + last name
return const NameIndex._(-1, 0, -1, 1, -1);
case 3: // first name + middle name + last name
return const NameIndex._(-1, 0, 1, 2, -1);
case 4: // prefix + first name + middle name + last name
return const NameIndex._(0, 1, 2, 3, -1);
case 5: // prefix + first name + middle name + last name + suffix
return const NameIndex._(0, 1, 2, 3, 4);
default:
return NameIndex.base();
}
} else {
switch (count) {
case 2: // last name + first name
return const NameIndex._(-1, 1, -1, 0, -1);
case 3: // last name + first name + middle name
return const NameIndex._(-1, 1, 2, 0, -1);
case 4: // prefix + last name + first name + middle name
return const NameIndex._(0, 2, 3, 1, -1);
case 5: // prefix + last name + first name + middle name + suffix
return const NameIndex._(0, 2, 3, 1, 4);
default:
return NameIndex.base();
}
}
}