encode method
Implementation
String encode() {
//break up data for encoding
breakUpDataForEncoding();
//insert the start characters
insertStartandCodeCharacters();
var encodedData = "";
for (var s in _formattedData) {
//handle exception with apostrophes in select statements
var s1 = s.replaceAll("'", "''");
List<_CodeData?> eRow = [];
//select encoding only for type selected
switch (_code128Type) {
case Code128Type.A:
eRow = _codes.where((item) => item!.a == s1).toList();
break;
case Code128Type.B:
eRow = _codes.where((item) => item!.b == s1).toList();
break;
case Code128Type.C:
eRow = _codes.where((item) => item!.c == s1).toList();
break;
case Code128Type.Auto:
eRow = _codes.where((item) => item!.a == s1).toList();
if (eRow.length <= 0) {
eRow = _codes.where((item) => item!.b == s1).toList();
if (eRow.length <= 0) {
eRow = _codes.where((item) => item!.c == s1).toList();
}
}
break;
}
if (eRow.length <= 0)
throw new Exception("EC128-5: Could not find encoding of a value( " +
s1 +
" ) in C128 type " +
_code128Type.toString());
encodedData += eRow[0]!.encoding;
_encodedData.add(eRow[0]!.encoding);
}
//add the check digit
encodedData += calculateCheckDigit();
_encodedData.add(calculateCheckDigit());
//add the stop character
encodedData += _codes.firstWhere((item) => item!.a == 'STOP')!.encoding;
_encodedData.add(_codes.firstWhere((item) => item!.a == 'STOP')!.encoding);
//add the termination bars
encodedData += "11";
_encodedData.add("11");
return encodedData;
}