package com.google.common.base; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Pattern; /* loaded from: classes2.dex */ public final class Splitter { private final int limit; private final boolean omitEmptyStrings; private final Strategy strategy; private final CharMatcher trimmer; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public interface Strategy { Iterator iterator(Splitter splitter, CharSequence charSequence); } private Splitter(Strategy strategy) { this(strategy, false, CharMatcher.none(), Integer.MAX_VALUE); } private Splitter(Strategy strategy, boolean z, CharMatcher charMatcher, int i) { this.strategy = strategy; this.omitEmptyStrings = z; this.trimmer = charMatcher; this.limit = i; } public static Splitter on(char c) { return on(CharMatcher.is(c)); } public static Splitter on(CharMatcher charMatcher) { Preconditions.checkNotNull(charMatcher); return new Splitter(new AnonymousClass1(charMatcher)); } /* JADX INFO: Access modifiers changed from: package-private */ /* renamed from: com.google.common.base.Splitter$1, reason: invalid class name */ /* loaded from: classes2.dex */ public class AnonymousClass1 implements Strategy { final CharMatcher val$separatorMatcher; AnonymousClass1(CharMatcher charMatcher) { this.val$separatorMatcher = charMatcher; } @Override // com.google.common.base.Splitter.Strategy public SplittingIterator iterator(Splitter splitter, CharSequence charSequence) { return new SplittingIterator(this, splitter, charSequence) { // from class: com.google.common.base.Splitter.1.1 final AnonymousClass1 this$0; @Override // com.google.common.base.Splitter.SplittingIterator int separatorEnd(int i) { return i + 1; } { this.this$0 = this; } @Override // com.google.common.base.Splitter.SplittingIterator int separatorStart(int i) { return this.this$0.val$separatorMatcher.indexIn(this.toSplit, i); } }; } } public static Splitter on(String str) { Preconditions.checkArgument(str.length() != 0, "The separator may not be the empty string."); if (str.length() == 1) { return on(str.charAt(0)); } return new Splitter(new AnonymousClass2(str)); } /* JADX INFO: Access modifiers changed from: package-private */ /* renamed from: com.google.common.base.Splitter$2, reason: invalid class name */ /* loaded from: classes2.dex */ public class AnonymousClass2 implements Strategy { final String val$separator; AnonymousClass2(String str) { this.val$separator = str; } @Override // com.google.common.base.Splitter.Strategy public SplittingIterator iterator(Splitter splitter, CharSequence charSequence) { return new SplittingIterator(this, splitter, charSequence) { // from class: com.google.common.base.Splitter.2.1 final AnonymousClass2 this$0; { this.this$0 = this; } /* JADX WARN: Code restructure failed: missing block: B:10:0x0027, code lost: r6 = r6 + 1; */ @Override // com.google.common.base.Splitter.SplittingIterator /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public int separatorStart(int r6) { /* r5 = this; com.google.common.base.Splitter$2 r0 = r5.this$0 java.lang.String r0 = r0.val$separator int r0 = r0.length() java.lang.CharSequence r1 = r5.toSplit int r1 = r1.length() Le: int r2 = r1 - r0 if (r6 > r2) goto L2e r2 = 0 L13: if (r2 >= r0) goto L2d java.lang.CharSequence r3 = r5.toSplit int r4 = r2 + r6 char r3 = r3.charAt(r4) com.google.common.base.Splitter$2 r4 = r5.this$0 java.lang.String r4 = r4.val$separator char r4 = r4.charAt(r2) if (r3 == r4) goto L2a int r6 = r6 + 1 goto Le L2a: int r2 = r2 + 1 goto L13 L2d: return r6 L2e: r6 = -1 return r6 */ throw new UnsupportedOperationException("Method not decompiled: com.google.common.base.Splitter.AnonymousClass2.AnonymousClass1.separatorStart(int):int"); } @Override // com.google.common.base.Splitter.SplittingIterator public int separatorEnd(int i) { return i + this.this$0.val$separator.length(); } }; } } public static Splitter on(Pattern pattern) { return on(new JdkPattern(pattern)); } private static Splitter on(CommonPattern commonPattern) { Preconditions.checkArgument(!commonPattern.matcher("").matches(), "The pattern may not match the empty string: %s", commonPattern); return new Splitter(new Strategy(commonPattern) { // from class: com.google.common.base.Splitter.3 final CommonPattern val$separatorPattern; { this.val$separatorPattern = commonPattern; } @Override // com.google.common.base.Splitter.Strategy public SplittingIterator iterator(Splitter splitter, CharSequence charSequence) { return new SplittingIterator(this, splitter, charSequence, this.val$separatorPattern.matcher(charSequence)) { // from class: com.google.common.base.Splitter.3.1 final CommonMatcher val$matcher; { this.val$matcher = r4; } @Override // com.google.common.base.Splitter.SplittingIterator public int separatorStart(int i) { if (this.val$matcher.find(i)) { return this.val$matcher.start(); } return -1; } @Override // com.google.common.base.Splitter.SplittingIterator public int separatorEnd(int i) { return this.val$matcher.end(); } }; } }); } public static Splitter onPattern(String str) { return on(Platform.compilePattern(str)); } public static Splitter fixedLength(int i) { Preconditions.checkArgument(i > 0, "The length may not be less than 1"); return new Splitter(new AnonymousClass4(i)); } /* renamed from: com.google.common.base.Splitter$4, reason: invalid class name */ /* loaded from: classes2.dex */ class AnonymousClass4 implements Strategy { final int val$length; AnonymousClass4(int i) { this.val$length = i; } @Override // com.google.common.base.Splitter.Strategy public SplittingIterator iterator(Splitter splitter, CharSequence charSequence) { return new SplittingIterator(this, splitter, charSequence) { // from class: com.google.common.base.Splitter.4.1 final AnonymousClass4 this$0; @Override // com.google.common.base.Splitter.SplittingIterator public int separatorEnd(int i) { return i; } { this.this$0 = this; } @Override // com.google.common.base.Splitter.SplittingIterator public int separatorStart(int i) { int i2 = i + this.this$0.val$length; if (i2 >= this.toSplit.length()) { return -1; } return i2; } }; } } public final Splitter omitEmptyStrings() { return new Splitter(this.strategy, true, this.trimmer, this.limit); } public final Splitter limit(int i) { Preconditions.checkArgument(i > 0, "must be greater than zero: %s", i); return new Splitter(this.strategy, this.omitEmptyStrings, this.trimmer, i); } public final Splitter trimResults() { return trimResults(CharMatcher.whitespace()); } public final Splitter trimResults(CharMatcher charMatcher) { Preconditions.checkNotNull(charMatcher); return new Splitter(this.strategy, this.omitEmptyStrings, charMatcher, this.limit); } public final Iterable split(CharSequence charSequence) { Preconditions.checkNotNull(charSequence); return new Iterable(this, charSequence) { // from class: com.google.common.base.Splitter.5 final Splitter this$0; final CharSequence val$sequence; { this.this$0 = this; this.val$sequence = charSequence; } @Override // java.lang.Iterable public Iterator iterator() { return this.this$0.splittingIterator(this.val$sequence); } public String toString() { Joiner on = Joiner.on(", "); StringBuilder sb = new StringBuilder(); sb.append('['); StringBuilder appendTo = on.appendTo(sb, (Iterable) this); appendTo.append(']'); return appendTo.toString(); } }; } /* JADX INFO: Access modifiers changed from: private */ public Iterator splittingIterator(CharSequence charSequence) { return this.strategy.iterator(this, charSequence); } public final List splitToList(CharSequence charSequence) { Preconditions.checkNotNull(charSequence); Iterator splittingIterator = splittingIterator(charSequence); ArrayList arrayList = new ArrayList(); while (splittingIterator.hasNext()) { arrayList.add(splittingIterator.next()); } return Collections.unmodifiableList(arrayList); } public final MapSplitter withKeyValueSeparator(String str) { return withKeyValueSeparator(on(str)); } public final MapSplitter withKeyValueSeparator(char c) { return withKeyValueSeparator(on(c)); } public final MapSplitter withKeyValueSeparator(Splitter splitter) { return new MapSplitter(this, splitter, null); } /* loaded from: classes2.dex */ public static final class MapSplitter { private static final String INVALID_ENTRY_MESSAGE = "Chunk [%s] is not a valid entry"; private final Splitter entrySplitter; private final Splitter outerSplitter; /* synthetic */ MapSplitter(Splitter splitter, Splitter splitter2, AnonymousClass1 anonymousClass1) { this(splitter, splitter2); } private MapSplitter(Splitter splitter, Splitter splitter2) { this.outerSplitter = splitter; this.entrySplitter = (Splitter) Preconditions.checkNotNull(splitter2); } public final Map split(CharSequence charSequence) { LinkedHashMap linkedHashMap = new LinkedHashMap(); for (String str : this.outerSplitter.split(charSequence)) { Iterator splittingIterator = this.entrySplitter.splittingIterator(str); Preconditions.checkArgument(splittingIterator.hasNext(), INVALID_ENTRY_MESSAGE, str); String str2 = (String) splittingIterator.next(); Preconditions.checkArgument(!linkedHashMap.containsKey(str2), "Duplicate key [%s] found.", str2); Preconditions.checkArgument(splittingIterator.hasNext(), INVALID_ENTRY_MESSAGE, str); linkedHashMap.put(str2, (String) splittingIterator.next()); Preconditions.checkArgument(!splittingIterator.hasNext(), INVALID_ENTRY_MESSAGE, str); } return Collections.unmodifiableMap(linkedHashMap); } } /* loaded from: classes2.dex */ static abstract class SplittingIterator extends AbstractIterator { int limit; int offset = 0; final boolean omitEmptyStrings; final CharSequence toSplit; final CharMatcher trimmer; abstract int separatorEnd(int i); abstract int separatorStart(int i); protected SplittingIterator(Splitter splitter, CharSequence charSequence) { this.trimmer = splitter.trimmer; this.omitEmptyStrings = splitter.omitEmptyStrings; this.limit = splitter.limit; this.toSplit = charSequence; } /* JADX INFO: Access modifiers changed from: protected */ @Override // com.google.common.base.AbstractIterator public String computeNext() { int separatorStart; int i = this.offset; while (true) { int i2 = this.offset; if (i2 != -1) { separatorStart = separatorStart(i2); if (separatorStart == -1) { separatorStart = this.toSplit.length(); this.offset = -1; } else { this.offset = separatorEnd(separatorStart); } int i3 = this.offset; if (i3 == i) { int i4 = i3 + 1; this.offset = i4; if (i4 > this.toSplit.length()) { this.offset = -1; } } else { while (i < separatorStart && this.trimmer.matches(this.toSplit.charAt(i))) { i++; } while (separatorStart > i && this.trimmer.matches(this.toSplit.charAt(separatorStart - 1))) { separatorStart--; } if (!this.omitEmptyStrings || i != separatorStart) { break; } i = this.offset; } } else { return endOfData(); } } int i5 = this.limit; if (i5 == 1) { separatorStart = this.toSplit.length(); this.offset = -1; while (separatorStart > i && this.trimmer.matches(this.toSplit.charAt(separatorStart - 1))) { separatorStart--; } } else { this.limit = i5 - 1; } return this.toSplit.subSequence(i, separatorStart).toString(); } } }