This class represents a two-character net field. See the specification.
Because the capacity of the actual field is four, and because some banders may use three- or four-character net fields, other classes for this field may be created for those cases.
# - - - - - c l a s s N e t 2 F i e l d - - - - -
class Net2Field(FieldItem):
'''Represents a two-character net field.
Exports: as inherited.
'''
Scans a two-character net field.
# - - - N e t 2 F i e l d . s c a n F i e l d - - -
@staticmethod
def scanField(encounter, scan, fieldName):
'''Scan a two-character net field.
'''
#-- 1 --
# [ if the line in scan contains at least NET2_L characters ->
# scan := scan advanced NET2_L
# text := next NET2_L characters from scan, uppercased
# else ->
# Log() +:= error message
# raise SyntaxError ]
try:
text = scan.move(NET2_L).upper()
except IndexError:
scan.syntax("Expecting a %d-character net field." %
NET2_L)
#-- 2 --
setattr(encounter, NET_ATTR,
Net2Field(encounter, text))