assign static method
Assigns user-defined codes. Returns index of country value in userValues Codes could be any combination of Alpha-2, alpha-2, or numeric code. Either one of 3 codes is required. After calling assign user-assigned codes are available through parse, tryParse, ofAlpha, and ofNumeric static methods.
Implementation
static int assign({String? alpha2, String? alpha3, int? numeric}) {
assert(!(alpha2 == null && alpha3 == null && numeric == null));
// check Alpha-2
if (alpha2 != null &&
(_parseAlpha(alpha2, _userValues) != -1 ||
_parseAlpha(alpha2, _values) != -1)) {
throw StateError('Alpha-2 code \"$alpha2\" is already assigned');
}
// check Alpha-3
if (alpha3 != null &&
(_parseAlpha(alpha3, _userValues) != -1 ||
_parseAlpha(alpha3, _values) != -1)) {
throw StateError('Alpha-3 code \"$alpha3\" is already assigned');
}
// check numeric
if (numeric != null &&
(_indexOfNum(numeric, _userValues) != -1 ||
_indexOfNum(numeric, _values) != -1)) {
throw StateError('Numeric code \"$numeric\" is already assigned');
}
_userValues.add(
CountryCode.user(alpha2: alpha2, alpha3: alpha3, numeric: numeric));
return _values.length + _userValues.length - 1;
}