package com.google.common.graph; import com.google.common.base.Preconditions; import com.google.common.collect.HashMultiset; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Multiset; import com.google.errorprone.annotations.concurrent.LazyInit; import java.lang.ref.Reference; import java.lang.ref.SoftReference; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; import javax.annotation.CheckForNull; @ElementTypesAreNonnullByDefault /* loaded from: classes3.dex */ final class DirectedMultiNetworkConnections extends AbstractDirectedNetworkConnections { @CheckForNull @LazyInit private transient Reference> predecessorsReference; @CheckForNull @LazyInit private transient Reference> successorsReference; private DirectedMultiNetworkConnections(Map map, Map map2, int i) { super(map, map2, i); } /* JADX INFO: Access modifiers changed from: package-private */ public static DirectedMultiNetworkConnections of() { return new DirectedMultiNetworkConnections<>(new HashMap(2, 1.0f), new HashMap(2, 1.0f), 0); } /* JADX INFO: Access modifiers changed from: package-private */ public static DirectedMultiNetworkConnections ofImmutable(Map map, Map map2, int i) { return new DirectedMultiNetworkConnections<>(ImmutableMap.copyOf((Map) map), ImmutableMap.copyOf((Map) map2), i); } @Override // com.google.common.graph.NetworkConnections public Set predecessors() { return Collections.unmodifiableSet(predecessorsMultiset().elementSet()); } private Multiset predecessorsMultiset() { Multiset multiset = (Multiset) getReference(this.predecessorsReference); if (multiset != null) { return multiset; } HashMultiset create = HashMultiset.create(this.inEdgeMap.values()); this.predecessorsReference = new SoftReference(create); return create; } @Override // com.google.common.graph.NetworkConnections public Set successors() { return Collections.unmodifiableSet(successorsMultiset().elementSet()); } /* JADX INFO: Access modifiers changed from: private */ public Multiset successorsMultiset() { Multiset multiset = (Multiset) getReference(this.successorsReference); if (multiset != null) { return multiset; } HashMultiset create = HashMultiset.create(this.outEdgeMap.values()); this.successorsReference = new SoftReference(create); return create; } @Override // com.google.common.graph.NetworkConnections public Set edgesConnecting(final N n) { return new MultiEdgesConnecting(this.outEdgeMap, n) { // from class: com.google.common.graph.DirectedMultiNetworkConnections.1 @Override // java.util.AbstractCollection, java.util.Collection, java.util.Set public int size() { return DirectedMultiNetworkConnections.this.successorsMultiset().count(n); } }; } @Override // com.google.common.graph.AbstractDirectedNetworkConnections, com.google.common.graph.NetworkConnections public N removeInEdge(E e, boolean z) { N n = (N) super.removeInEdge(e, z); Multiset multiset = (Multiset) getReference(this.predecessorsReference); if (multiset != null) { Preconditions.checkState(multiset.remove(n)); } return n; } @Override // com.google.common.graph.AbstractDirectedNetworkConnections, com.google.common.graph.NetworkConnections public N removeOutEdge(E e) { N n = (N) super.removeOutEdge(e); Multiset multiset = (Multiset) getReference(this.successorsReference); if (multiset != null) { Preconditions.checkState(multiset.remove(n)); } return n; } @Override // com.google.common.graph.AbstractDirectedNetworkConnections, com.google.common.graph.NetworkConnections public void addInEdge(E e, N n, boolean z) { super.addInEdge(e, n, z); Multiset multiset = (Multiset) getReference(this.predecessorsReference); if (multiset != null) { Preconditions.checkState(multiset.add(n)); } } @Override // com.google.common.graph.AbstractDirectedNetworkConnections, com.google.common.graph.NetworkConnections public void addOutEdge(E e, N n) { super.addOutEdge(e, n); Multiset multiset = (Multiset) getReference(this.successorsReference); if (multiset != null) { Preconditions.checkState(multiset.add(n)); } } @CheckForNull private static T getReference(@CheckForNull Reference reference) { if (reference == null) { return null; } return reference.get(); } }