package o; import java.util.Collections; import java.util.Iterator; import java.util.NavigableMap; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.CopyOnWriteArrayList; import org.threeten.bp.zone.ZoneRulesException; /* renamed from: o.guc, reason: case insensitive filesystem */ /* loaded from: classes6.dex */ public abstract class AbstractC15576guc { private static final CopyOnWriteArrayList PROVIDERS = new CopyOnWriteArrayList<>(); private static final ConcurrentMap ZONES = new ConcurrentHashMap(512, 0.75f, 2); protected boolean provideRefresh() { return false; } protected abstract AbstractC15574gua provideRules(String str, boolean z); protected abstract NavigableMap provideVersions(String str); protected abstract Set provideZoneIds(); static { AbstractC15575gub.initialize(); } public static Set getAvailableZoneIds() { return Collections.unmodifiableSet(ZONES.keySet()); } public static AbstractC15574gua getRules(String str, boolean z) { gtG.requireNonNull(str, "zoneId"); return getProvider(str).provideRules(str, z); } public static NavigableMap getVersions(String str) { gtG.requireNonNull(str, "zoneId"); return getProvider(str).provideVersions(str); } private static AbstractC15576guc getProvider(String str) { ConcurrentMap concurrentMap = ZONES; AbstractC15576guc abstractC15576guc = concurrentMap.get(str); if (abstractC15576guc != null) { return abstractC15576guc; } if (concurrentMap.isEmpty()) { throw new ZoneRulesException("No time-zone data files registered"); } throw new ZoneRulesException("Unknown time-zone ID: ".concat(String.valueOf(str))); } public static void registerProvider(AbstractC15576guc abstractC15576guc) { gtG.requireNonNull(abstractC15576guc, "provider"); registerProvider0(abstractC15576guc); PROVIDERS.add(abstractC15576guc); } private static void registerProvider0(AbstractC15576guc abstractC15576guc) { for (String str : abstractC15576guc.provideZoneIds()) { gtG.requireNonNull(str, "zoneId"); if (ZONES.putIfAbsent(str, abstractC15576guc) != null) { StringBuilder sb = new StringBuilder("Unable to register zone as one already registered with that ID: "); sb.append(str); sb.append(", currently loading from provider: "); sb.append(abstractC15576guc); throw new ZoneRulesException(sb.toString()); } } } public static boolean refresh() { Iterator it = PROVIDERS.iterator(); boolean z = false; while (it.hasNext()) { z |= it.next().provideRefresh(); } return z; } }