when static method

NameIndex when(
  1. NameOrder order, [
  2. int count = 2
])

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();
    }
  }
}