120 lines
4.2 KiB
Java
120 lines
4.2 KiB
Java
package com.google.common.graph;
|
|
|
|
import com.google.common.base.Function;
|
|
import com.google.common.base.Preconditions;
|
|
import com.google.common.collect.ImmutableMap;
|
|
import com.google.common.collect.Iterators;
|
|
import com.google.common.graph.ElementOrder;
|
|
import java.util.Collections;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
/* loaded from: classes2.dex */
|
|
final class UndirectedGraphConnections<N, V> implements GraphConnections<N, V> {
|
|
private final Map<N, V> adjacentNodeValues;
|
|
|
|
private UndirectedGraphConnections(Map<N, V> map) {
|
|
this.adjacentNodeValues = (Map) Preconditions.checkNotNull(map);
|
|
}
|
|
|
|
/* renamed from: com.google.common.graph.UndirectedGraphConnections$2, reason: invalid class name */
|
|
/* loaded from: classes2.dex */
|
|
static /* synthetic */ class AnonymousClass2 {
|
|
static final int[] $SwitchMap$com$google$common$graph$ElementOrder$Type;
|
|
|
|
static {
|
|
int[] iArr = new int[ElementOrder.Type.values().length];
|
|
$SwitchMap$com$google$common$graph$ElementOrder$Type = iArr;
|
|
try {
|
|
iArr[ElementOrder.Type.UNORDERED.ordinal()] = 1;
|
|
} catch (NoSuchFieldError unused) {
|
|
}
|
|
try {
|
|
$SwitchMap$com$google$common$graph$ElementOrder$Type[ElementOrder.Type.STABLE.ordinal()] = 2;
|
|
} catch (NoSuchFieldError unused2) {
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public static <N, V> UndirectedGraphConnections<N, V> of(ElementOrder<N> elementOrder) {
|
|
int i = AnonymousClass2.$SwitchMap$com$google$common$graph$ElementOrder$Type[elementOrder.type().ordinal()];
|
|
if (i == 1) {
|
|
return new UndirectedGraphConnections<>(new HashMap(2, 1.0f));
|
|
}
|
|
if (i == 2) {
|
|
return new UndirectedGraphConnections<>(new LinkedHashMap(2, 1.0f));
|
|
}
|
|
throw new AssertionError(elementOrder.type());
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public static <N, V> UndirectedGraphConnections<N, V> ofImmutable(Map<N, V> map) {
|
|
return new UndirectedGraphConnections<>(ImmutableMap.copyOf((Map) map));
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final Set<N> adjacentNodes() {
|
|
return Collections.unmodifiableSet(this.adjacentNodeValues.keySet());
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final Set<N> predecessors() {
|
|
return adjacentNodes();
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final Set<N> successors() {
|
|
return adjacentNodes();
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final Iterator<EndpointPair<N>> incidentEdgeIterator(N n) {
|
|
return Iterators.transform(this.adjacentNodeValues.keySet().iterator(), new Function<N, EndpointPair<N>>(this, n) { // from class: com.google.common.graph.UndirectedGraphConnections.1
|
|
final Object val$thisNode;
|
|
|
|
{
|
|
this.val$thisNode = n;
|
|
}
|
|
|
|
@Override // com.google.common.base.Function
|
|
public /* bridge */ /* synthetic */ Object apply(Object obj) {
|
|
return apply((AnonymousClass1) obj);
|
|
}
|
|
|
|
@Override // com.google.common.base.Function
|
|
public EndpointPair<N> apply(N n2) {
|
|
return EndpointPair.unordered(this.val$thisNode, n2);
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final V value(N n) {
|
|
return this.adjacentNodeValues.get(n);
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final void removePredecessor(N n) {
|
|
removeSuccessor(n);
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final V removeSuccessor(N n) {
|
|
return this.adjacentNodeValues.remove(n);
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final void addPredecessor(N n, V v) {
|
|
addSuccessor(n, v);
|
|
}
|
|
|
|
@Override // com.google.common.graph.GraphConnections
|
|
public final V addSuccessor(N n, V v) {
|
|
return this.adjacentNodeValues.put(n, v);
|
|
}
|
|
}
|