package com.google.zxing.datamatrix.encoder; /* loaded from: classes.dex */ final class EdifactEncoder implements Encoder { EdifactEncoder() { } public int a() { return 4; } @Override // com.google.zxing.datamatrix.encoder.Encoder public void a(EncoderContext encoderContext) { StringBuilder sb = new StringBuilder(); while (true) { if (!encoderContext.h()) { break; } a(encoderContext.c(), sb); encoderContext.f++; if (sb.length() >= 4) { encoderContext.a(a(sb, 0)); sb.delete(0, 4); if (HighLevelEncoder.a(encoderContext.d(), encoderContext.f, a()) != a()) { encoderContext.b(0); break; } } } sb.append((char) 31); a(encoderContext, sb); } private static void a(EncoderContext encoderContext, CharSequence charSequence) { try { int length = charSequence.length(); if (length == 0) { return; } boolean z = true; if (length == 1) { encoderContext.k(); int a = encoderContext.g().a() - encoderContext.a(); int f = encoderContext.f(); if (f > a) { encoderContext.c(encoderContext.a() + 1); a = encoderContext.g().a() - encoderContext.a(); } if (f <= a && a <= 2) { return; } } if (length <= 4) { int i = length - 1; String a2 = a(charSequence, 0); if (!(!encoderContext.h()) || i > 2) { z = false; } if (i <= 2) { encoderContext.c(encoderContext.a() + i); if (encoderContext.g().a() - encoderContext.a() >= 3) { encoderContext.c(encoderContext.a() + a2.length()); z = false; } } if (z) { encoderContext.j(); encoderContext.f -= i; } else { encoderContext.a(a2); } return; } throw new IllegalStateException("Count must not exceed 4"); } finally { encoderContext.b(0); } } private static void a(char c, StringBuilder sb) { if (c >= ' ' && c <= '?') { sb.append(c); } else if (c >= '@' && c <= '^') { sb.append((char) (c - '@')); } else { HighLevelEncoder.a(c); throw null; } } private static String a(CharSequence charSequence, int i) { int length = charSequence.length() - i; if (length != 0) { int charAt = (charSequence.charAt(i) << 18) + ((length >= 2 ? charSequence.charAt(i + 1) : (char) 0) << '\f') + ((length >= 3 ? charSequence.charAt(i + 2) : (char) 0) << 6) + (length >= 4 ? charSequence.charAt(i + 3) : (char) 0); char c = (char) ((charAt >> 16) & 255); char c2 = (char) ((charAt >> 8) & 255); char c3 = (char) (charAt & 255); StringBuilder sb = new StringBuilder(3); sb.append(c); if (length >= 2) { sb.append(c2); } if (length >= 3) { sb.append(c3); } return sb.toString(); } throw new IllegalStateException("StringBuilder must not be empty"); } }