adaptData method

String adaptData(
  1. String data, [
  2. bool text = false
])

Implementation

String adaptData(String data, [bool text = false]) {
  if (isGS1) {
    final StringBuffer result = StringBuffer();
    int start = 0;
    for (final RegExpMatch match in RegExp(r"\(.+?\)").allMatches(data)) {
      result.write(data.substring(start, match.start));
      result.write(BarcodeMaps.code128FNC1String);
      if (text && keepParenthesis) {
        result.write("(");
      }
      result.write(data.substring(match.start + 1, match.end - 1));
      if (text && keepParenthesis) {
        result.write(")");
      }
      if (text && addSpaceAfterParenthesis) {
        result.write(" ");
      }
      start = match.end;
    }
    result.write(data.substring(start));
    data = result.toString();
  }

  if (escapes) {
    final StringBuffer result = StringBuffer();
    int start = 0;
    for (final RegExpMatch match in RegExp(r"{\d}").allMatches(data)) {
      result.write(data.substring(start, match.start));
      switch (match.group(0)) {
        case "{1}":
          result.write(BarcodeMaps.code128FNC1String);
          break;
        case "{2}":
          result.write(BarcodeMaps.code128FNC2String);
          break;
        case "{3}":
          result.write(BarcodeMaps.code128FNC3String);
          break;
        case "{4}":
          result.write(BarcodeMaps.code128FNC4String);
          break;
        default:
          result.write(match.group(0));
      }

      start = match.end;
    }
    result.write(data.substring(start));
    data = result.toString();
  }

  return data;
}